Пример str_getcsv

Я хочу проанализировать строку значений, разделенных запятыми, в массив. Я хочу попробовать str_getcsv() php, но я не могу найти никаких хороших примеров того, как ее использовать.

Например, у меня есть вход, где пользователи отправляют теги для языков программирования (php, js, jquery и т. Д.), Например, входные теги в stackoverflow при отправке вопроса.

Как включить ввод с примером value="php, js, jquery" в массив с помощью str_getcsv?

Это правда, что спецификация на http://us3.php.net/manual/en/function.str-getcsv.php не включает стандартный пример, но примечания, представленные пользователем, прикладывают достойную работу по ее покрытию. Если это ввод формы:

 $val = $_POST['value']; $data = str_getcsv($val); 

$data теперь представляет собой массив со значениями. Попробуйте и посмотрите, есть ли у вас какие-либо другие проблемы.

Думаю, вам стоит взглянуть на взрыв в этой задаче.

  $values = "php, js, jquery"; $items = explode(",", $items); // Would give you an array: echo $item[0]; // would be php echo $item[1]; // would be js echo $item[2]; // would be jquery 

Это, вероятно, более эффективно, чем str_getcsv ();

Обратите внимание, что вам нужно будет использовать trim () для удаления возможных пробелов и после значений элементов.

ОБНОВИТЬ:

Я раньше не видел str_getcsv, но прочитал эту цитату на man-странице, которая заставила бы ее выглядеть достойным кандидатом:

Почему бы не использовать explode () вместо str_getcsv () для разбора строк? Поскольку explode () не будет обрабатывать возможные вложенные части строки или экранированные символы правильно.

Для простоты и удобочитаемости я обычно использую just explode (), добавляя только str_getcsv (), если выполняются следующие два условия: 1) основной разделитель также используется внутри самих данных; 2) токен, который я пытаюсь использовать в качестве основного разделителя, заключен в другой отдельный символ.

Например, базовый синтаксический анализатор для файла CSV:

 $filename = $argv[1]; if (empty($filename)) { echo "Input file required\n"; exit; } $AccountsArray = explode("\n", file_get_contents($filename)); 

Пока каждый из элементов $ AccountsArray не встраивает «,» внутри самих данных, это будет работать отлично и просто и просто:

 foreach ($AccountsArray as $entry) { $acctArr = explode(",", $entry); } 

Однако часто данные будут содержать разделитель, в этот момент должен присутствовать прилагаемый токен (в этом примере). Если это так, то я переключаюсь на str_getcsv () следующим образом:

 foreach ($AccountsArray as $entry) { $acctArr = str_getcsv($entry, ",", "\""); } 
 //get the csv $csvFile = file_get_contents('test.csv'); //separate each line $csv = explode("\n",$csvFile); foreach ($csv as $csvLine) { //separet each fields $linkToInsert = explode(",",$csvLine); //echo what you need //$linkToInsert[0] would be the first field, $linkToInsert[1] second field, etc echo '• ' . $linkToInsert[1] . '<br>'; }