Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][XML] preg_replace - usunięcie tagów </br>
Forum PHP.pl > Forum > Przedszkole
kurt
Próbuję usunąć tagi </BR> z łańcucha stosując preg_replace:
  1. <?php
  2. $opis = preg_replace('/</BR>/',' ',$opis_t);
  3. ?>


ale oczywiście działa to niewłaściwie, bowiem slash w tagu </BR> interpretowany jest prze PHP jako znacznik pattern.
Czy ktoś wie jak temu zaradzić?
drPayton
Poprzedzić go backslahem...

  1. <?php
  2. $opis = preg_replace('/</BR>/',' ',$opis_t);
  3. ?>
kurt
Tego już próbowałem i nie działa.
Może dokładniej opiszę problem.
Mam skrypt ajax pobierający z bazy za pośrednictwem pliku php dane, które zawierają tagi <BR>, </BR>, <NOBR>, </NOBR>.

Plik php pobiera dane i podaje je do pliku ajax w postaci XML:
  1. ...
  2. $result = mysql_query($query);
  3. echo '<?xml version="1.0" encoding="UTF-8"?><records>';
  4.  
  5. while ($row = mysql_fetch_assoc($result)){
  6. ...
  7.    $opis_t = $row['products_description'];   // $opis_t zawiera dane z tagami
  8.  
  9.    $pre[0] = "/<NOBR>/";
  10.    $pre[1] = "//<NOBR>/";
  11.    $pre[2] = "/<BR>/";
  12.    $pre[3] = "//<BR>/";
  13.  
  14.    $opis = preg_replace($pre,' ',$opis_t);  // $opis powinien zawierać dane bez tagów.
  15.  
  16.    echo '<record>';
  17.    ....
  18.    echo '<opis>'.$opis.'</opis>';
  19.    echo '</record>';
  20. }
  21. echo '</records>';


No i tu niestety się wykrzacza. Podczas próby wyświetlenia XML'a przeglądarka podaje komunikat:

"Nie można wyświetlić strony XML
Nie można przeglądać wejścia XML przy użyciu arkusza stylów XSL. Popraw błąd, a następnie kliknij przycisk Odśwież lub spróbuj ponownie później.
Tag końcowy 'NOBR' nie odpowiada tagowi początkowemu 'opis'. Błąd podczas przetwarzania zasobu 'http://localhost/e-aut..
<?xml version="1.0" encoding="UTF-8"?><records><record><id>886</id><nazwa>Filtr oleju<..."

"

PS Obszedłem to usuwając najpierw wszystkie "/" z łańcucha za pomocą str_replace()
barthpl
W linii 11 i 13 swojego kodu masz źle sformowane wyrażenia dotyczące końca tagów. Powinno być /<\/BR>/ i /<\/NOBR>/ i najlepiej jeszcze dodać na końcu każdego wyrażenia parametr i (nieczułość na wielkość liter) aby rozpoznawać również ciągi w postaci </Br>, </br>, etc.
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.