Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (7)

Лучшие ответы пользователя

Все ответы (27)
  • Как блокировать все возможные поисковые боты?

    m0pfin
    @m0pfin
    Можешь неавторизованным пользователям ничего не показывать, бот как раз не увидит
    Ответ написан
    1 комментарий
  • Роутинг на PHP?

    m0pfin
    @m0pfin
    В микрофреймворке Slim хороший роутинг
    Ответ написан
    Комментировать
  • Как в select вывести значения из БД?

    m0pfin
    @m0pfin
    <?php 
    include "db.php";
    
    $sql = mysqli_query ($db, "SELECT * FROM variants");
    
    echo '<select name="kolvo" id="kolvo_price">';
    
    while ($result = mysqli_fetch_array($sql)){
    
    echo ' <option value="'.$result['amount'].'">'.$result['price'].'</option>';
    
    }
    echo '</select>';
    Ответ написан
    Комментировать
  • Best practices по cUrl в php?

    m0pfin
    @m0pfin
    Писал функция для авторизации на сайте, и парсингом нужного значения с кабинета, если разберешься пригодится:
    P.S. использовал библиотеку PhpQuery
    /**
     * Функция для прасинга с авторизацией
     * @param $url - ссылка на сайт
     * @param $post - POST запрос для авторизации
     * @param string $pattern - шаблон для регулярки
     * @param string $url_page - ссылка куда нужно перейти после авторизации в кабинете, если нужное нам значение нет на главной ( не обязательное поле)
     * @param string $referer - реферер откуда пришли (необязательное поле)
     * @return mixed|string
     */
    
    function curl_get($url, $post, $pattern = "", $url_page = '', $referer = 'https://google.com'){
        $ch = curl_init();
    
        curl_setopt($ch, CURLOPT_COOKIESESSION, true);
        curl_setopt($ch, CURLOPT_COOKIEFILE, "/lead.txt"); // Куда записывать куки
        curl_setopt($ch, CURLOPT_COOKIEJAR, str_replace("\\", "/", getcwd()).'/lead.txt');
    
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_ENCODING , "gzip");
    
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");
        curl_setopt($ch, CURLOPT_REFERER, $referer); // Говорим откуда пришли REFERER
    
        curl_setopt($ch, CURLOPT_URL, $url); // Переходим по нашему URLу
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Отправляем наши POST данные
        $sess_cookie=substr($data, strpos($data, "PHPSESSID=")+10, 32);
    
        curl_setopt($ch, CURLOPT_COOKIE, $sess_cookie);
        $data = curl_exec($ch);
    
    //Если после авторизации нужно перейти на определенную страницу проверяем нужно ли перейти или нет
        if($url_page != ''){ 
            curl_setopt($ch, CURLOPT_URL, $url_page);
            $data = curl_exec($ch);
    
        }
    
        //Извлекаем баланс
        $document = phpQuery::newDocument($data);
        $str = $document;
        preg_match_all($pattern, $str, $arr);
        $data = implode(”, $arr[1]);
    
        curl_close($ch);
        phpQuery::unloadDocuments($document);
        return $data;
    }
    
        /**
         * Парсим баланс
         */
    
        $referer = 'https://site.pro';
        $post = "mail=test%40gmail.com&pass=testtest"; // POST запрос при авторизации
        $pattern = "#<b>(.+?)</b>#is"; // Шаблон для регулярки чтобы выбрать нужное значение
    
        $balance = curl_get('https://auth.site.pro/login', $post, $pattern); // используем функцию
        echo $balance; // Выводим на экран
    Ответ написан
    1 комментарий
  • Как получить тело POST запроса в php?

    m0pfin
    @m0pfin
    Потому что ты берешь JSON и ничего с ним не делаешь)
    Его нужно обработать json_decode()

    $inputJSON = file_get_contents('php://input');
    $input= json_decode( $inputJSON, TRUE ); 
    
    print_r(json_encode($input));
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (41)