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 15-11-2007, 14:20
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard Bitte keine Raute!

Liebe Freunde,

wieder einmal habe ich eine Frage an euch. Ich dachte, es schon gelöst zu haben, allerdings hat mein Lösungsweg zu neuen Problemen geführt.

Was möchte ich überhaupt? Ich überprüfe mal wieder Links und suche welche, die nicht mit ftp, http et cetera beginnen sollen. Das klappt! Da benötige ich eure Hilfe nicht. Allerdings findet mein kleines IF mit einem preg_match_all leider auch Links, die als Anker fungieren (z. B. "#top", kann auch "/#top" als Link sein!!). Dies möchte ich verhindern. Ein "(?!#)" bringt leider nichts. Wer weiß, wie's geht?

Hier mein if:
Code:
preg_match_all('~(?:(?:action|data|href|src)=["\'])(?!file://)
(?!ftp://)(?!http://)(?!https://)(?!ww)(?!mailto)
([^"\']+)(?:["\'])~i', $value, $matches)
Vielen Dank für eure Mühen - im Voraus, sozusagen.
Mit Zitat antworten
  #2 (permalink)  
Alt 15-11-2007, 14:55
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mh.. ich frage mich, warum ich erst drauf gekommen bin, nachdem ich das Thema geöffnet habe und nicht schon Stunden vorher:
(?!\#)
Einstweilen danke sehr für das Lesen .
Mit Zitat antworten
  #3 (permalink)  
Alt 16-11-2007, 13:29
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Okay, ich benötige doch eure Hilfe. Und zwar ignoriert mein Skript zwar die Raute, aber nicht wenn es z. B. "/#oben" heißt.

Hier mein erster Parameter der preg_match_all-Funktion:
Code:
~(?:(?:action|data|href|src)=["\'])
(?!file://)(?!ftp://)(?!http://)(?!https://)(?!ww)(?!mailto)(?!\#)
([^"\']+)(?:["\'])~i
Mit Zitat antworten
  #4 (permalink)  
Alt 21-11-2007, 11:32
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Niemand eine Idee?
Mit Zitat antworten
  #5 (permalink)  
Alt 21-11-2007, 12:16
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe nicht ganz, was du vor hast. Bringt dir parse_url da nicht mehr?
Mit Zitat antworten
  #6 (permalink)  
Alt 21-11-2007, 12:19
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nicht wirklich. Es geht darum, dass mein Skript bestimmte URL's finden soll und das tut er auch bereits. Leider findet er jedoch mehr, als er soll. Nicht finden soll er URL's, die mittels einer # (entspricht Anker in Links) beginnen. Auch diese sortiert er aus - außer, und DAS ist mein Problem, wenn vor der Raute ein Backslash (/) steht. Das möchte ich vermeiden, bekomme es leider nur nicht hin.
Mit Zitat antworten
  #7 (permalink)  
Alt 21-11-2007, 12:27
arkos
 PHP Senior
Links : Onlinestatus : arkos ist offline
Registriert seit: Feb 2003
Ort: hamburg
Beiträge: 1.015
arkos ist zur Zeit noch ein unbeschriebenes Blatt
Standard

musst du denn # escapen? reicht da nicht ein einfaches

(?!#)


??? oder ggf noch additiv n

(?!\/#)


(reg_exp ist mein steckpferd - aber versuchen kannste es ja ma )


edit:
was meinste nu? backslash oder slash?
Zitat:
Original geschrieben von frederic
außer, und DAS ist mein Problem, wenn vor der Raute ein Backslash (/) steht.
__________________
**********
arkos
**********
Mit Zitat antworten
  #8 (permalink)  
Alt 21-11-2007, 12:32
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Slash ...
Auf (?!\/#) war ich auch schon gekommen. Aber dann gibt er mir wiederum alle Links zurück, die keinen Slash vor der Raute haben.
Mit Zitat antworten
  #9 (permalink)  
Alt 21-11-2007, 13:41
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Dann machst du das Slash optional:
Code:
(?![\/]#)
Mit Zitat antworten
  #10 (permalink)  
Alt 21-11-2007, 13:51
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ne, dann findet er Links, die mit der Raute beginnen. Also z. B. den Link/Wert "#top". Ich verstehe das nicht :(.

Mein RegExp mit deinem Code sieht folgendermaßen aus:
Code:
~(?:(?:action|data|href|src)=["\'])
(?!file://)(?!ftp://)(?!http://)(?!https://)(?!ww)(?!mailto)(?![\/]#)
([^"\']+)(?:["\'])~i
Mit Zitat antworten
  #11 (permalink)  
Alt 21-11-2007, 14:25
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Muss es denn unbedingt eine Regex sein? Mit parse_url kommst du bestimmt schneller und einfacher ans Ziel, als eine so komplexe Regex zu basteln, die eh niemand erweitern kann...
Mit Zitat antworten
  #12 (permalink)  
Alt 21-11-2007, 14:27
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, das muss es sein, weil es zu viele Individualitäten gibt. Außerdem gehen alle RegExp's (ich habe noch mehr), auch dieser, nur das mit der Raute stört. Bzw. das eigentliche Problem sind ja nur Links, die mit "/#xy" beginnen, "#xy" ignoriert er wie gewollt.
Mit Zitat antworten
  #13 (permalink)  
Alt 28-11-2007, 12:06
frederic
 Registrierter Benutzer
Links : Onlinestatus : frederic ist offline
Registriert seit: Jan 2003
Beiträge: 73
frederic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe leider immer noch keine Lösung?!
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 08:37 Uhr.