26. januar 2003 - 01:36 Der er 15 kommentarer og
3 løsninger

Hvordan fjerner man tabulatorer i en variabel?

Jeg har noget udefineret HTML i en variabel. Hvordan fjerner jeg tabulatortegnene i teksten:

så f.eks.

"
<td>
        <a>tag</a>
</td>
"

bliver til

"
<td>
<a>tag</a>
</td>
".

Jeg har selv forsøgt med følgende kode:
"
ereg_replace('/\t/e','',$html);
"

...men det virker ikke. Koden er stadigvæk med tabulatorer. I perl skriver man:

$html=~s/\t//g

..og jeg skal altså have gjort det samme i PHP. Hvordan får jeg fjernet tabulatortegnene?
Avatar billede tipsen Nybegynder
26. januar 2003 - 01:38 #1
Hvad med

$string = str_replace("\t", "", $string);
Avatar billede jakoba Nybegynder
26. januar 2003 - 01:42 #2
de benytter php's preg_replace funktion: http://dk.php.net/manual/en/function.preg-replace.php

$html = prep_replace( $html, "/\t/g", "" );

php's regexp's er lidt anderledes, de beskrives her: http://dk.php.net/manual/en/pcre.pattern.syntax.php

mvh JakobA
Avatar billede jakoba Nybegynder
26. januar 2003 - 01:45 #3
Ups. stavefejl i kodelinien (nr 2 p skulle være et g)
$html = preg_replace( $html, "/\t/g", "" );
26. januar 2003 - 01:48 #4
>>tipsen, det fungerer fint.

>>jakoba. Den brokker sig med "Warning: Unknown modifier ' ' in i:\inetpub\wwwroot\index.php on line 601"
Avatar billede kinguru Nybegynder
26. januar 2003 - 01:48 #5
Man kan også benytte sig af chr(). Som f.eks. her:

$buffer = ereg_replace(chr(9), '', $buffer);

chr(9) er så det samme som ASCII tabulator. :)
De andre metoder virker sikkert også fint, men jeg ved ihvertfald at denne metode gør, da jeg selv bruger den!
26. januar 2003 - 01:51 #6
jakoba>> $html= preg_replace("/\t/",'',$html);

sådan skal det være. Jeg tror de har ændret lidt på rækkefølgen af parametrene i en af de nyere versioner af PHP.
26. januar 2003 - 01:53 #7
Lidt point til alle...
Avatar billede jakoba Nybegynder
26. januar 2003 - 01:54 #8
Desværre tror jeg snarere at jeg har kvajet mig og bare skrevet dem i forkert rækkefølge :(
Avatar billede Slettet bruger
26. januar 2003 - 01:54 #9
jakoba: Hvad er g for en modifier?
Avatar billede Slettet bruger
26. januar 2003 - 01:55 #10
Nå nu blev den fjernet af mander26, det så jeg ikke før jeg postede ovenstående.
Avatar billede jakoba Nybegynder
26. januar 2003 - 01:56 #11
og det får man points for.  takker :-))
hvis iandre føler jer snydt så sig til.
26. januar 2003 - 01:57 #12
g søger for at alle forekomster af et pattern bliver udskiftet, så det ikke blot er den først tabulator, men alle tabulatorer der bliver fjernet.
26. januar 2003 - 01:58 #13
OK. Dit svar var ikke helt klar. Undskyld!
Avatar billede Slettet bruger
26. januar 2003 - 01:59 #14
Ok kunne bare ikke se den på: http://dk.php.net/manual/en/pcre.pattern.modifiers.php

Prøver selv at lære lidt af det PCRE noget nemlig.
Avatar billede jakoba Nybegynder
26. januar 2003 - 02:01 #15
g for Global      og hvis den også er gal er det nok på tide jeg går iseng :)
Avatar billede Slettet bruger
26. januar 2003 - 02:03 #16
Gal ... tror jeg da ikke, den er :) Men den er tilsyneladende default i PHP's implementation jvf. første kommentar på manual siden.
26. januar 2003 - 02:03 #17
mercur>> Det er muligt at den slet ikke kan bruges i php. Det er nok kun perl! Jeg ved ikke hvordan man angiver det samme i php!
Avatar billede Slettet bruger
26. januar 2003 - 03:36 #18
tipsens forslag er at foretraekke.
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