Shkiper
18.12.2012 - 11:26
Всем привет. Есть вот такой быдло код:
public static function page()
{
if(isset($_GET['route']))
{
$route = $_GET['route'];
$pages = Zzika::config("pages", "page");
foreach($pages as $k=>$v)
{
if(preg_match($k, $route))
{
$page = $v;
}
}
if(empty($page))
{
Error::print_404($page);
}
}
else
{
$page = Zzika::config("default_page");
}
return $page;
}
$_GET['route'] = "news/test.html";
$pages = содержит массив. Вот его ДАМП:
Array
(
[#^page/[0-9]+$#ui] => main
[#^category/[0-9a-z_]+$#ui] => category
[#^category/[0-9a-z_]/page/[0-9]+$#ui] => category
[#^news/[0-9a-z_].html+$#ui] => news
[#^activate/[a-z0-9]+$#ui] => activate
)
Вроде все. По идее эта функция должна вернуть мне "news". А у нее срабатывает вот это:
Error::print_404($page); причем пишет, что $page не существует(интерпретатор ошибка выдает). Почему этот код не работает?
Winston
18.12.2012 - 11:29
Во первых в шаблоне регулярки ты поставил "+" не там где надо
! |
|
М |
| Во вторых дай теме вменяемой название, иначе я дам тебе 4-е предупреждение и отправлю в бан! |
Winston |
И в третьих нужно . заменить на \.
Shkiper
18.12.2012 - 11:30
Эхххх, жаль что вы такие прихотливые к темам
Игорь_Vasinsky
18.12.2012 - 11:33
Цитата |
if(empty($page)) { Error::print_404($page); } |
кто сказал не существует? существует, но пуста.
...
плюсы там вообще для чего?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Winston
18.12.2012 - 11:40
Цитата (Shkiper @ 18.12.2012 - 09:26) |
if(preg_match($k, $route)) { $page = $v; } |
Можно заменить на
if(preg_match($k, $route))
{
$page = $v;
break;
}
Т.к. если совпадение найдено, нету смысла цикл гонять.
Цитата (Игорь_Vasinsky @ 18.12.2012 - 09:33) |
существует, но пуста |
А если совпадения не будет? То откуда ей взяться?
Игорь_Vasinsky
18.12.2012 - 11:43
empty === !isset ???
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Shkiper
18.12.2012 - 11:54
empty = проверяет на пустоту, isset = на существование. но если переменная = 0, то empty покажет что она пуста
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.