如何在PHP中结束字符串?

时间:2017-12-01 12:11:55

标签: php substring

Substr PHP

我有public class HomeController : Controller { private readonly IDbRepository repository; public HomeController (IDbRepository repository) { this.repository = repository; } public ActionResult Index() { var posts = this.repository.GetPosts(); //to do : Return something } } 这样string。 最后一个字符是元素的http://domain.sf/app_local.php/foo/bar/33。他的长度不止一个,所以我不能使用:

id

在这种情况下必须是

substr($dynamicstring, -1);

如何在substr($dynamicstring, -2); 上的“/ bar /”之后获取字符而不取决于长度?

7 个答案:

答案 0 :(得分:5)

为确保您能够立即获得分段,请使用正则表达式:

preg_match('~/bar/([^/?&#]+)~', $url, $matches);
echo $matches[1]; // 33

答案 1 :(得分:2)

您可以使用explode('/',$dynamicstring)将字符串拆分为每个/之间的字符串数组。然后你可以在结果上使用end()来得到最后一部分。

$id = end(explode('/',$dynamicstring));

希望这有帮助!

答案 2 :(得分:2)

您可以使用explode,如下所示:

$id = explode('/',$var);

将元素放在你拥有id的位置。

答案 3 :(得分:0)

试试这个:

$dynamicstring = 'http://domain.sf/app_local.php/foo/bar/33';

// split your string into an array with /
$parts = explode('/', $dynamicstring);

// move the array pointer to the end
end($parts);

// return the current position/value of the $parts array
$id = current($parts);

// reset the array pointer to the beginning => 0
// if you want to do any further handling
reset($parts);

echo $id;
// $id => 33

测试yourself here

答案 4 :(得分:0)

您可以使用正则表达式来执行此操作:

$dynamicstring = "http://domain.sf/app_local.php/foo/bar/33";
if (preg_match('#/([0-9]+)$#', $dynamicstring, $m)) {
    echo $m[1];
}

答案 5 :(得分:0)

我在回答之前自己测试了一下。其他答案也是合理的,但这可以根据您的需要进行..

<?php
$url = "http://domain.sf/app_local.php/foo/bar/33";
$id = substr($url, strpos($url, "/bar/") + 5);    
echo $id;

答案 6 :(得分:-2)

请找到以下答案。

$str = "http://domain.sf/app_local.php/foo/bar/33";
$splitArr = explode('/',explode('//',$str)[1]);
var_dump($splitArr[count($splitArr)-1]);

希望这有帮助。