Autor | Zpráva | ||
---|---|---|---|
hary28 Profil |
#1 · Zasláno: 20. 7. 2010, 22:19:53
ahoj, mám takovej problém napsal jsem si script kterej kterej mi text roztrhá a text kterej je mezi značkami [code][/code] provede přes htmlspecialchars(); ale toto mi funguje pokud se vtextu nacházejí značky pouze jednou, ale pokud se nacházejí víckrát, tak to veme první [code] a pak až poslední [/code] v textu. Tahle to být ale nemá. Doufám že jste s čím mám problé a pomůžete mi ho vyřešit.
$text = '<p>AAA text</p> [code] <?php <p>AAA text</p> $nazev = date("Y-m-d_H-i-s"); // aktuální datum, který poté použijeme k přejmenování souboru, aby nemohlo dojít ke dvoum stejným názvům if (is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])){ $kon = explode('.',$_FILES[\'file\'][\'name\']); $kon = $kon[count($kon)-1]; move_uploaded_file($_FILES[\'file\'][\'tmp_name\'], "files/" . $nazev . "." . $kon); echo \'Soubor byl úspěšně nahrán na server.\'; }else{ echo \'Někde nastala chyba!\'; } ?>[/code] <p>A toto je další text, který nemá být procpát htmlspecialchars():</p> [code] <?php <p>AAA text</p> $nazev = date("Y-m-d_H-i-s"); // aktuální datum, který poté použijeme k přejmenování souboru, aby nemohlo dojít ke dvoum stejným názvům if (is_uploaded_file($_FILES[\'file\'][\'tmp_name\'])){ $kon = explode('.',$_FILES[\'file\'][\'name\']); $kon = $kon[count($kon)-1]; move_uploaded_file($_FILES[\'file\'][\'tmp_name\'], "files/" . $nazev . "." . $kon); echo \'Soubor byl úspěšně nahrán na server.\'; }else{ echo \'Někde nastala chyba!\'; } ?>[/code]'; // Callback funkce pro preg_replace_callback function my_htmlspecialchars($matches) { return htmlspecialchars($matches[0]); } $text = preg_replace('/\n/', '*nl*', $text); $text = preg_replace_callback('/\[code\](.*)\[\/code\]/i', 'my_htmlspecialchars', $text); // převede obsah [code] na htmlspecialchars $text = preg_replace('/(\[code\]|\[\/code\])/i', '', $text); // Odstraní [code] $text = preg_replace('/\*nl\*/i', '<br />', $text); echo $text; |
||
Keeehi Profil |
#2 · Zasláno: 20. 7. 2010, 22:21:10 · Upravil/a: Keeehi
$text = preg_replace_callback('/\[code\](.*?)\[\/code\]/i', 'my_htmlspecialchars', $text); // převede obsah [code] na htmlspecialchars Mohl by jsi mi prosím říci, jaký je význam těchto dvou řádků? (Mám takový pocit, že by to šlo napsat lépe) $text = preg_replace('/\n/', '*nl*', $text); .. .. $text = preg_replace('/\*nl\*/i', '<br />', $text); |
||
hary28 Profil |
#3 · Zasláno: 20. 7. 2010, 22:23:59
Keeehi:
díky to bylo ono nemohl jsem na to za boha přijít :) :) |
||
Časová prodleva: 14 let
|
0