我有3个单独的字符串:
$d = 'Created on November 25, 2009';
$v = 'Viewed 17,603 times';
$h = '1,200 hits';
需要转换为:
$d1 =
{unix时间戳为2009年11月25日};
$v1 = "17603";
(如果存在则删除逗号)
$h1 = "1200";
(如果存在则删除逗号)
最有效的方法是什么(可能使用正则表达式)?任何代码片段都会很棒。
答案 0 :(得分:0)
第一个:
$d_stripped = str_ireplace("Created on ", null, $d);
$created = strtotime($d_stripped);
对于第二个和第三个,比我更熟练的正则表达式肯定会提供一个很好的解决方案。
答案 1 :(得分:0)
$d = 'Created on November 25, 2009';
$v = 'Viewed 17,603 times';
$h = '1,200 hits';
$d1 = strtotime( str_replace( 'Created On ', '', $d ) );
$v1 = str_replace( ',', '', preg_replace( '/[a-zA-Z\s]+([0-9,]+)[a-zA-Z ]+/', '$1', $v ) );
$h1 = str_replace( ',', '', preg_replace( '/([0-9,]+)[a-zA-Z ]+/', '$1', $h ) );
答案 2 :(得分:0)
使用Kerry的str_replace解决方案。简短,可维护。
您可以使用正则表达式删除逗号,但如果您无法编写它,您将如何修复它?
OR
您可能没有逗号(数字小于1000),一个逗号(1,000-999,999),两个逗号(1,000,000-999,999,999)..然后您可以使用如下表达式:
$v = 'Viewed 17,603 times'; $h = '1,200 hits'; $pattern = '/(\d+)[,]*(\d*)[,]*(\d*)/'; $replacement = '${1}${2}${3}'; echo preg_replace($pattern, $replacement, $v); echo preg_replace($pattern, $replacement, $h);