нужно ли оно вообще? Вообще да - https://yandex.ru/support/webmaster/robot-workings/robot-workings-faq.xml#no-last-modified .
Для себя вопрос решил так:
-Создается файловый кэш
-При запросе проверяется время файла кэша (filemtime)
-Отдаем или нет 304
Если изменится ,скажем ,меню - изменится файл кэша,а с ним и время модификации файла.
Как вариант:
<?php $gorod = new SplFileObject(__DIR__ .DIRECTORY_SEPARATOR.'gorod.txt'); $gorod->setFlags(SplFileObject::READ_AHEAD | SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE); $gorod->seek(mt_rand(0,iterator_count($gorod)-1)); echo file_get_contents(__DIR__.'/foto/'.$gorod->current().'/text.txt');
Для начала надо создать приложение ВК.
Для этого:
-Идете сюда - https://vk.com/dev , нажимаете "Создать приложение".Выбираете тип Веб-сайт.
-Потом сюда https://vk.com/apps?act=manage , выбираете свое приложение -> редактировать ->
-> настройки .Там будет показан appID и secret_key.
Как вариант , можно обойтись без регекпов.
<?php class MultiCurlParser{ private $mh; private $handles = array(); private $running = null; public function __construct(&$links) { $this->mh=curl_multi_init(); foreach ($links as $link) { try { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $link); curl_setopt($curl, CURLOPT_TIMEOUT, 20); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_multi_add_handle($this->mh, $curl); $this->handles[] = $curl; } catch (Exception $e) { echo $e->getMessage(); } } } public function run($callback) { do { curl_multi_exec($this->mh, $this->running); } while ($this->running > 0); foreach ($this->handles as $handle) { if (is_callable($callback)) $callback(curl_multi_getcontent($handle)); curl_multi_remove_handle($this->mh,$handle); } curl_multi_close($this->mh); } } $links=Array ( "https://pl.aliexpress.com/store/product/Original-Xiaomi-Redmi-3-Metal-Body-Mobile-Phone-16GB-ROM-Snapdragon-616-Octa-Core-5-0/311331_32593665671.html", "https://pl.aliexpress.com/store/product/Original-Meizu-M3-Mini-4G-LTE-Cell-Phone-Android-5-1-MT6750-Octa-Core-5-0/311331_32659346800.html", "https://pl.aliexpress.com/store/product/Original-Xiaomi-Mipad-MI-Pad-2-Intel-Atom-X5-Full-Metal-Body-Tablet-PC-7-9/103919_32550276647.html", "https://pl.aliexpress.com/store/product/Original-Meizu-U20-Meilan-Mobile-Phone-3GB-RAM-32GB-ROM-5-5-FHD-1080P-MTK-Helio/311331_32724593890.html", "https://pl.aliexpress.com/store/product/Original-Xiaomi-Redmi-3S-Mobile-Phone-4100mAh-Battery-Fingerprint-ID-Snapdragon-430-Octa-Core-2GB-RAM/805191_32683030676.html" ); libxml_use_internal_errors(true); $curl=new MultiCurlParser($links); $curl->run(function ($content){ $dom = new DomDocument(); $dom->loadHTML($content); $xpath = new DomXPath( $dom ); $shopName = trim($xpath->query(".//a[@class='shop-name']")->item(0)->nodeValue); $price = trim($xpath->query(".//span[@class='p-price']")->item(0)->nodeValue); echo $shopName.' '.$price.PHP_EOL; });
<?php $age = DateTime::createFromFormat('Y-m-d', '1990-8-25') ->diff(new DateTime('now')) ->y; printf('%d лет',$age);
ALTER TABLE rdle_post MODIFY date VARCHAR(19); UPDATE rdle_post SET date=FROM_UNIXTIME(date); ALTER TABLE rdle_post MODIFY date DATETIME;
Не забудьте сделать бекап.
Да.
цмс?;)
Внимание : не могу записать данные в mtab , но в любом случае файловая система будет смонтирована
Могу предложить такой вариант - https://jsfiddle.net/xqhv2vqw/ .
Если четко по ТЗ
то только javascript
Как то так:
1. Написать bash скрипт
#!/bin/bashsource `which virtualenvwrapper.sh`cd /etc/path_to_applicationworkon applicationpython manage.py parsedeactivate
2. Дать права на исполнение
chmod +x myscript.sh
3. Добавить в крон
crontab -e
Подробнее http://stackoverflow.com/questions/7538628/virtualenvwrapper-functions-unavailable-in-shell-scripts