PHP preg_match 提取 <td> 里面的 date/time 并转换成 Unix 时间
PHP preg_match extract date/time inside <td> and convert into Unix time
在我的代码中,我试图仅从 <td>
中提取 date/time,然后想将其转换为 Unix 时间戳,但我一直无法提取它赢得的 preg_match_all()
函数当我使用 $result[0]
或 $result[1]
时不显示任何内容。我不知道为什么,但是当我转储数组时,我得到了以下结果:
我的数组
Array
(
[0] => Array
(
[0] => <td align="left" valign="top">02 April 2017 | 05:55 PM</td>
)
[1] => Array
(
[0] => 02 April 2017 | 05:55 PM
)
)
这是我的 PHP 代码
preg_match_all('/<td align="left" valign="top">([^"]*)<\/td>/', $printtable, $result);
var_dump($result);
preg_match_all
returns 多维数组,而不是像 preg_match
这样的单元素数组。您的捕获组是 $result[1][0]
(1
索引是第一个捕获组,所有其他索引都是附加捕获组)。要将字符串转换为 unix 时间,您可以使用 strtotime
和 str_replace
(将其转换为 strtotime
可以处理的格式,您也可以使用 preg_replace
并去除所有非 alphanumerical/space个字符)。
echo strtotime(str_replace('|', '', '02 April 2017 | 05:55 PM'));
在我的代码中,我试图仅从 <td>
中提取 date/time,然后想将其转换为 Unix 时间戳,但我一直无法提取它赢得的 preg_match_all()
函数当我使用 $result[0]
或 $result[1]
时不显示任何内容。我不知道为什么,但是当我转储数组时,我得到了以下结果:
我的数组
Array
(
[0] => Array
(
[0] => <td align="left" valign="top">02 April 2017 | 05:55 PM</td>
)
[1] => Array
(
[0] => 02 April 2017 | 05:55 PM
)
)
这是我的 PHP 代码
preg_match_all('/<td align="left" valign="top">([^"]*)<\/td>/', $printtable, $result);
var_dump($result);
preg_match_all
returns 多维数组,而不是像 preg_match
这样的单元素数组。您的捕获组是 $result[1][0]
(1
索引是第一个捕获组,所有其他索引都是附加捕获组)。要将字符串转换为 unix 时间,您可以使用 strtotime
和 str_replace
(将其转换为 strtotime
可以处理的格式,您也可以使用 preg_replace
并去除所有非 alphanumerical/space个字符)。
echo strtotime(str_replace('|', '', '02 April 2017 | 05:55 PM'));