Mailinglisten-Archive |
Hello Marcel, > $text = ' > <a href="foo.php">link1</a><br> > <a href="foo.php?foo=bar">link2</a><br>'; > $suchmuster = '/href="(.*?)"/is'; > $text = preg_replace($suchmuster, > "/href=\"$1".(!stristr("$1","?")? "?" : > "&")."foo2=bar2\" ", $text); das ist mit preg_replace_callback() wesentlich sauberer zu lösen. Vorschlag: $text = '<a href="foo.php">link1</a><br> <a href="foo.php?foo=bar">link2</a><br>'; $text = preg_replace_callback( '/href="[^?"]+([^"]*)/', // sucht Link und merkt sich den 'query-string' 'fuege_parameter_hinzu', $text ); function fuege_parameter_hinzu ( $fund ) { // wenn der 'query-string' gefunden wurde, ist er in $fund[1] // (entspricht dem ersten Klammernpaar im Ausdruck) if ( empty( $fund[1] ) ) { return $fund[0] . '?foo=bar'; } else { return $fund[0] . '&foo=bar'; } } Grüße, oliver
php::bar PHP Wiki - Listenarchive