PHP.SU

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

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

> Найдено сообщений: 10
pa-bil-sag Отправлено: 28 Ноября, 2022 - 01:38:37 • Тема: Выборка из одной таблицы • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 869
Прошу помощи, есть таблица postmeta со столбцами post_id, meta_value, meta_key.
В ней хранятся свойства для объекта, где значения meta_value и meta_key может быть несколько для post_id.
Мне нужна помощь сделав такую выборку.
Чтобы значения meta_key стали столбцами, а meta_value значениями, с условием что meta_value не должно быть равно конкретному значению при выборке.
Пожалуйста посмотрите рисунок!
(Добавление)
select A.post_id , A.meta_value as valuta , B.meta_value as czena_konverter , C.meta_value as czena_konverter_do , D.meta_value as czena_sale_konverter
FROM wp_postmeta A, wp_postmeta B, wp_postmeta C, wp_postmeta D
WHERE A.post_id = B.post_id
AND A.post_id = C.post_id
AND A.post_id = D.post_id
AND A.meta_key='valyuta'
AND B.meta_key='czena_konverter'
AND C.meta_key='czena_konverter_do'
AND D.meta_key='czena_sale_konverter'
AND A.meta_value != 'EUR'
AND A.meta_value != '';
pa-bil-sag Отправлено: 07 Марта, 2020 - 06:12:40 • Тема: Curl, get запрос • Форум: Вопросы новичков

Ответов: 1
Просмотров: 301
решил проблему, воспользовался Guzzle с ним все получилось
pa-bil-sag Отправлено: 06 Марта, 2020 - 16:45:06 • Тема: Curl, get запрос • Форум: Вопросы новичков

Ответов: 1
Просмотров: 301
Привет, нужна помощь с curl мне приходит ошибка. Нужно сделать проверку подписок у Триколор тв на странице https://www[dot]tricolor[dot]tv/check-subscriptions/ (можно указать 25025504111330) На форме стоит капча, но с ней потом разберемся через сервис, даже если она не правильная, то ответ от сервера должен быть о не верной капче судя по обработке ответа, а мне приходит такой вот ответ.
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head><title>400 Bad Request</title></head>
  4. <body bgcolor="white">
  5. <center><h1>400 Bad Request</h1></center>
  6. <hr><center>openresty/1.13.6.2</center>
  7. </body>
  8. </html>
  9.  


Вот мой curl
PHP:
скопировать код в буфер обмена
  1.  
  2. post = array(
  3.     'id' => '25025504111330',
  4.     'g-recaptcha-response' => '');
  5. $post = http_build_query($post);
  6.  
  7. $url = 'https://www.tricolor.tv/ajax/subscriptions/check.php?' . $post;
  8.  
  9. $header .= "accept: application/json, text/javascript, */*; q=0.01 \r\n";
  10. $header .= "accept-encoding: gzip, deflate, br \r\n";
  11. $header .= "accept-language: ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7 \r\n";
  12. $header .= "cache-control: no-cache \r\n";
  13. $header .= "cookie: _ga=GA1.2.507352214.1578108455; _ym_d=1578108455; _ym_uid=1578108455128418348; tmr_lvid=4265fdd8790de91b63ec91ef128bd4b3; tmr_lvidTS=1578108580433; BX_USER_ID=ba344fac1eb8d72341b7090ae1aa7ab1; tv2=9f47332ad82b927dacc3a107f347647d; tri_server5=7597bc024d7fdc91288c28c505f9c4cb; tmr_reqNum=246; _ym_isad=1; _gid=GA1.2.684497268.1583476168; DREID=25025504111330; COOKIE_SET=Y; SOURCE[TYPE]=region; SOURCE[NAME]=%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0+%D0%B8+%D0%9C%D0%9E; SOURCE[ID]=17; REGION[NAME]=%D0%95%D0%B2%D1%80%D0%BE%D0%BF%D0%B0; REGION[ID]=12; FEDERAL_DISTRICT[NAME]=%D0%A6%D0%B5%D0%BD%D1%82%D1%80; FEDERAL_DISTRICT[ID]=102; CITY[NAME]=%D0%BF%D0%BE%D1%81%D1%91%D0%BB%D0%BE%D0%BA+%D0%9D%D0%BE%D0%B2%D0%BE%D0%BE%D0%BC%D1%81%D0%BA%D0%B8%D0%B9; CITY[ID]=50643 \r\n";
  14. $header .= "pragma: no-cache \r\n";
  15. $header .= "referer: https://www.tricolor.tv/check-subscriptions/ \r\n";
  16. $header .= "sec-fetch-dest: empty \r\n";
  17. $header .= "sec-fetch-mode: cors \r\n";
  18. $header .= "sec-fetch-site: same-origin \r\n";
  19. $header .= "x-requested-with: XMLHttpRequest \r\n";
  20. $agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36';
  21.  
  22. $ch = curl_init();
  23. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  24. curl_setopt($ch, CURLOPT_URL, $url);
  25. curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  26. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  27.  
  28. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
  29.  
  30. $server_output = curl_exec($ch);
  31.  
  32. $respone = json_decode($server_output, true);
  33.  


прикрепил скрины аякс отправки на самом tricolor и заголовки при отправке
pa-bil-sag Отправлено: 24 Марта, 2015 - 01:07:34 • Тема: подключение к бд • Форум: Вопросы новичков

Ответов: 2
Просмотров: 144
Спасибо тебе за помощь!)
pa-bil-sag Отправлено: 24 Марта, 2015 - 00:41:37 • Тема: подключение к бд • Форум: Вопросы новичков

Ответов: 2
Просмотров: 144
нет подключения к бд, помогите подправить
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. class jobDb{
  4.  
  5.     private $_link;
  6.     function __construct(&$input)
  7.     {
  8.  
  9.         $this->resultParse=&$input;
  10.         $this->_setLink();
  11.     }
  12.  
  13.     function _getLink()
  14.     {
  15.         return $this->_link;
  16.     }
  17.  
  18.     function _setLink()
  19.     {
  20.         $this->_link = mysql_connect('localhost','root','');
  21.  
  22.     }
  23.     function mysqlConnect()
  24.     {
  25.  
  26.         mysql_select_db('educational_institutions', $this->_link);
  27.     }
  28.     function __destruct()
  29.     {
  30.  
  31.     }
  32.  
  33.     public function insertData()
  34.     {
  35.         $this->_setLink();
  36.        $this->resultParse=filter_var_array($this->resultParse, FILTER_SANITIZE_STRING);
  37.         foreach($this->resultParse as $key => $value){ // Проходим по регионам
  38.             foreach($value  as $k=>$v){ // проходим по типам заведения
  39.                 foreach($v as $k2=>$title){  // проходим по заведениям
  40.                     $sql = "INSERT INTO `educational_institutions` (`region`, `title`, `old_title`, `abbreviation_title`,`type`) VALUES ('{$key}', '{$title}', '', '','{$k}')";
  41.                     if( !mysql_query($sql)){
  42.                         die();
  43.                     }
  44.  
  45.                 }
  46.             }
  47.         }
  48. $this->close();
  49.  
  50.     }
  51.  
  52.   function close()
  53.     {
  54.         mysql_close($this->_link);
  55.     }
  56. }
  57.  
pa-bil-sag Отправлено: 16 Марта, 2015 - 03:42:02 • Тема: функции • Форум: Вопросы новичков

Ответов: 1
Просмотров: 138
Добрый день, я хочу понять как передавать результат функции.
1 функция форматирует текст и в конце можно вывести результат, но только если вывод будет внутри функции, за функцией я не могу сделать echo, почему?
2 вторая функция должна продолжить форматирование с результатом первой функции, как мне передать результат первой функции?
PHP:
скопировать код в буфер обмена
  1.  
  2.        /*форматирование*/
  3.           array_walk_recursive($resultParse,'formatString');
  4.  
  5.                function formatString(&$s)
  6.                {
  7.                   //$s=html_entity_decode()
  8.                   //$s=strip_tags($s);
  9.                   $pattern=array(
  10.                       // оставляем разрешенные
  11.                       'space' => '/[^a-zа-яё0-9\s\."\'«»]{1,}/ui',
  12.                      // преобразуем  кавычки в "
  13.                       'qoute' => '/[\'«»]+/ui',
  14.                       // текст до первой кавычки
  15.                       'empty' => '/^([а-яА-Я].*)(?<=\s")/ui',
  16.                       // удаляем кавычки
  17.                        'other' => '/["]+/ui',
  18.                       // удаляем двойные пробелы
  19.                       'doubling' => '/(\s){2,}/ui',
  20.                   );
  21.                   $replacement=array(
  22.                       'space'=>' ',
  23.                       'qoute' => '"',
  24.                       'empty'=>'',
  25.                       'other'=> ' ',
  26.                       'doubling' => ' ',
  27.                   );
  28.  
  29.                    $s =  preg_replace($pattern,$replacement,$s);
  30.  
  31.                };
  32.  
  33.     function mb_ucfirst($string, $enc = 'UTF-8')
  34.     {
  35.         $string = mb_ereg_replace('^[\ ]+', '',$string);
  36.         $string = mb_strtoupper(mb_substr($string, 0, 1, $enc), $enc) .
  37.             mb_substr($string, 1, mb_strlen($string, $enc), $enc);
  38.         return $string;
  39.     }
  40.  
  41.  
pa-bil-sag Отправлено: 15 Марта, 2015 - 19:16:00 • Тема: Классы • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1017
Помогите разбить код на классы. Мне пример нужен, как это будет выгладить
1 класс будет содержать массивы
2 класс это функции работающие с массивом
PHP:
скопировать код в буфер обмена
  1.  
  2.             require_once('phpQuery/phpQuery.php');
  3.  
  4.             $res2Parse = array(
  5.             7 => 'minsk',
  6.             5 => 'minskaya',
  7.             );
  8.             $res2Edu = array(
  9.                 3 => 'ptu',
  10.                 4 => 'suz',
  11.                 6 => 'vuz',
  12.  
  13.             );
  14.             $resultParse=array();
  15.             $url = 'http://kudapostupat.by/zavedeniya';
  16.  
  17.             $html = file_get_contents($url);
  18.             phpQuery::newDocument($html);
  19.            /* парсинг*/
  20.             foreach($res2Parse as $key =>$value) {
  21.                 foreach($res2Edu as $k=>$v) {
  22.                     foreach (pq('#catalog_tab_'.$v.'_'.$value.' li') as $vuz){
  23.                         // ищем название марки (текст ссылки)
  24.                         $type=$k;
  25.                         if($type==4) {
  26.                             $type=3;
  27.                         }
  28.                         $resultParse[$key][$k][] = trim(pq($vuz)->find('a')->text());
  29.  
  30.                     }
  31.                 }
  32.             }
  33.  
  34.             //return  $resultParse;
  35.  
  36.              /*форматирование*/
  37.              array_walk_recursive($resultParse,'formatString');
  38.  
  39. function ucfirst_mb($str, $encoding='UTF-8')
  40. {
  41.     $str = mb_ereg_replace('^[\ ]+', '', $str);
  42.     $str = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding).
  43.         mb_substr($str, 1, mb_strlen($str), $encoding);
  44.     return $str;
  45. }
  46.                function formatString(&$s)
  47.                {
  48.                   //$s=html_entity_decode()
  49.                   //$s=strip_tags($s);
  50.                   $pattern=array(
  51.                       // оставляем разрешенные
  52.                       'space' => '/[^a-zа-яё0-9\s\.\"\'\«»]{1,}/ui',
  53.                      // преобразуем  кавычки в "
  54.                       'qoute' => '/[\'\«»]+/ui',
  55.                       // текст до первой кавычки
  56.                       'empty' => '/((^[a-zа-яё0-9\s\.]+(?<=\"){1})/ui',
  57.                       // удаляем кавычки
  58.                        'other' => '/[\"]+/ui',
  59.                       // удаляем двойные пробелы
  60.                       'doubling' => '/(\s){2,}/ui',
  61.                   );
  62.                   $replacement=array(
  63.                       'space'=>' ',
  64.                       'qoute' => '"',
  65.                       'empty'=>'',
  66.                       'other'=> ' ',
  67.                       'doubling' => ' ',
  68.                   );
  69.                   $s=trim(preg_replace($pattern,$replacement,$s));
  70.                   $s=ucfirst_mb($s);
  71.                    if(mb_strlen($s)>127) {
  72.                        //обрезаем до 127 символов
  73.                    }
  74.  
  75.                }
  76.     array_walk_recursive($resultParse,'customFilter');
  77. function customFilter(&$s)
  78. {
  79.     $options = array(
  80.         'options' => array(
  81.             'regexp' => 'первая бува заглавная, остальные маленькие',
  82.         ),
  83.     );
  84.     $filter=filter_var($s,FILTER_VALIDATE_REGEXP,$options);
  85.     if(!$filter) {
  86.      $s='_'.$s;
  87.     }
  88. }
pa-bil-sag Отправлено: 10 Марта, 2015 - 22:51:03 • Тема: запись в бд • Форум: Вопросы новичков

Ответов: 1
Просмотров: 141
pa-bil-sag пишет:
Простите уже сам решил прост нужно было в цикл запихнуть подключение бд
pa-bil-sag Отправлено: 10 Марта, 2015 - 20:47:40 • Тема: запись в бд • Форум: Вопросы новичков

Ответов: 1
Просмотров: 141
После парсинга сайта, делаю запись в бд, но запись в бд идет как одна большая строка. Помогите произвести запись в бд по строкам.
PHP:
скопировать код в буфер обмена
  1.  
  2. if (!mysql_connect('127.0.0.1', 'root', ''))
  3.     {
  4.         echo "Не могу подключится к серверу";
  5.         echo "ERROR ".mysql_errno().": ".mysql_error()."<br>";
  6.         exit;
  7.     }
  8.         //Установка соединения с БД
  9.     if (!mysql_connect('127.0.0.1', 'root', ''))
  10.     {
  11.         echo "Не могу подключится к серверу";
  12.         echo "ERROR ".mysql_errno().": ".mysql_error()."<br>";
  13.         exit;
  14.     }
  15.          //Выбор БД
  16.     mysql_select_db('rabota');
  17.        
  18.          require_once('phpQuery/phpQuery.php');
  19.        
  20.         // для подсчета времени выполнения
  21.         $start = microtime(true);
  22.        
  23.         function get_marks()
  24.         {
  25.                 $url = 'http://kudapostupat.by/zavedeniya/vuz';
  26.  
  27.                 $html = file_get_contents($url);
  28.                 phpQuery::newDocument($html);
  29.  
  30.                 // проходим по li элементам с классом .marks-col-item
  31.                 foreach (pq('div.catalog_links') as $catalog){
  32.                         // ищем название марки (текст ссылки)
  33.                         $catalog_vuz = trim(pq($catalog)->find('a')->text());
  34.                         $catalogs[$catalog_vuz]['target'] = $catalog_vuz;
  35.                         $stripSymbols = '/[^A-Za-zА-ЯЁа-яё0-9_\s\,\.\:\;\~\!\@\#\$\%\&\*\№\?\(\)\-\=\+\[\]\<\>]/u';    // Перечисляем разрешенные символы/ Рубим все кавычки!    /u - модиффатор для работы с UTF-8
  36.           $catalog_vuz = preg_replace( $stripSymbols , '', $catalog_vuz); // Оставляем т/о разрешенные символы
  37.           $catalog_vuz = strip_tags( $catalog_vuz );                      // Режем теги
  38.           $catalog_vuz = trim($catalog_vuz);
  39.                
  40.           $catalog_vuz = preg_replace( '/[ ]{2,}/u' , ' ' , $catalog_vuz );     // Повторые пробелы заменяем одиночным
  41.           $catalog_vuz = preg_replace( '/[\s]{2,}/u', "\n", $catalog_vuz );     // Все остальные многократыне пробельные [\s]=[ \f\n\r\t\v] заменяем одним переносом  
  42.                        
  43.                         echo '<pre>';
  44.         //print_r($catalog_vuz);
  45.         echo '</pre>';
  46.        
  47.   if (!mysql_query("INSERT INTO vuz (title) VALUES ('$catalog_vuz')"))
  48.     {
  49.         echo "Запись в БД не удалась<br>";
  50.         echo "ERROR ".mysql_errno().": ".mysql_error()."<br>";
  51.     }
  52.     else
  53.     {
  54.     echo "Запись в БД выпонена ($catalog_vuz)<br>";
  55.         echo "ERROR ".mysql_errno().": ".mysql_error()."<br>";
  56.     }
  57.    
  58.     mysql_close();
  59.             echo 'Результат<br>';
  60.     echo '<hr>';
  61.     echo '<hr><br>';
  62.     echo "<br>Полное название учебного заведения: $catalog_vuz";
  63.                 }
  64.  
  65.         }
  66.  
  67.  
  68.  
pa-bil-sag Отправлено: 07 Марта, 2015 - 17:34:01 • Тема: форматирование текста • Форум: Вопросы новичков

Ответов: 5
Просмотров: 364
Добрый день! Я сделал парсинг сайта при помощи phpQuery, мне выдал текст который я хотел, но как новичке не знаю как его отформатировать.
Правила форматирования:
1 Все что находится слева от первой (открывающей кавычки)- удаляется;
2 Кавычки удаляются;
3 Строки не должны содержать концевых пробелов;
4 Первый и последний символ обязательно буква;
5 Первая буква в строке заглавная, последующие строчные;

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB