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:
committed by
LogMANOriginal
parent
9d0452d11b
commit
df58f5bbdb
@@ -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';
|
||||
|
11
lib/html.php
11
lib/html.php
@@ -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;
|
||||
|
Reference in New Issue
Block a user