Intereting Posts
Получить список доступных переводов Вы видите какие-либо проблемы (в основном связанные с безопасностью) с тем, как я использовал действия wp_ajax_ *? the_content не возвращает теги <p> Как я могу связать эскиз персонализированного типа сообщения с промежуточным размером wpdb подготовить sql проблему Могу ли я иметь тот же сайт WordPress под другим URL-адресом? Получить пользовательское имя таксономии (а не термин) в пользовательском сообщении Как сделать 2 ленты тегов отображаются на 1 странице? Нужно ли убирать страницы? Профиль пользователя pic, использованный как аватар Вставить таксономию в класс цикла Как я могу перемещать / перенаправлять отдельные сообщения в блоге из одного блога в другой? Использование WP_Query для запроса нескольких категорий с ограниченными сообщениями по категориям? Две формы поиска с разными категориями / сообщениями на страницу Плагин MobilePress и обновление WordPress 4.1

Скребок с использованием переходных процессов

Я использую xPath для очистки дат тура с другого сайта (с разрешения, конечно). Поскольку он обновляется при каждой загрузке страницы, я думал об использовании переходных процессов для хранения данных.

К сожалению, у меня нет опыта использования переходных процессов, и я не могу заставить его работать. Это мой код:

<?php $html = file_get_contents('http://www.example.com'); $doc = new DOMDocument(); libxml_use_internal_errors(TRUE); // disable libxml errors if(!empty($html)) { $doc->loadHTML($html); libxml_clear_errors(); $xpath = new DOMXPath($doc); // Get only the content needed $termine = $xpath->query('//ul[@class="artistEvents"]/li'); if ($termine->length > 0) { foreach ($termine as $termin) { $date = $xpath->query("div[@class='left']/strong", $termin); $location = $xpath->query("div[contains(@class,'right')]", $termin); echo '<tr>'; // Date if ($date->length > 0) { $date = substr($date->item(0)->nodeValue, 3, 10); $date = strftime("%d.%m.%Y", strtotime($date)); echo '<td class="live-date">' . $date . '</td>'; } // Location if ($location->length > 0) { $location = substr($location->item(0)->nodeValue, 14); $location = utf8_decode($location); echo '<td class="live-location">' . $location . '</td>'; } echo '</tr>'; } } else { echo '<p>No dates available.</p>'; } } ?> 

Любая помощь в использовании переходных процессов для хранения этого запроса очень ценится! Кроме того, я никогда не использовал xPath раньше, поэтому, если мой код нуждается в каком-либо улучшении (хотя он работает), я буду рад узнать об этом.

Спасибо!

Попробуйте что-то вроде этого, которое сэкономит время в течение 12 часов. Дайте мне знать, если что-то не имеет смысла.

 <?php $value = get_transient( 'value' ); if ( false === $value ) { $output = ""; $html = file_get_contents('http://www.example.com'); $doc = new DOMDocument(); libxml_use_internal_errors(TRUE); // disable libxml errors if(!empty($html)) { $doc->loadHTML($html); libxml_clear_errors(); $xpath = new DOMXPath($doc); // Get only the content needed $termine = $xpath->query('//ul[@class="artistEvents"]/li'); if ($termine->length > 0) { foreach ($termine as $termin) { $date = $xpath->query("div[@class='left']/strong", $termin); $location = $xpath->query("div[contains(@class,'right')]", $termin); $output .= '<tr>'; // Date if ($date->length > 0) { $date = substr($date->item(0)->nodeValue, 3, 10); $date = strftime("%d.%m.%Y", strtotime($date)); $output .= '<td class="live-date">' . $date . '</td>'; } // Location if ($location->length > 0) { $location = substr($location->item(0)->nodeValue, 14); $location = utf8_decode($location); $output .= '<td class="live-location">' . $location . '</td>'; } $output .= '</tr>'; } } else { $output .= '<p>No dates available.</p>'; } } $value = $output; set_transient( 'value', $value, 12 * HOUR_IN_SECONDS ); } echo $value; ?>