![]() |
PHP: preg_replace
Hi,
ich hab gerade ein Schlauch auf der Leitung. Ich möchte in einem HTML-Text alle <img src="bla.jpg" /> umschreiben in <img src="../bla.jpg" />. Folgender Versuch:
Code:
Geht schief, klar. Es fehlt quasi beim replace irgendeine Art "offset". Ich glaube, ich mach es mir gerade schwerer, als ich es eigentlich machen müsste.
$matches = array();
$cnt = preg_match_all('#<img(.*?)src="(.*?)"(.*?)/>#ms', $text, $matches); $replacements = array(); $patters = array(); for ($i = 0; $i < $cnt; $i++) { $patters[] = '#<img(.*?)src="(.*?)"(.*?)/>#ms'; $replacements[] = '<img ' . $matches[1][$i] . ' src="../' . $matches[2][$i] . '" ' . $matches[3][$i] . ' />'; } $text = preg_replace($patters, $replacements, $text); Jemand fix eine Idee? |
AW: PHP: preg_replace
Kannst du mal kurz beschreiben, was passiert? Mir fällt es etwas schwer, das so nachzuvollziehen.
Ansonsten:
[edit] Ach jetzt kapier ich, was du mit deinem Code zu erreichen versuchst. Du kannst dir das
PHP-Quellcode:
einfach sparen.
preg_match_all
PHP-Quellcode:
ersetzt per default alle Vorkommnisse des gesuchten Musters.
preg_replace
[/edit] |
AW: PHP: preg_replace
Hallo Manu,
keine Ahnung, ob ich dich richtig verstanden habe:
PHP-Quellcode:
Also ohne Schleife, nur der eine Aufruf.
$text = preg_replace('#<img src="([a-zA-Z0-9._-]+)" />#', '<img src="../$1" />', $text);
|
AW: PHP: preg_replace
Zitat:
|
AW: PHP: preg_replace
Hi Muhkuh,
also, ich würde mir die arrays patters und replacements einfach mal mit echo(array-element) anzeigen lassen. Dann siehst Du ja, was da was in realiter ersetzt. Und ob die arrays $cnt Einträge haben. usw LG Uli |
AW: PHP: preg_replace
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz