Pobieram sobie stronę, która ma w źródle zakodowany ciąg znaków w javascript, w zmiennej iframeContent którego odkodowuje w ten sposób:
Kod
decodeURIComponent(iframeContent)

Tak więc pobieram sobie curl'em tą stronę, pobieram ten ciąg i odkodowuje go odpowiednikiem w php (urldecode):

  1. if(preg_match_all('#var iframeContent = "([^"]+)"#', $produkt['xml'], $matches)){
  2. echo '<br/>test 1: '.strlen($matches[1][0]);
  3. print_r($matches[1][0]);
  4. $produkt['opis']['js'] = urldecode($matches[1][0]);
  5. print_r($produkt['opis']['js']);
  6. echo '<br/>test 2: '.strlen($produkt['opis']['js']);


test 1 wskazuje ze pobral ciag znakow o dlugosci 10786, pierwsze print_r pokazuje dokladnie to co chce pobrac

test 2, który jest po urldecode wskazuje że ciąg jest o dlugosci 1 a drugie print_r wskazuje ze tam jest tylko znak nowej linii ... Za nic w świecie nie mogę dojść czemu tak jest. Szczególnie że próbowałem ten ciąg znaków dać w zmiennej i rozkodowywało mi go bez problemu gdy nie pobierałem go curlem i preg_match_all... Co się dzieje ?