Php 替换和移除字符串的部分
我有一个由如下URL组成的字符串:Php 替换和移除字符串的部分,php,Php,我有一个由如下URL组成的字符串:http://www.foo.com/parentfoo/childfoo/我想把它变成http://www.foo.com/parentfoo#childfoo 删除最后两个“/”并将倒数第二个“/”替换为“#”的最佳方法是什么?首先,找到最后一个位置: $url = "http://www.foo.com/parentfoo/childfoo/"; $last = strrpos($url, '/'); if ($last === false) { r
http://www.foo.com/parentfoo/childfoo/
我想把它变成http://www.foo.com/parentfoo#childfoo
删除最后两个“/”并将倒数第二个“/”替换为“#”的最佳方法是什么?首先,找到最后一个位置:
$url = "http://www.foo.com/parentfoo/childfoo/";
$last = strrpos($url, '/');
if ($last === false) {
return false;
}
从那里,找到最后的第二个:
$next_to_last = strrpos($url, '/', $last - strlen($url) - 1);
$var1 = substr_replace($url,"",$last);
echo $var2 = substr_replace($var1, "#", $next_to_last, 1);
// http://www.foo.com/parentfoo#childfoo
首先,找到最后一个位置:
$url = "http://www.foo.com/parentfoo/childfoo/";
$last = strrpos($url, '/');
if ($last === false) {
return false;
}
从那里,找到最后的第二个:
$next_to_last = strrpos($url, '/', $last - strlen($url) - 1);
$var1 = substr_replace($url,"",$last);
echo $var2 = substr_replace($var1, "#", $next_to_last, 1);
// http://www.foo.com/parentfoo#childfoo
首先,找到最后一个位置:
$url = "http://www.foo.com/parentfoo/childfoo/";
$last = strrpos($url, '/');
if ($last === false) {
return false;
}
从那里,找到最后的第二个:
$next_to_last = strrpos($url, '/', $last - strlen($url) - 1);
$var1 = substr_replace($url,"",$last);
echo $var2 = substr_replace($var1, "#", $next_to_last, 1);
// http://www.foo.com/parentfoo#childfoo
首先,找到最后一个位置:
$url = "http://www.foo.com/parentfoo/childfoo/";
$last = strrpos($url, '/');
if ($last === false) {
return false;
}
从那里,找到最后的第二个:
$next_to_last = strrpos($url, '/', $last - strlen($url) - 1);
$var1 = substr_replace($url,"",$last);
echo $var2 = substr_replace($var1, "#", $next_to_last, 1);
// http://www.foo.com/parentfoo#childfoo
下面是一个使用
regex
查找最后一个/
的解决方案
<?php
$url = 'http://www.foo.com/parentfoo/childfoo/';
$output = preg_replace('!/([^/]+)/$!', "/#\\1", $url);
echo $output."\n";
?>
这里有一点关于它是如何工作的解释
定义正则表达式
而不是通常的/
,因为我们试图匹配表达式中的/
,这为我们避免了逃避/
带来的一定程度的困惑和头痛/([^/]+)/$
。我们正在匹配一个文本/
,后跟一些非零数量的非/
字符,后跟另一个文本/
,后跟字符串的末尾$
。通过将匹配项绑定到字符串的末尾,我们确保匹配的两个文本/
恰好是输入中的最后一个和倒数第二个/
()
捕获两个/
之间的表达式,替换表达式\1
在替换过程中将其替换回下面是一个使用
regex
查找最后一个/
的解决方案
<?php
$url = 'http://www.foo.com/parentfoo/childfoo/';
$output = preg_replace('!/([^/]+)/$!', "/#\\1", $url);
echo $output."\n";
?>
这里有一点关于它是如何工作的解释
定义正则表达式
而不是通常的/
,因为我们试图匹配表达式中的/
,这为我们避免了逃避/
带来的一定程度的困惑和头痛/([^/]+)/$
。我们正在匹配一个文本/
,后跟一些非零数量的非/
字符,后跟另一个文本/
,后跟字符串的末尾$
。通过将匹配项绑定到字符串的末尾,我们确保匹配的两个文本/
恰好是输入中的最后一个和倒数第二个/
()
捕获两个/
之间的表达式,替换表达式\1
在替换过程中将其替换回下面是一个使用
regex
查找最后一个/
的解决方案
<?php
$url = 'http://www.foo.com/parentfoo/childfoo/';
$output = preg_replace('!/([^/]+)/$!', "/#\\1", $url);
echo $output."\n";
?>
这里有一点关于它是如何工作的解释
定义正则表达式
而不是通常的/
,因为我们试图匹配表达式中的/
,这为我们避免了逃避/
带来的一定程度的困惑和头痛/([^/]+)/$
。我们正在匹配一个文本/
,后跟一些非零数量的非/
字符,后跟另一个文本/
,后跟字符串的末尾$
。通过将匹配项绑定到字符串的末尾,我们确保匹配的两个文本/
恰好是输入中的最后一个和倒数第二个/
()
捕获两个/
之间的表达式,替换表达式\1
在替换过程中将其替换回下面是一个使用
regex
查找最后一个/
的解决方案
<?php
$url = 'http://www.foo.com/parentfoo/childfoo/';
$output = preg_replace('!/([^/]+)/$!', "/#\\1", $url);
echo $output."\n";
?>
这里有一点关于它是如何工作的解释
定义正则表达式
而不是通常的/
,因为我们试图匹配表达式中的/
,这为我们避免了逃避/
带来的一定程度的困惑和头痛/([^/]+)/$
。我们正在匹配一个文本/
,后跟一些非零数量的非/
字符,后跟另一个文本/
,后跟字符串的末尾$
。通过将匹配项绑定到字符串的末尾,我们确保匹配的两个文本/
恰好是输入中的最后一个和倒数第二个/
()
捕获两个/
之间的表达式,替换表达式\1
在替换过程中将其替换回首先删除最后一个斜杠,然后用散列替换最后一个斜杠
<?php
$url = "http://www.foo.com/parentfoo/childfoo/";
$url = substr($url, 0, -1);
$add = "#";
$new = preg_replace("~\/(?!.*\/)~", $add, $url);
echo $new;
?>
首先删除最后一个斜杠,然后用散列替换最后一个斜杠
<?php
$url = "http://www.foo.com/parentfoo/childfoo/";
$url = substr($url, 0, -1);
$add = "#";
$new = preg_replace("~\/(?!.*\/)~", $add, $url);
echo $new;
?>
首先删除最后一个斜杠,然后用散列替换最后一个斜杠
<?php
$url = "http://www.foo.com/parentfoo/childfoo/";
$url = substr($url, 0, -1);
$add = "#";
$new = preg_replace("~\/(?!.*\/)~", $add, $url);
echo $new;
?>
首先删除最后一个斜杠,然后用散列替换最后一个斜杠
<?php
$url = "http://www.foo.com/parentfoo/childfoo/";
$url = substr($url, 0, -1);
$add = "#";
$new = preg_replace("~\/(?!.*\/)~", $add, $url);
echo $new;
?>
regex之地。。。我永远也不会明白它是如此美丽。谢谢你!regex之地。。。我永远也不会明白它是如此美丽。谢谢你!regex之地。。。我永远也不会明白它是如此美丽。谢谢你!regex之地。。。我永远也不会明白它是如此美丽。谢谢你!这太棒了!当我发布这篇文章时,我开始阅读SEO,我想我想保留第二个/to make/#,但无论如何,谢谢你。现在我想我更了解preg_replace了。没问题,只需更改--$add=“#”;--至--$add=“/#”;这太棒了!当我发布这篇文章时,我开始阅读SEO,我想我想保留第二个/to make/#,但无论如何,谢谢你。现在我想我是联合国