Avatar billede htx98i17 Professor
01. marts 2011 - 15:37 Der er 14 kommentarer og
1 løsning

syntax fejl

Kan nogen finde fejlen i denne?

Warning: preg_replace() [function.preg-replace]: Unknown modifier ' ' in list.php on line 175

Warning: preg_replace() [function.preg-replace]: No ending delimiter '^' found in list.php on line 177

$text = preg_replace("^\*([^\r\n]*)", "<li>$1</li>", $produkt['varetekst']);
   
$text = preg_replace("^((?:\<li\>.*?\</li>\r\n)+)", "<ul class=\"pkt\">$1</ul>", $text);
Avatar billede jakobdo Ekspert
01. marts 2011 - 15:45 #1
Prøv at ret den første til:

'/^*([^\r\n]*)/'
Avatar billede jakobdo Ekspert
01. marts 2011 - 15:47 #2
Og nummer 2:
'%^((?:\b(?=\w)li\b(?!\w).*?\b(?=\w)/li>\r\n)+)%'
Avatar billede htx98i17 Professor
01. marts 2011 - 15:55 #3
Fejl nummer 2 forsvandt. Men fejl nummer 1 blev lavet om til: preg_replace() [function.preg-replace]: Compilation failed: nothing to repeat at offset 1
Avatar billede jakobdo Ekspert
01. marts 2011 - 16:00 #4
Hvad er det du vil opnå med nummer 1 ?
Fjerne alle mellemrum ?
Avatar billede htx98i17 Professor
01. marts 2011 - 16:07 #5
Det er et svar på et tidligere spørgsmål jeg oprettede, hvor der blot var en syntax fejl.

Meningen er, at den skal erstatte *-punkter med <li> punkter.

Altså
Tekst tekst tekst
* punkt 1
* punkt 2
* punkt 3
Tekst tekst tekst

med

Tekst tekst tekst
<ul>
<li>punkt 1</li>
<li>punkt 1</li>
<li>punkt 1</li>
</ul>
Tekst tekst tekst
Avatar billede htx98i17 Professor
01. marts 2011 - 16:08 #6
Og så var der en som forslog de 2 reg exp. Jeg er ikke selv inde i reg exp.
Avatar billede jakobdo Ekspert
01. marts 2011 - 16:18 #7
Prøv den der:

$text = preg_replace('/\*([^\r\n]+)/', '<li>$1</li>', $produkt['varetekst']);
Avatar billede jakobdo Ekspert
01. marts 2011 - 16:22 #8
Og så bagefter denne:

$text = preg_replace('%(?:<li>.*?</li>\r\n)+%', '<ul class=\"pkt\"></ul>', $text);
Avatar billede htx98i17 Professor
01. marts 2011 - 16:33 #9
Den første fungerer vist fint. Men nr. 2 indsætter ul og fjerner li'erne
Avatar billede jakobdo Ekspert
01. marts 2011 - 16:55 #10
$text = preg_replace('%(?:<li>.*?</li>\r\n)+%', '<ul class=\"pkt\"></ul>', $text);
Skal også være:

$text = preg_replace('%((?:<li>.*?</li>\r\n)+)%', '<ul class=\"pkt\">$1</ul>', $text);
Avatar billede htx98i17 Professor
02. marts 2011 - 07:28 #11
Tak for tålmodigheden :)

Ovenstående kommer til at give:

<ul class=\"pkt\"><li> 10" hjul</li><br />
<li> 35 cm. høje sider</li><br />
<li> Plastskærme</li><br />
</ul><li> mm.</li>
Avatar billede htx98i17 Professor
02. marts 2011 - 07:40 #12
<br /> kommer fra en nl2br() som skal behandle den øvrige tekst
Avatar billede htx98i17 Professor
04. marts 2011 - 22:46 #13
Når der ikke er tekst efter det sidste punkt, så udskrives </ul> inden den sidste <li>
altså som # 11

Kan det fixes?
Avatar billede htx98i17 Professor
11. marts 2011 - 15:59 #14
Ligger du et svar, så vi kan få lukket?

tak for hjælpen
Avatar billede htx98i17 Professor
07. august 2011 - 16:35 #15
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester