1
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-08-06 08:37:30 +02:00

[core] Add urljoin (#756)

Adds php-urljoin from https://github.com/fluffy-critter/php-urljoin to replace the custom implementation of 'defaultLinkTo'
This commit is contained in:
Eugene Molotov
2018-08-02 09:31:56 +05:00
committed by LogMANOriginal
parent 9d0452d11b
commit df58f5bbdb
3 changed files with 144 additions and 9 deletions

View File

@@ -34,6 +34,17 @@ if(!file_exists($vendorLibSimpleHtmlDom)) {
}
require_once $vendorLibSimpleHtmlDom;
$vendorLibPhpUrlJoin = __DIR__ . PATH_VENDOR . '/php-urljoin/src/urljoin.php';
if(!file_exists($vendorLibPhpUrlJoin)) {
throw new \HttpException('"php-urljoin" library is missing.
Get it from https://github.com/fluffy-critter/php-urljoin and place the script "urljoin.php" in '
. substr(PATH_VENDOR, 4)
. '/php-urljoin/src/',
500);
}
require_once $vendorLibPhpUrlJoin;
/* Example use
require_once __DIR__ . '/lib/RssBridge.php';

View File

@@ -42,18 +42,11 @@ function backgroundToImg($htmlContent) {
function defaultLinkTo($content, $server){
foreach($content->find('img') as $image) {
if(strpos($image->src, 'http') === false
&& strpos($image->src, '//') === false
&& strpos($image->src, 'data:') === false)
$image->src = $server . $image->src;
$image->src = urljoin($server, $image->src);
}
foreach($content->find('a') as $anchor) {
if(strpos($anchor->href, 'http') === false
&& strpos($anchor->href, '//') === false
&& strpos($anchor->href, '#') !== 0
&& strpos($anchor->href, '?') !== 0)
$anchor->href = $server . $anchor->href;
$anchor->href = urljoin($server, $anchor->href);
}
return $content;