Forum: Kul med strängar i PHP

Forum huvudsida -> Programmering -> Kul med strängar i PHP

Sidor: 1

Till botten

nibbo 22:30 - 5:e Juni 2008 | Post #1
Administratör
Inlägg: 446


Skicka PM
Hej! Jag har huvudvärk efter att ha försökt lösa detta problem ett tag! Kära genier, jag behöver er hjälp!

Jag har en variabel:
  1. $string = '
  2. [table]<br />
  3. [row][col]blablabla[/col][col]blasdfbaallala[/col][/row]<br />
  4. [row][col]texttesxt[/col][col]text[/col][/row]<br />
  5. [row][col]text[/col][col]text[/col][/row]<br />
  6. [/table]<br />
  7.  
  8. blablablablablabaaa<br />
  9. blabal<br />
  10.  
  11. [table]
  12. [row][col]blablabla[/col][col]blasdfbaallala[/col][/row]<br />
  13. [row][col]texttesxt[/col][col]text[/col][/row]<br />
  14. [row][col]text[/col][col]text[/col][/row]<br />
  15. [/table]<br />';


Det jag vill göra är att ta bort alla "<br />" som finns inom "[table]" och "[/table]"-taggar men låta de utanför vara kvar... Den här strängen kan innehålla massor med bbcode-tabeller blandade med text...
Några ideér?

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



tobbez 13:16 - 6:e Juni 2008 | Post #2
Medlem
Inlägg: 364


Skicka PM
Steg 1: Ta fram alla [table]-block (regexp).
Steg 2: Kör replace på de blocken.

Annars kan man iterera över varje rad, och sätta en bool till true när man hittar en [table] och sätta den till false när man hittar [/table]
Sedan är det bara köra replace på raden du itererar förbi om bool:en är true.




nibbo 19:33 - 6:e Juni 2008 | Post #3
Administratör
Inlägg: 446


Skicka PM
Regexp och sånt ja... det var det jag skulle lära migSmiley

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



tobbez 19:54 - 6:e Juni 2008 | Post #4
Medlem
Inlägg: 364


Skicka PM
Regexp är inte så svårt och använder du #2 så behövs det inte ens.

Annars borde regexpet för att matcha ett [table]-block vara '\[table\].*?\[/table\]'.




nibbo 20:09 - 6:e Juni 2008 | Post #5
Administratör
Inlägg: 446


Skicka PM
    Citat av tobbez:
Regexp är inte så svårt och använder du #2 så behövs det inte ens.

Annars borde regexpet för att matcha ett [table]-block vara '\[table\].*?\[/table\]'.

okej... hur beter jag mig för att använda det i nån funktion?`Du har inte lust att peka mig i rätt riktning på php-dokumentationen?

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



tobbez 20:36 - 6:e Juni 2008 | Post #6
Medlem
Inlägg: 364


Skicka PM
Någon/några av funktionerna med prefixet preg.

,,r inte helt säker på vilka som behövs i just ditt fall, det får du tänka ut själv Smiley




PythonGalning 10:30 - 8:e Juni 2008 | Post #7
Medlem
Inlägg: 14


Skicka PM
str_replace("<br />","", $string);

Kanske funkar?




nibbo 14:25 - 8:e Juni 2008 | Post #8
Administratör
Inlägg: 446


Skicka PM
    Citat av PythonGalning:
str_replace("<br />","", $string);

Kanske funkar?


Då försvinner ju även de utanför table-taggarna...
Problemet är i alla fall löst nu. Körde på metoden att gå igenom strängen rad för rad

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



PythonGalning 23:58 - 25:e Juni 2008 | Post #9
Medlem
Inlägg: 14


Skicka PM
Kan du visa den metoden? Jag vill gärna lära mig denSmiley




nibbo 14:49 - 26:e Juni 2008 | Post #10
Administratör
Inlägg: 446


Skicka PM
Har inte koden tillgänglig just nu. Ska titta efter den när jag kommer hem om tre veckorSmiley

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



PythonGalning 17:50 - 15:e Juli 2008 | Post #11
Medlem
Inlägg: 14


Skicka PM
Nu vill jag gärna ha kodenSmiley




nibbo 19:39 - 16:e Juli 2008 | Post #12
Administratör
Inlägg: 446


Skicka PM
  1. $string = split("\n", $string);
  2. $on = false;
  3. foreach($string as &$line) {
  4. if(strstr($line, '[table]') !== false)
  5. $on = true;
  6.  
  7. if(strstr($line, '[/table]') !== false)
  8. $on = false;
  9.  
  10. if($on)
  11. $line = str_replace('<br />', '', $line);
  12. }
  13.  
  14. $string = implode("\n", $string);


Sådär. Hoppas inte den är allt för dumt konstrueradSmiley

-------------------------
Ja! Det är en ,,KTA pungsvansknapp på min avatar!



Sidor: 1

Forum huvudsida -> Programmering -> Kul med strängar i PHP
Atom feed

Du får inte posta i den här tråden | Till toppen