| |
|
|
| | Есть что-то вроде:
шаблон.php
массив.php
<? php
$text["t1"]="Текст 1 ";
$text["t2"]="Текст 2 ";
$text["t3"]="Текст 3 ";
?>
|
В данном случае: site.ru/index.php?id=t1 (t2 или t3) естественно работает, а site.ru/index.php?id=t4 уже приводит к ошибке...
Вопрос:
Можно ли сделать вот так и соответственно, если можно, то как?
<? php
$text["t1"]="Текст 1 ";
$text["t2"]="Текст 2 ";
$text["t3"]="Текст 3 ";
$text["все остальные значения"]="Текст 777";
?>
|
Т.е. идея такая, что бы при вводе ключей, явно не обозначенных выводился "Текст 777"? | |
| |
|
|
| |
|
|
| |
для: soloway
(09.03.2007 в 01:48)
| | | Ну вот так приблизительно:
<? php
$valid=array_keys($text); // возвратит массив $valid с ключами от $text
// ежли $id нет в $valid
if(!in_array($id, $valid))
{
echo"777";
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: dim0s
(09.03.2007 в 02:19)
| | | Спасибо, всё ОК.
Только вот это:
if(!in_array($id, $valid))
{
echo"777";
}
|
Ни в какую не работало корректно, в итоге, силой мысли придумал следующее:
if(!in_array($id, $valid))
{
$text[$id]="777";
}
|
Словом не знаю, правильно или нет, но вроде всё работает.
Ещё раз спасибо, dim0s! Очень выручил! | |
| |
|
|
| |
|
|
| |
для: soloway
(09.03.2007 в 08:32)
| | | А возможно-ли это дело усложнить ещё в таком плане?
$text["theme"]="Текст 1 ";
|
Задача стоит такая, что бы значение $text["theme"]="Текст 1"; было справедливо не только для
www.site.ru/index.php?id=theme
|
но и для, скажем:
www.site.ru/index.php?id=theme33
|
Т.е., что бы значение этой переменной выводилось как для ключа theme, так и для ключа themeХХХ, где Х - любая цифра от 0 до 9...
Возможно ли так?
Как думаю, тут нужно создать ещё одну переменную, например $num, присвоить ей значение равное 0-9 или не равное ничему (т.е. в случае, если id=theme) и с ней уже разбираться... Но вот как это практически сделать - не тяну.
Словом, если не сложно, ответьте плз, в правильном-ли направлении идёт мысль, ну и пару строк кода - если возможно...
))) | |
| |
|
|
| |
|
|
| |
для: soloway
(09.03.2007 в 10:44)
| | | Может и туповато, но я бы сделал так:
$text[1] = "1";
$text[2] = "1";
$text[3] = "1";
$text["reg"] = array();
$text["reg"]["/^theme[0-9]*$/i"] = "theme";
$text["reg"]["/^tpl[0-9]*$/i"] = "tpl";
$id = $_GET["id"]; // ну или любым другим способом - не суть =)
$res = "если совсем ни по до что не подходит";
if((isset($text[$id]))and(!is_array($text[$id])))
$res = $text[$id]
else
foreach($text["reg"] as $ptr => $val)
{
if(!preg_match($ptr, $id)) continue;
$res = $val; break;
};
echo $res;
|
Вкратце суть - если существует значение, которое прописано четко, то его и выдаст, если такового нет, то идет проверка по шаблонам регулярных выражений...
собственно в качестве индекса таких наборов и выступает рег. выражение.
ну и сделана маленькая проверка на тот случай, если "случайно" получится $id = идентификации массива с рег. выражениями (они же индексы). | |
| |
|
|
| |
|
|
| |
для: ZuArt
(09.03.2007 в 11:04)
| | | Спасибо!
Сейчас попробую.
Добавлено:
Да, всё отлично срослось!
В очередной раз спасибо! | |
| |
|
|