PHP Matching URLs and using preg_replace_callback()(PHP匹配URL并使用preg_place_allback())
本文介绍了PHP匹配URL并使用preg_place_allback()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用以下内容查找$CONTENT内的所有URL
$content = preg_match_all( '/(http[s]?:[^s]*)/i', $content, $links );
但这将取决于http://www.google.com/some/path
中的http://
部分。
我的问题是:
1-如何修改才能同时点击仅以www
开头的链接,例如www.google.com
?
2-主要目的是查找链接,并用从另一个函数返回的值替换它们。我尝试了preg_Match_Callback(),但它不起作用(可能用错了..
$content = preg_replace_callback(
"/(http[s]?:[^s]*)/i",
"my_callback",
$content);
function my_callback(){
// do a lot of stuff independently of preg_replace
// adding to =.output...
return $output;
}
现在,在我的逻辑中(可能是错误的),$content
中的所有匹配都将替换为$output
。我做错了什么?
(请不要使用匿名函数-我正在旧服务器上测试)
编辑我-在评论之后,试图用更多细节澄清
function o99_simple_parse($content){
$content = preg_replace_callback( '/(http[s]?:[^s]*)/i', 'o99_simple_callback', $content );
return $content;
}
回调:
function o99_simple_callback($url){
// how to get the URL which is actually the match? and width ??
$url = esc_url_raw( $link );
$url_name = parse_url($url);
$url_name = $description = $url_name['host'];// get rid of http://..
$url = 'http://something' . urlencode($url) . '?w=' . $width ;
return $url; // what i really need to replace
}
推荐答案
要修改已经允许www
开头的URL的正则表达式,只需编写以下代码:
/((http[s]?:|www[.])[^s]*)/i
+ ++++++++
这篇关于PHP匹配URL并使用preg_place_allback()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PHP匹配URL并使用preg_place_allback()
基础教程推荐
猜你喜欢
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在多维数组中查找最大值 2021-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01