У меня есть следующая структура URL, который я должен соответствовать, чтобы и получить конкретный идентификатор из:Regular Expression проблема
/group/subgroup/id-name
Короче говоря, мне нужно перевести URL вроде следующего:
/Blue Products/Dark Blue/5-Blue_Jelly
To:
/?pagename=Blue Products&model=5
ВАЖНО: мне не нужно, чтобы соответствовать group
, у меня уже есть группа.
Пример кода:
<?php
foreach($cats as $cat)
$cmd->rewrite('/\/'.$cat.'\/unused\/(ID)-unused\//','/?pagename='.$cat.'&model=%ID%');
?>
Edit:
Это завершенная код:
if($groups->count()){
$names=array();
foreach($groups->rows as $row)
$names[]=preg_quote($row->group);
$names=implode('|',$names);
$regex='('.$names.')/([^/]+)/([0-9]{1,})-([^/]+)/?$';
CmsHost::cms()->rewrite_url($regex,'index.php?pagename=Products',true);
}
Не слишком ли избыточное выражение для этого ... Почему бы просто не взорвать строку «url string» в /, а затем просто посмотреть на отдельные элементы результирующего массива? –
@Mark Baker - я стараюсь избегать regexp любой ценой, но в этом случае этот метод перезаписи принимает только регулярное выражение. – Christian