为什么关闭?人们真的认为没有其他人需要学习如何将两个函数应用于一个字符串?这就是BTW的问题。
* * *此问题已解决 工作代码:
link_up(htmlentities($row['note']))
感谢您的帮助,我猜需要正确的语法。谢谢!
好的,所以我有一个表格,访客可以填写留言。我创建了一个名为link_up的函数,它将注释中的类型化Web地址转换为可点击的链接,而不使用html标记。问题是因为我将显示用户输入我还想在显示时使用htmlentities。这是我的代码,没有任何影响。
这有效,但不安全......
<tr><td class='note'>" . link_up($row['note']) . "</td>" ;
这也可以,但不使用我为它创建的link_up函数
echo "<tr><td class='note'>" . htmlentities($row['note']) . "</td>" ;
所以我需要的是这样的东西(但这显然不起作用)
echo "<tr><td class='note'>" . htmlentities . link_up($row['note']) . "</td>" ;
所以我想我要问的是,我怎样才能同时使用htmlentities函数和我做的link_up函数,这样当$ row ['note']回显时它既安全又有效如预期?或者问一下如何在一个回声字符串上同时使用两个函数更有意义呢?
这是link_up函数
function link_up($text)
{
$text= preg_replace("/(^|[\n ])([\w]*?)((ht|f)tp(s)?:\/\/[\w]+[^ \,\"\n\r\t<]*)/is", "$1$2<a href=\"$3\" class=\"notelink\" target=\"blank\">$3</a>", $text);
$text= preg_replace("/(^|[\n ])([\w]*?)((www|ftp)\.[^ \,\"\t\n\r<]*)/is", "$1$2<a href=\"http://$3\" class=\"notelink\" target=\"blank\" >$3</a>", $text);
$text= preg_replace("/(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+)+)/i", "$1<a href=\"mailto:$2@$3\">$2@$3</a>", $text);
return($text);
}
答案 0 :(得分:1)
你有一个很大的误解(只是这样说,你可以更容易地订购事物)。
htmlentities()
函数用于对文本进行编码,使其在HTML文档中保持不变。
但是在您的情况下,您已经生成了HTML文档中使用的HTML 作为链接,以便链接在超文本中:
link_up()
你可能已经混合了这两个功能并不能很好地协同工作。但是,如果你很幸运,它们可以很好地协同工作,只需按照其他顺序使用它们:
link_up(htmlentities($row['note']));
首先在内部创建HTML,然后在链接周围添加更多HTML。
答案 1 :(得分:-2)
试试这个?我完成了相同的工作,但我只是创建了我的链接,而不是使用函数调用。
<tr><td class='note'><?php echo link_up(htmlentities($row['note']), ENT_QUOTES, 'UTF-8');?></td>"