Curl php: PHP: Простой пример использования curl
Содержание
php — Как использовать cURL для получения данных jSON и декодирования данных?
Итак, у меня есть ссылка, которая возвращает объект jSON, и мне нужно его декодировать и поместить в переменные в PHP.
URL-адрес
api.php?action=getThreads&hash=123fajwersa&node_id=4&order_by=post_date&order=desc&limit=1&grab_content&content_limit=1
Это объект, который он возвращает
{ "количество": 1, "потоки": { "38752": { "thread_id": 38752, "идентификатор_узла": 4, "title": "Запуск бета-версии ShadyCraft!", "количество_ответов": 45, "количество_просмотров": 946, "user_id": 2, "имя пользователя": "Шейди", "post_date": 1366956695, "липкий": 0, "состояние_обсуждения": "видимый", "обсуждение_открыто": 1, "тип_обсуждения": "", "first_post_id": 226167, "first_post_likes": 7, "last_post_date": 1369094302, "last_post_id": 228226, "last_post_user_id": 2, "last_post_username": "Темный", "префикс_ид": 19, "tinhte_xentag_tags": "a:4:{i:0;s:9:\"minecraft\";i:2;s:4:\"новости\";i:3;s:14:\"частный сервер\";i:1;s:10:\"shadycraft\"; }", "содержание": { "количество": 1, "содержание": { "226167": { "post_id": 226167, "thread_id": 38752, "user_id": 2, "имя пользователя": "Шейди", "post_date": 1366956695, "message": "[ATTACH=full]4143[\/ATTACH]\n \nМы полностью изменили структуру ShadyCraft, и сегодня состоится запуск бета-версии ShadyCraft.\n \nТекущие функции\n[LIST]\n[ *]Города\n[*]Нации\n[*]Все войны\n[*]Обновление карты в реальном времени\n[*]Нет белого списка\n[*]Зарабатывайте деньги\n[*]Горе разрешено там, где возможно\n[\/LIST]\nЭто лишь некоторые функции, за которыми стоит гораздо больше вещей. Например, содержание города и нации, налоги, королевства, мэры и короли.\n \nМы очень хотели, чтобы сервер является самоуправляемым, поэтому грифинг и PvP разрешены везде, где это возможно.Все города и нации не могут быть грифингованы другими участниками.Вы можете создать город и купить для него участки и расширить город по своему желанию.\ n \n[SIZE=4]Все это показано на обновляемой в реальном времени карте, расположенной [URL='http:\/\/50.7.6.116:8123']здесь[\/URL].[\/SIZE]\n \n[SIZE=4][SIZE=6]Присоединиться к бета-тестированию сейчас[\/SIZE][\/SIZE]\n[SIZE=6]IP-адрес сервера: 50.7.6.116[\/SIZE]\n \n \ n[USER=118053]Французский[\/USER] и [USER=4863]Волчий яд[\/USER]", "ip_id": 747429, "message_state": "видимый", "attach_count": 1, "позиция": 0, "нравится": 7, "like_users": "a:5:{i:0;a:2:{s:7:\"user_id\";i:105699;s:8:\"имя пользователя\";s:6:\"kvothe \";}i:1;a:2:{s:7:\"user_id\";i:146724;s:8:\"имя пользователя\";s:12:\"Graveyard219\";}i: 2;a:2:{s:7:\"user_id\";i:70182;s:8:\"имя пользователя\";s:9:\"wmbrown18\";}i:3;a:2: {s:7:\"user_id\";i:5473;s:8:\"имя пользователя\";s:9:\"Забывчивый\";}i:4;a:2:{s:7:\ "user_id\";i:118053;s:8:\"имя пользователя\";s:7:\"французский\";}}", «идентификатор_предупреждения»: 0, "предупреждающее сообщение": "", "anonymous_posting_real_user_id": 0, "anonymous_posting_real_username": "" } } } } } }
На самом деле меня интересует только
"заголовок":"Запуск бета-версии ShadyCraft!", "ответ_счетчик:" 45, "количество_просмотров": 946, "user_id":2, "имя пользователя":"Темный", "post_date":1366956695, "липкий":0, "состояние_обсуждения":"видимый", "обсуждение_открыто":1,
и, наконец, сообщение
[ATTACH=full]4143[/ATTACH] Мы полностью изменили структуру ShadyCraft, и сегодня состоится запуск бета-версии ShadyCraft.Текущие функции [СПИСОК] [*]Города [*]Нации [*]Все войны [*]Карта обновлений в реальном времени [*]Нет белого списка [*]Зарабатывайте деньги [*]Горе разрешено там, где это возможно [/СПИСОК] Это лишь некоторые функции, за которыми стоит гораздо больше вещей. Например, есть содержание города и нации, налоги, королевства, мэры и короли. Мы действительно хотели, чтобы сервер был самоуправляемым, и поэтому гриферство и PvP разрешены везде, где это возможно. Все города и нации не могут быть огорчены другими членами. Вы можете создать город, купить для него участки и расширить город по своему желанию. [SIZE=4]Все это показано на обновляемой в реальном времени карте, расположенной [URL='http://50.7.6.116:8123']здесь[/URL].[/SIZE] [SIZE=4][SIZE=6]Присоединяйтесь к бета-тестированию прямо сейчас[/SIZE][/SIZE] [SIZE=6]IP-адрес сервера: 50.7.6.116[/SIZE] [USER=118053]Французский[/USER] и [USER=4863]Волчий яд[/USER]
Итак, как я могу извлечь объект jSON и поместить его для исправления переменных в PHP, которые я смогу использовать позже?
Переменные, такие как: $username
, $user_id
, $message
, $title
, $discussionState
и так далее.
Мне просто нужно знать, как я могу получить объект jSON, а затем извлечь данные в переменные в PHP.
Теперь я могу получить массив PHP, но у меня возникают проблемы с вызовом правильных значений. Вот массив.
Массив ( [число] => 1 [потоки] => Массив ( [13] => Массив ( [thread_id]
=> 13 [node_id] => 4 [title] => Интеграция с форумом почти завершена! [reply_count] => 0 [view_count] => 0 [user_id] => 59 [username] =>
Фаэрон [post_date] => 1369257302 [sticky] => 0 [discussion_state] =>
visible [discussion_open] => 1 [discussion_type] => [first_post_id] =>
23 [first_post_likes] => 0 [last_post_date] => 1369257302
[last_post_id] => 23 [last_post_user_id] => 59[last_post_username] =>
Фаэрон [prefix_id] => 1 [content] => Array ( [count] => 1 [content] =>
Массив ( [23] => Массив ( [post_id] => 23 [thread_id] => 13 [user_id] =>
59 [username] => Faeron [post_date] => 1369257302 [message] => Это
прошло довольно много времени с тех пор, как мы начали интегрировать форумы phanime с
основной сайт.Мы закончили интеграцию с phanime
Форумы и основной сайт. Вы больше не заметите, что их два.
платформы, на которых работает phanime, а вместо этого только одна. Нашим следующим шагом будет
тематика форумов, чтобы она была похожа на основной сайт! [ip_id] => 268
[message_state] => видимое [attach_count] => 0 [позиция] => 0 [лайки]
=> 0 [like_users] => a:0:{} [warning_id] => 0 [warning_message] => ) ) ) ) ) )
Теперь допустим, что этот массив был назван $array
, тогда, чтобы получить значение первого элемента «[count]», я не могу просто сказать следующее: print $array["[count]"]
<-- this возвращает ошибку.
Как насчет элемента, который имеет значение в виде самого массива, то есть элемента [threads]
. Как мне получить, возможно, значение элемента [thread_id]
?
Установка — Laravel — PHP Framework для веб-мастеров
Версия
Мастер10.x9.x8.x7.x6.x5.85.75.65.55.45.35.25.15.04. 2
- Познакомьтесь с Ларавелем
- Почему Ларавель?
- Ваш первый проект Laravel
- Ларавель и Докер
- Начало работы на macOS
- Начало работы в Windows
- Начало работы в Linux
- Выбор ваших парусных услуг
- Начальная конфигурация
- Конфигурация на основе среды
- Базы данных и миграции
- Конфигурация каталога
- Следующие шаги
- Laravel Полная структура стека
- Laravel Серверная часть API
Знакомьтесь с Laravel
Laravel — это платформа веб-приложений с выразительным и элегантным синтаксисом. Веб-фреймворк обеспечивает структуру и отправную точку для создания вашего приложения, позволяя вам сосредоточиться на создании чего-то удивительного, пока мы работаем над деталями.
Laravel стремится предоставить удивительный опыт разработчика, предоставляя мощные функции, такие как тщательное внедрение зависимостей, выразительный уровень абстракции базы данных, очереди и запланированные задания, модульное и интеграционное тестирование и многое другое.
Независимо от того, являетесь ли вы новичком в веб-фреймворках PHP или имеете многолетний опыт, Laravel — это фреймворк, который может расти вместе с вами. Мы поможем вам сделать первые шаги в качестве веб-разработчика или поддержим вас, когда вы поднимете свой опыт на новый уровень. Нам не терпится увидеть, что вы построите.
Примечание
Новичок в Laravel? Посетите Laravel Bootcamp для практического ознакомления с фреймворком, пока мы познакомим вас с созданием вашего первого приложения Laravel.
Почему Laravel?
Существует множество инструментов и сред, доступных вам при создании веб-приложения. Однако мы считаем, что Laravel — лучший выбор для создания современных полнофункциональных веб-приложений.
Прогрессивный фреймворк
Нам нравится называть Laravel «прогрессивным» фреймворком. Под этим мы подразумеваем, что Laravel растет вместе с вами. Если вы только делаете первые шаги в веб-разработке, обширная библиотека документации, руководств и видеоуроков Laravel поможет вам освоить основы, не перегружаясь.
Если вы старший разработчик, Laravel предоставит вам надежные инструменты для внедрения зависимостей, модульного тестирования, очередей, событий в реальном времени и многого другого. Laravel точно настроен для создания профессиональных веб-приложений и готов к работе с корпоративными нагрузками.
Масштабируемая платформа
Laravel невероятно масштабируем. Благодаря удобному для масштабирования характеру PHP и встроенной поддержке Laravel для быстрых распределенных систем кэширования, таких как Redis, горизонтальное масштабирование с Laravel очень просто. Фактически, приложения Laravel легко масштабируются для обработки сотен миллионов запросов в месяц.
Требуется экстремальное масштабирование? Такие платформы, как Laravel Vapor, позволяют запускать приложение Laravel практически в неограниченном масштабе на новейшей бессерверной технологии AWS.
Фреймворк сообщества
Laravel сочетает в себе лучшие пакеты в экосистеме PHP, чтобы предложить самый надежный и удобный для разработчиков фреймворк. Кроме того, в разработку фреймворка внесли свой вклад тысячи талантливых разработчиков со всего мира. Кто знает, может быть, вы даже станете участником Laravel.
Ваш первый проект Laravel
Перед созданием вашего первого проекта Laravel убедитесь, что на вашем локальном компьютере установлены PHP и Composer. Если вы разрабатываете на macOS, PHP и Composer можно установить через Homebrew. Кроме того, мы рекомендуем установить Node и NPM.
После того, как вы установили PHP и Composer, вы можете создать новый проект Laravel с помощью команды Composer create-project
:
composer create-project laravel/laravel example-app
Или вы можете создавать новые проекты Laravel, глобально устанавливая установщик Laravel через Composer:
composer global require laravel/installer
проект создан, запустите Laravel локальный сервер разработки с использованием командной строки Laravel Artisan
serve
command:cd example-app
php artisan serve
После запуска сервера разработки Artisan ваше приложение будет доступно в веб-браузере.
в
http://локальный хост:8000
. Теперь вы готовы сделать следующие шаги в экосистеме Laravel. Конечно, вы также можете настроить базу данных.Примечание
Если вы хотите получить преимущество при разработке своего приложения Laravel, рассмотрите возможность использования одного из наших стартовых наборов. Стартовые наборы Laravel обеспечивают основу аутентификации на бэкенде и внешнем интерфейсе для вашего нового приложения Laravel.Laravel & Docker
Мы хотим, чтобы начать работу с Laravel было как можно проще, независимо от предпочитаемой операционной системы. Таким образом, существует множество вариантов разработки и запуска проекта Laravel на вашем локальном компьютере. Хотя вы, возможно, захотите изучить эти варианты позже, Laravel предоставляет Sail, встроенное решение для запуска вашего проекта Laravel с помощью Docker.
Docker — это инструмент для запуска приложений и служб в небольших, легких «контейнерах», которые не мешают установленному программному обеспечению или конфигурации вашего локального компьютера.
Это означает, что вам не нужно беспокоиться о настройке или настройке сложных инструментов разработки, таких как веб-серверы и базы данных, на вашем локальном компьютере. Для начала вам нужно всего лишь установить Docker Desktop.
Laravel Sail — это облегченный интерфейс командной строки для взаимодействия с конфигурацией Laravel Docker по умолчанию. Sail обеспечивает отличную отправную точку для создания приложения Laravel с использованием PHP, MySQL и Redis, не требуя предварительного опыта работы с Docker.
Примечание
Уже являетесь экспертом по Docker? Не волнуйся! Все, что касается Sail, можно настроить с помощью файлаdocker-compose.yml
, входящего в состав Laravel.Начало работы в macOS
Если вы разрабатываете на Mac и Docker Desktop уже установлен, вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем «example-app», вы можете запустить следующую команду в своем терминале:
curl -s "https://laravel.
build/example-app" | bash
Конечно, вы можете изменить «example-app» в этом URL-адресе на что угодно — просто убедитесь, что имя приложения содержит только буквенно-цифровые символы, дефисы и символы подчеркивания. Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
Установка Sail может занять несколько минут, пока контейнеры приложений Sail собираются на вашем локальном компьютере.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
cd example-app
./vendor/bin/sail up
После запуска контейнеров Docker приложения вы можете доступ к приложению в веб-браузере по адресу: http://localhost.
Примечание
Чтобы узнать больше о Laravel Sail, ознакомьтесь с полной документацией.Начало работы в Windows
Прежде чем мы создадим новое приложение Laravel на вашем компьютере с Windows, обязательно установите Docker Desktop. Затем вы должны убедиться, что подсистема Windows для Linux 2 (WSL2) установлена и включена. WSL позволяет запускать двоичные исполняемые файлы Linux изначально в Windows 10. Информацию о том, как установить и включить WSL2, можно найти в документации по среде разработчика Microsoft.
Примечание
После установки и включения WSL2 необходимо убедиться, что Docker Desktop настроен на использование серверной части WSL2.Теперь вы готовы создать свой первый проект Laravel. Запустите Терминал Windows и начните новый сеанс терминала для вашей операционной системы WSL2 Linux. Далее вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем «example-app», вы можете запустить следующую команду в своем терминале:
curl -s https://laravel.
build/example-app | bash
Конечно, вы можете изменить «example-app» в этом URL-адресе на что угодно — просто убедитесь, что имя приложения содержит только буквенно-цифровые символы, дефисы и символы подчеркивания. Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
Установка Sail может занять несколько минут, пока контейнеры приложений Sail собираются на вашем локальном компьютере.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
cd example-app
./vendor/bin/sail up
После запуска контейнеров Docker приложения вы можете получить доступ к приложению в веб-браузере по адресу: http://localhost.
Note
Чтобы узнать больше о Laravel Sail, ознакомьтесь с полной документацией.Разработка в WSL2
Конечно, вам нужно будет иметь возможность изменять файлы приложений Laravel, которые были созданы в вашей установке WSL2. Для этого мы рекомендуем использовать редактор Microsoft Visual Studio Code и их собственное расширение для удаленной разработки.
После установки этих инструментов вы можете открыть любой проект Laravel, выполнив код
.
из корневого каталога вашего приложения с помощью Windows Terminal.Приступаем к работе в Linux
Если вы разрабатываете для Linux и Docker Compose уже установлен, вы можете использовать простую команду терминала для создания нового проекта Laravel. Например, чтобы создать новое приложение Laravel в каталоге с именем «example-app», вы можете запустить следующую команду в своем терминале:
curl -s https://laravel.build/example-app | bash
Конечно, вы можете изменить «example-app» в этом URL-адресе на что угодно — просто убедитесь, что имя приложения содержит только буквенно-цифровые символы, дефисы и символы подчеркивания.
Каталог приложения Laravel будет создан в каталоге, из которого вы выполняете команду.
Установка Sail может занять несколько минут, пока контейнеры приложений Sail собираются на вашем локальном компьютере.
После создания проекта вы можете перейти в каталог приложения и запустить Laravel Sail. Laravel Sail предоставляет простой интерфейс командной строки для взаимодействия с конфигурацией Docker по умолчанию в Laravel:
cd example-app
./vendor/bin/sail up
После запуска контейнеров Docker приложения вы можете получить доступ к приложению в веб-браузере по адресу: http://localhost.
Note
Чтобы узнать больше о Laravel Sail, ознакомьтесь с полной документацией.Выбор сервисов Sail
При создании нового приложения Laravel через Sail вы можете использовать
с
строковая переменная запроса, чтобы выбрать, какие службы должны быть настроены в файле вашего нового приложения docker-compose.yml . Доступные сервисы включают
mysql
,pgsql
,mariadb
,redis
,memcached
,meilisearch
,minio
,selenium
иmailpit
:curl -s "https:/ /laravel.build/example-app?with=mysql,redis" | bash
Если вы не укажете, какие службы вы хотите настроить, стек по умолчанию из
mysql
,redis
,meilisearch
,mailpit
иselenium
будут настроены.Вы можете указать Sail установить Devcontainer по умолчанию, добавив параметр
devcontainer
к URL-адресу:curl -s "https://laravel.build/example-app?with=mysql,redis&devcontainer" | bash
Исходная конфигурация
Все файлы конфигурации для платформы Laravel хранятся в папке
конфиг
каталог.Каждый параметр задокументирован, поэтому не стесняйтесь просматривать файлы и знакомиться с доступными вам параметрами.
Laravel почти не требует дополнительной настройки из коробки. Вы можете приступить к разработке! Однако вы можете просмотреть файл config/app.php
и его документацию. Он содержит несколько параметров, таких как
часовой пояс
иязыковой стандарт
, которые вы можете изменить в соответствии с вашим приложением.Конфигурация на основе среды
Поскольку многие значения параметров конфигурации Laravel могут различаться в зависимости от того, работает ли ваше приложение на локальном компьютере или на рабочем веб-сервере, многие важные значения конфигурации определяются с использованием файла
.env
, который существует по адресу корень вашего приложения.Ваш файл
.env
не должен быть зафиксирован в системе контроля версий вашего приложения, поскольку каждому разработчику/серверу, использующему ваше приложение, может потребоваться своя конфигурация среды.Кроме того, это может представлять угрозу безопасности в случае, если злоумышленник получит доступ к вашему репозиторию системы управления версиями, поскольку любые конфиденциальные учетные данные будут раскрыты.
Примечание
Для получения дополнительной информации о файле.env
и конфигурации на основе среды ознакомьтесь с полной документацией по конфигурации.Базы данных и миграции
Теперь, когда вы создали свое приложение Laravel, вы, вероятно, захотите сохранить некоторые данные в базе данных. По умолчанию файл конфигурации
.env
вашего приложения указывает, что Laravel будет взаимодействовать с базой данных MySQL и будет получать доступ к базе данных в127.0.0.1
. Если вы разрабатываете на macOS и вам нужно установить MySQL, Postgres или Redis локально, вам может быть удобно использовать DBngin.Если вы не хотите устанавливать MySQL или Postgres на свой локальный компьютер, вы всегда можете использовать базу данных SQLite.
SQLite — это небольшой, быстрый, автономный движок базы данных. Для начала создайте базу данных SQLite, создав пустой файл SQLite. Как правило, этот файл будет существовать в каталоге базы данных
вашего приложения Laravel:
touch database/database.sqlite
Затем обновите файл конфигурации
.env
, чтобы использовать драйвер базы данных Laravelsqlite
. Вы можете удалить другие параметры конфигурации базы данных:DB_CONNECTION=sqlite
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_ DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
Один раз вы настроили свою базу данных SQLite, вы можете запустить миграцию базы данных вашего приложения, которая создаст таблицы базы данных вашего приложения:
php artisan migrate
Конфигурация каталога
Laravel всегда должен обслуживаться из корня «веб-каталога», настроенного для вашего веб-сервера.
Вы не должны пытаться обслуживать приложение Laravel из подкаталога "веб-каталога". Попытка сделать это может привести к раскрытию конфиденциальных файлов, присутствующих в вашем приложении.
Следующие шаги
Теперь, когда вы создали свой проект Laravel, вам может быть интересно, что изучать дальше. Во-первых, мы настоятельно рекомендуем ознакомиться с тем, как работает Laravel, прочитав следующую документацию:
- Жизненный цикл запроса
- Конфигурация
- Структура каталогов
- Внешний интерфейс
- Сервисный контейнер
- Фасады
То, как вы хотите использовать Laravel, также будет определять следующие шаги в вашем путешествии. Существует множество способов использования Laravel, и ниже мы рассмотрим два основных варианта использования фреймворка.
Примечание
Новичок в Laravel? Посетите Laravel Bootcamp для практического ознакомления с фреймворком, пока мы познакомим вас с созданием вашего первого приложения Laravel.
Laravel Full Stack Framework
Laravel может служить полноценным фреймворком. Под «полным стеком» мы подразумеваем, что вы собираетесь использовать Laravel для маршрутизации запросов к вашему приложению и рендеринга внешнего интерфейса с помощью шаблонов Blade или гибридной технологии одностраничных приложений, такой как Inertia. Это самый распространенный способ использования фреймворка Laravel и, на наш взгляд, самый продуктивный способ использования Laravel.
Если вы планируете использовать Laravel именно так, вы можете ознакомиться с нашей документацией по разработке внешнего интерфейса, маршрутизации, представлениям или Eloquent ORM. Кроме того, вам может быть интересно узнать о пакетах сообщества, таких как Livewire и Inertia. Эти пакеты позволяют вам использовать Laravel в качестве полнофункционального фреймворка, одновременно пользуясь многими преимуществами пользовательского интерфейса, предоставляемыми одностраничными приложениями JavaScript.