子串提取。获取最后一个'/'之前的字符串

时间:2019-04-22 09:53:31

标签: php string substring

我正在尝试提取一个子字符串。我需要在PHP中做一些帮助。

以下是我正在使用的一些示例字符串以及需要的结果:

$temp = "COM1904150001","1","ytuaioeighalk","tyueiff","assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/"

我需要的结果是:

$temp = d02c25b2-5c07-11e9-8f1a-02fd8bf7d052

我想在最后一个'/'处获取字符串

到目前为止,我已经尝试过:

substr($temp, 0, strpos($temp, '/'))

但是,似乎根本没有用。

是否可以使用PHP方法处理这种情况?

4 个答案:

答案 0 :(得分:0)

您可以使用explode()end()函数。

说明的步骤:

1)用/来使字符串爆炸()

2)替换双引号"

3)array_filter()删除空白元素。

4)最后一个元素end()的{​​{1}}和最后一个/之后的空白元素已被删除。

代码:

/

输出:

<?php 
$temp = '"COM1904150001","1","ytuaioeighalk","tyueiff","assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/"';
$temp = str_replace('"', '', $temp);
$url = explode('/', $temp);
$url = array_filter($url);
$requiredSegment = end($url);

echo '<pre>';
print_r($requiredSegment);
echo '</pre>';

See it live here:

答案 1 :(得分:0)

您可以使用substr()提取数据,但可以使用strrpos()来查找最后一个/位置(尽管如此,您必须删除尾随的/

$temp = "assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/";
// Trim off trailing / or "
$temp = rtrim($temp, "/\"");
// Return from the position of the last / (+1) to the end of the string
$temp = substr($temp, strrpos($temp, '/')+1);
echo $temp;

给予...

d02c25b2-5c07-11e9-8f1a-02fd8bf7d052

答案 2 :(得分:0)

只需尝试以下代码段

$temp = '"COM1904150001","1","ytuaioeighalk","tyueiff","assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/"';
$temp = rtrim(str_replace('celc_coba/','',strstr($temp, 'celc_coba/')), "/\"")

结果

d02c25b2-5c07-11e9-8f1a-02fd8bf7d052

答案 3 :(得分:0)

您可以通过以下方式执行此操作:explode

$str = '"COM1904150001","1","ytuaioeighalk","tyueiff","assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/"';
$pieces = explode("/", $str );

示例

$str = '"COM1904150001","1","ytuaioeighalk","tyueiff","assets/report/celc_coba/d02c25b2-5c07-11e9-8f1a-02fd8bf7d052/"';

$pieces = explode("/", $str );

print_r($pieces);


$count= count($pieces);


echo  $pieces[$count-2];

Codepad