phpbar.de logo

Mailinglisten-Archive

[php] Finden einer URL innerhalb einer Variablen

[php] Finden einer URL innerhalb einer Variablen

Arne Klempert php_(at)_phpcenter.de
Thu, 27 Jun 2002 16:28:46 +0200


> Wenns denn unbedingt sein muss:
>
> $test = "<a href=\"http://www.adresse.de\" target=\"_blank\">text</a>";
> $test = str_replace ("<a href=\"http://", "makelink(\"", $test);
> $test = str_replace ("\" target=\"_blank\">", "\",\"", $test);
> $test = str_replace ("</a>", "\");\n", $test);
> echo $test;
> eval ($test);

Wenn denn nun wirklich alle Versuche fehlgeschlagen sind, die Ursache der
Krankheit (DB-Struktur) zu heilen, schreiten wir also zur Behandlung der
Symptome. Dann sollte es aber auch eine Lösung sein, die alle Links
(schliesslich war der Link von Nico nur ein Beispiel) findet und ohne das
böse eval() auskommt:

<?
$pattern = '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi';
while (preg_match($pattern, $text, $txt)) {
  $text = $txt[1].makelink($txt[3],$txt[5]).$txt[6];
}
?>

Die Antwort steht übrigens (fast genau so) unter:
http://www.phpcenter.de/faq/faq-regexp.html#regexp-8

Und übrigens, Nico:

Wenn diese Liste Dir schon helfen soll, mußt Du Dir auch Nachfragen und
Kritik zu Deiner DB-Struktur gefallen lassen. Schliesslich will dir hier
niemand vorschnell eine scheinbare Hilfestellung geben, mit der Du Dir
massenweise Probleme einhandelst, die die Liste dann wieder lösen darf...

Insofern war dieser Thread aus meiner Sicht ein Beweis für die Qualität der
Liste. Und vielleicht hilft er Dir (und/oder anderen), künftig besser zu
planen und die weisen Ratschläge von Norbert zu beherzigen.


Operation gelungen, Patient tot ...

Arne

--
arne_(at)_klempert.de


php::bar PHP Wiki   -   Listenarchive