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 |
#2 · Zasláno: 29. 8. 2009, 22:24:55
Kde berete $jmeno? Možná to bude nastavením register globals.
|
||
Pavel Dumbrovský Profil * |
#3 · Zasláno: 29. 8. 2009, 22:27:24
Alphard,
jméno je postnuté z formuláře z textového pole.. |
||
Pavel Dumbrovský Profil * |
#4 · Zasláno: 29. 8. 2009, 22:29:58
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 |
#5 · Zasláno: 29. 8. 2009, 22:30:42 · Upravil/a: Alphard
$url = $_POST['jmeno']; nebo $_GET, nevím, co používáte |
||
Pavel Dumbrovský Profil * |
#6 · Zasláno: 29. 8. 2009, 22:39:50
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 |
#7 · Zasláno: 29. 8. 2009, 22:55:52
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 * |
#8 · Zasláno: 29. 8. 2009, 23:13:00
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 |
#9 · Zasláno: 29. 8. 2009, 23:37:46
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 * |
#10 · Zasláno: 29. 8. 2009, 23:42:36
Ne, když dám
$jmeno=$_POST["jmeno"]; $url=$jmeno; echo "$url"; $url=$_POST["jmeno"]; echo "$url"; Problém tedy nastává asi až v tom eregu prvním.. |
||
Alphard Profil |
#11 · Zasláno: 29. 8. 2009, 23:57:22
Jakém eregu? V kódu, který jste ukázal, používáte jenom preg_replace.
|
||
Pavel Dumbrovský Profil * |
#12 · Zasláno: 30. 8. 2009, 00:01:58
Jo šak to sem myslel.
|
||
Alphard Profil |
#13 · Zasláno: 30. 8. 2009, 00:25:54
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 * |
#14 · Zasláno: 30. 8. 2009, 00:44:50
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 * |
#15 · Zasláno: 30. 8. 2009, 00:47:48
Oddělal jsem to "public static" a už to jede.. Můžu se zeptat, co to je? Díky.
|
||
Jan Tvrdík Profil |
#16 · Zasláno: 30. 8. 2009, 01:00:23
Pavel Dumbrovský:
To je zápis z objektově orientovaného programování. |
||
Časová prodleva: 15 let
|
0