Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Первый парсер на PHP, нужна помощь [3]
Форумы портала PHP.SU » » Вопросы новичков » Первый парсер на PHP, нужна помощь

Страниц (3): « 1 2 [3]
 

31. LIME - 19 Апреля, 2020 - 22:53:42 - перейти к сообщению
означает
PHP:
скопировать код в буфер обмена
  1. db::getInstance()->real_escape_string();

а еще можно вот так избежать инъекций(предпочтительно) https://www.php.net/manual/ru/mysqli.prepare.php
а еще почему не обработал $_POST['cat'] ?
в процедурном стиле

(Добавление)
https://refactoring[dot]guru/ru/desi[dot][dot][dot]tterns/singleton хотя врядли асилишь, но там о ::getInstance()
32. Строитель - 19 Апреля, 2020 - 23:09:45 - перейти к сообщению
rasl89 пишет:
mysqli
PDO много удобнее, и проще. В mysqli вы ещё долго будете топтаться на месте, и в итоге всё равно придёте к PDO. Дак зачем терять время?
33. LIME - 20 Апреля, 2020 - 10:25:48 - перейти к сообщению
Строитель пишет:
PDO много удобнее, и проще.
чем?
я знаю об одном его плюсе(кроме поддержки нескольких субд) - его все используют и значит лучше его знать
но ничего не знаю о простоте и/или удобстве
34. rasl89 - 20 Апреля, 2020 - 18:47:20 - перейти к сообщению
LIME пишет:означает
PHP:
скопировать код в буфер обмена
  1. db::getInstance()->real_escape_string();

а еще можно вот так избежать инъекций(предпочтительно) https://www.php.net/manual/ru/mysqli.prepare.php
а еще почему не обработал $_POST['cat'] ?
в процедурном стиле

(Добавление)
https://refactoring[dot]guru/ru/desi[dot][dot][dot]tterns/singleton хотя врядли асилишь, но там о ::getInstance()


Я читал про PDO но пока не готов на нем что-либо делать.
Спасибо за совет, но этот проект добью методом что я начал делать. Позже обязательно изучу PDO, вокруг него много слов как на деле не знаю Закатив глазки

Lime

PHP:
скопировать код в буфер обмена
  1. db::getInstance()->real_escape_string();

круто вывернул, помогло спасибо

Цитата:
https://refactoring[dot]guru/ru/desi[dot][dot][dot]tterns/singleton хотя врядли асилишь, но там о ::getInstance()


изучил, как-то вроде понял, пока абстрактно, изучу этот вопрос.

Цитата:
а еще почему не обработал $_POST['cat'] ?

тут не понял что еще нужно сделать?

теперь ошибка:
Fatal error: Uncaught Error: Maximum function nesting level of '256' reached, aborting! in C:\Webserver\OSPanel\domains\chinafilms1\prs4\db.php on line 415

хотя дебаггер настроен:
xdebug.max_nesting_level = 256

я неправильно из рекурсии вышел? У меня уже каша в голове Радость
показывает что тут не верно что-то:
PHP:
скопировать код в буфер обмена
  1. public static function getInstance() {
  2.  
  3.         if (null === self::$_instance) {
  4.  
  5.         self::$_instance = new self();
  6.  
  7.         }
  8.  
  9.         return self::$_instance;
  10.  
  11.          }
35. LIME - 20 Апреля, 2020 - 21:39:14 - перейти к сообщению
rasl89 пишет:
тут не понял что еще нужно сделать?
а зачем ты вообще используешь real_escape_string ?
rasl89 пишет:
я неправильно из рекурсии вышел?
какой рекурсии? наверное
rasl89 пишет:
показывает что тут не верно что-то
скорее всего случайно 256ой вложенный вызов попал на getInstance
в самом начале сохрани в переменную и замени все вызовы getInstance на эту переменную
PHP:
скопировать код в буфер обмена
  1. $db = db::getInstance();
  2. $post_id = $db->insert('dle_post', $save);
36. rasl89 - 21 Апреля, 2020 - 21:33:40 - перейти к сообщению
Цитата:
в самом начале сохрани в переменную и замени все вызовы getInstance на эту переменную

Цитата:
PHP:
скопировать код в буфер обмена
  1.    
  2. $db = db::getInstance();
  3.     $post_id = $db->insert('dle_post', $save);


я не смог этого сделать(( не смог интегрировать ни одну из строк

у меня затык в следующем:

PHP:
скопировать код в буфер обмена
  1.  
  2. class db {
  3.  
  4.         public $debug = false;
  5.  
  6.     public $count = 0;
  7.  
  8.  
  9.  
  10.     protected static $_instance;
  11.  
  12.         /*
  13.  
  14.          * Connect to data base
  15.  
  16.          */
  17.  
  18.         private function __construct(){
  19.  
  20.         $this->connect();
  21.  
  22.         }
  23.  
  24.  
  25.  
  26.     public function connect(){
  27.  
  28.  
  29.         $cfg['host'] = 'localhost';
  30.  
  31.         $cfg['user'] = 'newnew';
  32.  
  33.         $cfg['db'] = 'newnew';
  34.  
  35.         $cfg['pwd'] = 'newnew';
  36.  
  37.         if (!mysqli_connect($cfg['host'], $cfg['user'], $cfg['pwd'])) die("Can't connect to mysql server") ; //For local
  38.  
  39.         if (!@mysqli_select_db($cfg['db'])) die("Can't found data base");


в данном случае mysqli_connect не отрабатывает и я использую: db::getInstance()->

но тогда у меня и происходит конфликт с getInstance, т.к. в конце скрипта происходит следующее:

PHP:
скопировать код в буфер обмена
  1.     public static function getInstance() {
  2.  
  3.         if (null === self::$_instance) {
  4.  
  5.         self::$_instance = new self();
  6.  
  7.         }
  8.  
  9.         return self::$_instance;
  10.  
  11.          }
  12.  


либо я в конец запутался с этим классом, вложил скрипт
37. rasl89 - 24 Апреля, 2020 - 19:47:43 - перейти к сообщению
Коллеги, вроде с конфликтом getInstance разобрался.
Обьявил где нужно
$db = db::getInstance();

теперь просто напросто не находит класс db:
Fatal error: Uncaught Error: Class 'db' not found in C:\Webserver\OSPanel\domains\chinafilms1\prs4\prs4.php on line 216

указывает на строку $db = db::getInstance();

Тогда я попробовал обьявить в конце db.php:
$db = new db();
не помогло

в итоге подключения к БД так и осуществлено
38. LIME - 24 Апреля, 2020 - 23:28:22 - перейти к сообщению
rasl89 мне надоело "это" наблюдать
дай возможность писать код вместо тебя
дай мне удаленный рабочий рабочий стол и я напишу код
дай мне свой рабочий стол
(Добавление)
rasl89 короче
просто дай мне 100 долларов и я тебе все сделаю
39. LIME - 25 Апреля, 2020 - 03:21:02 - перейти к сообщению
rasl89 шутка
просто дай мне посмотреть
и я сделаю
(Добавление)

кто мне плюсует? я ничего не сделал
просьба плюсовать только по делу

(Добавление)
[brasl89 пиши мне в личку
просто надо тебе пояснить как подключаются файлы(да простят меня спецы)
для тебя это пока файлы
пиши в лс
научим
наставим
не бросим
40. Vladimir Kheifets - 25 Апреля, 2020 - 17:19:37 - перейти к сообщению
rasl89 пишет:
Коллеги, вроде с конфликтом getInstance разобрался.
Обьявил где нужно
$db = db::getInstance();

теперь просто напросто не находит класс db:
Fatal error: Uncaught Error: Class 'db' not found in C:\Webserver\OSPanel\domains\chinafilms1\prs4\prs4.php on line 216

указывает на строку $db = db::getInstance();

Тогда я попробовал обьявить в конце db.php:
$db = new db();
не помогло
в итоге подключения к БД так и осуществлено

Цитата:
Цитата:
добавте в в конце db.php
$db = new db();

это не помогает, что-то подобное я делал
отладка тоже не показывает где косяк(

Добрый день!
Ваш db.php не рабочий.
Вместо него поставьте этот:
Спойлер (Отобразить)

для тестирования сделал таблицу
Спойлер (Отобразить)

так нудно изменить ps4.php
Спойлер (Отобразить)
Удачи!
41. rasl89 - 25 Апреля, 2020 - 20:44:45 - перейти к сообщению
LIME
Цитата:
rasl89 мне надоело "это" наблюдать
дай возможность писать код вместо тебя
дай мне удаленный рабочий рабочий стол и я напишу код
дай мне свой рабочий стол
(Добавление)
rasl89 короче
просто дай мне 100 долларов и я тебе все сделаю

Ага! Ага! Ага!


Цитата:
brasl89 пиши мне в личку
просто надо тебе пояснить как подключаются файлы(да простят меня спецы)
для тебя это пока файлы
пиши в лс
научим
наставим
не бросим


Спасибо!

Цитата:
Удачи!

Vladimir Kheifets
Спасибо!
После небольших корректировок все работает!
Остались вопросы, написал в ЛС.

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

В некоторых разделах новости могут повторяться.
Коллеги, как проверить таблицу (мускул) с названиями новостей на наличие совпадения?
Не будет ли это чрезмерной нагрузкой, если в системе уже 15к новостей?
Какой есть выход в данной ситуации?
42. rasl89 - 27 Апреля, 2020 - 14:49:24 - перейти к сообщению
В некоторых разделах новости могут повторяться.
Коллеги, как проверить таблицу (мускул) с названиями новостей на наличие совпадения?
Не будет ли это чрезмерной нагрузкой, если в системе уже 15к новостей?
Какой есть выход в данной ситуации?
Кто подскажет?

 

Powered by ExBB FM 1.0 RC1