如何获取url并将它们一行一行地放在文本文件中


How to get the url and put them in a text file one line by one line?

假设有一个名为的变量

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的更多详细信息,请点击此处http://php.net/manual/en/function.preg-match.php

更一般情况的解决方案。此代码将字符串转换为URL查询格式,并通过parse_str函数进行解析

$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
        )
)

然后你可以用这个数组做任何你想要的

$url = 'src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||';
$a = explode("||",$url); 
$handle = fopen("output.txt", 'a');
foreach($a as &$val)
{
   $val = str_replace("src='"","",$val);
   $val  = str_replace("'"","",$val);
   fwrite($handle, "{$val}'r'n");
}