PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (14): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 199
Itan Отправлено: 13 Ноября, 2016 - 10:17:48 • Тема: Показ картинок с другого сервера • Форум: Вопросы новичков

Ответов: 7
Просмотров: 485
Хм анализ объявлений с сайтов объявлений и показ пользователю нужных. Это полезный сервис.

Ладно моё, но вам не жалко СВОЕГО времени? Я что, создал тему "обсудите мой проект"? Есть конкретный вопрос - мне нужен конкретный ответ. Остальное меня не волнует. Ваше мнение - в особенности.
Itan Отправлено: 13 Ноября, 2016 - 08:55:06 • Тема: Помогите с ЧПУ • Форум: Вопросы новичков

Ответов: 1
Просмотров: 165
Почему по-отдельности правила работают, а если вместе написать, как в коде ниже, то бесконечная переадресация?

CODE (htmlphp):
скопировать код в буфер обмена
  1. ErrorDocument 404 /404/
  2.  
  3. <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
  4.   Header set Cache-Control "max-age=604800"
  5. </FilesMatch>
  6.  
  7.  
  8. # Вот тут не получается, цикл зацикливается
  9. RewriteEngine on
  10. RewriteBase /
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteCond %{REQUEST_FILENAME} !-f
  13. RewriteRule ^go_to/(.*) modules/redir.php?q=$1 [L]              
  14. RewriteRule ^(.*) index.php?q=$1

(Добавление)
Работает так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. RewriteEngine on
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f          
  6. RewriteRule ^go_to/(.*) modules/redir.php?q=$1 [L]
  7. RewriteCond %{REQUEST_FILENAME} !-d
  8. RewriteCond %{REQUEST_FILENAME} !-f                        
  9. RewriteRule ^(.*) index.php?q=$1 [L]


Вопрос: грамотно ли это?
Itan Отправлено: 13 Ноября, 2016 - 08:50:44 • Тема: Помогите разобраться с ЧПУ • Форум: Обсуждение статей

Ответов: 1
Просмотров: 2166
Почему по-отдельности правила работают, а если вместе написать, как в коде ниже, то бесконечная переадресация?

CODE (htmlphp):
скопировать код в буфер обмена
  1. ErrorDocument 404 /404/
  2.  
  3. <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$">
  4.   Header set Cache-Control "max-age=604800"
  5. </FilesMatch>
  6.  
  7.  
  8. # Вот тут не получается, цикл зацикливается
  9. RewriteEngine on
  10. RewriteBase /
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteCond %{REQUEST_FILENAME} !-f
  13. RewriteRule ^go_to/(.*) modules/redir.php?q=$1 [L]              
  14. RewriteRule ^(.*) index.php?q=$1
Itan Отправлено: 13 Ноября, 2016 - 07:48:25 • Тема: Показ картинок с другого сервера • Форум: Вопросы новичков

Ответов: 7
Просмотров: 485
У меня полезный сервис, никакого вредительства. Есть мысль подключить GD библиотеку и через нее проверять - картинка загружается моим сервером или страница злоумышленником. И отсеивать второй вариант.
Itan Отправлено: 13 Ноября, 2016 - 07:11:53 • Тема: Показ картинок с другого сервера • Форум: Вопросы новичков

Ответов: 7
Просмотров: 485
Мой сайт вредитель обновляется раз в полчаса, и старый контент перезаписывается. По существу кто-нибудь способен ответить, или только пустой треп?
Itan Отправлено: 10 Ноября, 2016 - 21:08:02 • Тема: Показ картинок с другого сервера • Форум: Вопросы новичков

Ответов: 7
Просмотров: 485
Здравствуйте! У меня парсер объявлений. Показывается примерно 65 тысяч объявлений, у каждого загружается превьюшка с того сайта, который спарсили. Т.е. адрес превью записывается в БД, а сами картинки на мой сервер не загружаются. Думаю, такой расклад не понравится ПС, ведь получается, я ворую контент. Появилась мысль: между сервером и сайтом-жертвой есть скрипт, которому через GET передается адрес превью, и в <img src="">
фигурирует уже мой сайт, а не реальный источник.

Например, мой сайт abc.ru
Сайт-жертва: xxx.ru

Я знаю, что есть картинка xxx.ru/img.jpg

У себя на сайте abc.ru я пишу <img src="xxx.ru/img.jpg">

А когда появляется скрипт-посредник, я пишу так <img src="abc.ru/load.php?img=img.jpg">

Скрипт-посредник загружает картинку через file_get_contents и через print отдает результат.

Вопрос всей темы: как разрешить скрипту-посреднику загружать ТОЛЬКО картинки и только с сайта xxx.ru? Я не хочу чтобы из моего скрипта-посредника сделали парсер))
Itan Отправлено: 24 Октября, 2016 - 18:05:39 • Тема: Вычислить среднюю цену автомобиля по модели и году • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1127
Итак. Мы имеем парсер сайта объявлений по продаже авто. На сайте около 60 тысяч объявлений, все они записываются в базу. Обновление каждые полчаса по крону с TRUNCATE таблицы. Что мне нужно: для каждой марки, каждой модели, каждого года узнать среднюю цену за: неделю, месяц, и текущую. Из 60 тысяч объявлений получается примерно 8000 средних цен. Но я планируют парсить еще несколько сайтов в дальнейшем. С текущей средней ценой мы разобрались выше, еще раз спасибо, а как организовать вычисление и хранение средней цены за неделю и за месяц?
Itan Отправлено: 24 Октября, 2016 - 17:53:17 • Тема: Вычислить среднюю цену автомобиля по модели и году • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1127
Нифига, как все просто. Спасибо! Тогда еще вопрос: такой запрос дает нам текущую среднюю цену, а как правильно организовать хранение недельной и месячной средней цены? Интересует именно структура таблиц, пока на ум приходит только сделать тридцать столбцов, и каждый новый день перезаписывать данные, но блин, там будет 10000 средних цен, и мне кажется, это не панацея. Подскажите.
Itan Отправлено: 23 Октября, 2016 - 08:18:39 • Тема: Вычислить среднюю цену автомобиля по модели и году • Форум: Работа с СУБД

Ответов: 4
Просмотров: 1127
Здравствуйте! Помогите составить запрос.
Задача: узнать среднюю цену автомобиля по названию марки, модели и году выпуска
Что имеем:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. table
  3. mark model  year   price
  4. vaz    2110   2001   65000
  5. vaz    2110   2001   66000
  6. vaz    2110   2001   60000
  7. vaz    2109   2000   60000
  8. vaz    2109   2000   70000
  9. vaz    2109   2003   75000
  10.  


По поводу единичного запроса - все легко: используем AVG и WHERE `mark` = "vaz", `model` = "2110", `year` = "2001"

Но как составить запрос, чтобы он мне дал средние цены сразу по всем моделям, что-то типа:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. vaz => 2110 => 2000 => 70000
  3.                          2001 => 75000
  4.                          2002 => 80000
  5.            2109 => 1993 => 33000
  6.                          1999 => 45000
  7.                          2002 => 70000
  8.  
Itan Отправлено: 08 Октября, 2016 - 23:04:36 • Тема: Как найти ключ массива по значению • Форум: Вопросы новичков

Ответов: 2
Просмотров: 222
Здравствуйте! Есть массив:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. (
  3.     [0] => Array
  4.         (
  5.             [id] => 1
  6.             [name_en] => bogdan
  7.             [name_ru] => Богдан
  8.         )
  9.  
  10.     [1] => Array
  11.         (
  12.             [id] => 2
  13.             [name_en] => vaz
  14.             [name_ru] => ВАЗ (LADA)
  15.         )
  16.  
  17.     [2] => Array
  18.         (
  19.             [id] => 3
  20.             [name_en] => gaz
  21.             [name_ru] => ГАЗ
  22.         )
  23. }
  24.  


Есть функция, которая возвращает строку, например, vaz

Как мне найти порядковый номер массива, в котором значение name_en == vaz?

Конкретно в этом случае, нужен результат: 1

Если возвращаемая функцией строка будет gaz, то результат нужен: 2

Решил вопрос:
PHP:
скопировать код в буфер обмена
  1. while ($key_name_en = current($marks)) {
  2.         if ($key_name_en['name_en'] == 'vaz') {
  3.                 echo key($marks);
  4.         }
  5.         next($marks);
  6. }
  7. # Результат: 1
Itan Отправлено: 06 Октября, 2016 - 09:48:56 • Тема: Как загрузить сайт, если он блокирует твой запрос? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 174
Здравствуйте! Есть на яндексе сервис по продаже автомобилей. У каждой марки есть модели, у каждой модели есть года выпуска. У каждого года выпуска своя средняя цена.

Задача: вытянуть среднюю цену на автомобиль с сайта auto.yandex.ru

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

Все работает, но если например, мне нужно узнать среднюю цену на 30 автомобилей, получается, что мой скрип грузит 30 страниц с яндекса, и яндекс блокирует. Если бы мы смотрели это в браузере, яндекс предложил бы нам ввести каптчу для дальнейшей работы. Я не знаю как делается эта блокировка - по IP я думаю. А как это обойти моему сценарию? Куда идти читать?
Itan Отправлено: 05 Октября, 2016 - 20:39:46 • Тема: Регулярка - в чем ошибка? • Форум: Вопросы новичков

Ответов: 1
Просмотров: 170
Здравствуйте!

Есть такие строки:
CODE (htmlphp):
скопировать код в буфер обмена
  1.                                         <option value="15010"
  2.  
  3.                                                                                                                                                                                        
  4.                                                                        
  5.                                                                
  6.                                                                                                                                                                                 data-groups_model="1"
  7.                                                                                                                
  8.                                                                                                                         data-name="priora"
  9.                                                        
  10.                                                        
  11.                                                                                                                 >
  12.                                                 PRIORA</option>
  13.                                                        
  14.                                                        
  15.                                        
  16.  
  17.                                         <option value="15068"
  18.  
  19.                                                                                                                                                                                        
  20.                                                                        
  21.                                                                
  22.                                                                                                                                                                                                                                         data-groups_model_id="15010"
  23.                                                        
  24.                                                                                                                         data-name="2170_priora_sedan"
  25.                                                        
  26.                                                        
  27.                                                                                                                         data-title_rus="Приора седан"
  28.                                                                                                                 >
  29.                                                 2170 PRIORA СЕДАН</option>


Грубо говоря, нужно достать всё, что между <option></option>, исключая строки, где встречается
CODE (htmlphp):
скопировать код в буфер обмена
  1. data-groups_model="1"


Пока дошел только до такого варианта:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('~<option value=".+[^data-groups_model="1"]+data-name=".+>\s+(.+)</option>~Uis', $select_text[1], $name_ru);


Но, блин, мое исключение не работает, как я планировал, регулярка вытаскивает все строки, даже есть там в параметрах тега есть "data-groups_model="1"

Как бы мне это сделать? И желательно, чтобы не было пробелов, потому что в исходных данных куча пробелов и табуляций. \s+ не помогает почему-то.
(Добавление)
По задумке, из исходного текста должно вернуться только Array("2170 PRIORA СЕДАН")
(Добавление)
Короче, за неимением лучшего, придумал такой велосипед:
PHP:
скопировать код в буфер обмена
  1. # Разбиваем на массив
  2. $explode_option_tag = explode('</option>', $select_text[1]);
  3.  
  4. # Удаляем строки, где нет data-name и строки, где есть data-groups_model="1"
  5. for($x = 0; $x < count($explode_option_tag); $x++) {
  6.         if (!strpos($explode_option_tag[$x], 'data-name')) {
  7.                 unset($explode_option_tag[$x]);
  8.         }
  9.  
  10.         if (strpos($explode_option_tag[$x], 'data-groups_model="1"') !== false) {
  11.                 unset($explode_option_tag[$x]);
  12.         }
  13. }
  14.  
  15. # Объединяем обратно
  16. $text = implode('</option>', $explode_option_tag);
  17.  
  18. # Берем все что между <option></option>
  19. preg_match_all('~<option.+>\s+(.+)</option>~Uis', $text, $name_ru);
  20.  
  21. # Выводи, удалив пробелы и табуляцию
  22. for ($x = 0; $x < count($name_ru[1]); $x++) {
  23.         print trim($name_ru[1][$x])."\n";
  24. }
Itan Отправлено: 30 Сентября, 2016 - 18:34:35 • Тема: SQL: Можно ли при JOIN выбрать определенные столбцы? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 565
Спасибо, рабочий вариант оказался:
SELECT table.name, table2.second_name FROM table LEFT JOIN table2 ON table.id = table2.id

А я по-другому сначала пробовал и не работало))
Itan Отправлено: 30 Сентября, 2016 - 18:23:27 • Тема: как сложить две функции • Форум: Вопросы новичков

Ответов: 2
Просмотров: 161
PHP:
скопировать код в буфер обмена
  1. <?
  2. function proiz1 ($num1) {
  3.         return (2 * $num1 - 9);
  4. }
  5.  
  6.  
  7. function koren($num2) {
  8.         return ($num2 ** 2 - (9 * $num2) + 1);
  9. }
  10.  
  11. $a = 144;
  12. $b = 2;
  13. $zz = proiz1($a) + koren($b);
  14.  
  15. print $zz; # result: 266
  16. ?>
Itan Отправлено: 30 Сентября, 2016 - 18:17:17 • Тема: SQL: Можно ли при JOIN выбрать определенные столбцы? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 565
Здравствуйте! Вопрос такой: можно ли при использовании JOIN указать в запросе определенные столбцы, а не всю таблицу?

SELECT * FROM table LEFT JOIN table2 ON table.id = table2.id

Например, в каждой таблице по 20 столбцов, а мне надо только три из первой и два из второй?

Страниц (14): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB