|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
делаю так: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $serverUrl); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXmlBody); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLINFO_HEADER_OUT ,1); $r = curl_exec($ch); echo $r; --- получаю "аброкадаберный", "неосмысляемый" текст. А если сделать так: for($i=0;$i<strlen($r);$i++) { echo ' '.$r[$i]; } то получаю осмысленный xml текст. Если из "echo ' '.$r[$i]" убрать пробел, то опять абракадабра. Как заставить php увидеть xml? (без танца с бубном) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 00:10 |
|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
PupkinКак заставить php увидеть xml?Из курла PHP получает строку. Не важно, что в ней, XML или что-то другое. А уж куда Вы вывели эту строку через echo и чем/как определяете его "осмысленность" - об этом Вы ничего не рассказали. Кроме того, в Вашем коде нет ничего такого, чем PHP мог бы работать с полученной строкой именно как с XML. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 00:57 |
|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
vkleкак определяете его "осмысленность"Осмысленность я определяю по здравому смыслу. Это то, что выдало echo (фрагмент): 018-11-21T23:07:46.425ZSuccess1083E1083_CORE_APISELLING_18856597_R126254truefalseItemIneligibleUSUSD0NoHitCounter1133001063462018-10-10T09:58:55.000Z2018-10-10T11:25:28.000Zhttps://www.ebay.com/itm/Genuine-BMW-11127500568-Sealing-cap-oil-filler-neck-/113300106346falsefalsehttps://www.ebay.com/itm/Genuine-BMW-11127500568-Sealing-cap-oil-filler-neck-/113300106346NotAvailableGTCPassau6763eBay Motors:Parts & Accessories:Car & Truck Parts:Other Слова знакомые, но осмыслить выданное я не могу. А это то (ниже), что я получил из "echo ' '.$r[$i];" (тоже фрагмент) < ? x m l v e r s i o n = " 1 . 0 " e n c o d i n g = " U T F - 8 " ? > < G e t S e l l e r L i s t R e s p o n s e x m l n s = " u r n : e b a y : a p i s : e B L B a s e C o m p o n e n t s " > < T i m e s t a m p > 2 0 1 8 - 1 1 - 2 1 T 2 3 : 0 7 : 4 6 . 4 2 5 Z < / T i m e s t a m p > < A c k > S u c c e s s < / A c k > < V e r s i o n > 1 0 8 3 < / V e r s i o n > < B u i l d > E 1 0 8 3 _ C O R E _ A P I S E L L I N G _ 1 8 8 5 6 5 9 7 _ R 1 < / B u i l d > < P a g i n a t i o n R e s u l t > < T o t a l N u m b e r O f P a g e s > 2 6 < / T o t a l N u m b e r O f P a g e s > < T o t a l N u m b e r O f E n t r i e s > 2 5 4 < / T o t a l N u m b e r O f E n t r i e s > < / P a g i n a t i o n R e s u l t > < H a s M o r e I t e m s > t r u e < / H a s M o r e I t e m s > < I t e m A r r a y > < I t e m > < A u t o P a y > f a l s e < / A u t o P a y > < B u y e r P r o t e c t i o n > I t e m I n e l i g i b l e < / B u y e r P r o t e c t i o n > < C o u n t r y > U S < / C o u n t r y > < C u r r e n c y > U S D < / C u r r e n c y > < G i f t I c o n > 0 < / G i f t I c o n > < H i t C o u n t e r > N o H i t C o u n t e r < / H i t C o u n t e r > < I t e m I D > 1 1 3 3 0 0 1 0 6 3 4 6 < / I t e m I D > Здесь четко наблюдаются <tag>data</tag>. Это вполне осмысливается (с учетом пробела). Из курла PHP получает строку. Не важно, что в ней, XML или что-то другое.Не могу согласиться. Мне важно. Я бы хотел xml, можно json. в Вашем коде нет ничего такого, чем PHP мог бы работать с полученной строкой именно как с XMLЭтот функционал я еще не реализовал. И каким образом это Вам поможет решить мою проблему? Я хочу сначала увидеть. Если я увижу <CapColor>Red</CapColor><BootSize>27.5</BootSize>, то затем подумаю что поручить PHP сделать с цветом шапки и размером ботинок. Сначала деньги, потом стулья ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 03:11 |
|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
PupkinЭто то, что выдало echoЭто то, что Вы увидели. Предположу, что возможно, Вы смотрели выводимое, сопроводив вывод стандартным заголовком "Content-Type: text/html" (а другого в Вашем коде нет) через веб-браузер, который при таком раскладе добросовестно сожрал теги. Когда Вы разбавили вывод пробелами, Вы лишь "вынесли мозг" браузеру, который не нашел в предоставленном коде тегов и показал "как получилось". Если это действительно так так, то это не проблема PHP, а лишь Ваша ошибка в выборе способа просмотра. Гарантировано не зависеть от "причуд" браузера, консоли, текстового редактора и т.п. можно лишь зная особенности используемых инструментов. При желании можно посмотреть подобный код и в браузере, в простейшем случае, предварительно заменив угловые скобки на их html-сущности или указав браузеру "Content-Type: text/plain" или иным способом убедить его не выкусывать теги. Можно так же сохранить полученную строку как файл и исследовать его каким-либо текстовым редактором или просмотровщиком вплоть до hexdump'а, где можно увидеть полученное в деталях до последнего бита. PupkinИз курла PHP получает строку. Не важно, что в ней, XML или что-то другое.Не могу согласиться. Мне важно. Я бы хотел xml, можно json.Курл предоставил PHP данные в строковом виде. Там может быть что угодно, вплоть до бинарника. Как именно Вы будете эти данные интерпретировать - это не их забота. PupkinИ каким образом это Вам поможет решить мою проблему?Никак. Вашу проблему придется решать Вам. PupkinСначала деньги, потом стульяСначала изучите матчасть. Потом деньги и стулья. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.11.2018, 05:22 |
|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
vkleПредположу, что возможно, Вы смотрели выводимое, сопроводив вывод стандартным заголовком "Content-Type: text/html"Предположение неверное. Вывод я не сопровождал (в этом смысле) сообще ничем. Помогло явно указанное "text/plain". Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 12:31 |
|
php,curl. Как отпарсить строку, которую вернул curl_exec($ch)?
|
|||
---|---|---|---|
#18+
PupkinВывод я не сопровождал (в этом смысле) сообще ничем.Добропорядочный вебсервер по дефолту нередко такой заголовок ставит. Вы же не указали явно необходимый Вам, вот он и приляпал стандартный text/html. Браузер тоже должен как-то трактовать полученный контент, если явно не указан его тип. Впрочем, и то и другое Вы всегда можете проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2018, 12:47 |
|
|
start [/forum/topic.php?fid=23&msg=39737446&tid=1460084]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 137ms |
0 / 0 |