首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php获取.ism和斜杠之间的字符串?

如何使用php获取.ism和斜杠之间的字符串?
EN

Stack Overflow用户
提问于 2013-06-14 07:34:11
回答 3查看 400关注 0票数 2

我有一个很大的字符串,我想提取.ism和之前的斜杠/之间的数据。例如,我想要获取:life-episode-galaxy

我当前的代码给出了.ism之前的所有数据。谁能告诉我这里出了什么问题,以及如何在此之前仅在.ism和斜杠/之间获取数据?

代码语言:javascript
复制
<?

$code="media=http://somesite.com/4534543kjlkljklkjlkkljlkdsfsfo/life-episode-galaxy.ism/manifest,deliverymethod=adaptiv";
$startsAt3 = strpos($code, "/") + strlen("/");
$endsAt3 = strpos($code, ".ism", $startsAt3);
$result3 = substr($code, $startsAt3, $endsAt3 - $startsAt3);

echo $result3;

?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-14 07:42:49

我假设您的链接将始终具有相同数量的斜杠,您可以将其分解为一个数组并输出正确的元素,然后使用str_replace删除不需要的数据

代码语言:javascript
复制
$code="media=http://somesite.com/4534543kjlkljklkjlkkljlkdsfsfo/life-episode-galaxy.ism/manifest,deliverymethod=adaptiv";
$array = explode("/", str_replace("//", "/", $code));
echo str_replace('.ism', '', $array[3]);

这将输出

代码语言:javascript
复制
life-episode-galaxy

Live Sample

票数 1
EN

Stack Overflow用户

发布于 2013-06-14 07:37:18

您可以使用regexp,但这很无聊。

可以将strrpos与第3个offset参数一起使用,并使用负偏移。

代码语言:javascript
复制
$ism_pos = strpos($code, ".ism");
$last_slash_pos_before_ism = strrpos($code, "/", $ism_pos - strlen($code));
$result = substr($code, $last_slash_pos_before_ism, $ism_pos);

可能到处都是,检查一下。

票数 1
EN

Stack Overflow用户

发布于 2013-06-14 07:39:15

我将使用正则表达式:

代码语言:javascript
复制
$pattern = '#/(.*)\.ism/#U';
$matches = array();
$found = preg_match($pattern, $string, $matches);
if (1 === $found) {
    $your_desired_string = $matches[1];
} else {
    // not found
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17098938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档