phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 04.10.2004, 00:13   #1
TP-Insider
 
Benutzerbild von NicNac
 
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
NicNac macht alles soweit korrekt

regexp Problem


Hi

Ich bin noch nicht soo der Profi mit regulären Ausdrücken, deswegen stehe ich auch vermutlich vor diesem Problem

Also, ich möchte aus dem html <image> tag width und height herausholen. Also der Image tag ist in einer Variable gespeichert.

Nun mein Code:

PHP-Code:
$regexp_pattern '/(?:width=")([0-9]+).+(?:height=")([0-9]+)/';
preg_match($regexp_pattern$image_tag$image_array);
$new_height RANDOM_IMAGE_WIDTH * ($image_array[1] / $image_array[2]); 
Nun, wie ihr seht möchte ich eine andere Masse für das Bild haben als die in der Variable. Aber bei mir kommt immer der Fehler:

Division by zero, deswegen ist sicher gar nichts gefundent worden..aber stimmt was an meinem pattern nicht? Denn im $image_tag ist garantiert ein Image Tag enthalten...er findet sicher einfach nichts..?

Gruss
Michael
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!
NicNac ist offline   Mit Zitat antworten


Alt 04.10.2004, 07:58   #2
TP-Member
 
Registriert seit: Apr 2003
mahjongg macht alles soweit korrekt
Hast Du es schonmal so probiert:
Code:
preg_match("/(?:width=\")([^\"]+)\"\s+(?:height=\")([^\"]+)/", $image_tag, $image_array); 
$new_height = RANDOM_IMAGE_WIDTH * ($image_array[1] / $image_array[2]);
__________________
Perl-Community.de - die deutschsprachige Perl-Gemeinschaft
mahjongg ist offline   Mit Zitat antworten
Alt 04.10.2004, 10:03   #3
TP-Insider
 
Benutzerbild von NicNac
 
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
NicNac macht alles soweit korrekt
Hi again

Hab jetzt rausgefunden, dass der Image Tag irgendwie nicht richtig übergeben wurde, jetzt funktionieren unsere beiden regexp. Nur, beim Replace klappts defintiv nicht mehr:

PHP-Code:
$new preg_replace('/(?:width=\")([0-9]+)(?:\")/'120$image_tag;
$new preg_replace('/(?:height=\")([0-9]+)(?:\")/'120$new); 
Aber es wird einfach gar nichts ersetzt..wieso? Ist doch derselbe Pattern der auch beim Matching funzt?! Und falls mir jemand erklären könnte wie man die beiden Replaces in einmal schreiben könnte wäre ich sehr dankbar
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!
NicNac ist offline   Mit Zitat antworten
Alt 04.10.2004, 10:13   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Vielleicht matched der regex ja... nur du nutzt die falschen Treffer zur Berechnung?
Man zählt die Klammern von links nach rechts. Wobei [0] der gesamte Treffer ist. Also Klammer 2 und 4 deine "eigentlichen" Treffer... die benutzt du doch garnicht. Btw: preg_replace gibt bei erfolg ein True zurück. Desweiteren kannst du dir per print_r oder var_dump ja mal anschauen was er gematched hat.

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 04.10.2004, 10:39   #5
TP-Insider
 
Benutzerbild von NicNac
 
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
NicNac macht alles soweit korrekt
Hi Jan

Doch doch, meine Treffer sind im 1 und 2, weil die "eigentlichen" Klammern 1 und 3 schliesse ich ja mittels ?: am Klammernanfang vom Speichern aus. Deswegen entfallen die. Ich hab mir [1] und [2] zurückgeben lassen und es ist wirklich richtig gematcht. Jeweils nur der numerische Wert.

Also das Matching läuft, nur das Replacen nicht. Dort kann man ja auch kein Vardump machen? Das einzige was ich jetzt probiert habe ist mir mal den Tag vor dem Replacen und nach dem Replacen zurückzugeben und es sieht exakt gleich aus, keine Ersetzung wurde vorgenommen. Wieso?

Und eben, wie könnte man beide Replacements zusammenfassen?
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!
NicNac ist offline   Mit Zitat antworten
Alt 04.10.2004, 10:47   #6
TP-Insider
 
Benutzerbild von NicNac
 
Registriert seit: Apr 2001
Ort: Zürich, Schweiz
NicNac macht alles soweit korrekt
Talking

Hm...komisch hab jetzt bisschen gepröbelt und habe herausgefunden, dass der ganze Tag z.B. width="200" einfach durch 120 ersetzt wird...wieso nicht nur das 200? Und eben, wie man es zusammenfassen könnte würde mich sehr interessieren

EDIT ("selber lösung überlegt"):
Hm möglicherweise nützen die ?: beim replace nichts? beziehungsweise schon, aber, man kann einfach nicht auf sie zurück referenzieren?
__________________
http://www.exploreourplanet.net - Ladet eure schönsten Urlaubsbilder hoch!

Geändert von NicNac (04.10.2004 um 10:52 Uhr).
NicNac ist offline   Mit Zitat antworten
Alt 04.10.2004, 13:12   #7
TP-Member
 
Registriert seit: Apr 2003
mahjongg macht alles soweit korrekt
Ich kenn mich zwar mit PHP nicht so übermäßig gut aus, aber probier mal:
Code:
$new = preg_replace('/(width=\")[0-9]+(\")/', $1.120.$2, $image_tag; 
$new = preg_replace('/(height=\")[0-9]+(\")/', $1.120.$2, $new);
__________________
Perl-Community.de - die deutschsprachige Perl-Gemeinschaft
mahjongg ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
regexp Problem regexp Problem
« Wie kann man sich php-Dateien angucken? | Bei "Include" wird falscher css-style benutzt »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Größenänderung`s Problem nüx Fireworks 6 31.10.2003 02:20
Problem mit Javascripte TJGonline Dreamweaver 1 27.08.2003 09:54
Problem mit einem Formular corner Dreamweaver 6 01.07.2003 11:55
DNS Problem seit einiger Zeit sp1313 Betriebssysteme 1 25.06.2003 18:34
regexp - Problem Kuhnibert Traum-Dynamik 10 20.06.2003 18:58


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:50 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67