Ответы пользователя по тегу PHP
  • PHP Class: file_get(put)_contents. Как сохранять значения формы в разные файлы?

    AGorbunoff
    @AGorbunoff Автор вопроса
    Учусь:)
    Спасибо всем, кто откликнулся и отдельное спасибо Автору кода Webdevkin.

    Упустил из внимания базовый вывод переменной из формы!
    $_POST["utm"];

    В итоге, оконцовка class Admin получилась такой:
    // Сохраняем настройки в файл
        public function save($settings) {
            $utm = $_POST["utm"];
            file_put_contents($this->basePath . 'config/utm/'.$utm.'.json', json_encode($settings));
            $this->setSettings();
        }


    И при каждом сохранении формы, создается новый файл .json в папке: utm

    5eac605c997f1839363251.jpeg
    Ответ написан
    Комментировать
  • Как спарсить выдачу Яндекс.Карт?

    AGorbunoff
    @AGorbunoff
    Учусь:)
    Та еще задача: корректно извлекать данные рейтинга организации. Задал вопрос поддержке Яндекса, как это сделать не нарушая правил платформы. Жду ответ и опубликую здесь.

    А пока, есть простое решение, извлекать данные посредством PHP шоркода:

    <?php 
    
    function rating_function($atts) {
    extract(shortcode_atts(array(
    
      // вставляем ссылку на карточку организации в Яндекс Справочике как есть
      "url" => 'https://yandex.ru/maps/org/<---id организации--->',
    ), $atts));
      
      $content = file_get_contents($url);
        
    	// определяем начало необходимого фрагмента кода, до которого мы удалим весь контент
    	$pos = strpos($content, '<div class="orgpage-reviews-view__rating-score">');
     
    	// удаляем все до нужного фрагмента
    	$content = substr($content, $pos);
     
    	// находим конец необходимого фрагмента кода
    	$pos = strpos($content, '</div>');
     
    	// отрезаем нужное количество символов от конца фрагмента
    	$content = substr($content, 0, $pos);
        
      echo $content;
    	
    	}
    
    add_shortcode('rating', 'rating_function');
    
    ?>


    Получаем рейтинг в числовом значении и вставляем полученный шорткод куда нужно на сайте: [rating].

    P.S.: Только функцию нужно запускать как можно редко;) дабы избежать нагрузки, желательно через периодическое обновление кэша, например, посредством curl закрывая соединение curl_close(); или каждый раз вызывая форму запроса данных в ручную.

    Здесь, предлагается одно из решений посредством curl.
    Ответ написан
    4 комментария