如何使用 php urlencode() 将 url 转换为超链接?
How to convert an url into a hyperlink with php urlencode()?
正在尝试将纯文本 URL 转换为有效的 link。
我遇到的问题是我的 link 可能包含 both English (A-Z/a-z) 和 希伯来文 (אבגדהוזחטיכךלמםנןסעפףצץקרשת) 字母。
使用 PHP 的 urlencode()
函数,我能够获得正确的希伯来语格式,但我找不到将其转换为 link 的正确方法。
到目前为止我的代码(不适用于希伯来字母):
$replyText = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="" target="_blank"></a>', $replyText);
一个 URL 的例子我需要转换成 link:
google.co.il%2F%D7%A9%D7%9C%D7%95%D7%9D_Hello.html
将成为:
您只需替换 %2F
=> /
,因此您的 link 将是:google.co.il/%D7%A9%D7%9C%D7%95%D7%9D_Hello.html
尽管我相信您已经发布了代表所需输出的内容,但如果这是我的任务,我想我会在 <a>
标记中有一个 url 编码的 href
值和 human-readable link 文本。
代码:(Demo)
$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>
有效输出:
请注意,当您将鼠标悬停在 link 上时,浏览器的状态栏将无论如何显示 un-encoded url。
正在尝试将纯文本 URL 转换为有效的 link。
我遇到的问题是我的 link 可能包含 both English (A-Z/a-z) 和 希伯来文 (אבגדהוזחטיכךלמםנןסעפףצץקרשת) 字母。
使用 PHP 的 urlencode()
函数,我能够获得正确的希伯来语格式,但我找不到将其转换为 link 的正确方法。
到目前为止我的代码(不适用于希伯来字母):
$replyText = preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="" target="_blank"></a>', $replyText);
一个 URL 的例子我需要转换成 link:
google.co.il%2F%D7%A9%D7%9C%D7%95%D7%9D_Hello.html
将成为:
您只需替换 %2F
=> /
,因此您的 link 将是:google.co.il/%D7%A9%D7%9C%D7%95%D7%9D_Hello.html
尽管我相信您已经发布了代表所需输出的内容,但如果这是我的任务,我想我会在 <a>
标记中有一个 url 编码的 href
值和 human-readable link 文本。
代码:(Demo)
$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>
有效输出:
请注意,当您将鼠标悬停在 link 上时,浏览器的状态栏将无论如何显示 un-encoded url。