Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][HTML][PHP]Wymuszona interpretacja znaczników HTML
Forum PHP.pl > Forum > Przedszkole
RLLAMAS
Witam

Poszukuję rozwiązania problemu który mnie spotkał.

Za pomocą CURL wczytuję stronę "http://api.sanitec.artcom24.com/ws/api/products/?sAction=getProduct&nID=xxxx&sLang=pl" (gdzie xxxx to numer produktu np 35502) do zmiennej $tresc .

Ponieważ strona zwraca dane jako XML wykorzystuję simplexml_load_string($tresc) w celu konwersji do przyjemniejszej w obróbce postaci i przechowuję te dane np w zmiennej $tresc_ob .


Następnie do zmiennej $opis za pomocą
  1. $opis=$tresc_ob->response->product->notes2product->note2product[0];

wczytuję treść opisu.

Wszystko jest fajnie gdy w opisie znajduje się czysty tekst.
Problem pojawia się gdy w opisie pojawiają się znaczniki HTML. Muszę oczywiście użyć najpierw htmlspecialchars_decode() w celu przywrócenia "normalnej" postaci HTML, ale PHP sobie z tak odczytanymi danymi nie radzi.

Na przykład dla artykułu o numerze 35502 odczytany tekst w oryginale to:
Cytat
Skonfiguruj swoją kabinę w <span color="black"><b><a href="http://konfiguratorkabin.pl/" target="_blank">Konfiguratorze kabin</a></b></span>

a po użyciu htmlspecialchars_decode():
Cytat
Skonfiguruj swoją kabinę w <span color="black"><b><a href="http://konfiguratorkabin.pl/" target="_blank">Konfiguratorze kabin</a></b></span>


I tu następuje problem ponieważ :
  1. echo $opis;


zwraca:
Cytat
Skonfiguruj swoją kabinę w <span color="black"><b><a href="http://konfiguratorkabin.pl/" target="_blank">Konfiguratorze kabin</a></b></span>



zamiast:
Cytat
Skonfiguruj swoją kabinę w Konfiguratorze kabin


Szukam, szperam, grzebie na tym forum i internecie. Męczę wujka google pytaniami typu "wymuszona interpretacja html w php" i podobnymi jednak do tej pory bez skutecznie. Być może nie potrafię odpowiednio sformułować pytania, ale na nie brakło mi już pomysłów sad.gif.

Najdziwniejsze w tym wszystkim jest to gdy:
Cytat
Skonfiguruj swoją kabinę w <span color="black"><b><a href="http://konfiguratorkabin.pl/" target="_blank">Konfiguratorze kabin</a></b></span>

wprowadzę do zmiennej ręcznie nie odczytując z XML np:
  1. $opis="Skonfiguruj swoją kabinę w <span color=\"black\"><b><a href=\"http://konfiguratorkabin.pl/\" target=\"_blank\">Konfiguratorze kabin</a></b></span>";
  2. echo $opis;


w odczytanej stronie otrzymam poprawny wynik czyli:
Cytat
Skonfiguruj swoją kabinę w Konfiguratorze kabin


próbowałem również przy odczycie zastosować:
  1. $opis=(string)$tresc_ob->response->product->notes2product->note2product[0];

jednak i to nie daje pożądanego efektu.

Obecnie brak mi pomysłów w jaki sposób jeszcze do tego podejść.

Pozdrawiam i dziękuję za wszelkie odpowiedzi, które skierują mnie na właściwy tor.
Helid
Kod
Skonfiguruj swoją kabinę w &lt;span color="black"&gt;&lt;b&gt;&lt;a href="http://konfiguratorkabin.pl/" target="_blank"&gt;Konfiguratorze kabin&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;


str_replace?
Talidali
A co Ci to wyświetli?
  1. echo htmlspecialchars_decode($opis);
RLLAMAS
Uprzejmie proszę o czytanie ze zrozumieniem.

@Helid zacytowany przez Ciebie kod jest zamieniany na html za pomocą htmlspecialchars_decode()

@Talidali używam tej metody poczytaj na dole strony, chyba że zwracałeś się do @Helid.

Problem w tym, że to co za pomocą podanych metod odczytuję z XML na stronie pojawia się jako źródło html jak widać na poniższym zrzucie:
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.