php - 确定用户输入包含 URL

标签 php javascript jquery

我有一个收集混合字符串的输入表单字段。

确定发布的字符串是否包含 URL(例如 http://link.com、link.com、www.link.com 等),以便可以根据需要正确锚定。

这方面的一个例子是微博功能,其中处理脚本将锚定任何带有链接的东西。其他示例可能是同一帖子,其中“http://link.com”自动锚定。

我相信我应该在展示上而不是在输入上处理这个问题。我该怎么办?

最佳答案

您可以使用正则表达式在 PHP 中的每个匹配项上调用一个函数。例如,您可以使用以下内容:

<?php

function makeLink($match) {
    // Parse link.
     $substr = substr($match, 0, 6);
     if ($substr != 'http:/' && $substr != 'https:' && $substr != 'ftp://' && $substr != 'news:/' && $substr != 'file:/') {
        $url = 'http://' . $match;
     } else {
        $url = $match;
     }

     return '<a href="' . $url . '">' . $match . '</a>';
}
function makeHyperlinks($text) {
    // Find links and call the makeLink() function on them.
    return preg_replace('/((www\.|(http|https|ftp|news|file)+\:\/\/)[_.a-z0-9-]+\.[a-z0-9\/_:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])/e', "makeLink('$1')", $text);
}

?>

关于php - 确定用户输入包含 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6984213/

相关文章:

jquery - 使用jQuery获取<p>标签内容

javascript - 禁用另一个选择已选择的选项(动态添加选择框)

php - 如何对wp_query的结果进行排序

php - Zend framework 2\Zend\Db\ResultSet\ResultSet->toArray() 不返回记录

php - MySQL选择所有缺少的记录

javascript - TypeError:无法获取未定义或空引用的属性“项目”

javascript - 使用Java启用验证程序

php - fatal error : Call to undefined function easter_date()

javascript - 为什么我的调试控制台调试的是关闭的旧文件而不是当前文件?

javascript - jQuery toggleClass() 方法不适用于 JSON 生成的内容