-
Notifications
You must be signed in to change notification settings - Fork 344
Closed
Labels
Description
The following extracted code
<?php
require __DIR__ . '/src/common.php';
use Monolog\Handler\ErrorLogHandler;
// change logs to stderr
$handler = new ErrorLogHandler(ErrorLogHandler::OPERATING_SYSTEM, 'debug');
$handler->setFormatter($formatter);
$log->popHandler();
$log->pushHandler($handler);
$webClient = $dice->create(helpers\WebClient::class);
$simplepie = $dice->create(SimplePie::class);
$simplepie->set_curl_options([
helpers\WebClient::class => $webClient
]);
$simplepie->set_file_class(helpers\SimplePieFileGuzzle::class);
$simplepie->set_autodiscovery_level(SIMPLEPIE_LOCATOR_AUTODISCOVERY | SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY);
$simplepie->set_useragent($webClient->getUserAgent());
// load
@$simplepie->set_feed_url('https://dolphin-emu.org/blog/feeds/');
// fetch items
@$simplepie->init();
// on error retry with force_feed
if (@$simplepie->error()) {
@$simplepie->set_autodiscovery_level(SIMPLEPIE_LOCATOR_NONE);
@$simplepie->force_feed(true);
@$simplepie->init();
}
// check for error
if (@$simplepie->error()) {
throw new \Exception($simplepie->error());
}
var_dump([
// save fetched items
'items' => $simplepie->get_items(),
'htmlUrl' => htmlspecialchars_decode($simplepie->get_link(), ENT_COMPAT), // SimplePie sanitizes URLs
'spoutTitle' => $simplepie->get_title(),
]);
fails with
DOMDocument::loadHTML(): Argument #1 ($source) must not be empty {"exception":"[object] (ValueError(code: 0): DOMDocument::loadHTML(): Argument #1 ($source) must not be empty at /var/www/selfoss/vendor/simplepie/simplepie/library/SimplePie/Locator.php:83)
[stacktrace]
#0 /var/www/selfoss/vendor/simplepie/simplepie/library/SimplePie/Locator.php(83): DOMDocument->loadHTML('')
#1 [internal function]: SimplePie_Locator->__construct(Object(helpers\\SimplePieFileGuzzle), 10, 'Selfoss/2.19-SN...', 10, false, Array)
#2 /var/www/selfoss/vendor/simplepie/simplepie/library/SimplePie/Registry.php(183): ReflectionClass->newInstanceArgs(Array)
#3 /var/www/selfoss/vendor/simplepie/simplepie/library/SimplePie.php(1644): SimplePie_Registry->create('Locator', Array)
#4 /var/www/selfoss/vendor/simplepie/simplepie/library/SimplePie.php(1381): SimplePie->fetch_data(Object(SimplePie_Cache_File))
#5 /var/www/selfoss/workbench.php(28): SimplePie->init()
#6 {main}