Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Regular expressions
Frage
Hallo,
ich möchte aus einem string z.B.:
"
text text text text text
text text text text text
hallo-das hier-hallo
text text text text text
text text text text text
"
das "das hier" "herrausfiltern". es soll anschließend als ziel eines links erscheinen.
ich habe zunächst mit
preg_replace("!hallo-(*.?)-hallo!","<a href=\"$1\">link</a>", $string);
den link erstellt... allerdings möchte ich, dass ebenfalls der gesammte andere text auch "verschwindet"..
hat jemand eine Idee? (und entschuldigung für das chaos)
MfG
Thomas
Antwort 1 von Sichtbarer
$str = "text text text text text
text text text text text
hallo-das hier-hallo
text text text text text
text text text text text";
$strs ="hallo"; //das Wort, das dein Zielbegriff umrandet (ohne "-" !)
$start = strpos($str,$strs) + strlen($strs) + 1;
$end = strrpos($str,$strs)-1;
$length = $end - $start;
$give = substr($str,$start,$length);
echo $give;
text text text text text
hallo-das hier-hallo
text text text text text
text text text text text";
$strs ="hallo"; //das Wort, das dein Zielbegriff umrandet (ohne "-" !)
$start = strpos($str,$strs) + strlen($strs) + 1;
$end = strrpos($str,$strs)-1;
$length = $end - $start;
$give = substr($str,$start,$length);
echo $give;
Antwort 2 von thomas_w
Theoretisch sollte es so funktionieren, aber ich habe es selbst
schon auf diese Art probiert. Leider vergebens. Ich habe das
Problem jetzt mit preg_match_all() gelöst.
Falls Interesse besteht kann ich den Code gerne posten.
Trotzdem danke!
schon auf diese Art probiert. Leider vergebens. Ich habe das
Problem jetzt mit preg_match_all() gelöst.
Falls Interesse besteht kann ich den Code gerne posten.
Trotzdem danke!
Antwort 3 von Sichtbarer
Wäre klasse wenn du den kurz posten könntest. Würde mich schon interessieren.
Sichtbarer.
Sichtbarer.
Antwort 4 von thomas_w
$str=preg_match_all('#hallo-(.+)-hallo#Uis',$cont,$res);
foreach($res[1] as $res){
echo "<a href=\"".$res."\">link</a>";};
wobei hier der gegebene String "$cont" heißt....
foreach($res[1] as $res){
echo "<a href=\"".$res."\">link</a>";};
wobei hier der gegebene String "$cont" heißt....

