webjey

Рейтинг
46
Регистрация
09.04.2013

нужно ли оно вообще? Вообще да - 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;

Не забудьте сделать бекап.

privetetoya:
если я потом захочу поменять какую то информацию на всех страницах сразу, например телефон или контакты, придется все это вручную на каждой странице делать?

Да.

privetetoya:
может есть какие инструменты чтобы этого избежать?

цмс?;)

mts2050:
Warning: can't write entry into mtab, but will mount the file system anyway

Внимание : не могу записать данные в mtab , но в любом случае файловая система будет смонтирована

Могу предложить такой вариант - https://jsfiddle.net/xqhv2vqw/ .

Если четко по ТЗ

djdiplomat:
"Выбрать все элементы td у которых id не равен prev или next, и при этом есть дочерний элемент a"

то только javascript

Как то так:

1. Написать bash скрипт


#!/bin/bash
source `which virtualenvwrapper.sh`
cd /etc/path_to_application
workon application
python manage.py parse
deactivate

2. Дать права на исполнение


chmod +x myscript.sh

3. Добавить в крон


crontab -e

Подробнее http://stackoverflow.com/questions/7538628/virtualenvwrapper-functions-unavailable-in-shell-scripts

Всего: 193