В моем коде я пытаюсь извлечь дату / время только из <td>
и затем хочу преобразовать его в метку времени 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
возвращает многомерный массив, а не один элементный массив, как preg_match
, Ваша группа захвата $result[1][0]
( 1
index — первая группа захвата, все остальные индексы — дополнительные группы захвата). Для перевода строки в unix время вы можете использовать strtotime
с str_replace
(чтобы получить его в формате strtotime
может справиться, вы также можете использовать preg_replace
и удалите все не алфавитно-цифровые / пробельные символы).
echo strtotime(str_replace('|', '', '02 April 2017 | 05:55 PM'));
Демо-версия: https://3v4l.org/MsOlv
Других решений пока нет …