WinFuture-Forum.de: [php] Regexp Bilder-urls Erkennen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php] Regexp Bilder-urls Erkennen


#1 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 23. Februar 2007 - 00:43

Hi!
Es geht um folgendes:

Folgender String:

Die Bahn fährt am [url=http://de.wikipedia.org/wiki/Kronsberg]Kronsberg[/url] vorbei. Eine schöne Gegend, wirkt selbst bei Regen harmonisch und ausgeglichen. Ein kleines Einkaufszentrum, schlichte, aber schön anzusehende Mehrfamilienhäuser, Nebenstraßen, die geradezu idyllisch eingerahmt von gut gepflegtem Rasen die Anhöhen bewältigen.
Vorbei am [url=http://www.gm-stahlbau.de/html/lbs_hannover.html]vollverglasten LBS-Gebäude[/url], dessen Treppen sich so herrlich geometrisch durch den Innenraum ziehen.


RegExps, die passen würden:

'/\[url=(http:\/\/.+?(\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.gif|\.GIF))\](.+?)\[\/url\]/i',
'/\[url=(http:\/\/.+?|mailto:.+?)\](.+?)\[\/url\]/i',


werden ersetzt durch (preg_replace):

"<a href=\"$1\" rel=\"lightbox\">$3</a>",
"<a href=\"$1\" title=\"$1 ansurfen\" target=\"blank\" class=\"loglink\">$2</a>",


PHP mach daraus:

Die Bahn fährt am <a href="http://de.wikipedia.org/wiki/Kronsberg]Kronsberg[/url] vorbei. Eine schöne Gegend, wirkt selbst bei Regen harmonisch und ausgeglichen. Ein kleines Einkaufszentrum, schlichte, aber schön anzusehende Mehrfamilienhäuser, Nebenstraßen, die geradezu idyllisch eingerahmt von gut gepflegtem Rasen die Anhöhen bewältigen.<br />Vorbei am <a href="http://www.gm-stahlbau.de/html/lbs_hannover.html" title="http://www.gm-stahlbau.de/html/lbs_hannover.html ansurfen" target="blank" class="loglink">vollverglasten LBS-Gebäude</a>, dessen Treppen sich so herrlich geometrisch durch den Innenraum ziehen.


PHP schließt das </a> nicht vom ersten Link (Kronsberg), sondern übersieht das "[/url]" und interpretiert alles bis zu "vollverglasten LBS-GEbäude" als Link

...warum? Das wundert mich, zumal ein weiterer Wikipedia-Link später ohne Probleme interpretiert wird

Nehme ich den ersten Regexp raus (Einschränkung nach Bildern und ersetzen durch "lightbox".String), funktioniert alles, deswegen denke ich, der Fehler liegt im ersten RegExp.

Wer kann mir Tipps geben?
Danke für eure Hilfe jetzt schon.

Dieser Beitrag wurde von phillymarx bearbeitet: 23. Februar 2007 - 00:45

0

Anzeige



#2 Mitglied ist offline   svenner90 

  • Gruppe: aktive Mitglieder
  • Beiträge: 146
  • Beigetreten: 30. Dezember 06
  • Reputation: 0

geschrieben 23. Februar 2007 - 20:20

Zur Not ersetz doch einfach nochmal [/url] mit </a>.
0

#3 Mitglied ist offline   phillymarx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 677
  • Beigetreten: 10. September 03
  • Reputation: 0
  • Wohnort:Barsinghausen

geschrieben 25. Februar 2007 - 01:05

Beitrag anzeigenZitat (svenner90: 23.02.2007, 20:20)

Zur Not ersetz doch einfach nochmal [/url] mit </a>.

...Das meinst du nicht ernst, oder?

Ich will keine Symptome bekämpfen, wenn ich die Ursache nicht kenne. Zudem scheitert dein Vorhaben schon daran, dass HTML-Tags in dem Eintrag gefiltert werden, was ja auch die Existenz von BB-Codes rechtfertigt.

Ne andere Idee, anyone?

Dieser Beitrag wurde von phillymarx bearbeitet: 25. Februar 2007 - 01:06

0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 25. Februar 2007 - 11:24

<?php

$input = "Die Bahn fährt am [url=http://de.wikipedia.org/wiki/Kronsberg]Kronsberg[/url] vorbei. Eine schöne Gegend, wirkt selbst bei Regen harmonisch und ausgeglichen. Ein kleines Einkaufszentrum, schlichte, aber schön anzusehende Mehrfamilienhäuser, Nebenstraßen, die geradezu idyllisch eingerahmt von gut gepflegtem Rasen die Anhöhen bewältigen.
Vorbei am [url=http://www.gm-stahlbau.de/html/lbs_hannover.html]vollverglasten LBS-Gebäude[/url], dessen Treppen sich so herrlich geometrisch durch den Innenraum ziehen.";

$preg_pattern[0] = '/\[url=(http:\/\/.+?(\.jpg|\.JPG|\.jpeg|\.JPEG|\.png|\.PNG|\.gif|\.GIF))\](.+?)\[\/url\]/i';
$preg_pattern[1] = '/\[url=(http:\/\/.+?|mailto:.+?)\](.+?)\[\/url\]/i';

$preg_replace[0] = "<a href=\"$1\" rel=\"lightbox\">$3</a>";
$preg_replace[1] = "<a href=\"$1\" title=\"$1 ansurfen\" target=\"blank\" class=\"loglink\">$2</a>";

echo preg_replace($preg_pattern, $preg_replace, $input);

?>


liefert bei mir:

Die Bahn fährt am <a href="http://de.wikipedia.org/wiki/Kronsberg" title="http://de.wikipedia.org/wiki/Kronsberg ansurfen" target="blank" class="loglink">Kronsberg</a> vorbei. Eine schöne Gegend, wirkt selbst bei Regen harmonisch und ausgeglichen. Ein kleines Einkaufszentrum, schlichte, aber schön anzusehende Mehrfamilienhäuser, Nebenstraßen, die geradezu idyllisch eingerahmt von gut gepflegtem Rasen die Anhöhen bewältigen.
Vorbei am <a href="http://www.gm-stahlbau.de/html/lbs_hannover.html" title="http://www.gm-stahlbau.de/html/lbs_hannover.html ansurfen" target="blank" class="loglink">vollverglasten LBS-Gebäude</a>, dessen Treppen sich so herrlich geometrisch durch den Innenraum ziehen.


Getestet mit PHP 5.1.6.

MfG Stefan

P.S.: Wandelt auch ohne Probleme Bild URLs um.

Dieser Beitrag wurde von Diewie bearbeitet: 25. Februar 2007 - 11:26

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0