Я думал, что это непростая задача, но, видимо, нет.
$dom = new DOMDocument();
$dom->loadHTMLFile("myhtml.html");
$timestamp = $dom->getElementById('timestamp');
$timestamp = $dom->saveHTML($timestamp);
$matches_out = array();
if (preg_match_all('/<div id="timestamp">(.*)<\/div>/', $timestamp, $matches_out)) {
$timestamp = $matches_out[0];
}
echo $timestamp;
Мне нужно получить значение из массива и сохранить его в переменной $timestamp
. Когда я использую print_r()
я получаю Array ( [0] =>1422936994)
. Я думал, что для того, чтобы получить свою $matches_out[0]
метку, я просто делаю $matches_out[0]
потому что я могу видеть ее прямо там, на нулевом индексе, или я что-то $matches_out[0]
.
Попытка повторить это Notice: Array to string conversion in C:\xampp\htdocs\myscript.php on line 10
меня: Notice: Array to string conversion in C:\xampp\htdocs\myscript.php on line 10
$matches_out
- многомерный массив. Таким образом, ваш правильный код будет выглядеть как $matches_out[0][0]
. Проверьте ваш массив снова, чтобы убедиться, что вы получили правильное значение.
См. Preg_match_all
$ timestamp - массив. Поэтому вместо
echo $timestamp;
делать
echo $timestamp[0];
И еще раз, если вы не хотите иметь индексы:
$newTimestamp = $timestamp[0];
echo $newTimestamp;
Вы вызываете неправильный элемент, временная метка, которую переменная стала массивом, вызывает ее так же, как это
$timestamp[0]
$myResult = $timestamp[0] - 100;
потому что выше только что получает меня -100