Fix fetch content for complex HEAD (#2867)

* Fix contentSelectorPreviewAction

Was not compatible with https://github.com/FreshRSS/FreshRSS/pull/2588

* Fix lib_phpQuery for <head ...>

#fix https://github.com/FreshRSS/FreshRSS/issues/2864
* Replace split() by explode() for PHP7 compatibility
https://php.net/str-split
* Fix for document with a `<head>` tag more complicated, like `<head
profile="http://www.w3.org/1999/xhtml/vocab">`
This commit is contained in:
Alexandre Alapetite
2020-04-01 02:09:08 +02:00
committed by GitHub
parent 5858aaf7fc
commit 656b61ff29
2 changed files with 14 additions and 7 deletions

View File

@@ -501,9 +501,10 @@ class DOMDocumentWrapper {
$metaContentType = $matches[0][0];
$markup = substr($markup, 0, $matches[0][1])
.substr($markup, $matches[0][1]+strlen($metaContentType));
$headStart = stripos($markup, '<head>');
$markup = substr($markup, 0, $headStart+6).$metaContentType
.substr($markup, $headStart+6);
$headStart = stripos($markup, '<head');
$headStop = stripos($markup, '>', $headStart);
$markup = substr($markup, 0, $headStop+1).$metaContentType
.substr($markup, $headStop+1);
return $markup;
}
protected function charsetAppendToHTML($html, $charset, $xhtml = false) {
@@ -4206,7 +4207,7 @@ class phpQueryObject
.($node->getAttribute('id')
? '#'.$node->getAttribute('id'):'')
.($node->getAttribute('class')
? '.'.join('.', split(' ', $node->getAttribute('class'))):'')
? '.'.join('.', explode(' ', $node->getAttribute('class'))):'')
.($node->getAttribute('name')
? '[name="'.$node->getAttribute('name').'"]':'')
.($node->getAttribute('value') && strpos($node->getAttribute('value'), '<'.'?php') === false