Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запутался в массиве, $MenuHTML["$i"] .= $val; 
V
    Опции темы
BuShaRt
Дата 30.11.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



есть файлы с описанием меню, они режутся, натягиваются на шаблоны меню и в итоге должены получатся HTML - блоки меню.... Вот момент в котором я запутался...

Код

$MenuHTML=array();
for($i=0; $i<count($filename); $i++) {
    $MenuTxt = '';
    foreach ($$filename[$i] as $val) {
        $val = split ('@',$val);
        $url = str_replace ('id',$val[1],URL);
        $url = str_replace ('name',$val[0],$url);
        $MenuTxt .= $url;
    }
    foreach ($sh_menu as $val) {
        $val = str_replace ('<MenuName>',$menutitle[$i],$val);
        $val = str_replace ('<MenuTxt>',$MenuTxt,$val);
        $MenuHTML["$i"] .= $val;
    }
    print ($MenuHTML["$i"]);
}

Он вроде и выводит меню, но с ошибками
Notice: Undefined index: 0 in z:\home\localhost\www\nevercms\menu.php on line 35
Notice: Undefined index: 1 in z:\home\localhost\www\nevercms\menu.php on line 35
Notice: Undefined index: 2 in z:\home\localhost\www\nevercms\menu.php on line 35

Я бы с радостью изменил $MenuHTML=array(); на $MenuHTML=array('','',''); но это мне кажется очень не рациональный подход.... К тому же, это сейчас у меня 3 блока, а сколько будет потом я не знаю...


PM MAIL   Вверх
Ashen
Дата 30.11.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 1.9.2006

Репутация: нет
Всего: нет



Поподробнее плиз.... Строка 35 - это где?
$filename - это что?
$sh_menu - это что?
--------------------
Хочешь помочь новичку - делай вместе с ним;Хочешь помочь старику - сделай за него;Хочешь помочь мастеру - отойди в сторону;Хочешь помочь дураку - сам дурак...
PM MAIL   Вверх
BuShaRt
Дата 30.11.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Код

<?php
//Go great and past all block's menu in page---

//Const and var:
define('URL','<a href=index.php?page=id>name</a><br>');
$sh_menu = file('html/user_skin/first/index_menu.html');
$index = file('html/user_skin/first/index_face.html');
$filename=array();
$menutitle=array();
$MenuHTML=array();
//---

//Read files:
$menu = file('menu/menu.txt');
foreach ($menu as $val) {
    $val = split ('@',$val);
    $filename[] = $val[0];
    $$val[0] = file('menu/'.$val[0].'.txt');
    $menutitle[] = $val[1]; 
}
//---
                                                
//Great MenuBlock
for($i=0; $i<count($filename); $i++) {
    $MenuTxt = '';
    foreach ($$filename[$i] as $val) {
        $val = split ('@',$val);
        $url = str_replace ('id',$val[1],URL);
        $url = str_replace ('name',$val[0],$url);
        $MenuTxt .= $url;
    }
    foreach ($sh_menu as $val) {
        $val = str_replace ('<MenuName>',$menutitle[$i],$val);
        $val = str_replace ('<MenuTxt>',$MenuTxt,$val);
        $MenuHTML["$i"] .= $val;
    }
    print ($MenuHTML["$i"]);
}
//--- 
?>


Это сообщение отредактировал(а) BuShaRt - 30.11.2006, 10:52
PM MAIL   Вверх
Kefir
Дата 30.11.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 13
Всего: 87



BuShaRt, всё правильно, строка 35 - это $MenuHTML["$i"] .= $val; При первом проходе строки ты пытаешься к ней приклеить $val, но такого индекса массива ещ не существует, поэтому он тебе говорит об этом что бы ты знал. Если не хочешь такой пакости, то изначально надо присваивать пустую строку хотя-бы 
Код

for($i=0; $i<count($filename); $i++) {
    $MenuTxt = '';
    $MenuHTML["$i"] = "";
    foreach ($$filename[$i] as $val) {
        $val = split ('@',$val);
        $url = str_replace ('id',$val[1],URL);
        $url = str_replace ('name',$val[0],$url);
        $MenuTxt .= $url;
    }
    foreach ($sh_menu as $val) {
        $val = str_replace ('<MenuName>',$menutitle[$i],$val);
        $val = str_replace ('<MenuTxt>',$MenuTxt,$val);
        $MenuHTML["$i"] .= $val;
    }
    print ($MenuHTML["$i"]);
}

PM MAIL WWW Skype   Вверх
BuShaRt
Дата 30.11.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: 4
Всего: 6



Kefir, 
 smile Логично.. спасибо, все работает=))
PM MAIL   Вверх
SelenIT
Дата 30.11.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



BuShaRt, а то, что $menutitle[$i] у Вас без кавычек, а аналогичный с виду $MenuHTML["$i"] почему-то с кавычками - это разве логично?

Переменные вообще без нужды брать в кавычки не надо. А вот строковые индексы - обязательно.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0466 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.