Edit report at https://bugs.php.net/bug.php?id=76719&edit=1

 ID:                 76719
 Comment by:         dzuelke at gmail dot com
 Reported by:        dzuelke at gmail dot com
 Summary:            PECL REST channel returns invalid XML
 Status:             Open
 Type:               Bug
 Package:            PECL website
 Operating System:   irrelevant
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

Ugh, XML assembled via string concatenation? No wonder this is buggy.


Previous Comments:
------------------------------------------------------------------------
[2018-08-08 17:35:21] c...@php.net

It seems to me that this code[1] didn't work as hoped.

[1] 
<https://github.com/php/web-pecl/blob/da4fe2a/include/pear-rest.php#L133-L139>

------------------------------------------------------------------------
[2018-08-08 02:24:36] dzuelke at gmail dot com

Description:
------------
Same again as #58446, #59098, #59666...

Several endpoints in the API return invalid XML, the issue is always the same: 
weird XML prolog and extra elements in the middle of the document; sometimes 
just one more time, sometimes more, e.g. one in Authentication, three in 
Caching:

...
<pi>
<p><n>PAM</n>
 <c>pecl.php.net</c>
 <ca xlink:href="/rest/c/Authentication">Authentication</ca>
 <l>PHP</l>
 <s>PAM integration</s>
 <d>This extension provides PAM (Pluggable Authentication Modules) integration. 
PAM is a system of libraries that handle the authentication tasks of 
applications and services. The library provides a stable API for applications 
to defer to for authentication tasks.</d>
 <r xlink:href="/rest/r/pam"/>
</p><?xml version="1.0" encoding="UTF-8" ?>
<a xmlns="http://pear.php.net/dtd/rest.allreleases";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xlink="http://www.w3.org/1999/xlink";     
xsi:schemaLocation="http://pear.php.net/dtd/rest.allreleases
    http://pear.php.net/dtd/rest.allreleases.xsd";>
 <p>pam</p>
 <c>pecl.php.net</c>
 <r><v>1.0.3</v><s>stable</s></r>
 <r><v>1.0.2</v><s>stable</s></r>
 <r><v>1.0.1</v><s>stable</s></r>
 <r><v>1.0.0</v><s>stable</s></r>
</a>

The test script below outputs the number of XML prologs for each category that 
has more than one in the XML.

Test script:
---------------
for f in $(curl https://pecl.php.net/rest/c/categories.xml | grep -o 'c 
xlink:href="[^"]*' | cut -d'"' -f2 | sed 's/info.xml/packagesinfo.xml/' | sed 
s#^#https://pecl.php.net#); do { echo -n "$f: "; curl --silent $f | grep 
'<?xml' | wc -l; } | grep -v 1; done

Actual result:
--------------
https://pecl.php.net/rest/c/Authentication/packagesinfo.xml:        2
https://pecl.php.net/rest/c/Caching/packagesinfo.xml:        4
https://pecl.php.net/rest/c/Database/packagesinfo.xml:        2
https://pecl.php.net/rest/c/File%2BFormats/packagesinfo.xml:        2
https://pecl.php.net/rest/c/GUI/packagesinfo.xml:        2
https://pecl.php.net/rest/c/Images/packagesinfo.xml:        3
https://pecl.php.net/rest/c/Networking/packagesinfo.xml:        3
https://pecl.php.net/rest/c/Numbers/packagesinfo.xml:        2
https://pecl.php.net/rest/c/PHP/packagesinfo.xml:        2
https://pecl.php.net/rest/c/System/packagesinfo.xml:        2
https://pecl.php.net/rest/c/Text/packagesinfo.xml:        2
https://pecl.php.net/rest/c/Web%2BServices/packagesinfo.xml:        2


------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=76719&edit=1

-- 
PECL development discussion Mailing List (http://pecl.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to