Írtam egy php scriptet aminek egy szövegben lévő szóközöket helyettesíteni kéne egy kóddal, de egyáltalán nem működik. Hol hibáztam?
Itt van a kérdéses script:
function url_kodolas($url)
{
$sz=array();
$hossz = strlen($szoveg);
for ($i=0; $i<=$hossz; $i++)
{
if ($szoveg[$i]==" ") {$sz[]="%20";}
else {$sz[]=$szoveg[$i];};
};
$szoveg1 = implode($sz);
return $szoveg1;
};
Első hiba: a ciklusban a $i<=$hossz helyett> $i<$hossz kell.
Mondjuk ha van egy 3 karakter hosszú szöveged, akkor 3 a $hossz, a $i-t 0-tól 2-ig kell vinni.
Egyszerűbb lenne, ha nem tömböt hoznál létre, hanem egy stringet, és azt bővítenéd:
$sz=array(); helyett $szoveg='';
$sz[]=… helyett $szoveg.=…
Még egyszerűbb az str_replace használata: str_replace(" ","%20",$url);
Még célravezetőbb a megfelelő erre a célra beépített függvény használata: rawurlencode($url) (vagy urlencode($url))
1. hiba: $url a paraméter, de te $szoveg változót "piszkálsz"
2. hiba, amit más is jelzett: $i < $hossz
de az is lehet hogy urlencode() -al gyorsabb lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!