No Image

Как вытащить из работающего сайта php

СОДЕРЖАНИЕ
0 просмотров
11 марта 2020

БлогNot. PHP: как быстро извлечь нужные данные с чужого сайта и показать у себя

PHP: как быстро извлечь нужные данные с чужого сайта и показать у себя

Собственно, точно так же, как в этой заметке, со времени её написания ничего не изменилось 🙂

Для примера воспользуемся официальным рейтингом шахматистов от ФИДЕ, поскольку речь сегодня шла именно о нём.

Логично сделать следующие 5 шагов:

  1. Определить URL нужной страницы и получить её, проще всего целиком через функцию file_get_contents ;
  2. Изучить формат полученной страницы, найдя фрагменты разметки, "от которого" и "до которого" нужно копировать. Альтернатива – более интеллектуальный подход, связанный с разбором DOM документа средствами Javascript или специализированных PHP-библиотек;
  3. Отрезать нужную часть страницы и отделить её (см. в коде функцию process , не изменившуюся с процитированной заметки);
  4. Сделать в выдранном фрагменте замены по некоему элементарно устроенному списку $replacements ( что => на_что ), например, относительные ссылки на абсолютные, английские названия столбцов таблицы на русские и т.д.;
  5. Показать обработанный фрагмент, поместив его в отдельный тег или просто встроив код в "движок" в нужном месте.

Вот полный код скрипта, реализующего данный подход, проверен на локалхосте, где сработал на момент написания заметки. Возможно, в будущем придётся поменять настройки $start и $end в начале кода.

Размещать скрипт следуют в Юникоде (UTF-8). Вот скрипт в работе.

Живой рейтинг сильнейших шахматистов мира

30.08.2015, 21:03; рейтинг: 7273

На самом деле, чем открыть php файл, не является большой проблемой. Бывает труднее открыть бутылку пива, когда находишься посреди леса. Но так думают лишь заядлые программисты. А для новичков поведаем обо всех возможностях php для работы с файлами:

Файлы php

Файлы с расширением php содержат в себе код написанный, на одноименном языке программирования. В отличие от других языков, php является серверным языком программирования. То есть он выполняется на стороне сервера. Поэтому для отладки его кода на клиентской машине должен быть установлен локальный сервер.

Читайте также:  Как в вайбере скрытый чат сделать открытым

Для работы с файлами php используются специальные приложения – программные редакторы. Наиболее распространенными из них являются:

  • Dreamweaver.
  • PHPEdit.
  • Eclipse PHP Development.


При создании сайтов на основе php может потребоваться многократное использование программного кода. В таких ситуациях удобно подключать уже готовые решения, находящиеся в другом файле. Для этого используется конструкция include . Ее синтаксис:


Подключение файла также возможно с помощью конструкции require . В отличие от include она подключает файл еще до выполнения программного кода. С помощью require в коде возможно лишь одно обращение к этому файлу. При повторном обращении система выдаст сообщение о глобальной ошибке и остановит выполнение программы.

Конструкция include подключает источник лишь во время выполнения программы. Она поддерживает множественное чтение файла php . При возникновении ошибки будет выведено лишь предупреждающее сообщение, а исполнение кода продолжится со следующей строчки.

Открытие и закрытие файлов

В php все операции с файлами осуществляются в несколько этапов:

  • Открытие файла;
  • Редактирование содержимого;
  • Закрытие файла.

Для открытия файла используется функция fopen() . Ее синтаксис:

  • string filename – имя файла или абсолютный путь к нему. Если путь к файлу не будет указан, то будет произведен его поиск в текущем каталоге. При отсутствии искомого файла система выведет сообщение об ошибке. Пример:

  • string mode – указывает режим открытия файла. Принимаемые аргументом значения:
  • r – файл открыт только для чтения, файловый указатель устанавливается в начале;
  • r+ – файл открыт для чтения и записи;
  • w – создается новый файл только для записи. Если файл с таким именем уже существует, в нем происходит автоматическое удаление всех данных;
  • w+ — создается новый файл для записи и чтения. При существовании такого файла происходит полная перезапись его данных на новые;
  • a – файл открыт для записи. Указатель устанавливается в конце. То есть запись в файл php начнется не с начала, а с конца;
  • a+ – открытие файла в режиме чтения и записи. Запись начнется с конца;
  • b – режим работы с файлом, содержащим в себе двоичные данные (в двоичной системе исчисления). Этот режим доступен только в операционной системе Windows.
Читайте также:  Doors ответы windows phone

Для закрытия доступа к файлу служит функция fclose () . Синтаксис:

int fclose (int file) , где int file – дескриптор сайта, который нужно закрыть.

Чтение и запись файлов

Для простого отображения всего содержимого файла идеально подходит функция readfile () . Ее синтаксис:

readfile (string filename) , где string filename – строковое имя фала ( не дескриптор ).


Тот же самый файл можно прочитать с помощью функции fpassthru () . Она считывает данные от конечной позиции указателя и до конца файла. Ее синтаксис:

Для работы с функцией требуется открытие и закрытие файла. Пример:

Результат аналогичен предыдущему.

Функции для работы с файлами в php позволяют считывать содержимое построчно и посимвольно:

  • string fgets ( int file, int length) – функция считывает строку длиною length . Пример:

  • string fread (int file, int length) – по действию идентична предыдущей.

Для записи текстовых данных в файл существует две идентичные функции:

  • int fputs ( int file, string string [, int length ])
  • int fwrite ( int file, string string [, int length ])

Функции записывают в файл int file строку string string указанной длины int length ( необязательный аргумент ). Пример:

Создание и удаление файлов

Чтобы создать файл php , можно использовать функцию fopen() в режиме доступа « w » или « w+ ». Или функцию touch () . Она устанавливает время изменения файла. При отсутствии элемента с искомым именем он будет создан. Ее синтаксис:

Для создания копии файла используется функция copy() . В качестве аргументов она принимает имя оригинала и файла, куда нужно скопировать содержимое. Если он не существует, то будет создан. Синтаксис функции:


Удалить файл можно с помощью функции unlink() . Ее синтаксис:

Читайте также:  Алгоритм решения линейного уравнения ax b 0

Получение информации о файле

Для получения информации о файлах в php используется целый ряд функций:

  • bool fileexists (string filename) – проверяет, существует ли элемент;
  • int fileatime (string filename) – возвращает время последнего открытия;
  • int filesize (string filename) – возвращает байтовый размер файла;
  • string filetype (string filename) – тип файла.


Это еще не все возможности для работы с файлами, реализованные в php . Многие из методов и функций остались за кадром. Так что простор для самостоятельного познания еще велик.

Есть страница с блоком (например,

4 ответа 4

Библиотеки для парсинга html средствами PHP.

Хотя если у вас одна небольшая задача, то стоит поискать пути попроще, а не использовать большие библиотеки для одной задачи.

UPD. Погуглив, нашел топик на stackoverflow.com. Там предложили рабочее выражение, как и следовало ожидать – весьма сложное. Приведу его без комментариев (тыкните на ссылку, там все разжевано).

Выражение корректно грабит div#content со всеми внутренностями. (Опять же, в оригинальном топике описываются исключительные случаи).

Вообщем, если структура нужного блока известна, то можно использовать решение @Barton, если нет – проще использовать библиотеку, код будет понятнее)

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock detector