Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

match koden med nummer ud for

Hey folkens :D

  1. function html2kode($string){

  2. $new = explode("\n", $string);

  3. $countLines = count($new);

  4. echo "<ol>";

  5. for($lines=1; $lines < $countLines; $lines++){

  6. echo "<li>" . $new[$lines]."<br /></li>";
  7. }
  8. echo "</ol>";

Nogen der ved hvorn jeg få min preg_match linie ind på ??

  1. preg_match_callback('!\[koden](.*?)\[/koden]!is, "html2kode", $string);
prøved med det men det virker bare slet ike. har fået kode af en ven men han kan ik hjælper mig længere.

nogen der kan hjælpe mig

Pointfordeling

Forfatteren har lukket tråden og har valgt at fordele de 100 point således:
Bast 100 point
Oprettet af:

Regular Expressions

Point afsat: 100

Lukket
20:06 08/02/2010
er det ikke bare følgende?:
  1. function html2kode($string){

  2. $new = explode("\n", $string);

  3. $countLines = count($new);

  4. echo "<ol>";

  5. $text = preg_match_callback('!\[koden](.*?)\[/koden]!is, "html2kode", $new[$lines]);

  6. for($lines=1; $lines < $countLines; $lines++){

  7. echo "<li>" . $text."<br /></li>";
  8. }
  9. echo "</ol>";
Ret mig hvis jeg tager fejl.
Oprettet af:

Afslået svar
21:00 08/02/2010
Der er et par ting med din regexp som gør at den ikke kommer til at virke som den ser ud.
i regexp er der nogen beskyttede tegn som du skal huske at "escape", det er blandt andet [] og {}, jeg går ud fra at det du vil er at erstatte det du har stående mellem dine [kode] [/kode] tags med resultatet af html2kode functionen.

hvis det er tilfældet vil jeg forslå følgende:
  1. function html2kode($string){
  2.   $ret = "";
  3.   $new = explode("\n", $string);
  4.   
  5.   $countLines = count($new);
  6.   
  7.   $ret .= "<ol>";
  8.   for($line=1; $line < $countLines; $line++){
  9.     $ret .= "<li>" . $new[$line]."<br /></li>";
  10.   }
  11.   $ret .= "</ol>";
  12.   
  13.   return $ret;
  14. }
  15. $str = preg_replace("/\[kode\](.*)\[\/kode\]/ie", "html2kode(\"$1\")", $str);

Det jeg har gjort er at escape de specielle regexp karaktere, og tilføjet ie operators tror jeg det hedder.. i står for insensitive og e for execute. Det betyder at alle [kode][/kode] tegns indhold vil blive banket igennem html2kode som en tekst streng og resultatet af html2kode vil så erstatte dine kode tegn
Oprettet af:

Accepteret svar

Point modtaget: 100
10:45 09/02/2010
Glemte at tilføje
  • $str = preg_replace("/\[kode\](.*)\[\/kode\]/ie", "html2kode(\"$1\")", $str);
her går jeg ud fra at du kalder den variable du ønsker at erstatte dine tags i for $str, du kan selv skifte det så det passer
Oprettet af:

Kommentar
10:46 09/02/2010
Hej Bast

Tak for dit svar jeg melder lige tilbage på et senere tidspunkt om det virker.

Hilsen Joe
Oprettet af:

Kommentar
18:42 10/02/2010
Du skal være oprettet og logget ind for at svare på en tråd
Copyright © Rowl.dk v/ Michael Raagaard | 2005-10 | Alle rettigheder forbeholdes