|
|
|
| Нужно из этого вот :" SELECT s.*,c.* as cset FROM settings s ,portal_settings c WHERE c.set = '2' "
вырезать
1)s.*,c.* as cset
2)settings s ,portal_settings c
3)WHERE c.set = '2' "
и все эти строки нужно в массив
я делаю это так
$sql2 = "SELECT s.*,c.* as cset FROM settings s ,portal_settings c WHERE c.set = '2' ";
preg_match("/select (.+) from (\[A-z0-9\ ]+) [|where (.+)|limit (.+)|order (.+)]?/i",$sql2,$match);
|
но неправильно работает, где тут ошибка, не можете подсказать? | |
|
|
|
|
|
|
|
для: ZAHTET
(28.10.2007 в 16:16)
| |
[|where (.+)|limit (.+)|order (.+)]
|
Так делать нельзя... Попробуйте квадратные скобки заменить круглыми.
И может быть еще добавить модификатор "U", чтобы жадность изменить.
И вот тут (\[A-z0-9\ ]+) экранировать ничего не надо. | |
|
|
|
|
|
|
|
для: kasmanaft
(28.10.2007 в 16:44)
| | спасибо и за это,я очень плохо в этом разбираюсь и поэтому не могли бы вы подсказать что такое "U"? | |
|
|
|
|
|
|
|
для: ZAHTET
(28.10.2007 в 16:47)
| | Модификатор такой :)
Изменяет жадность регулярного выражения. По умолчанию выражение жадное, под .* попадает как можно больше текста, если добавить U, будет наоборот.
Попробуйте вот так: /select (.+) from (.+)(| where (.+)| limit (.+)| order (.+))$/Ui | |
|
|
|