Разбор ввода textarea с PHP, как если бы это CSV? - PullRequest
1 голос
/ 11 февраля 2010

Я пытаюсь создать сайт, на котором люди вставляют CSV-файл прямо в текстовое поле (скажем, его называют «оригинал-текст») и анализируют его, с помощью моего сценария, затем генерируя что-то из этого. Я знаю, как анализировать CSV-файл на сервере (используя fgetcsv), но не знаю, как получить входные данные из переменной POST INTO, которая fgetcsv. пока я пробовал что-то вроде этого, но безрезультатно:

$file_handle = fopen("php://input", "r");

while (!feof($file_handle) ) {
    $line_of_text = fgetcsv($file_handle);
    echo $line_of_text[0] . '<br />';
}

Ответы [ 2 ]

6 голосов
/ 11 февраля 2010

fgetcsv() имеет двоюродного брата по имени str_getcsv () , который должен делать именно то, что вам нужно.Как часто бывает, с чудесным именем (один раз без, один раз с подчеркиванием).Ах хорошо!Но мы по-прежнему любим PHP, не так ли.

Пример (без санитарии !!! Хотя на данный момент я не вижу необходимости).

$array_csv = str_getcsv($_POST["csv"]);
2 голосов
/ 16 июня 2015

Пример Пекки работает для одной строки данных CSV. Если пользователи вводят несколько строк данных CSV, вам придется сначала сжать их в массив ('$ lines' в приведенном ниже примере), а затем выполнить итерацию и проанализировать каждую строку с помощью str_getcsv:

$array_csv = array();
  $lines = explode("\n", $_POST["csv"]);
  foreach ($lines as $line) {
    $array_csv[] = str_getcsv($line);
  }
}

См .: синтаксический анализ CSV в многомерный массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...