Как преобразовать URL-адрес в гиперссылку с помощью php urlencode ()?

Попытка преобразовать простой текст URL в действительную ссылку.

У меня проблема в том, что моя ссылка может содержать буквы обаанглийский (A-Z / a-z) и иврит (אבגדהוזחטיכךלמםנןסעפףצץקרשת).

Используя функцию PHP urlencode(), мне удалось получить правильный формат для иврита, но я не могу найти правильный способ преобразования его в ссылку.

Мой код на данный момент (не работает с буквами иврита):

$replyText = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href = "$1" target = "_blank">$1</a>', $replyText);

Пример URL-адреса, который мне нужно преобразовать в ссылку:

google.co.il%2F%D7%A9%D7%9C%D7%95%D7%9D_Hello.html

Станет:

google.co.il%2F%D7%A9%D7%9C%D7%95%D7%9D_Hello.html

Если вы используете модификатор u, \w также может сопоставлять буквы иврита.

Casimir et Hippolyte 09.03.2018 14:41

Если вы хотите кодировать URL-адреса, используйте preg_replace_callback.

Casimir et Hippolyte 09.03.2018 14:43

См. ideone.com/wOoFNw

Wiktor Stribiżew 09.03.2018 14:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
276
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам просто нужно заменить %2F => /, поэтому ваша ссылка будет: google.co.il/%D7%A9%D7%9C%D7%95%D7%9D_Hello.html

ссылка на сайт

Ответ принят как подходящий

Несмотря на то, что, как я полагаю, вы опубликовали для представления желаемого результата, если бы это было моей задачей, я думаю, что у меня было бы значение href в теге <a> и читаемый человеком текст ссылки.

Код: (Демо)

$replyText = "google.co.il%2F%D7%A9%D7%9C%D7%95%D7%9D_Hello.html";
echo '<a href = "', str_replace('%2F','/',$replyText), '">', urldecode($replyText), '</a>';

Исходный код вывода:

<a href = "google.co.il/%D7%A9%D7%9C%D7%95%D7%9D_Hello.html">google.co.il/שלום_Hello.html</a>

Эффективный выход:

google.co.il/ שלום_ Hello.html

Обратите внимание, что когда вы наводите указатель мыши на ссылку, в строке состояния вашего браузера все равно будет отображаться незакодированный URL.

Другие вопросы по теме