[英]PHP Extract part of a string
我知道对此有很多疑问,但似乎没有简单的方法可以完成我想要的事情。 以以下字符串为例:
expires Friday, December 21, 2012 @ 11:59pm ET
expires Saturday, December 22, 2012 @ 9:59pm ET
这两个字符串相似,但是以下代码不一致:
echo substr($string, 14, 27);
因为它输出以下内容:
Friday, December 21, 2012 @
Saturday, December 21, 2012
显然,我不想保留@符号。 有没有一种方法可以简单地保留日期,同时删除“ expires”和“ @ ##:## pm ET”?
preg_replace('/expires\s*(.*?)@/', '\1', $string);
您也确实不需要使用正则表达式,但是我会这样做,因为它看起来更简单。 这是一个非正则表达式的解决方案:
//I took 14 from you, but it seems to be 9
substr($string, 14, strpos($string, '@') - strlen($string));
您想看一下http://php.net/manual/wn/function.strpos.php
strpos“找到子串在字符串中第一次出现的位置”
所以你想做这样的事情:
$string = "expires Friday, December 21, 2012 @ 11:59pm ET";
$string = str_replace("expires ", "", $string); //remove "expires "
$string = substr($string, 0, strpos($string, "@")-1); // Copy anthing up to the first "@"
echo($string);
我必须在我工作的网站上格式化完全相同的字符串。 这就是我用的。 似乎可以正常工作:
<?PHP
function FormatDate($string)
{
$exploded = explode(" ", $string);
$newstring = $exploded['2']." ".$exploded['3']." ".$exploded['4']." ".$exploded['5'];
return $newstring;
}
echo FormatDate('expires Friday, December 21, 2012 @ 11:59pm ET');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.