使用php domdocument添加根路径时出现问题
我想为那些使用PHPDOM文档没有根路径的锚定标记添加站点的根路径,到目前为止,我已经用str_replace函数做了一个函数来实现这一点,但是对于一些链接,它添加了三倍的根路径。那么我应该在这个函数中编辑什么 问题:=问题在于为每个锚定标记添加三倍的根路径,而不是某些锚定标记。 $HTML变量有许多锚定标记,大约超过200个链接。 图像也是如此 我知道这是一个非常肮脏的问题,但我错过了什么,我无法得到使用php domdocument添加根路径时出现问题,php,domdocument,Php,Domdocument,我想为那些使用PHPDOM文档没有根路径的锚定标记添加站点的根路径,到目前为止,我已经用str_replace函数做了一个函数来实现这一点,但是对于一些链接,它添加了三倍的根路径。那么我应该在这个函数中编辑什么 问题:=问题在于为每个锚定标记添加三倍的根路径,而不是某些锚定标记。 $HTML变量有许多锚定标记,大约超过200个链接。 图像也是如此 我知道这是一个非常肮脏的问题,但我错过了什么,我无法得到 function addRootPathToAnchor($HTML) { $tmp
function addRootPathToAnchor($HTML)
{
$tmpHtml = '';
$xml = new DOMDocument();
$xml->validateOnParse = true;
$xml->loadHTML($HTML);
foreach ($xml->getElementsByTagName('a') as $a )
{
$href = $a->getAttribute('href');
if(strpos($href,'www' > 0))
continue;
else
$HTML = str_replace($href,"http://www.mysite.com/".$href,$HTML);
}
return $HTML;
}
您不应该使用if(strpos($href,'www'>0))
而应该使用if(strpos($href,'www')!==false)
>0
在函数调用中(strpos()
)。我发现您的代码中存在一些问题:
不要忘记告诉您的代码运行时遇到了哪些问题。如果您能更好地帮助您,那就太好了。您能不能只使用HTML-
-标记来达到同样的效果?它不起作用,同样的问题,但您告诉我函数中有一个错误>0。请阅读“将位置作为整数返回”。因此,如果您检查strpos($href,'www')>0
,则,对于像“www.example.com”这样的字符串,这将是false。
$isRelative = (bool) !parse_url($url, PHP_URL_SCHEME);
require_once('Net/URL2.php'); # or configure your autoloader
$baseUrl = 'http://www.example.com/test/images.html';
$hrefRelativeOrAbsolute = '...';
$baseUrl = new Net_URL2($baseUrl);
$urlAbsolute = (string) $baseUrl->resolve($hrefRelativeOrAbsolute);