我想要创建一个函数,从冒号后的文件中抓取每一行。我很难把字符串切成这样的字符。
所以我想切分这个:
“日期:2017年3月27日”至“2017年3月27日”“开始时间:晚上12:30”至“...etc”
注意:我不需要帮助编写实际的函数,我只是想知道如何在第一个冒号处拼接行
发布于 2017-03-16 00:10:11
对于您的情况,使用:$string = "date: march 27, 2017";或$string = "start: 12:30pm";
您可以选择以下任何一种技术:
*注意:如果有人担心针的存在(冒号或冒号空间),那么您应该使用其中一个选项来验证错误,否则需要额外的注意事项才能捕获没有指针的字符串。
$string = ($pos = strpos($string, ": ")) ? substr($string, $pos + 2) : $string;$string = ($sub = strstr($string, ": ")) ? substr($sub, 2) : $string;使用爆炸() *需要冒号空间:
$string = explode(': ', $string, 2)[1];$array = explode(': ', $string, 2);
$string = end($array);
// nesting explode() inside end() will yield the following notice:
// NOTICE Only variables should be passed by reference$string = preg_replace("/^.*?:\s/", "", $string);$string = preg_match("/^.*?:\s\K.*/", $string, $m) ? $m[0]: $string;这是一个演示,任何人谁可能想要运行一些测试,他们自己的雪花案例。
发布于 2017-03-15 23:30:30
使用strstr - http://php.net/manual/en/function.strstr.php
应该喜欢接近的东西
$str = 'date: march 27, 2017';
$str = strstr($str, ':');
$str = trim(substr($str, 1));
var_dump($str);
string(14) "march 27, 2017"还没有测试过它,但是根据文档它应该能做到
发布于 2017-03-15 23:42:38
正如@chris85所建议的,使用strpos和substr的解决方案
$date = "date: march 27, 2017";
$yourString = $date;
//get the position of `:`
if(strpos($date, ":")!==false) {
//get substring
$yourString = substr($date, strpos($date, ":") + 1);
}
echo $yourString;编辑
根据@mickmackusa注释,在提取的文本之前,上面的答案可能有尾随空格,以便您可以使用:
$yourString = ltrim($yourString)https://stackoverflow.com/questions/42822585
复制相似问题