[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как вывести из массива значение первого вхождения?
VELIK505
Есть такая конструкция titl-ов.
<?php $seo_title = array(

'/'=>'Главная',
'/register'=>'Регистрация',
'/vxod'=>'Вход',
'/video'=>'Видео',
);

?>

вывожу так:
<title><?=$seo_title[$_SERVER["REQUEST_URI"]];?></title>

Но если страница /video?id=1
то title уже не выведет.
Как можно сделать так чтобы выводил титлы к таким страницам тотже что и просто к /video
Игорь_Vasinsky
в цикле ловить первое что попадётся через substr_count()
либо через array_map() или лямбда функцию (OR create_function) - удалить всё не похожее из массива и использовать нужное.

_____________
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
killer8080
<title><?=$seo_title[parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)];?></title>
VELIK505
Цитата (killer8080 @ 4.10.2012 - 17:58)
<title><?=$seo_title[parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)];?></title>


Работает спасибо!
А если у меня есть скажем такой url
zakazliq?liq=liqstatika
и
zakazliq
что являеться разными страницами.
и в массиве прописано
'/zakazliq'=>'Ликпей',
'/zakazliq?liq=liqstatika'=>'заказ ликпея',
то на странице zakazliq?liq=liqstatika мне выдаст титл страницы zakazliq как сделать что если есть полный урл в массиве то он перебевал тот?
lans8097
ну главное разберись то как у тебя будит рабоать система и сделай нормальный контралируеммый ЧПУ
Я к примеру сделал так

<?php
if(!defined('dir'))die('error');
/*
* GetInc.php
* author Lanselot
* version 1.3 Automatic
* Класс автоматической обработки get
*/

class GetInc{
static $_GET;//При старте содержит весь запрос, после обработки корневой путь к разделу
static $get;
static $url = array();//Результат работы
static $typ = 1;
static $category = 0;

//Старт обработки
function Start(){
//Перегоняем урл в более удобную переменную
GetInc::$_GET = trim($_SERVER['REQUEST_URI']);
//Избовляемся от GET Запросов
GetInc::DropGet();
//С начала парсим системные ссылки
GetInc::ParseSystemUrl();
//Обробатываем ссылки с баззы данных
GetInc::ParseUrlDb(GetInc::$typ,GetInc::$category);
//Всё што осталось просле обработки щитаем что категории сайта
GetInc::CategoryUrl();
/*
echo '<pre>';
print_r(GetInc::$url['category']);
echo '</pre>';
*/

}

function DropGet(){
if(preg_match('(\?(.*))',GetInc::$_GET,$arry)){
/*
echo '<pre>';
print_r($arry);
echo '</pre>';
*/

GetInc::$_GET = str_replace($arry[0],NULL,GetInc::$_GET);
GetInc::$get = GetInc::$_GET;

}else{GetInc::$get = GetInc::$_GET;}
}


//Системные ссылки
function ParseSystemUrl(){;}

//Обработка урл из дб
function ParseUrlDb($typ=1,$category=0){
$myrow = mysql_query("SELECT * FROM friendly_url WHERE typ='".$typ."' AND category='".$category."' ORDER BY poz");
if(mysql_num_rows($myrow)){
while($result = mysql_fetch_assoc($myrow)){
switch($result['method']){
case'1':{
GetInc::DBParseTyp1($result['url'],$result['array_name']);
break;}

case'2':{
GetInc::DBParseTyp2($result['url'],$result['array_name']);
break;}
default:{
//Если неизвесный метод то выводим предупреждение
echo '<p><b>При обработке url Был задан неправельный метод обработки</b><br>
Информация:<br>
Ид => "'
.$result['id'].'"<br>
Метод => "'
.$result['method'].'"<br>
Описание => "'
.$result['descriptions'].'"
</p>'
;
}
}
}

}

}


//Полное удаление после обработки
function DBParseTyp1($url,$array_name){
if(preg_match('('.$url.')',GetInc::$_GET,$Array)){
GetInc::$_GET = str_replace($Array[0],NULL,GetInc::$_GET);
GetInc::$url[$array_name] = end($Array);

}

}


//Частичное удаление после обработки
function DBParseTyp2($url,$array_name){
if(preg_match('#'.$url.'#',GetInc::$_GET,$Array)){
GetInc::$_GET = str_replace($Array[1],NULL,GetInc::$_GET);
$Array[1]{0}=NULL;
GetInc::$url[$array_name] = end($Array);
}
}


//Обработка категорий
function CategoryUrl(){
//Если в строчке нет данных ставим по умолчанию
if(GetInc::$_GET=='/'){GetInc::$_GET='index';}
if(GetInc::$_GET{0}=='/'){GetInc::$_GET{0}=NULL;}
//Теперь всё содержимое страки заглняем в массив категорий
GetInc::$url['category'] = explode('/',trim(GetInc::$_GET));
if(count(GetInc::$url['category']) ==1 & GetInc::$url['category'][0]==''){GetInc::$url['category'][0]='index';}

}

}




Скажу сразу мой проэкт не имеет лимита по вложености
http://site.name/category/.../.../.../.../.../..
Примерно так выглядит результат обработки класса
урл http://-----.com/tapocki/fsefsefe

Array
(
[
category] => Array
(
[
0] => tapocki
[1] => fsefsefe
)

)

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.