[PHP] Newlines verwijderen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik zal wel iets over het hoofd zien ofzo, maar voor een functie wil ik een andere webpagina inlezen, hier een regex over laten gaan en dan met het resultaat iets doen.

Omdat de regex eerst soms fout ging omdat hij niet over meerdere regels ging, dacht ik gewoon even de newlines te strippen.

Maar situatie is als volgt :
ik fread de hele pagina in 1 variabele.
dan heb ik alle content in 1 variabele staan en dan doe ik het volgende.
PHP:
1
2
3
4
$contents1 = str_replace("\r","",$contents);
$contents2 = str_replace("\n","",$contents1);
$contents3 = str_replace("\r\n","",$contents2);
$contents = $contents3;

$contents1,$contents2,$contents3 zijn geboren als hoop dat het dan wel zou werken.

Maar als ik dan simpelweg : echo $contents doe en dan de source bekijk zie ik daar nog steeds enters in de source staan. Sommige delen zijn wel achter elkaar geplakt, maar over het algemeen het head gedeelte bevat nog steeds enters.

Hoe kan dit, is er ergens een manier van enters plaatsen in html die ik hier niet mee pak, want als ik dit doe op eigen gemaakt pagina's ( ik fread dus een lokale pagina via http ) dan gaat het wel goed.

En de str_replace werken ook wel gedeeltelijk, want sommige gedeeltes worden wel achter elkaar gezet, maar sommige ook niet. Ik wil dus gewoon 1 string hebben zonder newlines. Gewoon 1 regel.

Testvoorbeeld is desnoods morgen online te zetten, maar dit is alles wat ik doe ( qua relevant gedeelte dan )

Acties:
  • 0 Henk 'm!

Verwijderd

Zou je relevante gedeelte kunnen posten? Hoeft niet 1000 regels, ook 10 regels waar dit bij voor komt is genoeg. ;)

Acties:
  • 0 Henk 'm!

  • MrOizo2005
  • Registratie: September 2003
  • Laatst online: 20-09 18:42
Probeer eens het volgende:


PHP:
1
$contents = str_replace(array("\n","\r",chr(10),chr(13)),"",$contents);

[ Voor 8% gewijzigd door MrOizo2005 op 21-11-2007 23:38 ]

Also known as Oizopower | When Life Gives You Questions, Google has Answers


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op woensdag 21 november 2007 @ 23:34:
Zou je relevante gedeelte kunnen posten? Hoeft niet 1000 regels, ook 10 regels waar dit bij voor komt is genoeg. ;)
Komt morgen wel online, met een voorbeeldsite. Maar morgen eerst eens de code van MrOizo2005 proberen ( dus met een chr(10) en een chr(13) )

wtf is een chr(10) trouwens, chr(13) is enter.

Net even gegoogled, en chr(10) is linefeed, naja, ik dacht dat alles viel onder \r \n of \r\n. Maar u leest het morgen wel

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 19-09 21:26

DataGhost

iPL dev

Je zou natuurlijk ook de 's' modifier mee kunnen geven aan je regex, zodat de engine je string al als 1 regel inleest, zo kan je netjes over meerdere regels lezen (hoewel je nog wel newlines in je output blijft houden).
Wat betreft de tip van MrOizo2005: "\r" is hetzelfde als chr(10) en "\n" is hetzelfde als chr(13), dat zou geen verschil mogen maken dus.