Что нужно сделать:
Реализуйте замену ссылок в тексте, отправленном через HTML-форму, а также со стороны HTML страницы.
-
Создайте файл HtmlProcessor.php. В этом файле будет имплементирована обработка запроса методом POST в формате JSON.
-
Чтобы определить метод запроса в HtmlProcessor.php, используйте значение $_SERVER['REQUEST_METHOD']. Для получения тела запроса — в нём будет передаваться текст, помещенный в объект JSON, — используйте $_POST или file_get_contents('php://input').
-
Получив текст, выполните замену всех тегов со ссылками на текст самих ссылок.
-
Когда преобразование будет выполнено, создайте JSON объект с полем formatted_text, присвойте ему преобразованный текст и отправьте в ответе.
-
В случае, если на входе вы получили пустой текст, отправьте пустой ответ с кодом 500. Код ответа можно указать с помощью функции http_response_code.
-
В заголовке ответа также укажите Content-Type: application/json.
-
Реализуйте HTML-форму для загрузки текста со сторонней HTML-страницы и передачи его в HtmlProcessor.php. Для этого создайте отдельный файл html_import_processor.php и опишите в нём HTML-форму с текстовым полем ввода URL-адреса страницы, с которой будет копироваться контент. Метод формы — POST, action — сам файл html_import_processor.php.
-
После кода формы реализуйте серверную логику на PHP (отделите PHP-код тегами .
-
Чтобы получить контент страницы по URL, используйте cURL. Для инициализации cURL используйте функцию curl_init. Страницу будем загружать с помощью HTTP метода GET. Простой пример использования cURL можно посмотреть на https://www.php.net/manual/ru/curl.examples-basic.php.
-
Получив текст, положите его в объект JSON (например, в поле raw_text). Чтобы создать из массива или объекта текст формата JSON, используйте функцию json_encode.
-
С помощью cURL отправьте JSON в HtmlProcessor.php. Для этого перед curl_exec добавьте два вызова:
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $json).
Где json — это JSON.
-
Получите результат curl_exec, и, в случае успешной обработки текста, выведите его в браузер. А в случае ошибки (код 500) — сообщите об ошибке.