Веб-скрепинг с помощью PHP: Пошаговое руководство
Веб-скрепинг становится все более популярным и в настоящее время является одной из актуальных тем в ИТ-сообществе. В результате появилось несколько библиотек, позволяющих собирать данные с веб-сайтов. Здесь вы узнаете, как создать веб-скрепер на PHP, используя одну из самых популярных библиотек для веб-скрепинга.
В этом уроке вы узнаете об основах веб-скрейпинга на PHP. Затем вы узнаете, как обойти наиболее популярные системы защиты от скрапинга, а также познакомитесь с более продвинутыми техниками и концепциями, такими как параллельный скрапинг и безголовые браузеры.
https://www.zenrows.com/blog/web-scraping-php
👉 @php_lib
Веб-скрепинг становится все более популярным и в настоящее время является одной из актуальных тем в ИТ-сообществе. В результате появилось несколько библиотек, позволяющих собирать данные с веб-сайтов. Здесь вы узнаете, как создать веб-скрепер на PHP, используя одну из самых популярных библиотек для веб-скрепинга.
В этом уроке вы узнаете об основах веб-скрейпинга на PHP. Затем вы узнаете, как обойти наиболее популярные системы защиты от скрапинга, а также познакомитесь с более продвинутыми техниками и концепциями, такими как параллельный скрапинг и безголовые браузеры.
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_URL, "https://www.w3schools.com/jquery/demo_test_post.asp");
// specify that the cURL request is a POST
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
// http_build_query is required to simulate
// a FormData request. Ignore it on a JSON request
http_build_query(
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
)
);
// define the body of the request
curl_setopt($curl, CURLOPT_POSTFIELDS,
array(
"name" => "Donald Duck",
"city" => "Duckburg"
)
);
// replicate the AJAX call
$result = curl_exec($curl);
https://www.zenrows.com/blog/web-scraping-php
👉 @php_lib
😱4👍2
Laravel Herd 1.9 теперь доступен для macOS и добавляет поддержку PHP 8.4.0 Alpha!
Если вы хотите запустить свои проекты на PHP 8.4 до его официального релиза, то нет ничего проще 🚀.
https://herd.laravel.com/
👉 @php_lib
Если вы хотите запустить свои проекты на PHP 8.4 до его официального релиза, то нет ничего проще 🚀.
https://herd.laravel.com/
👉 @php_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Добавляет поддержку vkurko/calendar в Filament PHP
Этот пакет добавляет поддержку vkurko/calendar (бесплатная альтернатива FullCalendar с открытым исходным кодом) в ваши панели FilamentPHP.
https://github.com/GuavaCZ/calendar
👉 @php_lib
Этот пакет добавляет поддержку vkurko/calendar (бесплатная альтернатива FullCalendar с открытым исходным кодом) в ваши панели FilamentPHP.
https://github.com/GuavaCZ/calendar
👉 @php_lib
👍3
Как перенести MySQL из DBngin в Laravel Herd
С тех пор как в Laravel Herd Pro появилась возможность управлять базами данных и кэш-сервисами MySQL, Postgres и Redis, я хотел перейти с DBngin на Herd MySQL и Redis.
Недавно, с небольшой помощью Марселя Посиота, мне удалось найти простой способ перенести все мои локальные базы данных на MySQL-сервис Herd без потери данных.
https://laravel-news.com/migrate-mysql-from-dbngin-herd
👉 @php_lib
С тех пор как в Laravel Herd Pro появилась возможность управлять базами данных и кэш-сервисами MySQL, Postgres и Redis, я хотел перейти с DBngin на Herd MySQL и Redis.
Недавно, с небольшой помощью Марселя Посиота, мне удалось найти простой способ перенести все мои локальные базы данных на MySQL-сервис Herd без потери данных.
https://laravel-news.com/migrate-mysql-from-dbngin-herd
👉 @php_lib
👍1
Совет по Laravel💡: Уникальные идентификаторы запросов
Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «
#laravel
👉 @php_lib
Вам когда-нибудь требовалось создать код уникального идентификатора для запроса, например, для целей кэширования? Laravel поставляется с методом «
fingerprint
», который позволяет вам генерировать уникальный идентификатор для ваших запросов 🚀.#laravel
👉 @php_lib
👍5
Совет по php 💡
Используйте нотацию "точка" Laravel для доступа к значениям вложенных массивов. Упростите доступ к многомерным массивам с помощью одной строки, разделенной точками.
👉 @php_lib
Используйте нотацию "точка" Laravel для доступа к значениям вложенных массивов. Упростите доступ к многомерным массивам с помощью одной строки, разделенной точками.
👉 @php_lib
👍5😱3
✨ Совет по PHP ✨
Очень простой, но очень важный:
1. Всегда определяйте, какой тип значения будет возвращать ваша функция. (I узнал об этом из Java ☕️ )
2. Всегда сохраняйте резервное значение в конце функции. Это обеспечит стабильность вашего кода. 💪
👉 @php_lib
Очень простой, но очень важный:
1. Всегда определяйте, какой тип значения будет возвращать ваша функция. (I узнал об этом из Java ☕️ )
2. Всегда сохраняйте резервное значение в конце функции. Это обеспечит стабильность вашего кода. 💪
👉 @php_lib
👍6💯1
Совет по Laravel 💡
🛠️ Создайте собственные директивы Blade для часто используемых блоков кода в файлах представлений.
🧹 Это сделает ваши представления чище и проще в работе.
💁♂️ В качестве примера делюсь своей любимой пользовательской директивой Blade
👉 @php_lib
🛠️ Создайте собственные директивы Blade для часто используемых блоков кода в файлах представлений.
🧹 Это сделает ваши представления чище и проще в работе.
💁♂️ В качестве примера делюсь своей любимой пользовательской директивой Blade
👉 @php_lib
❤5👍2
Совет по PHP/Laravel 💡
Вместо того чтобы выполнять цикл `
👉 @php_lib
Вместо того чтобы выполнять цикл `
foreach
` по массиву для поиска значения записи, вы можете использовать метод Laravel Collection `contains()
`.👉 @php_lib
👍7
Совет по PHP/Laravel 💡
Вместо того чтобы выполнять цикл
👉 @php_lib
Вместо того чтобы выполнять цикл
foreach
по массиву для поиска значения записи, вы можете использовать метод Laravel Collection contains()
.👉 @php_lib
👍8
Совет из документации по Laravel💡
Если вы хотите войти в систему от имени конкретного пользователя, чтобы проверить, как выглядит какая-то функция в его рабочем пространстве, вы можете использовать методы `
https://laravel.com/docs/11.x/authentication#authenticate-a-user-instance
👉 @php_lib
Если вы хотите войти в систему от имени конкретного пользователя, чтобы проверить, как выглядит какая-то функция в его рабочем пространстве, вы можете использовать методы `
Auth::login()
` или `Auth::loginUsingId()
`.https://laravel.com/docs/11.x/authentication#authenticate-a-user-instance
👉 @php_lib
👍3
Совет по Laravel💡: Assert JSON Fragments
При тестировании API нам часто нужно проверить, содержит ли ответ определенный ключ с ожидаемыми данными. Laravel поставляется с функцией «
👉 @php_lib
При тестировании API нам часто нужно проверить, содержит ли ответ определенный ключ с ожидаемыми данными. Laravel поставляется с функцией «
assertJsonFragment
», которая позволяет сделать именно это 🚀.👉 @php_lib
👍1
Привет, разработчики Laravel 👩💻
Начиная с Laravel v11.18.0, в методе
Пример использования метода
Раньше при использовании метода
Теперь мы можем передать параметр
Это может улучшить пользовательский опыт для некоторых приложений.
#laravel #php
👉 @php_lib
Начиная с Laravel v11.18.0, в методе
Str::limit()
появился новый параметр preserveWords
.Пример использования метода
limit()
— отображение предварительных версий текстового контента, таких как резюме или отрывки блог-постов.Раньше при использовании метода
limit
он мог разрывать слова посередине.Теперь мы можем передать параметр
preserveWords
как true
, и Laravel умно применит ограничение так, чтобы последнее слово было полным.Это может улучшить пользовательский опыт для некоторых приложений.
#laravel #php
👉 @php_lib
👍7👌1
Совет по Laravel 💡
Вам нужно использовать одни и те же правила проверки пароля для разных маршрутов пользователей (например, при регистрации и создании панели администратора)?
Обратите внимание на функцию `
Ознакомьтесь со всеми правилами в документации: https://github.com/illuminate/validation/blob/master/Rules/Password.php
👉 @php_lib
Вам нужно использовать одни и те же правила проверки пароля для разных маршрутов пользователей (например, при регистрации и создании панели администратора)?
Обратите внимание на функцию `
Password::defaults()
`. Ознакомьтесь со всеми правилами в документации: https://github.com/illuminate/validation/blob/master/Rules/Password.php
👉 @php_lib
👍5
Совет Laravel 🔥
В конструктор запросов Laravel входит функция `
👉 @php_lib
В конструктор запросов Laravel входит функция `
lockForUpdate()
`. Она останавливает любые обновления или другую общую блокировку выбранной записи до тех пор, пока транзакция не будет завершена.👉 @php_lib
👍6
Media is too big
VIEW IN TELEGRAM
Что нового в мире PHP и Laravel случилось в июле расскажут Сергей Пантелеев и Данил Щуцкий!
00:00 - Обзор новостей PHP
02:41 - Обзор обновлений Laravel
08:27 - Релиз Laravel 11.15
10:53 - Релиз Laravel 11.16
11:36 - Релиз Laravel 11.17
источник
👉 @php_lib
00:00 - Обзор новостей PHP
02:41 - Обзор обновлений Laravel
08:27 - Релиз Laravel 11.15
10:53 - Релиз Laravel 11.16
11:36 - Релиз Laravel 11.17
источник
👉 @php_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Совет по Laravel 💡
Один из моих любимых недокументированных советов, который я регулярно использую. Используйте "
👉 @php_lib
Один из моих любимых недокументированных советов, который я регулярно использую. Используйте "
wasRecentlyCreated
", чтобы проверить, была ли модель создана или найдена в базе данных.👉 @php_lib
👍8
Совет по Laravel💡
Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?
И не хотите устанавливать Debugbar, Telescope и т.п.?
Используйте
👉 @php_lib
Хотите быстро вывести SQL-запросы, выполненные во время вашего запроса?
И не хотите устанавливать Debugbar, Telescope и т.п.?
Используйте
DB::listen()
с toRawSql()
!👉 @php_lib
👍12