我想在特定字词后修饰字符串。请检查我在做什么:
$str = "kids-story-in-chaper2.php";
$rest = substr($str, 0, strpos($str, 'in'));
我在这里期望输出: -chapter2.php
但是没有任何效果。
我要在“插入”后进行修剪,我也尝试
substr($str,11);
//工作正常,但是字符串是动态的,因此我必须在“ in”之后进行修剪。因此失败了。
任何想法或建议都会受到欢迎。
答案 0 :(得分:1)
您可以找到单词并将其位置插入substr函数中
$str = "kids-story-in-chaper2.php";
$separator = 'in';
$pos = strpos($str, $separator) + strlen($separator);
$rest = substr($str, $pos);
答案 1 :(得分:0)
如果您确定字符串只有一个-in-
,则可以explode()
字符串。并使用array_pop()
或end()
获取最后一个元素。
$str = "kids-story-in-chaper2.php";
$res = explode('-in-', $str);
$res = array_pop($res);
echo $res;
//output
chapter2.php
答案 2 :(得分:0)
这对您有用吗?
$str = "kids-story-in-chaper2.php";
$rest = end(explode('-in', $str));
答案 3 :(得分:0)
$str = "kids-story-in-chaper2.php";
$rest = substr($str, strpos($str, 'in')+2);
答案 4 :(得分:0)
尝试这个
<?php
$str = "kids-story-in-chaper2.php";
echo $str = substr($str, strpos($str, 'in-')+3);
output,您可以在此处查看
答案 5 :(得分:0)
我通常会尽量避免使用正则表达式,但是在这种情况下,我相信正则表达式是最好的选择,因为如果字符串中缺少“ in”一字,它不会失败,就像其他解决方案一样。
正则表达式将获取$ find之后的所有内容,并将其保存到$ match数组中。
$str = "kids-story-in-chaper2.php";
$find = "in";
preg_match("/". preg_quote($find) . "(.*)/", $str, $match);
if(isset($match[1])) echo $match[1];