Mailinglisten-Archive |
hi leute. hab ein problem mit ereg_replace und sessions. da in einem projekt welches mit sessions arbeitet evtl die sessionid über die url übergeben wird, sollte auf externe seiten ja immer über einen redirector verwiesen werden (sodass die externe seite in ihren logfiles die sessionid nirgends im referer-feld enthält). und da fängt mein problem an... ich möchte in einer zeichenkette alle urls in klickbare links umwandeln, was ich derzeit wie folgt mache: $var="ein php-manual ist auf http://www.php.net zu finden."; $var=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>",$var); echo $var; das ergibt mir dann ergibt: "ein php-manual ist auf <a href="http://www.php.net" target"_blank">http://www.php.net</a> zu finden." ich hätt es aber gern in folgender form: "ein php-manual ist auf <a href="/redirect.php?aHR0cDovL3d3dy5waHAubmV0" target"_blank">http://www.php.net</a> zu finden." ... wobei aHR0cDovL3d3dy5waHAubmV0 durch base64_encode(http://www.php.net) entsteht. folgendes funktioniert leider nicht: $var=ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"/redirect?".(base64_encode("\\0"))."\" target=\"_blank\">\\0</a>",$var); ... da dabei lediglich der string "\\0" (und nicht der wert wofür der string eigentlich steht) codiert wird. hat hierzu vielleicht jemand ein idee? besten dank im voraus & lg aus wien, andy
php::bar PHP Wiki - Listenarchive