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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> .class php 5.2.0 Подскажите в чём ошибка, .class 
:(
    Опции темы
drZmeu
Дата 29.4.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всем привет.
Я не очень давно стал заниматься изучением PHP и напоролся на книжечку в ней очень много опечаток я исправил как смог но код почему-то работает не на все 100% =(
Код index.php
Код

<?
//-----------------------Класс--------------------------------------------------
include ("tempiate.class");
//---------------------------------------------------------------------------------
$page_title = "~~~~~~~~!!!!!~~~~~~~~";
$text_block_1 = "Привет =)";
$tpl= new template;
$tpl->register_file('home', "home.html");
$tpl->register_variables("home", "page_title, text_block_1");
$tpl->file_parser("home");
$tpl->print_file("home");
?>

Код tempiate.class
Код

<?php
class template {
VAR $files = array();
VAR $variables = array();
VAR $opening_escape = '{';
VAR $closing_escape = '}';
function register_file($file_id, $file_name){    //Функция регестрации файла
$fh = fopen($file_name, "r") or die("Error number #000001."); //Открываем файл-страницу
$file_contents = fread($fh, filesize($file_name)); //Читаем файл в переменную
$this->files[$file_id] = $file_contents; //Присваиваем переменную элементу массива с ключём $file_id
fclose($fh); //Закрываем файл
} //Конец функции регистрации файла

function register_variables($file_id, $variable_name) { //Функция сохранения переменных
$input_variables = explode(".", $variable_name); //Создаём масив сод. имена пер. которые мы передали
while(list( , $value) = each($input_variables)):
$this->variables[$file_id][] = $value;
endwhile;
}
function file_parser($file_id){ //Замена всех зарег переменных
$varcount = count($this->variables[$file_id]);
$keys = array_keys($this->files);
if((in_array($file_id, $keys)) && ($varcount > 0)):
while($x < sizeof($this->variables[$file_id])):
$string = $this->variables[$file_id][$x];
GLOBAL $$string;
$needle = $this->opening_escape.$string.$this->closing_escape;
$this->files[$file_id] = str_replace($needle, $$string, $this->files[$file_id]); //J
$x++;
endwhile;
endif;
}
function print_file($file_id){
print $this->files[$file_id];
}
}//Конец функции класса
?>

И код home.html
Код

<html>
<title>:::::{page_title}:::::</title> 
<head></head>
<body> <td valign="top" width="225">
            <p>&nbsp;{text_block_1}</p>

            </td> </body>
</html>



Страница выводится нормально на переменные $page_title и text_block_1
Нехотят присваиваться = ‘(
Народ помогите пожалуйста!
Мне кажется проблема либо в функции: register_variables либо file_parser.
Использую Apache/2.0.55 и PHP 5.2.0!
С уважением,
drZmeu!

--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
WolfON
Дата 29.4.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



У тебя  нигде нету передачи переменных шаблонизатору.
Судя по его коду - попробуй сделать так:
Код

$tpl->register_variables("home", "page_title.$page_title, text_block_1.$text_block_1");

PM MAIL ICQ   Вверх
drZmeu
Дата 2.5.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Большое спасибо попробую =)

Добавлено через 3 минуты и 3 секунды
Нет увы всё осталось попрежнему =(
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ответов негусто  smile 
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
BuShaRt
Дата 3.5.2007, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а explode у тебя разве по запятой разбивает?
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да я не наю! Это пример из книги и что я что-то понял мне нужно увидеть как это работает! А это не работает  smile  =(

Добавлено через 1 минуту и 33 секунды
BuShaRt Подскажи как правильно сделать! Пожалуйста умоляю !
У меня голова пухнет =(
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Просто книжку скачал там был пример опечаток и ошибок море я как смог исправил по той же книжке
и застрял на этой фигне =( 
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
mishaSL
Дата 3.5.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



Если не менять логику, синтаксис и т.д. тогда так:
Код

<?php

class template {
    VAR $files = array();
    VAR $variables = array();
    VAR $opening_escape = '{';
    VAR $closing_escape = '}';
    function register_file($file_id, $file_name){    //Функция регестрации файла
    $fh = fopen($file_name, "r") or die("Error number #000001."); //Открываем файл-страницу
    $file_contents = fread($fh, filesize($file_name)); //Читаем файл в переменную
    $this->files[$file_id] = $file_contents; //Присваиваем переменную элементу массива с ключём $file_id
    fclose($fh); //Закрываем файл
    } //Конец функции регистрации файла
    function register_variables($file_id, $variable_name) { //Функция сохранения переменных
    $input_variables = explode(",", $variable_name); //Создаём масив сод. имена пер. которые мы передали
    foreach($input_variables as $value) {
        $this->variables[$file_id][] = trim($value);
    }
    }
    function file_parser($file_id){ //Замена всех зарег переменных
    $varcount = count($this->variables[$file_id]);
    $x = 0;
    $keys = array_keys($this->files);
    if((in_array($file_id, $keys)) && ($varcount > 0)):
    while($x < sizeof($this->variables[$file_id])):
    $string = $this->variables[$file_id][$x];
    GLOBAL $$string; var_dump($$string);
    $needle = $this->opening_escape.$string.$this->closing_escape;
    $this->files[$file_id] = str_replace($needle, $$string, $this->files[$file_id]); //J
    $x++;
    endwhile;
    endif;
    }
    function print_file($file_id){
    print $this->files[$file_id];
    }
}//Конец функции класса

$page_title = "~~~~~~~~!!!!!~~~~~~~~";
$text_block_1 = "Привет =)";
$tpl= new template;
$tpl->register_file('home', "home.html");
$tpl->register_variables("home", "page_title, text_block_1");
$tpl->file_parser("home");
$tpl->print_file("home");

?>


Но лучше выкинь поскорее и подальше эту книжку (и так чтобы ее никто случайно не нашел), и сходи и купи в магазин нормальную новую книгу по PHP5. smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



попробую! Насчёт книжки я уже понял =)
Огромное спасибо что откликнулся mishaSL
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
mishaSL
Дата 3.5.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



Цитата(drZmeu @  3.5.2007,  20:36 Найти цитируемый пост)
Огромное спасибо что откликнулся mishaSL 

Всегда пожалуйста smile  Попробуй, если все ок, то не забудь плиз вопрос поменить как решенный smile 


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ура работает! Только ещё пара вопросов и я отстану =)
Первое почемуто когда это всё выводится в верхнем левом углу выводится string(13) "~~~~~~~~~~~~~" string(5) "Hello" 
И не отображается Русский текст как исправить?
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
drZmeu
Дата 3.5.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Эмммммммм. С текстом разобрался так:
Код

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">

Но что касается  tring(13) "~~~~~~~~~~~~~" string(5) "Hello"  так и непонял как убрать =(
Скидываю скриншот!

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  bredw.jpg 108,62 Kb
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
WolfON
Дата 3.5.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

var_dump($$string);

убей
PM MAIL ICQ   Вверх
drZmeu
Дата 3.5.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ооооо. Огромное человеческое спасибо =)
Тему можно закрывать =)
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
drZmeu
Дата 5.5.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ай люди это опять я ='( После того как я убил var_dump кодировка не применяется тоесть я пытаюсь в браузере поменять сайт обновляется но кодировка остаётся такой же!
Народ что делать?
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
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.1344 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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