2015-06-30 92 views
-1

我需要使用PHP从textarea元素的输出中解析代理的数组及其IP和端口。我想知道什么是最有效的方法来解决这个问题,因为通过textarea上传的列表可能在proxy:portproxy port(有空格),在这两种情况下,每个代理将通过换行符分隔。如何从此字符串提取IP地址和端口号?

例如,如果以下列表中在两个不同的occassions上传:

34.345.32.1 9032 
4.3.21.234 2023 
45.31.45.324 1025 

而且

34.345.32.1:9032 
4.3.21.234:2023 
45.31.45.324:1025 

然后,在两种情况下,所得的阵列将是

$proxies = array (
    array('34.345.32.1',9032), 
    array('4.3.21.234',2023), 
    array('45.31.45.324',1025) 
); 

我已经尝试了以下代码,但是var_dump()array什么都不打印。

$array = explode("\n", $_POST['proxies']); 
$array2 = explode(" " $array); 
+0

你试过了什么?一旦我们看到您为解决方案付出努力,我们就可以帮助您解决您的问题。 – cmorrissey

+0

@cmorrissey我试过http://pastie.org/10266747 – James

回答

1

您可以使用一个简单的foreach遍历阵列,并且strpos检测定界符

$proxies = explode("\n", $_POST['proxies']); 
foreach($proxies as $key => $value){ 
    if(strpos($value, ' ')){ 
     $proxies[$key] = explode(' ', $value); 
    } else { 
     $proxies[$key] = explode(':', $value); 
    } 
} 

print_r($proxies); 

这是您将需要在这个扩大,以确保您的数据是标准化的一个基本的例子超越这个点。

+0

完美,谢谢。 – James