Autor |
Nachricht |
Speedy-n4tor
Threadersteller
Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht:
|
Verfasst Fr 22.08.2008 22:13
Titel [Erledigt] [PHP] Reguläre Ausdrücke |
|
|
Hallo,
Ich benötige Hilfe.
Ich habe in einer Variablen in PHP eine ganze Menge Text (HTML-Quellcode) aus einer mysql-db.
Nun suche ich eine Möglichkeit, innerhalb dieses Quelltextes ein bestimmtes Attribut zu verändern.
Nun hat mir eine sehr lange und nervige google suche offenbart, dass ich Reguläre Ausdrücke benötige.
Aber bislang habe ich keine Seite gefunden, die mir das
a.) gut erklären konnte
und
b.) auf deutsch ist
Nun habe ich 2 Bitten
1.) eine gute Seite zum lernen von Regulären Ausdrücken
2.) einen Regulären Ausdruck für folgendes Problem
Ausgangsteil:
<font size="12">
Ich möchte diese 12 (kann eine beliebige Zahl sein) erhöhen lassen und den Wert x
vor dem Attribut size und danach können jeweils noch andere HTML-Attribute stehen.
Hoffe ihr könnt mir helfen
Edit: Hab mich mal ein wenig versucht und ein suchmuster erstellt, dass fast passt
$test = '<font size="12">test</font>';
$test2 = preg_replace('/size="(.*?)"/', 'size="\\1"', $test);
ich habe also in Form von \\1 die aktuelle size. nun möchte ich dieses \\1 um den Wert 3 erhöhen und dann im quelltext passend austauschen lassen
also alle 12px und alle 7px zu 10px usw....
nur in google finde ich nichts passendes.
Zuletzt bearbeitet von Speedy-n4tor am Mo 25.08.2008 16:13, insgesamt 2-mal bearbeitet
|
|
|
|
|
Snifferdog
Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht:
|
Verfasst Sa 23.08.2008 11:07
Titel
|
|
|
Hi,
zunächst einmal: http://www.php-resource.de/tutorials/read/10/1/
Google Eintrag Nr. 1 bei "Reguläre Ausdrücke PHP"
Finde ich ganz gut - habe dort auch das erste mal mit Regulären Ausdrücken gearbeitet.
Zu deinem Problem würde ich allerdings sagen, dass du dafür nicht wirklich reguläre Ausdrücke brauchst.
Wenn du eh alle size = "12" ersetzen willst, dann kannst dus auch einfach mit str_replace machen.
Zu Suchen und Ersetzen gibts bei Google generell sehr viel ... vielleicht hilft dir dieses Seite ja weiter:
http://www.php-einfach.de/php-tutorial/php-suchen-ersetzen.php
Gruß
PS: nächstes mal vll etwas genauer suchen
|
|
|
|
|
Anzeige
|
|
|
Speedy-n4tor
Threadersteller
Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht:
|
Verfasst Sa 23.08.2008 11:16
Titel
|
|
|
Hi,
danke für die Site. schaue ich mir bei gelegenheit mal an.
Zum Problem
Es ist ja nicht nur size="12". Das Problem ist. Es kann auch jeder andere px Wert sein. Deswegen reguläre Ausdrücke, dass ich nicht jeden einzelnen px-Wert austauschen muss, was sehr mühsam wäre.
MfG
Speedy-n4tor
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 23.08.2008 12:38
Titel
|
|
|
Werte für das size Attribut umfassen doch nur 1-7, was also hast du da vor?
Wenn du also einen bestimmten Pixel Wert angeben möchtest, könntest du es z.B. in etwa so machen:
Code: | $str = preg_replace("#<font size=\"([0-7])\">(.*)</font>#Uis", '<span style="font-size: 30px;">\\2</span>', $str); |
Zuletzt bearbeitet von m am Sa 23.08.2008 13:40, insgesamt 2-mal bearbeitet
|
|
|
|
|
Speedy-n4tor
Threadersteller
Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht:
|
Verfasst Sa 23.08.2008 12:56
Titel
|
|
|
also meines wissens und probierens kann <fonz size auch größer als 7 sein.
und dein regex ist nicht 100% für mich, da ich bereits gesagt habe, dass auch andere attribute in dem <font tag verwendet werden können z.b. color oder face
und das wird in deinem regex nicht beachtet
|
|
|
|
|
Snifferdog
Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht:
|
Verfasst Sa 23.08.2008 13:08
Titel
|
|
|
Speedy-n4tor hat geschrieben: | also meines wissens und probierens kann <fonz size auch größer als 7 sein.
und dein regex ist nicht 100% für mich, da ich bereits gesagt habe, dass auch andere attribute in dem <font tag verwendet werden können z.b. color oder face
und das wird in deinem regex nicht beachtet |
Nein nein, da hat m schon recht. <font size> hat regulär nur werte 1 - 7 ... das Attribut von CSS font-size hingegen hat auch Pixelwerte usw. Mal ganz abgesehen davon würde ich solche sachen wie farbe schriftgröße und schrifttyp eh direkt mit css lösen.
Gruß
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Sa 23.08.2008 13:51
Titel
|
|
|
Speedy-n4tor hat geschrieben: | also meines wissens und probierens kann <fonz size auch größer als 7 sein. |
Nein definitiv nicht., wäre dir sicher noch aufgefallen spätestens wenn du es dann mal versucht hättest.
Speedy-n4tor hat geschrieben: | und dein regex ist nicht 100% für mich, da ich bereits gesagt habe, dass auch andere attribute in dem <font tag verwendet werden können z.b. color oder face
und das wird in deinem regex nicht beachtet |
Naja geschenkt wird einem meistens nichts. Ich sagte ja auch "in etwa", was auch daran liegen
könnte dass ich einfach nicht ganz verstanden habe was du machen möchtest ich wollte dir nur
den Tip bezüglich der eingeschränkten Größen geben. Wenn du einfach mal ein Beispiel gibst,
String vorher String nachher, dann wird vllt verständlich was du mit was ersetzen möchtest und
evtl kann dir dann jemand besser helfen.
|
|
|
|
|
Speedy-n4tor
Threadersteller
Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht:
|
Verfasst Mo 25.08.2008 16:13
Titel
|
|
|
So. Problem gelöst. Ein Freund hat mir mit einem passenden Quelltext geholfen. Trotzdme danke
Zuletzt bearbeitet von Speedy-n4tor am Mi 27.08.2008 09:32, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
[PHP] Reguläre Ausdrücke
reguläre ausdrücke
[Tutorial gesucht]Reguläre Ausdrücke
[php] reguläre audrücke
erledigt!
IE 8 -> 2 Domains ==> erledigt
|
|