如何在php DOM中获取href =“animals.html”的链接?

时间:2014-03-11 09:29:09

标签: php html dom preg-match str-replace

我的网页是www.example.com/somthing/types.html,www.example.com/somthing2/types.html这个html文件有一个标记<a href="animals.html" . somthing,somthing2是每个文件包含types.html链接的文件和animals.html这样的文件在同一个文件夹中。 当我用dom得到它时它只显示“animals.html”但我想得到“www.example.com/somthing/animals.html”。如何从www.example.com/somthing/types.html中删除types.html并放入www.example.com/somthing+/animals.html。

我只需要从www.example.com/somthing/types.html中删除“types.html”。 保留文件夹并删除“/".

之后的最后一部分

我不知道总是最后一部分(文件名)所以我需要一种方法来删除最后一个“/”之后的东西。抱歉我的语言问题 如果我知道文件名(types.html),则str_replace('types.html' ,'','www.example.com/somthing/types.html');

4 个答案:

答案 0 :(得分:1)

您可以使用此

preg_replace('/([^\/]*$)/', '', 'www.example.com/somthing/types.html');

这将替换最后/

之后的所有字符

输出为www.example.com/somthing/

答案 1 :(得分:0)

你也可以用旧时尚的方式做到这一点:

$url = 'www.example.com/somthing/types.html';

$divided = explode( '/', $url );
array_pop( $divided );

$new_url = implode( '/', $divided );

答案 2 :(得分:0)

Try this
$string = 'www.examle.com/somthing/types.html';
echo preg_replace('#\/[^/]*$#', '', $string);

答案 3 :(得分:0)

如果你正在考虑快速和最快,你可以考虑这段代码而不是preg_replace

$url = explode("/",$url);
array_pop($url);
$url = implode("/",$url);

再一次它的速度要快得多,所以请你这样做。)。

证明: http://sandbox.onlinephpfunctions.com/code/5083e02d4f171502ef1e7c87c8dd9a957ee0d8fb