mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 09:01 Benutzername: Passwort: Auto-Login

Thema: [Erledigt] [PHP] Reguläre Ausdrücke vom 22.08.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [Erledigt] [PHP] Reguläre Ausdrücke
Seite: 1, 2  Weiter
Autor Nachricht
Speedy-n4tor
Threadersteller

Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht: Männlich
Verfasst Fr 22.08.2008 22:13
Titel

[Erledigt] [PHP] Reguläre Ausdrücke

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Sa 23.08.2008 11:07
Titel

Antworten mit Zitat Zum Seitenanfang

Hi,

zunächst einmal: http://www.php-resource.de/tutorials/read/10/1/
Google Eintrag Nr. 1 bei "Reguläre Ausdrücke PHP" *zwinker*
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 *zwinker* * Ich bin ja schon still... *
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Speedy-n4tor
Threadersteller

Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht: Männlich
Verfasst Sa 23.08.2008 11:16
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 23.08.2008 12:38
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Speedy-n4tor
Threadersteller

Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht: Männlich
Verfasst Sa 23.08.2008 12:56
Titel

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Snifferdog

Dabei seit: 08.03.2007
Ort: Düsseldorf
Alter: 35
Geschlecht: Männlich
Verfasst Sa 23.08.2008 13:08
Titel

Antworten mit Zitat Zum Seitenanfang

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ß
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 23.08.2008 13:51
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Speedy-n4tor
Threadersteller

Dabei seit: 13.08.2008
Ort: Waldbrunn
Alter: 34
Geschlecht: Männlich
Verfasst Mo 25.08.2008 16:13
Titel

Antworten mit Zitat Zum Seitenanfang

So. Problem gelöst. Ein Freund hat mir mit einem passenden Quelltext geholfen. Trotzdme danke Grins

Zuletzt bearbeitet von Speedy-n4tor am Mi 27.08.2008 09:32, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ä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
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.