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