Php 如何获取url并将其逐行放入文本文件中?
假设存在一个名为:Php 如何获取url并将其逐行放入文本文件中?,php,Php,假设存在一个名为: src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"|| 现在我想获取url部分http://www.test.com/1455/ 下面是我的代码。但它不起作用 $url = 'src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||'; $a = explode("src=\"",$url);
src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||
现在我想获取url部分http://www.test.com/1455/
下面是我的代码。但它不起作用
$url = 'src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||';
$a = explode("src=\"",$url);
$b = explode("||",$a);
$handle = fopen("output.txt", 'a')) !== FALSE
fwrite($handle2, "{$b[0]}\n");
使用与此类似的正则表达式,当然可以根据需要修改它。这只是一个例子,但它将为你工作
$url = 'src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||';
preg_match_all('/\b(?:(?:https?|ftp|file):\/\/|www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i', $url, $result, PREG_PATTERN_ORDER);
print_R($result);
它会打印出来
Array
(
[0] => Array
(
[0] => http://www.test.com/1455/
[1] => http://www.test.com/image/1456/
)
)
并将其写入文本文件:
$handle = fopen("output.txt", 'a');
foreach($result[0] as $url){
fwrite($handle, $url."\n");
}
fclose($handle);
这里有关于regex的更多详细信息用于更一般情况的解决方案。此代码将字符串转换为URL查询格式,并通过函数对其进行解析 输出:
Array
(
[src] => Array
(
[0] => "http://www.test.com/1455/"
[1] => "http://www.test.com/image/1456/"
)
[var1] => Array
(
[0] => aaa
)
[var2] => Array
(
[0] => bbb
[1] => bbb
)
)
然后,您可以使用该数组执行您想要的任何操作使用正则表达式匹配模式并获得匹配记录的数组。我把你的密码放进去了。它显示警告:为foreach()提供的参数无效谢谢您是否尝试使用
print\r($result)打印提取的结果代码>,警告可能是由于空的$result
$url = 'src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||var1=aaa||var2=bbb||var2=bbb';
$url = str_replace('||', '&', $url);
$url = preg_replace('/([^\]])=/', '$1[]=', $url);
$params = array();
parse_str($url, $params);
print_r($params);
Array
(
[src] => Array
(
[0] => "http://www.test.com/1455/"
[1] => "http://www.test.com/image/1456/"
)
[var1] => Array
(
[0] => aaa
)
[var2] => Array
(
[0] => bbb
[1] => bbb
)
)