PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   String-Wildcard ersetzen (http://www.selfphp.de/forum/showthread.php?t=4021)

strosch 17.04.2003 10:13:22

String-Wildcard ersetzen
 
Hallo,
ich habe folgendes Problem:
Ich möchte in einer HTML-Datei(oder einem beliebigen Text-String) alles zwischen <style... ...</style> durch einen Link zum CSS (fester String) ersetzen.
Wie kann ich das am besten machen ? Irgendwie mit eregi_replace und regular expressions ? Hat da jemand eine Idee ?

Strosch

MiH 17.04.2003 10:52:04

Code:

$text = preg_replace("|<style[^>]+>.*</style>|Uim","<style type="text/css">@import: url(datei.css);</style>",$text);

strosch 17.04.2003 14:18:24

Vielen Dank für die schnelle Antwort.
Kannst Du mir auch kurz erklären, wofür die einzelnen Zeichen stehen ?

Strosch

MiH 17.04.2003 14:49:23

Code:

| <- Delimiterzeichen (frei wählbar)
<style <- suchmuster
[^>]+ <- alles bis zum > falls mal jemand noch was hinter style schreibt.
> <- suchmuster
.*<- alle zeichen
</style> <- suchmusterende
| <- Delimiterzeichen
U <- .* soll nicht gierig sein
i <- groß/kleinschreibung nicht beachten
m <- multiline also über mehrere zeilen suchen


strosch 18.04.2003 16:46:21

Vielen Dank für die Erklärung.
Ich werde es ausprobieren, hoffentlich klappt es so.

Strosch

Progman 18.04.2003 17:14:07

Modifier m muss durch ein s geändert werden.
m ist nur wichtig bei $ und ^
s hingegen dient dazu, das der Punkt auch ein n matched.

http://tut.php-q.net/regex.html
http://www.php.net/pcre

strosch 24.04.2003 12:56:15

Super, mit der letzten Änderung des Modifiers hat es geklappt!
Vielen Dank an alle !

Strosch


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:38:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.