php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-03-2008, 16:45
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard Reguläre Ausdrücke; Maskierung will nicht

Hallo alle zusammen,
ich habe ein Problem was meinen erstellten regulären Ausdruck angeht und komme schon seit Stunden einfach nicht weiter.
Zum Problem, ich habe vor einen Linksammler zu erstellen, allerdings sind die Links die ich von der Website sammle im bestimmten Format.
Das heisst der Link steht jeweils zwischen einen <h2> -Tag und ist mit dem <a>-Tag eingebunden.
PHP-Code:
<h2 class="r"><a href="http://website.de">Website</a></h2
PHP-Code:
    preg_match_all '#<h2\sclass=\"r\"><a\shref=\"http://(www\.|[\w\d\.\-_]+)/#i'$tag_filter$link_filter );
    
    foreach ( 
$link_filter[0] as $links )
    {
        echo 
$links '<br />';
    } 
Wie bekomme ich sowas ähnliches hin wenn ich eine URL zwischen bestimmten Tags suchen will, ich habe das probiert doch bin schon allein an den Anführungszeichen gescheitert weil diese sich aus unerklärlichen Gründen nicht maskieren lassen (href="").
Mit Zitat antworten
  #2 (permalink)  
Alt 02-03-2008, 17:02
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard Re: Reguläre Ausdrücke; Maskierung will nicht

Versuchs doch erstmal ganz einfach mit '#<h2 class="r"><a href="http://(.+)"/#i'.
Das liefert evtl. zu viele Matches, aber dann kannst du den Ausdruck ja immernoch präzisieren.
Mit Zitat antworten
  #3 (permalink)  
Alt 02-03-2008, 17:13
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Genau das ist ja das Problem, nicht mal:
PHP-Code:
#<h2 class="r">#i 
oder
PHP-Code:
#<h2\sclass=\"r\">#i 
funktionieren, obwohl diese im Quellcode vorkommen.

Suche ich aber nach
PHP-Code:
#class=#i 
bekomme ich sofort ein Ergebnis, sobald aber ein "<> ins Spiel kommen, dann läuft gar nichts mehr.

Und an der Syntax dürfte es auch nicht liegen:

Geändert von goodlike (02-03-2008 um 17:16 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-03-2008, 17:18
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

onemorenerd war schon schneller

aber was willst du schlussendlich genau? "Webseite" oder "http://website.de"?

Geändert von jmc (02-03-2008 um 17:21 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-03-2008, 17:25
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von jmc
onemorenerd war schon schneller

aber was willst du schlussendlich genau? "Webseite" oder "http://website.de"?
http://website.de oder halt http://www.website.de, also das was im href="" steht.
Mit Zitat antworten
  #6 (permalink)  
Alt 02-03-2008, 17:40
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
preg_match_all ('/<a.*?(href=".*?")[^>].*?>/i'$string$linksPREG_SET_ORDER); 
so was?

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 02-03-2008, 17:59
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Kropff
so was?

gruß
peter
Danke, aber leider funktioniert das trotzdem nicht, vllt. liegt das ja an meinen Quellcode:
PHP-Code:
<?php 
?>
Beim wd.- müssten noch Backslashes vor, allerdings entfernt die Forensoftware diese.
So wie mein Code steht funktioniert er auch, aber allerdings kann ich die Links dann aus allen Teilen der Website auslesen, bei mir muss das ja speziell zwischen den <h2 class="r"> und den <a>-Tag sein.

Geändert von goodlike (03-03-2008 um 18:27 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 02-03-2008, 18:14
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Code:
preg_match_all ('/<h2 class="r"><a.*?href="(.*?)"[^>]*>.*?<\/a><\/h2>/i', $string, $links, PREG_SET_ORDER);
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #9 (permalink)  
Alt 02-03-2008, 18:46
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank, habe damit bissl rum experementiert, funktioniert schonmal allerdings mit ein paar Problemchen, ich bekomme statt den href=""-Inhalt, die Link-Bezeichung.
Dein Beispiel ist auf ein festes Muster ausgelegt.
Wenn mein ungefilterter Code so aussehen würde:
PHP-Code:
<h2 class="r"><a href="http://www.fontasy.de/" class="l" onmousedown="return...">Fontasy.de 1600 <b>fonts</b>for free!</a></h2
dann greift dieses Beispiel nicht mehr, wie bekomme ich es hin das es so Allgemein wie möglich bleibt?
Sorry wenn ich euch mit Regex-Fragen bomberdiere, habe mich schon zwar öfters mit dem Thema auseinander gesetzt, aber trotzdem nie ein festes Verständnis dafür bekommen.
Mit Zitat antworten
  #10 (permalink)  
Alt 02-03-2008, 20:54
goodlike
 Registrierter Benutzer
Links : Onlinestatus : goodlike ist offline
Registriert seit: Jun 2007
Beiträge: 43
goodlike ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Habe mittlerweile selbst eine Lösung gefunden, wenn auch eine schlechte wie ich denke, und ich glaube zu wussen wo das Problem liegt. Und zwar an htmlspecialchars(); dieser zerplückt die <>" in &gt; &lt; &qout; und erwartet die genauso wieder zurück.

preg_match_all ( '#h2.class=r.{10}href=.{6}http://(www\.|[\w\d\.\-_]+)/(([\w\d\.\-_,/:]+)|)#i', $tag_filter, $link_filter);
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:00 Uhr.