在字符串中出现倒数第二个字符之前删除所有内容

问题描述 投票:0回答:2
$link = "http://stackoverflow.com/questions/this/that/ok/";
$link = trim(substr($link, strrpos($link, '/') + 1));
echo $link

这将不返回任何内容,因为它会在上次出现/字符及其最后一个之前删除所有内容。

如何让它从ok返回http://stackoverflow.com/questions/this/that/ok/

php string
2个回答
0
投票

strrpos允许您指定开始搜索的位置。

将您的行更改为:

$newLink = trim(substr($link, strrpos($link, '/', -1) + 1));

将在结束前开始搜索一个字符。正如@SurrealDreams指出的那样,你仍然需要通过将/添加到你在结果中修剪的字符来修剪结果的最后一个/(如果有的话)。


0
投票

删除最后一个登录字符串,如果它是/

$link = "http://stackoverflow.com/questions/this/that/ok/";

if(strlen($link)== strrpos($link, '/')+1)
    $link = substr_replace($link ,"",-1);

$link = substr($link, strrpos($link, '/') + 1);

echo $link;

拆分URL的更好选择是使用RegEx。有一个名为preg_match的函数。

© www.soinside.com 2019 - 2024. All rights reserved.