GravityPDF / querypath

A fork of QueryPath: a PHP library for HTML(5)/XML querying (CSS 4 or XPath) and processing (like jQuery) with PHP8.3 support
Other
21 stars 2 forks source link

html5qp does not use stream contexts properly #8

Closed jakejackson1 closed 1 year ago

jakejackson1 commented 1 year ago

From querypath created by letapjar: technosophos/querypath#189

When trying to access an external resource via POST - apparently the html5qp function does not use the passed in stream context

$options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $payload, ), ); $context = stream_context_create($options); $qp = html5qp($url, null, array('context' => $context));

The above code fails to open the resource - because the Masterminds HTML5 apparently tries to use a FileInputStream to grab the url.

When I switch to htmlqp the streamcontext is properly used and the code works.

I'm not sure if this is by design for HTML5 or if this is a bug - and if it is - whether it's an issue for QP or Masterminds\HTML5

jakejackson1 commented 1 year ago

My workaround for now is to call file_get_contents myself using the streamcontext and then pass that resource in to html5qp to get a querypath object with HTML5.