Autor Zpráva
Pavel Dumbrovský
Profil *
Zdravím,
tenhle skriptík na převádění textu na seo url:

    $url = $jmeno;
    $url = preg_replace('~[^\\pL0-9_]+~u', '-', $url);
    $url = trim($url, "-");
    $url = iconv("utf-8", "us-ascii//TRANSLIT", $url);
    $url = strtolower($url);
    $url = preg_replace('~[^-a-z0-9_]+~', '', $url);


mi výborně valil, dokud jsem stránky nenahrál na jiný server. Tam to nejede, výstup je prázdný řetězec, co jsem zkoušel, tak po prvním preg_replace to hodilo ~ . Zkoušel jsem vypnout safe mode, ale to nepomohlo. Na starém serveru je verze 5.2.5 a na novém 5.2.9, což není skroro rozdíl, nebo ano?

Netuší někdo, proč to nešlape?

Moc dík za odpovědi.

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Alphard
Profil
Kde berete $jmeno? Možná to bude nastavením register globals.
Pavel Dumbrovský
Profil *
Alphard,
jméno je postnuté z formuláře z textového pole..
Pavel Dumbrovský
Profil *
A ještě zajímavost (pro některé možná ne). Doposud jsem byl zvyklý, že věcí poslané z hiddenu ve formuláři se automaticky načetly do proměnné. Na tomto serveru to tak není, musím hodit
$x=$_POST["x"];
.
S nastavením serveru nemám žádnou zkušenost, ale zdá se, že to bude tím..
Alphard
Profil
 $url = $_POST['jmeno']; nebo $_GET, nevím, co používáte
Pavel Dumbrovský
Profil *
Předtím jsem $jmeno = $_POST['jmeno']; $url=$jmeno; což je myslím totéž, ale zkusil jsem to a trochu se to změnilo, ale k lepšímu moc ne. Teď to háže z "Dráček Mráček" Dr??ek Mr??ek .. :(
Alphard
Profil
Pavel Dumbrovský:
ale k lepšímu moc ne.
Aspoň již se předává hodnota :-)

V jakém místě se ta diakritika kazí? Když dáte přímo echo $_POST['jmeno']; tak je ještě v pořádku, nebo tam už jsou otazníky?
Pavel Dumbrovský
Profil *
Tak jsem to pořádně otestoval a to $jmeno = $_POST['jmeno']; $url=$jmeno; bylo opravdu totéž..
Po prvním preg_replace to vypíše už jen pomlčku - a další kroky už to nevypíše nic..
Alphard
Profil
Pavel Dumbrovský:
Po prvním preg_replace to vypíše už jen pomlčku
A co před ním? Předá se nepoškozený řetězec?
Pavel Dumbrovský
Profil *
Ne, když dám
$jmeno=$_POST["jmeno"]; $url=$jmeno; echo "$url";
tak vypis v pohode a kdyz
$url=$_POST["jmeno"]; echo "$url";
tak taky v pohode
Problém tedy nastává asi až v tom eregu prvním..
Alphard
Profil
Jakém eregu? V kódu, který jste ukázal, používáte jenom preg_replace.
Pavel Dumbrovský
Profil *
Jo šak to sem myslel.
Alphard
Profil
Já vám v tuto chvíli více neporadím. Nejsem schopen simulovat problém (momentálně mám k dispozici PHP nejvýše ve verzi 5.2.6, ve kterém to jde) a nevím, co se mohlo změnit.
Maximálně vám poradím zkusit jiný script, který dělá totéž, zkuste se podívat třeba na funkci webalize z Nette.
Pavel Dumbrovský
Profil *
Stejně díky. Tady ta Vaše funkce vypadá zajímavě, ale háže mi to unexpected T_PUBLIC hned na první lajně..
Pavel Dumbrovský
Profil *
Oddělal jsem to "public static" a už to jede.. Můžu se zeptat, co to je? Díky.
Jan Tvrdík
Profil
Pavel Dumbrovský:
To je zápis z objektově orientovaného programování.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: