Требуется подсказка с регулярными выражениями у меня туговато пока что.
Собственно надо получить названия.
Попробывал так, получается массив несовсем правильный..
header("Content-type: text/html; charset=utf-8");
$string = '
--------------------------------------:--------------:--------------:--------------:--------------:
Название товара :Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
--------------------------------------:--------------:--------------:--------------:--------------:
';
$text = preg_replace("/-/",'',$string);
$text = preg_split("/[\:]+/", $text);
print_r($text);
Я думаю надо както совместить то что [А-я] и : и перенос строки, подскажите как можно сделать?
Спустя 4 минуты, 31 секунда (27.06.2011 - 14:10) Winston написал(а):
А в тексте есть хоть какие-то еще разделители? Или только вот такой сплошной текст с - и : ?
Спустя 5 минут, 30 секунд (27.06.2011 - 14:15) Renden написал(а):
PHPprogramer
Я скинул так как есть, больше ничего там нет... еслиб было в 1 строчку яб explode(":") сделал и непарился бы..а так, требуется помощь, я хз как..
Я скинул так как есть, больше ничего там нет... еслиб было в 1 строчку яб explode(":") сделал и непарился бы..а так, требуется помощь, я хз как..
Спустя 25 минут, 33 секунды (27.06.2011 - 14:41) bulgakov написал(а):
А что если с помощью функции ltrim() удалить ненужные начальные символы потом через rtrim() конечные а оставшуюся строку разбить по ":"? По моему должно получиться. Код проверить сейчас не могу потому как на работе.
Спустя 17 секунд (27.06.2011 - 14:41) Winston написал(а):
Вообщем у меня получилось.Но чтобы правильно выбиралось название, нужно строго следовать шаблону, вот такому
Цитата |
Название товара :Остаток на :Оборот приход :Оборот приход :Оборот касса : |
Вот извращение на регулярках
Свернутый текст
header('Content-Type: text/html; charset=utf-8');
$string = '
--------------------------------------:--------------:--------------:--------------:--------------:
Название товара :Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
--------------------------------------:--------------:--------------:--------------:--------------:
--------------------------------------:--------------:--------------:--------------:--------------:
Еще товар :Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
--------------------------------------:--------------:--------------:--------------:--------------:
--------------------------------------:--------------:--------------:--------------:--------------:
Еще больше товара :Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
--------------------------------------:--------------:--------------:--------------:--------------:
';
preg_match_all("/^(.*)$/isu", $string, $matches);
foreach($matches[1] AS $k => $v)
preg_match_all("/([a-zа-яё\s]+)\s*:Остаток на/isu", $v, $matches2);
print_r($matches2[1]);
Спустя 3 минуты, 40 секунд (27.06.2011 - 14:45) bulgakov написал(а):
Так же я думаю можно разбить строка по символу ":" а внутри уже отфильтровать текст.
Спустя 2 минуты, 34 секунды (27.06.2011 - 14:47) Renden написал(а):
PHPprogramer
bulgakov
Печалько, вы походу не так поняли, нужно получить:
bulgakov
Печалько, вы походу не так поняли, нужно получить:
Цитата |
Array( [0] => Название товара [1] => Остаток на начало [2] => Оборот приход внешний [3] => Оборот приход перемещение [4] => N [N] => N ) |
Это названия столбцов.. их может быть N-штук...
Спустя 2 минуты, 21 секунда (27.06.2011 - 14:50) Winston написал(а):
Цитата (Renden @ 27.06.2011 - 14:05) |
Собственно надо получить названия |
Я так понял.
Спустя 2 минуты, 3 секунды (27.06.2011 - 14:52) Winston написал(а):
Цитата (Renden @ 27.06.2011 - 14:05) |
Название товара :Остаток на :Оборот приход :Оборот приход :Оборот касса |
Только это нужно получить? Независимо от количества столбцов.
Или это тоже нужно получить ?
Цитата (Renden @ 27.06.2011 - 14:05) |
:начало :внешний :перемещение :продажа : |
Спустя 2 минуты, 40 секунд (27.06.2011 - 14:54) Renden написал(а):
PHPprogramer
Прошу прощения, спал 1.5 часа, плохо соображаю, плохо изьясняюсь
Прошу прощения, спал 1.5 часа, плохо соображаю, плохо изьясняюсь
Цитата |
Или это тоже нужно получить ? :начало :внешний :перемещение :продажа : |
Это тоже, в этом то и сложность..
Спустя 5 секунд (27.06.2011 - 14:54) bulgakov написал(а):
То есть у вас получается проблема с блоком например:
:Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
То есть если разбивать по двоеточиям то сначала будут идти ячейки со значениями "Остаток на", Оборот" приход", "Оборот приход", "Оборот касса" ну и потом все остальные... то есть вам надо правильно сформировать например Остаток на начало"?
:Остаток на :Оборот приход :Оборот приход :Оборот касса :
:начало :внешний :перемещение :продажа :
То есть если разбивать по двоеточиям то сначала будут идти ячейки со значениями "Остаток на", Оборот" приход", "Оборот приход", "Оборот касса" ну и потом все остальные... то есть вам надо правильно сформировать например Остаток на начало"?
Спустя 3 минуты, 52 секунды (27.06.2011 - 14:58) Winston написал(а):
Если шаблон будет таким
Цитата |
$string = ' --------------------------------------:--------------:--------------:--------------:--------------: Название товара :Остаток на начало :Оборот приход внешний :Оборот приход перемещение :Оборот касса продажа : --------------------------------------:--------------:--------------:--------------:--------------: '; |
То вы получите то что хотели, то есть
Цитата (Renden @ 27.06.2011 - 14:47) |
Array( [0] => Название товара [1] => Остаток на начало [2] => Оборот приход внешний [3] => Оборот приход перемещение [4] => N [N] => N ) |
Спустя 8 минут, 1 секунда (27.06.2011 - 15:06) bulgakov написал(а):
Даже если шаблон не будет таким а таким каким его предоставил ТС то все равно можно избавиться от начальных и конечных ненужных символов разбить строку по двоеточиям сформировать массив и из этого массива составить другой с нужным расположением ячеек. Например сначала будет массив вида:
А уже из этого массива можете спокойно сформировать нужный вам.
Array(){
[0]=>'Название товара'
[1]=>'Остаток на'
[2]=>'Оборот приход'
[3]=>'Оборот приход'
[4]=>'Оборот касса'
[5]=>'начало'
[6]=>'внешний'
[7]=>'перемещение'
[8]=>'продажа'
}
А уже из этого массива можете спокойно сформировать нужный вам.