Regex: Разбор после 16 появлений символа? - PullRequest
1 голос
/ 06 мая 2011

/ * Отредактировано, чтобы иметь смысл!* /

I 900 строк этого:

;745;ref;name;Adress;zipcode;;mobphone;;;;;;;;;

я хочу 900 строк этого:

array(
  '',
  745,
  'ref',
  'name',
  'adress',
  'zipcode',
  '',
  'mobphone'
  etc..
)

Некоторые из строк, кажется, сводятся к однойтак что это один длинный вместо двух коротких.Мне нужно использовать функцию PHP split (), чтобы разделить строки после каждого 16-го символа точки с запятой, вот в чем я нуждаюсь в вашей помощи.

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Я не знаю, поможет ли это вам, но PHP уже содержит функциональность, которая позволяет вам анализировать файл CSV.Функция fgetcsv() будет читать файл CSV построчно.Он возвращает массив, содержащий значения каждого поля в текущей строке.

В вашем случае вам необходимо указать ему использовать точку с запятой вместо запятой в качестве разделителя полей.

$fp = fopen('file.csv', 'r');
while ($line = fgetcsv($fp, 0, ';')){
  $firstField = $line[0];
  $secondField = $line[1];
  //...
}
0 голосов
/ 06 мая 2011

Взгляните на взрыв: http://php.net/manual/en/function.explode.php

...