Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: preg_match / str_replace?
Forum PHP.pl > Forum > PHP
Randalman
Witam,
Mam plik, w którym potrzebuję podmieniać tylko zawartość jednego tagu:

  1. <pageText name="replacement"><![CDATA[<br /><b>tekst do podmiany</b>]]></pageText>


Próbowałem to sobie pobrać w sposób nastepujący:
  1. $str = file_get_contents("file);
  2.  
  3. $pattern = '/<pageText name="replacement">(.*)<\/pageText>/';
  4. preg_match($pattern, $str, $matches);
  5. print_r($matches);


Ale w wyniku dostaję tylko takie coś:
Kod
Array ( [0] => Array ( [0] =>  ) [1] => Array ( [0] =>  ) )


Co i jak powinienem poprawić, aby wynikiem w tablicy był ciąg znaków między tagami <pageText></pageText> ?

Z góry dzięki za pomoc.
Fifi209
Skoro to jest xml to traktuj to jak xml exclamation.gif

Masz przykład:
  1. <?php
  2.  
  3.  
  4. $string = '<?xml version=\'1.0\'?><xml><pageText name="replacement"><![CDATA[<br /><b>tekst do podmiany</b>]]></pageText>
  5. <pageText name="inne">ss</pageText>
  6. <otherTag>sdfsdfsdf</otherTag>
  7. </xml>';
  8.  
  9. $xml = simplexml_load_string($string);
  10.  
  11. echo '<pre>';
  12. print_r($xml);
  13.  
  14. echo '</pre><br/><br/>';
  15.  
  16. echo $xml->pageText;
  17.  
  18. ?>
Randalman
No, tutaj wlasnie jest maly problem, bo tego typu skrypt, nie wczytuje xml'a w całej jego zawartosci:

Wynik: http://ooriflame.pl/test.php
XML: http://ooriflame.pl/view.txt

Potrzebuję nadpisywać ten fragment:
Cytat
<pageText name="replacement"><![CDATA[<br /><b>1.Program WITAMY</b> - bony rabatowe 20zł , 30zł, 40zł (razem 90 zł) za trzy pierwsze zamówienia</b>]]></pageText>


Ale on najzwyczajniej nie jest wczytywany tego typu podejściem. Nie mam pojecia dlaczego i jak to naprawić
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.