我正在尝试使用preg_replace从url中提取锚标记及其后面的所有内容。我找到一个删除#之后的所有内容,但是我想要一个删除#及其背后的所有内容。
谢谢, 史蒂夫
答案 0 :(得分:9)
您可以尝试parse_url功能:
$url = "http://blah.com#removethis";
print_r(parse_url($url));
fragment - 在hashmark#
之后
<强>输出:强>
Array
(
[scheme] => http
[host] => blah.com
[fragment] => removethis
)
答案 1 :(得分:3)
没有正则表达式的另一种方式:
$newurl = substr($url, 0, strpos($url,"#"));
答案 2 :(得分:2)
$url = preg_replace('/#.*$/', '', $url);
答案 3 :(得分:1)
$url = preg_replace('@#.*$@', '', $url);
答案 4 :(得分:0)
如果有适当的库函数来执行此任务,请不要使用正则表达式。