Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] otwarcie xml, edycja, zapisanie do pliku
Forum PHP.pl > Forum > Przedszkole
neurogen
ten kod zapisuje mi plik i dokonuje zmian str_replace ale nie działa preg_replace, gdzie jest błąd?
  1. <?php
  2. $fname = "pubmed_result.xml";
  3. $fhandle = fopen($fname,"r");
  4. $content = fread($fhandle,filesize($fname));
  5.  
  6. $content = preg_replace('/<ISSN IssnType=\'Print\'>.*?<\/ISSN>/', '', $content);
  7. $content= str_replace('Label="Introduction"', 'Label="Background"', $content);
  8.  
  9. $savename = "pubmed_ready.xml";
  10. $fhandle = fopen($savename,"w");
  11. fwrite($fhandle,$content);
  12. fclose($fhandle);
  13. ?>


próbowałem też:
  1. $content = preg_replace('<ISSN IssnType="Print">.*?</ISSN>', '', $content);
SmokAnalog
Pierwszy przykład powinien działać. Czy wewnątrz tagu są znaki nowej linii? Jeśli tak, to musisz dać flagę s.

Cytat z dokumentacji flag wyrażeń regularnych w PHP:
Cytat
If this modifier is set, a dot metacharacter in the pattern matches all characters, including newlines. Without it, newlines are excluded. This modifier is equivalent to Perl's /s modifier. A negative class such as [^a] always matches a newline character, independent of the setting of this modifier.


Czyli to powinno wtedy działać:
  1. $content = preg_replace('/<ISSN IssnType=\'Print\'>.*?<\/ISSN>/s', '', $content);


Jeśli dalej nie działa, to gdzieś się kopnąłeś we wzorcu.
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.