Avatar billede nemlig Professor
25. december 2020 - 15:26 Der er 1 løsning

str_replace() driller når der angives tekst med linjeskift

Hejsa og glædelig jul.
Jeg har en UTF-8 txt fil, hvor jeg udlæser de første 20 linjer og smider dem i  variablen $allelinjer. Det fungerer fint med :
$file_data = array_slice(file('tool.php'), 0, 20);
$allelinjer = '';
for($i = 0; $i < count($file_data); $i++)
{
    $allelinjer .= $file_data[$i];
}
$allelinjer .= "?>";

Nu kommer min udfordring. Jeg har nogle linjer, som jeg herefter vil fjerne.
Hvis jeg kun søger på tekststrenge i samme linje, så fungerer det fint, men jeg har fx. 4 linjer efter hinanden, som jeg vil fjerne incl. linjeskiftene i enden af linjerne. Jeg markerer de 4 linjer og kopiere dem ind i min str_replace() jf. nedenfor. Men str_replace() fjerner dem ikke. Det er formenligt linjeskiftene, som den ikke fanger korrekt.
$allelinjer = str_replace("require_once('MysqliDb.php');

//Configuration
DEFINE('ENVIRONMENT', 'PROD'); //PROD or DEV","",$allelinjer);

Her er der altså tale om 4 linjer, hvor linje 2 er tom.
Jeg har leget lidt med PHP_EOL og "\n", men uden held.

Nogen forslag til løsning.
Avatar billede nemlig Professor
25. december 2020 - 16:54 #1
Fandt løsningen.
Linjeskift skal angives med "\r\n".
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

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