phpbar.de logo

Mailinglisten-Archive

[php] ereg_replace herausforderung

[php] ereg_replace herausforderung

Andreas Stagl php_(at)_phpcenter.de
Thu, 12 Sep 2002 19:22:55 +0200


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