Я написал небольшой фреймворк, такой как код с архитектурой HMVC, используя PHP. Ниже приведены примеры SEF-URL для доступа.
http://domain.com/controller_name/method_name/param1/param2
http://domain.com/folder_name/controller_name/method_name/param1/param2
Выше хорошо и работает с фиксированным типом данных. Но когда я попытался создать простую CMS, где у меня есть категория внутри другой категории и т. Д., То есть многоуровневая структура категорий с множеством статей внутри, я не смог использовать вышеуказанный URL. Я хочу что-то вроде
http://domain.com/category-name/sub-category-name/sub-sub-category-name
http://domain.com/category-name/sub-category-name/article-name
Может ли кто-нибудь помочь мне с сниппетом, чтобы достичь выше.
если я не понял, что вы хотите запросить категорию по sefurl
во-первых, вам нужно преобразовать имя данных в sefurl
function sefurl($s){
$s=trim($s);
$tr = array('ş','Ş','ı','I','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','(',')','/',':',',');
$eng = array('s','s','i','i','i','g','g','u','u','o','o','c','c','','','-','-','');
$s = str_replace($tr,$eng,$s);$s = preg_replace('/&.+?;/', '', $s);
$s = preg_replace('/\s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s);
$s = preg_replace('/#/', '', $s);
$s = str_replace('.', '.', $s);
$s = trim($s, '-');
$s = htmlspecialchars(strip_tags(urldecode(addslashes(stripslashes(stripslashes(trim(htmlspecialchars_decode($s))))))));
return $s;
}
теперь вы можете проверить это
например, мое имя категории «это тест категории»
sefurl($catname);
результат будет похож на «это тестовая категория»
Вы можете использовать это для категории ID
создайте новое двоеточие в вашей таблице БД, например, sefurl, когда вы устанавливаете новую категорию, преобразуйте имя категории в sefurl и затем установите его в двоеточие sefurl.
Вы можете запросить по sefurl из категории
http://yourdomain.com/categori/this-is-a-categor-/
проанализируйте url по «/» и получите «this-is-a-category-» после этого запроса в вашей таблице категорий.
Других решений пока нет …