![]() |
[PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Hallo. Folgende Situation: ich habe einen Text mit Autoren- und URL-Infos, der wie folgt aussieht
Zitat:
Wie müsste der reguläre Ausdruck zum Filtern aussehen? :gruebel: Sicher irgendwie
Code:
Den Inhalt des <a>-Tags habe ich als (.*?) angegeben, damit ich ihn später für die Konvertierung nutzen kann (aus dem Link soll ein simples <span>Inhalt</span> werden). Bessere Ideen sind gern willkommen.
/\<a ??? href=\"NA\" ???\>(.*?)\<\/a\>/
Und die Fragezeichen sind mein eigentliches Problem. Sie stehen für die Leerzeichen oder anderen Attribute, die sich vor und/oder hinter dem "href"-Attribut befinden könnten. Hat da jemand eine Idee? |
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Moin,
ich würde es so machen:
Code:
edit: mit dem fixen NA dann so:
/<a [^>]*?href=["\'].*?["\'][^>]*?>(.*?)<\/a>/
Code:
/<a [^>]*?href=["\']NA["\'][^>]*?>(.*?)<\/a>/
|
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Zitat:
Code:
wäre meine idee dazu.....
/\<a.+href=\"NA\".*\>(.*)\<\/a\>/Ui
|
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Ich bin etwas verwirrt. Die Ausdrücke scheinen zu stimmen. Wenn ich einen Hyperlink als String fake, dann klappt es. Aber meine Vorgabe klappt irgendwie nicht? Was könnte die Ursache sein? Zeichensatz? Andere Probleme? Wenn ich mit "htmlspecialchars" den String im Browser anzeigen lasse, sehe ich nichts ungewöhnliches. :gruebel:
|
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "r_kerber" von "Klatsch und Tratsch" nach "Internet / LAN / ASP.NET" verschoben.
Ich denke das ist dort besser aufgehoben. |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Internet / LAN / ASP.NET" nach "Programmieren allgemein" verschoben.
Kein Delphi-Thema |
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Wie in der o.g. Vorlage. Die Platzhalter, etwa %author%, werden durch K2 durch die entsprechenden Angaben ersetzt. So wird bspw. ein
Zitat:
Zitat:
|
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Also wenn ich das teste funktioniert es mit meiner o.g. Expression. Ich tippe eher auf einen Fehler im System. Vielleicht sind die Links zu dem Zeitpunkt, zu dem du matchen willst noch garnicht generiert?
Oder ein Fehler im PHP-Code? Dass es an der Ausgabe an sich liegt kann ich mir kaum vorstellen... |
Re: [PHP] Regulärer Ausdruck zum Filtern eines Hyperlinks
Da liegst du nicht falsch. Wie gesagt, mit einem Fake-String funktionierte es ja auch. Ich bin der Ursache auf die Spur gekommen. Ich hatte angenommen, K2 würde den String dynamisch erzeugen. Aber Nein, er wird in der Datenbank gespeichert und sieht im Dump so aus
Zitat:
Code:
Ich habe jetzt erst das "stripslashes" drüber gejagt und dann erfolgreich per "preg_replace" den, in dem Fall unerwünschten Hyperlink entfernt:
$style_info = get_option('k2styleinfo');
echo stripslashes($style_info);
Code:
Voilà, Problem gelöst.
$style_info = get_option('k2styleinfo');
$style_info = stripslashes($style_info); $pattern = '/<a [^>]*?href=["\']NA["\'][^>]*?>(.*?)<\/a>/'; $afterPattern = "<span style=\"font-weight:bold\">\\1</span>"; $style_info = preg_replace($pattern, $afterPattern, $style_info); echo "$style_info"; Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz