Reguläre Ausdrücke |
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
1: | $check = ereg("^(.+.)$", $result[link], $splitlink); |
Ich möchte den Link ausgegeben bekommen der eigentlich $splitlink[1] sein müsste und den Linknamen der $splitlink[2] sein müsste, allerdings funktioniert das nicht so richtig. Woran könnte das liegen? Mekwürdiger Weise hat das Script gestern noch funktioniert glaube ich.
---
Just Peace!
Diese Nachricht wurde geändert von: languitar |
 Profil
E-Mail
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
Ah Ok es funktioniert. Das Problem lag darin das ja bei Mysql automatisch slashes vor die " gemacht werden und die hatte ich bei der Vorgabe vergessen...
"wens interessiert "
---
Just Peace!
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
MySQL macht nicht automatisch Slashes vor irgendwelche Zeichen. Im Gengenteil - man muss dieses Escaping manuell erledigen (mysql_escape_string()). Es gilt auch nur für das SQL - inder DAtenbank selbst und beim Auslesen bekommt man wieder das Original.
PHP macht mit der Option magic_quotes_gpc Slashes in diversen Benutzereingaben. Darauf sollte man sich jedoch nicht verlassen und die Option lieber deaktivieren.
Außerdem nutzt du ereg - die Posix-RegEx sind um vieles langsamer und können weniger als die PCRE (preg_*). Auch solltest du RegEx immer in Single Quotes schreiben. Damit mußt du nicht mehr so viele Zeichen in der RegEx escapen und sie bleibt lesbarer.
Interessant finde ich die Subpattern .+. - mindest eines aber beliebig viele Zeichen gefolgt von genau einem beliebigen Zeichen. Wozu dienen Sie? - Warum nicht [^"]+?
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
Das mit dem Punkt war ein Fehler irgendwie waren die Sachen teilweise ziemlich dämlich da ich durcheinander gekommen bin, da teilweise Slashes hinzugefügt worden sind und teilweise nicht. Ich hab das dann entfernt jetzt werde ich das nochmal überarbeiten.
fg
---
Just Peace!
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
Merkwürdig... wenn ich die Punkte weg lasse bekomme ich eine Fehlermeldung! Woran könnte das liegen?
Folgendermaßen sieht der Reguläre ausdruck jetzt aus
^.+.href=\"(.+.)\"+>(.+.)<+$
funktioniert nur wenn ich die punkte da lass bei den such klammern.
---
Just Peace!
Diese Nachricht wurde geändert von: ATooM |
 Profil
E-Mail
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Weil der eine Punkt notwendig ist - [b].+[b] - Ein beliebiges Zeichen (der Punkt) mindestens einmal und beliebig oft (das Plus).
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
Ich hab das noch nicht genau verstanden warum der Punkt notwendig ist.
Könntest du vieleicht schnell das entsprechende bsp. schreiben wenn der Link lautet
Google.de
Ich möchte http://www.google.de und Google.de daraus haben.
---
Just Peace!
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Nein das kann ich nicht - im PHP-Manual auf http://de.php.net/pcre findest du jede Menge Infos zu den Perl Compatiblen Regulären Ausdrücken. In den Usercomments (unten) gibt es noch mehr Links.
Dir fehlt ein grundsätzliches Verständnis. Im Gesatz zu den simplen Patterns der Windows-Suche sind echte Regex immer in Zeichenklasse und Quantifier aufgeteilt. Der Punkt gibt also an WAS erlaubt ist und das Plus WIE OFT.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
Gut... Ich glaub ich habs jetzt so langsam. Ich habe mich jetzt in den preg funktionen eingelesen. Nun habe ich folgendes erstellt:
/f=\"(.*)\"+>(.*)<+/
Was hälst du/ihr davon? Gibt es bessere Möglichkeiten?
---
Just Peace!
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Wenn du das ganze in einfache Anführunszeichen setzt, kannst du dir das escapen von " sparen.
|
 Profil
Editieren
Zitieren
|
subjective
Forenheld
Beiträge: 844 |
Außerdem glaube ich das vor 2 der Pluszeichen noch was fehlt.
---
Weaverslave
|
 Profil
Website
Editieren
Zitieren
|
ATooM
Quasselstrippe Threadstarter
Beiträge: 345 |
ok, danke stimmt der Punkt.
---
Just Peace!
|
 Profil
E-Mail
Website
Editieren
Zitieren
|