PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Zeichenkette zwischen zwei Strings ersetzen (preg_replace) (https://www.php-resource.de/forum/php-developer-forum/91462-zeichenkette-zwischen-zwei-strings-ersetzen-preg_replace.html)

garksucha 17-04-2008 18:32

Zeichenkette zwischen zwei Strings ersetzen (preg_replace)
 
Hallo allerseits,

hab ne Frage zu "preg_replace(Suchmuster,Ersatz, Textausdruck)"-Funktion:

Input: XML-Tag: <Material DEF="Nr1" color="R G B" .../>

ich muss bei jedem Feld <Material DEF="Nr1"... /> 'color' auf bestimmtes Wert setzen, also 'preg_replace()', kamm aber mit der Suchkriteriendefinition nicht weiter,

habe bisher das:

$text='<Material DEF="Nr1" color="R G B" .../>';
$ersatz='color="1 1 0"';

$string = preg_replace('|(<Material DEF="Nr1" )(o)(/>)|U', "$1".$ersatz."$3", $text);



was mache ich da falsch? oder kannn mir jemand einen Link geben, wo ich die Suchkriterien-Definition selber lernen könnte?

Danke im Voraus!

Kropff 17-04-2008 18:42

vielleicht hilft dir das hier weiter. besonders die abschnitte "klammern" und "rückbezüge"

peter

garksucha 20-04-2008 20:59

Danke für den Link -sehr aufschlüssreich!!!

aber die Funktionsweise von "preg_replace(Suchmuster,Ersatz,String) ist nicht so ganz klar geworden. Ich bin soweit gekommen:


$a='<Material DEF="Material_2" diffuseColor="0.9 0.5 0" transparency="0.0" />';

$r=0.2; $g=0.3; $b=0.4;
$Name='M_2';

$b=preg_replace("|(<Material DEF=\")(.+\w)(\".+\w[^>]diffuseColor=\")(.+\w)(\".+\w[^>])|Ui", "$1 ".$Name." $3 ".$r." ".$g." ".$b." $5", $a );

ich will im string $a den Namen und die diffuseColor-Werte ersetzen, aber was habe ich da falsch gemacht?

Danke im Voraus!


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:10 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG