在 php 中获取字符串的中间


Getting Middle of string in php

我有这样的字符串

Ameerpet,|Jeans Corner: 040-50607090@05:45PM/6

想要在@之后和之前获取子字符串 /.已尝试以下操作

echo substr($str,strpos($str,'@')+1,strpos($str,'/'))

但是我会在@之后得到整个字符串

输出05:45PM/6

您可以使用preg_match

$match = preg_match('~@'K[^/]*(?=/)~', $str);

演示

试试这个,

    echo substr($str,
                strpos($str,'@')+1,
                strpos($str,'/') - strpos($str,'@') - 1);

第三个参数不是<位置>,其<长度>

参考这个 : http://php.net/manual/en/function.substr.php

substr 的语法不substr(str , start ,end)

正确的语法是string substr ( string $string , int $start [, int $length ] ) 这就是为什么整个东西被打印以实现解决方案的原因,您可以使用@Avinash Raj提供的解决方案。但是,您尝试获取长度为 7 的时间,然后您可以以这种方式使用语法

echo substr($str,strpos($str,'@')+1,7)

谢谢

试试这段代码:

$data = "Ameerpet,|Jeans Corner: 040-50607090@05:45PM/6";    
$first = substr($data, strpos($data, "@") + 1);    
$splitter = "/";
$pieces = explode($splitter, $first );
echo $pieces[0];

你也可以用substr来做

$yourString="Ameerpet,|Jeans Corner: 040-50607090@05:45PM/6";
$valueAfterSpecialChar = substr($yourString, strpos($yourString, "@") + 1); 
echo $desiredOutput= substr($valueAfterSpecialChar, 0, strpos($valueAfterSpecialChar, "/"));