Har lite problem med preg_replace och $. Följande fungerar:
$str = "hej";
echo preg_replace("/.+/", "lol", $str); // output: lol
Men inte följande:
$str = "$hej";
echo preg_replace("/.+/", "lol", $str); // output:
Vad är det som är knas?
8 svar · 625 visningar · startad av Kenchu
Har lite problem med preg_replace och $. Följande fungerar:
$str = "hej";
echo preg_replace("/.+/", "lol", $str); // output: lol
Men inte följande:
$str = "$hej";
echo preg_replace("/.+/", "lol", $str); // output:
Vad är det som är knas?
PHP tolkar $hej som en variabel även i strängen så kör:
$str = '$hej';
echo preg_replace("/.+/", "lol", $str); // output:
Vad är det för skillnad på "" och '' egentligen? För nu har jag "egentligen" en fread så det blir liksom en sträng med "".
$file = fopen("main.htm","r");
while(true)
{
// Försök låsa filen, om misslyckas, försök igen
if (flock($file, LOCK_EX))
{
$str = fread($file, filesize("main.htm"));
echo preg_replace("/\{(\$.+)\}/", "$1", $str);
// "The lock is released also by fclose()"
fclose($file);
break;
}
}
En av skillnaderna är iaf att " " evaluerar variabler (du behöver alltså inte konkatenera manuellt, detta skulle jag däremot inte rekommendera). Denna evaluering görs inte inom ' '.
Hur gör jag för att få $str från fread att bli en ' '?
En variabel är liksom inte vare sig ' ' eller " ". Det är när du skriver strängar i koden som du använder dig av ' ' alternativt " ".
Vad är det du vill ska hända?
Jag vill byta ut förekomster av {$värde} i en html fil med värdet av $värde i php-filen.
Du har namnet på en variabel och vill skriva ut dess värde?
Normalt sett så gör du såhär:
$minvariabel = 'variabelinnehåll';
$var1 = 'minvariabel';
echo $$var1
Jag har dock inget svar (just nu) på hur du löser det i din preg_replace, om det ens går.
Det fungerar om man tar bort $. :> Aja tack för svaren iaf.