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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение нескольких страниц на одной, Что-то типа frame в html 
:(
    Опции темы
smartov
Дата 1.3.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



krulik,
Цитата(-=Ustas=- @ 28.2.2006, 10:24 Найти цитируемый пост)
Делай как сказал Guedda...
Добавлено @ 10:28
Точнее так:

Код

$template = file_get_contents("Index.php");    
$template = preg_replace("{content}", "bla-bla-bla", $template);    
echo $template;

PM MAIL   Вверх
Drizhenko
Дата 1.3.2006, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я сделал так
Файл Index.php
Код

<?php
  $template = file_get_contents("Site.php");

  switch (isset($key)) {    //isset - определяет, установлена ли переменная
  case '1':
        $file=implode ('', file('docs/Films.php'));  //читет файл в строку
  break;
  case '2':
        $file=implode ('', file('docs/Films.php'));
  break;
  case '3':
        $file=implode ('', file('docs/Games.php'));
  break;
  case '4':
        $file=implode ('', file('docs/Soft.php'));
  break;
  case '5':
        $file=implode ('', file('docs/Disk.php'));
  break;
  case '6':
        $file=implode ('', file('docs/Disk_films.php'));
  break;
  case '7':
        $file=implode ('', file('docs/Disk_games.php'));
  break;
  case '8':
        $file=implode ('', file('docs/Disk_soft.php'));
  break;
  case '9':
        $file=implode ('', file('docs/Recycle.php'));
  break;
    case '10':
        $file=implode ('', file('docs/Help_disc.php'));
  break;
  default:
    $file=implode ('', file('docs/Films.php'));
  }

  $template = preg_replace("/\{Middle\}/is", $file, $template);
  echo $template;
?>


В файле Site.php есть ссылки, типа
Код

<a href="index.php?key=1" >

И вот такая штука: {Middle}

Когда вызывается Index.php, то он сам вписывает вместо {Middle} нужный текст и выводит полученный результат.

Прикол в том, что php код не вставляется, вместо {Middle}, а если просто текстовый файл, то вставляется. Если кто знает почему. Подскажите.

Это сообщение отредактировал(а) Drizhenko - 1.3.2006, 12:50
PM MAIL   Вверх
smartov
Дата 1.3.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



Drizhenko, уверен что PHP код точно так же прекрасно встявляется но естественно не отрабатывает. Потому что на отработку его никто не напрявляет.
В системе push-шаблонов (как ты реализуешь тут) надо все данные в своем скрипте предварительно обрабатывать, а в шаблон выдавать уже готовый html.
PM MAIL   Вверх
Тиль
Дата 1.3.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Drizhenko сделай так:
на ссылку напиши
Код

<a href="index.php?do=news" target=_self>Текст ссылки</a>


а в том месте где у тебя должно появляться содержимое того, что выводится при нажатии на ссылку сделай так:

Код

<?php 
Error_Reporting(E_ALL & ~E_NOTICE); 
?>
<?php 
if(isset($_GET['do'])) { $do=$_GET['do']; } 
switch($do) 
    {case 'news':$number = 5;include("news/show_news.php");break;          
           } 
?>


break нужен точно, проверенно smile smile

--------------------
Казалось нам пипец, оказалось что не казалось
PM MAIL   Вверх
Guedda
Дата 1.3.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


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

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



Файл index.php:
Код

<?
  $template = file_get_contents("mybook.tpl");    
  $template = preg_replace("{head}", "Заголовок", $template);
  $template = preg_replace("{content}", "Я люблю людей!!!", $template);     
  echo $template;
?>

Файл mybook.tpl:
Код

<center><b>{head}</b></center><p>
{content}
</p>

В браузере после того, как напишешь в адресной строке index.php выведется следующее:
Цитата

Заголовок
Я люблю людей!!!



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Drizhenko
Дата 2.3.2006, 06:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Тиль, Guedda, ваши варианты работают. Но в варианте Guedda, как я и писал ранее, если попытаться вставить вместо "Я люблю людей!!!" php файл, то он не обрабатывается, про что и сказал smartov.

А как его обработать и вставить вместо метки вот вопрос????

Это сообщение отредактировал(а) Drizhenko - 2.3.2006, 06:21
PM MAIL   Вверх
-=Ustas=-
Дата 2.3.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Drizhenko @ 2.3.2006, 06:20 Найти цитируемый пост)
если попытаться вставить вместо "Я люблю людей!!!" php файл, то он не обрабатывается

Естественно и не будет обрабатываться. Ты должен туда передавать уже готовый контент, а не php файлы!
Код

<?php

$template = file_get_contents("mybook.tpl");    
$template = preg_replace("{head}", "Заголовок", $template);
$content = file_get_contents("your_file.php");
$template = preg_replace("{content}", $content, $template);     
echo $template;

?>



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Drizhenko
Дата 2.3.2006, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сделал так, что-то не получилось. {head} заменяется, а {content} нет.
PM MAIL   Вверх
-=Ustas=-
Дата 2.3.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Drizhenko,
1. Покажи код замены и вывода.
2. Покажи код файла, содержимое которого ты хочешь вывести.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
smartov
Дата 2.3.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

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



-=Ustas=-, а к чему ты написал свой вариант.
Код файла "your_file.php" так как написал ты все равно не обработается. Ты просто его вляпаешь в вывод, просто код, а не результат его выполнения.

Drizhenko,
Тут может помочь либо eval либо include если перед инклюдом начать буферизацию, а потом уже вставить результат выполнения. То бишь

mybook.tpl
Код

<p>А вот вам списочек</p>
<ul>
{spisochek.php}
</ul>


spisochek.php (например такой...)
Код

<?
for ($i=0;$i<20;$i++)
{
   echo '<li>Элемент номер '.$i.'</li>'."\n"
}
?>


index.php
Код

<?
//получаем результат выполнения файла spisochek.php
ob_start();
include('spisochek.php');
$buffer = ob_get_contents();
ob_end_clean();

//читаем файл template
$template = file_get_contents("mybook.tpl");

//пихаем результат выполнения куда надо
$template = preg_replace('/\{spisochek\.php\}/', $buffer, $template);

//выводим
echo $template;
 
?>

PM MAIL   Вверх
-=Ustas=-
Дата 2.3.2006, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



smartov, ты прав, ступил немного smile Результат обработки можно получить по http только:
Код

<?php

$template = file_get_contents("mybook.tpl");    
$template = preg_replace("{head}", "Заголовок", $template);
$content = file_get_contents("http://your_host.com/your_file.php");
$template = preg_replace("{content}", $content, $template);     
echo $template;

?>


И то, только в том случае, если в PHP разрешено использование файловых функций на удаленные файлы.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Drizhenko
Дата 2.3.2006, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



smartov, -=Ustas=-, Испробовал, предложенные вами варианты. Оба получились. Спасибо.

Это сообщение отредактировал(а) Drizhenko - 2.3.2006, 19:32
PM MAIL   Вверх
Vbif
Дата 17.7.2006, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



народ есть такой вопрос по этой же теме....
вот есть функция:
Код

function cat($path)
{
    $dh=opendir($path);
    while (($file = readdir($dh))!==false)
    {
        if (($file!=".")&&($file!="..")&&(strstr($file,".db")!==".db"))
        {
            $filepath=$path.$file;
            $contn[]=$filepath;
        }
    }
    for($i=0;$i<count($contn);$i++)
    {
        if (is_dir ($contn ["$i"])) echo "<option>". basename($contn ["$i"])."</option><br>";
    }
    rewinddir($dh);
}



и мне нужно чтобы она выводилась  на главной странице в указанном месте .. с помощью следущего кода...


Код

$h=cat($path);
$tpl->load_template('fotogal.tpl');
$tpl->set('{chos}',$f);
$tpl->set('{chos3}',$h);
$tpl->set('{chos2}',$g);
$tpl->set('{con}',$a);
$tpl->set('{nav}',$b);
$tpl->compile('content');
$tpl->clear();


И вот в чём проблема.. все переменные нормально выводятся а вот функция cat($path), не выводит всех значений, она выводит только одно...
помогите плиз в чём проблема...    

Это сообщение отредактировал(а) Vbif - 17.7.2006, 11:20
PM MAIL WWW ICQ   Вверх
Vbif
Дата 17.7.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



хотя в принципе уже сам разобрался... саппорт уже не нужен=)  smile  
PM MAIL WWW ICQ   Вверх
zetxi815eb
Дата 6.9.2007, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Нифига не понимаю...в веб программировании я полный нуль..

Помогите плиз такую фишку сделать

index.php

Кнопки: Меню , События, Новости
И чтоб при нажатии на какую-нить из кнопок менялась переменная $var1
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.0648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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