2015-11-09 3 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)))); 

Explode массива на новой строки, первый обрезки пробелы из начала и конца. Затем передайте этот массив через 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 />"; 
     } 
    } 
?> 
1

Вы можете использовать функцию preg_split на trimmed строке или с PREG_SPLIT_NO_EMPTY флагом.

$urls = preg_split('/\s+/', trim($urls)); 

\s+ соответствует одному или нескольким пробельные.

See demo at eval.in

Смежные вопросы