Add w3m support

This commit is contained in:
2022-10-16 21:39:26 +02:00
parent 25c0f66cff
commit f5e165a446

View File

@@ -35,13 +35,16 @@ class Feed extends PhpObject
array_walk($asItems, array($this, 'addItem')); array_walk($asItems, array($this, 'addItem'));
} }
public function loadRss($sUrl) public function loadRss($sUrl, $sMode='curl')
{ {
$sRssContent = '';
switch($sMode) {
case 'curl':
$oCurl = curl_init(); $oCurl = curl_init();
curl_setopt($oCurl, CURLOPT_URL, $sUrl); curl_setopt($oCurl, CURLOPT_URL, $sUrl);
curl_setopt($oCurl, CURLOPT_HEADER, false); curl_setopt($oCurl, CURLOPT_HEADER, false);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($oCurl, CURLOPT_USERAGENT, array_key_exists('HTTP_USER_AGENT', $_SERVER)?$_SERVER['HTTP_USER_AGENT']:'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0'); curl_setopt($oCurl, CURLOPT_USERAGENT, array_key_exists('HTTP_USER_AGENT', $_SERVER)?$_SERVER['HTTP_USER_AGENT']:'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0');
$fCookieJar = @tempnam('/tmp','cookie'); $fCookieJar = @tempnam('/tmp','cookie');
curl_setopt($oCurl, CURLOPT_COOKIESESSION, true); curl_setopt($oCurl, CURLOPT_COOKIESESSION, true);
curl_setopt($oCurl, CURLOPT_COOKIEJAR, $fCookieJar); curl_setopt($oCurl, CURLOPT_COOKIEJAR, $fCookieJar);
@@ -49,6 +52,12 @@ class Feed extends PhpObject
//curl_setopt($oCurl, CURLOPT_ENCODING, 'gzip'); //curl_setopt($oCurl, CURLOPT_ENCODING, 'gzip');
$sRssContent = curl_exec($oCurl); $sRssContent = curl_exec($oCurl);
curl_close($oCurl); curl_close($oCurl);
break;
case 'w3m':
exec('w3m -dump '.$sUrl, $asOutput, $iResult);
$sRssContent = implode("\n", $asOutput);
break;
}
//Parse document encoding (useless) //Parse document encoding (useless)
$sEncoding = $this->getPregMatch("'encoding=[\'\"](.*?)[\'\"]'si", $sRssContent); $sEncoding = $this->getPregMatch("'encoding=[\'\"](.*?)[\'\"]'si", $sRssContent);