|
|
|
|
|
для: Axxil
(20.08.2005 в 10:18)
| | Всё понял, дедуктивным методом :)
preg_match_all
спасибо огромное за терпение и помощь. | |
|
|
|
|
|
|
|
для: cheops
(19.08.2005 в 22:46)
| | Ну наконец-то мы друг друга поняли !!! :)
Ну а теперь выражение не правильно работает вот вывод:
Array
(
[0] => [add 2005-08-19 12:23:45]
This is first question to support. Please help me.
[1] => 2005-08-19 12:23:45
[2] =>
This is first question to support. Please help me.
)
|
Первый вопрос нормально записался, а как же остальные? | |
|
|
|
|
|
|
|
для: Axxil
(19.08.2005 в 14:37)
| | А.... :))) А я подумал, что ответы и вопросы в разных полях и для каждого ответа выделена отдельная запись... Тогда действительно всё можно просто разбить при помощи регулярных выражений
<?php
$str='[add 2005-08-19 12:23:45]
This is first question to support. Please help me.
[add 2005-08-19 16:21:54]
Hello... Where are you? Why my question isn\'t answered yet?
[add 2005-08-19 19:10:54]
Haliluja! Thanks for your answer!';
preg_match("|\[add ([^\]]*)\]([^\[]+)|i",$str,$out);
print_r($out);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(19.08.2005 в 13:13)
| | \* бьётся в истерике \* Почему меня не понимают???
<?php
$str='[add 2005-08-19 12:23:45]
This is first question to support. Please help me.
[add 2005-08-19 16:21:54]
Hello... Where are you? Why my question isn\'t answered yet?
[add 2005-08-19 19:10:54]
Haliluja! Thanks for your answer!';
$key = substr($str, 5,19);
$val = substr($str, 25);
$arr[$key] = $val;
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
|
вывод:
Array
(
[2005-08-19 12:23:45] =>
This is first question to support. Please help me.
[add 2005-08-19 16:21:54]
Hello... Where are you? Why my question isn't answered yet?
[add 2005-08-19 19:10:54]
Haliluja! Thanks for your answer!
)
|
Видите, мы получаем один(!) ключ. а все остальные даты попалают в значение.
А надо чтобы все (!) даты стали ключами | |
|
|
|
|
|
|
|
для: Axxil
(19.08.2005 в 09:43)
| | Хм... тогда не понимаю, почему не подходит
<?php
$key = substr($ret[0]['quest'], 5,20);
$val = substr($ret[0]['quest'], 25);
$arr[$key] = $val;
?>
|
Ведь этот код вроде эту задачу и решает, при условии, что все ответы и вопросы находятся в разных полях? | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 22:52)
| | Мне кажется мы всё черезмерно усложняем :)
Задача стоит всего навсего разобрать два поля в строке: body и answer_body,
не рассматривая остальные строки. То есть надо из этих полей получить два массива body = array('date','question') и answer = array('date','answer'). То есть это уже не касается базы, это целиком работа с текстом. | |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 15:10)
| | Нет я имел ввиду как это выглядит в базе данных? Вот эти две строчки как сидят в самой таблице? А лучше прикрепить ещё третью, чтобы можно было понять где она - в другом поле, записе, в той же записи. Без структуры таблицы, можно очень долго на угад подбирать запросы. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 13:39)
| | К сожалению я не могу привести реальные данные из таблицы, так там присутствует финансовая информация. Но я создал 2 тестовые строчки которые отражают общую картину. Прикладываю экспортный файл из EMS MySQL Manager.
Надеюсь так понятнее будет.
PS там в поле bofy идут теги оформления, не обращайте внимание это временно... | |
|
|
|
|
|
|
|
для: Axxil
(18.08.2005 в 10:39)
| | Стоп. Так они ещё и не в разных записях, а навалены в одну кучу? Ммм... не могли бы вы мне кусочек таблицы привести, чтобы я понял с чем мы имеем дело. Если не хотите здесь выкладывать пришлите по почте. | |
|
|
|
|
|
|
|
для: cheops
(18.08.2005 в 02:34)
| | Это можно сделать для первой даты, а как определить позицию следующей?
[add 2005-08-16 16:01:02] question with not many words [add 2005-08-17 11:01:02] question with unknown num of words. And how i can find position of previous datе?
я ведь не знаю сколько будет символов в вопросе. Мне кажется тут только регулярным выражением можно решить. А вот в них я не силён :-( | |
|
|
|
|