regex — PHP preg_match извлекает дату и время внутри & lt; td & gt; и конвертировать во время Unix

В моем коде я пытаюсь извлечь дату / время только из <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);

0

Решение

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]