-
Notifications
You must be signed in to change notification settings - Fork 7.8k
SoapClient can't parse WSDL file correctly #8538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
<wsdl:portType name="http://wssmcommupper/"> This is quite clearly incorrect. |
The WSDL itself is not correct because the name of that type is not valid. If some other tool doesn't care then that's nice. But I don't have the desire to try to explain that any more. |
Please don't post screenshots if the text can easily copy&pasted into the ticket. |
Right, it needs to be an
I concur. Just looking for the rightmost colon doesn't look right. From what I can tell, this line is supposed to strip the namespace prefix, which is not allowed to contain any colons, so using |
PHP-7.3 is no longer actively supported; that doesn't matter wrt. this ticket, since the relevant code hasn't changed, but you want to update to any of the supported versions anyway. |
When stripping the namespace prefix, we can assume that this does not contain any colons, while the rest of the name may contain colons. Hence we must not use `strrchr()` but rather `strchr()` instead.
* PHP-8.0: Fix GH-8538: SoapClient may strip parts of nmtokens
* PHP-8.1: Fix GH-8538: SoapClient may strip parts of nmtokens
Description
The following code:
tmp.txt:
tmp.txt
Resulted in this output:

But I expected this output instead:

Test:


When I modify the source file ext/soap/php_sdl.c and add debugging information, as shown below:
I got the result as below:
So I think there might be a problem with this line
ctype = strrchr((char*)type->children->content,':');
PHP Version
PHP 7.3.24
Operating System
Centos 6.10
The text was updated successfully, but these errors were encountered: