2015-11-09 108 views
-2

我想同時運行多個url,但我不想複製並粘貼到數組中。我想把它放在一個字符串中,並用逗號將它分解爲雙引號,就像我們在數組中寫入一樣。如何將字符串分解爲雙引號並用逗號分隔php?

我從這個

$urls = " 
    http:// 
    http:// 
    http:// 
    http://"; 

想進入這個

$urls = array("http://","http://","http://","http://"); 

這是我迄今所做

<?php 
    $urls = " 
     http:// 
     http:// 
     http://"; 
    $url = preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/', $urls, $matches); 
    foreach($url as $ul){ 
     echo $ul[1]; 
    } 
?> 
+4

由'\ n'爆炸。 '$ arr = explode(「\ n」,$ urls);' – Tushar

回答

2
<?php 
$urls = " 
    http:// 
    http:// 
    http:// 
    http://"; 

var_dump(array_map(function($s){return trim($s);},explode(PHP_EOL,trim($urls)))); 

爆炸上一個新行的陣列,首先從開頭和結尾修剪掉空格。然後通過array_map傳遞該數組,其中每個元素都被再次修剪以從每個元素中刪除空白。

1

你可以不喜歡這樣;

$urls = "http:// http:// http:// http://"; 
$myArray= explode(" ", $urls); 
echo '<pre>'; 
var_dump($myArray); 
echo '<pre>'; 

您需要添加的分離器,有

2

其實你可以使你的代碼的工作有一些變化

<?php 
    $urls = " 
     http://a 
     http://b 
     http://c"; 
    $url = preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/', $urls, $matches); 

    if($url != false && $url > 0 && array_key_exists(0, $matches)) { 
     foreach($matches[0] as $ul){ 
      echo $ul . "<br />"; 
     } 
    } 
?>