From 656b61ff2956351538cc70fe79cc534b1eb58e0c Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Wed, 1 Apr 2020 02:09:08 +0200 Subject: [PATCH] Fix fetch content for complex HEAD (#2867) * Fix contentSelectorPreviewAction Was not compatible with https://github.com/FreshRSS/FreshRSS/pull/2588 * Fix lib_phpQuery for #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 `` tag more complicated, like `` --- app/Controllers/feedController.php | 12 +++++++++--- lib/lib_phpQuery.php | 9 +++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 38aa09223..43a6b7287 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -753,14 +753,20 @@ class FreshRSS_feed_Controller extends Minz_ActionController { //Check Feed ID validity. $entryDAO = FreshRSS_Factory::createEntryDao(); $entries = $entryDAO->listWhere('f', $feed_id); + $entry = null; - if (empty($entries)) { + //Get first entry (syntax robust for Generator or Array) + foreach ($entries as $myEntry) { + $entry = $myEntry; + break; + } + + if ($entry == null) { $this->view->fatalError = _t('feedback.sub.feed.selector_preview.no_entries'); return; } - //Get feed & entry. - $entry = $entries[0]; + //Get feed. $feed = $entry->feed(true); if (!$feed) { diff --git a/lib/lib_phpQuery.php b/lib/lib_phpQuery.php index 194efa0c6..53a3952cb 100644 --- a/lib/lib_phpQuery.php +++ b/lib/lib_phpQuery.php @@ -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, ''); - $markup = substr($markup, 0, $headStart+6).$metaContentType - .substr($markup, $headStart+6); + $headStart = 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