下面的方法使链接可点击。这是一个过滤器。您发送文本字符串,它将超文本传输协议和https转换为可点击的链接。
/**
* Make clickable links from URLs in text.
*
*/
public function make_clickable($text) {
return preg_replace_callback(
'#\b(?<![href|src]=[\'"])https?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#',
create_function(
'$matches',
'return "<a href=\'{$matches[0]}\'>{$matches[0]}</a>";'
),$text);
}
我想扩展这个方法来接受www(比如www.google.com),这可能吗?
提前感谢。
使现代化
下面的字符串查找超文本传输协议,https和www,但与www类型的链接有错误的href。例如,它链接到webroot/www.test.com。
'/((http[s]?:|www[.])[^\s]*)/'
解决方案
/**
* Make clickable links from URLs in text.
*/
public function make_clickable($text) {
// Force http to www.
$text = preg_replace( "(www\.)", "http://www.", $text );
// Delete duplicates after force.
$text = preg_replace( "(http://http://www\.)", "http://www.", $text );
$text = preg_replace( "(https://http://www\.)", "https://www.", $text );
// The RegEx.
$regExUrl = "/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
// Check if there is a URL in the text.
if(preg_match($regExUrl, $text, $url)) {
// Make the URLs hyper links.
$text = preg_replace(
$regExUrl,
'<a href="' . $url[0] . '" rel="nofollow" target="_blank">' . $url[0] . '</a>',
$text
);
}
return $text;
}
您有一些语法错误(没有转义/
)。无论如何,如果您想匹配www.
,只需直接将其添加到您的字符串中(记住要转义.
,否则它是控制字符)
preg_replace_callback(
'#\b(?<![href|src]=[\'"])(?:http(?:s|):\/\/|)(?:www\.|)[^\s()<>]+(?:\([\w\d]+\)|(?:[^[:punct:]\s]|\/))#', ...);
在我的控制器中,我有一个用以下映射映射的方法:@PostMapping(“/”)。 此方法需要一个我试图捕获的请求主体,如下所述: 使用这两种方法对我来说都很好,我只是进退两难,如果直接在实体类中接受请求体是一个好主意和最佳实践的话。 我不想在controller类中公开我的实体类,因为我不确定这是否是一个好主意。 java 这两种方法都给出了相同的结果,更多的是关注要遵循的最佳实践。
问题内容: 我正在尝试CSS过滤器,但在我的Firefox(15.0)浏览器中不起作用。 HTML: CSS: 问题答案: GrayScale具有使用-moz-filter在Firefox中运行的限制。 要使其正常工作,请使用以下代码段:
我的JUnitRunner无法选择具有JBehave中指定的meta标记的场景。 以下是我的故事: 下面是我的运行程序文件: 当我作为JUnit test运行上述类时,没有调用带有烟雾标记的实际测试,也没有执行任何内容。 下面是我在执行上面的代码时得到的结果
我有一个包含一些字符串值的列表。我想与另一个字符串进行比较来迭代列表。只有当另一个字符串与列表中的任何元素都不匹配时,那么我才应该进入循环。我试过下面这样的东西,但没有效果。在Java8中有没有其他替代方法可以实现同样的功能? 注意:在循环中,我将向同一列表中添加更多的元素。因此,为了避免,我使用if条件进行验证。
问题内容: 我正在尝试获取用户输入的网址的图标,例如 我使用HttpUrlConnection 从主机URL 的扩展名中获取网站图标的位图。 但是,由于用户可能不会指定或,所以我必须自己添加它。我遇到的问题是,如果我在url前面添加,一切都会正常运行,但是对于,某些网站会返回该网站图标,而其他网站只会给我null。我如何找出使用哪个页面?我应该为每种情况添加吗?是否有任何网站严格限制并会返回nul
问题内容: 我的问题很简单,但我找不到答案,也没有自己进行测试的资源。我可以从一个域向另一个HTTPS域发出HTTPS CORS请求吗?我可以从一个域向另一个HTTPS域发出HTTP CORS请求吗?我知道,我可以执行从一个域到另一个HTTP域的HTTP CORS请求,但是当使用HTTPS时,我不知道是否存在任何区别。 谢谢, 菲利普 问题答案: 是的,您可以从一个HTTPS域向另一个HTTPS域