Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP查找字符串中的URL?_Php_Url - Fatal编程技术网

如何使用PHP查找字符串中的URL?

如何使用PHP查找字符串中的URL?,php,url,Php,Url,我知道有filter\u var(),但我不想验证URL,我想在整个文本(例如推文)中发现它们。你有什么想法吗?使用正则表达式应该注意这一点。 这基本上适用于Twitter $text=$a_twitter_message; preg_match_all("/http:\/\/(.*?)\/? /", $text, $link_match); var_dump($link_match); 请看这里: 正则表达式解决方案很好,但这里有另一种简单的方法:使用strpos if(strpos($te

我知道有
filter\u var()
,但我不想验证URL,我想在整个文本(例如推文)中发现它们。你有什么想法吗?

使用正则表达式应该注意这一点。 这基本上适用于Twitter

$text=$a_twitter_message;
preg_match_all("/http:\/\/(.*?)\/? /", $text, $link_match);
var_dump($link_match);
请看这里:


正则表达式解决方案很好,但这里有另一种简单的方法:使用strpos

if(strpos($text, "http://") !== false) { print "url found"; } if(strpos($text,“http:/”)!==false){ 打印“找到url”; } 对不区分大小写的应用程序使用stripos

另外,请注意,其他正则表达式示例不检查“https”或仅检查以“www”开头的URL


@sexyprout regexp通常用/slashes/分隔,但如果您实际在正则表达式中查找slashes(解析
http://www.example.com/whatever...
),因为必须对表达式中的斜杠字符进行转义。为了更简单,您可以使用任何想要分隔正则表达式的字符。在本例中,“@”被选择为不需要出现在表达式本身中的任意字符。例如,正则表达式
/http:\/\/(.*)\/(.*)/
@http:/(.*)/(.*)@
是等价的,那么如何提取URL呢?我想我误解了你的帖子。。它说的是“点”,不是提取。。但我想提取更有意义;)