Ik zou graag voor mijn BBcode-script , al wat tussen [ code ] en [ / code ] staat automatisch nummeren.(Zoals hier op sitemasters ook.) Weet iemand hoe ik dat met een scriptje kan oplossen ik heb zelf al iets geprobeerd, maar dat werkte niet.
Voorbeeldje van wat ik bedoel :
exploden op de regels, en dan elke regel in een li zetten, en daaromheen een UL met
ul
{
list-style-image: decimal;
}
Ik denk dat je hiermee hetzelfde bedoelt als Vintage, alleen anders. Maar dan vind ik dat van Vintage toch gemakelijker.
Martijn schreef:
edit: En dat je t alleen wilt met je code tags, is met een preg_replace_callback()
En hier denk ik dat je een oplossing hebt voor mijn vraag om het tussen [ code ] en [ / code ] alleen te nummeren. Helaas heb ik op php.net gekeken naar preg_replace_callback() maar ik snap er helemaal niets van. Ik snap niet hoe ik daarmee alleen de tekst tussen mijn code tags kan laten nummeren. Zou je het even met een gemakkelijk voorbeeld kunnen uitleggen ?
Dan kan ik mss zelf voor de nummering tussen de code tags zorgen.
en denk dat je mijne ingewikkelder ziet dan nodig is. Je explode op de \n zoals je nu doet, en dan in je foreach doe je steeds "<li>".$waarde."</li>"
En dan voor en na je foreach echo je een <ul> en </ul> en je bent klaar. Voordeel hiervan is dat je de cijfers makkelijk een andere kleur kan geven, rechts kan uitlijnen (kijk maar naar r1-r9 tov r10+) en het eindigt allemaal gelijk ongeacht hoe lang het getal is
edit: En een bijkomt voordeel is is dat als je het selecteerd en kopierd de getallen niet meekopieren, en je zou ooit met javascript de list-style op none kunnen zetten om [zonder regelnummers] mogelijk te maken
ok, ik snap het, ook je <li> en <ul> snap ik nu ook. Alleen werkt mijn preg_replace_callback nog niet zoals het moet, elke keer als ik op show druk, komt er gewoon niets meer op het scherm. Ik denk dat het aan mijn regex ligt, omdat ik nu eenmaal niet zo goed omkan met reguliere expressie. Ik zal hier ff mijn code plakken:
/* eerste deel van functie replace. */
if(preg_replace_callback("/\<div class\='code' name\='(.+?)'\>(.+?)\<\/div\>/","counter",$newStr)){
preg_replace_callback("/\<div class\='code' name\='(.+?)'\>(.+?)\<\/div\>/","counter",$newStr);
}else{
echo $newStr;
}
}
function counter($strtocount){
$exploded=explode("\n",$strtocount);
$number=1;
foreach($exploded as $newline){
echo $number++ . ". " . $newline;/* ik heb jou <li> en <ul> nog niet gebruikt, ik wou eerst de preg_replace_callback uitproberen. */
}
}