Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Код в переменной
 
 автор: PAUELL   (07.11.2008 в 01:02)   письмо автору
 
 

Подскажите пожалуйста как добавить в обычную переменную целую кучу кода?
Например Цикл и возможно ли это? И как еще с вашей точки зрения это правильно или нет? Или лучше искать другие варианты?

  Ответить  
 
 автор: Владимир55   (07.11.2008 в 01:27)   письмо автору
 
   для: PAUELL   (07.11.2008 в 01:02)
 

"как добавить в обычную переменную целую кучу кода?"

Как еще можно сформулировать Ваш вопрос?

  Ответить  
 
 автор: sl1p   (07.11.2008 в 01:31)   письмо автору
 
   для: PAUELL   (07.11.2008 в 01:02)
 

не легче ли просто юзнуть функцию?)

  Ответить  
 
 автор: DEM   (07.11.2008 в 01:33)   письмо автору
 
   для: PAUELL   (07.11.2008 в 01:02)
 

$str = "if($a=='qwe') { echo 'УРА!';} else { echo 'Няка!'; }";
eval($str);

  Ответить  
 
 автор: PAUELL   (07.11.2008 в 01:39)   письмо автору
 
   для: DEM   (07.11.2008 в 01:33)
 

Меня просто интересует как это отразиться на производительность да и вообще...

  Ответить  
 
 автор: lorenberg   (07.11.2008 в 01:50)   письмо автору
 
   для: PAUELL   (07.11.2008 в 01:39)
 

Объясните сначало, для чего Вам нужно именно в переменную сувать код? От чего пляшите и к чему хотите прийти в итоге? Всегда есть более разумная альтернатива..

  Ответить  
 
 автор: PAUELL   (07.11.2008 в 02:03)   письмо автору
 
   для: lorenberg   (07.11.2008 в 01:50)
 

Такс...
Все дело в том что имеется движок (точнее создается), в котором имеется смена оформления. Суть в том что каждый модуль имеет свой титл, ключевые слова (ну конечно еще в зависимости от контента, смотря чего добавили в админке). Этот модуль подключается с помощью include в главном файле index.php где уже аналгично подключаются файл с мета-тегами и файл с дизайном.

В файле дизайн в определенном месте вставлена переменная $content соответственно через которую должен выводиться результат работы модуля.

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

На данном примере все идеально подходит. А если это будет какая-нибуть гостевая книга или каталог с крупногабаритным кодом. Придется выводить код в переменную. Вот собственно и вопрос.

Код главного файла index.php:
<?// Устанавливаем соединение с базой данных
  
require_once("inc/config.php");
  
// Подключаем SoftTime FrameWork
  
require_once("inc/class.config.php");
  
// Подключаем файл настроек движка
  
require_once("inc/cms.config.php");
  
// Получаем параметры из строки запросов
  
$mod $_GET['mod'];
  
$file $_GET['file'];
  
// Проверяем правильность  переменных $mod и $file
  
if (!isset($mod) || ($mod=="") || (!file_exists ("mod/".$mod))){$mod "general";}
  if (!isset(
$file) || ($file=="") || (!file_exists ("mod/".$mod."/".$file.".php"))){$file "index";}

  
// Подключаем модуль
  
require_once ("mod/".$mod."/".$file.".php");
  
// Подключаем мета-теги
  
require_once("inc/meta_tegs.php");
  
// Подключаем тоформление сайта
  
require_once("themes/".$thema."/index.php");
?>


Код одного модуля:
<?
  $mname 
"Главная страница";
  
// Извлекаем из базы данных контент станицы
  
$query "SELECT * FROM options";
  
$options mysql_query ($query);
  if (!
$options) {
    
puterror("Ошибка какая-то..."); 
  } else {
    
// Если ошибок нет, то выводим контент страницы в переменные
    
$g mysql_fetch_array($options))
    
$title $g['title'];
      
$keywords $g['keywords'];
      
$description $g['description'];
       
$content $g['content']
  }
?>

  Ответить  
 
 автор: DEM   (07.11.2008 в 02:16)   письмо автору
 
   для: PAUELL   (07.11.2008 в 02:03)
 

А почему бы просто там где должно быть
echo $content;
не использовать include_once "название модуля";

???

  Ответить  
 
 автор: PAUELL   (07.11.2008 в 02:24)   письмо автору
 
   для: DEM   (07.11.2008 в 02:16)
 

Дак и я про то же, но никак да бы видите в этом модуле выводятся в переменные титлы а они получаются ниже мета-тегов
<?
  $mname 
"Главная страница";
  
// Извлекаем из базы данных контент станицы
  
$query "SELECT * FROM options";
  
$options mysql_query ($query);
  if (!
$options) {
    
puterror("Ошибка какая-то..."); 
  } else {
    
// Если ошибок нет, то выводим контент страницы в переменные
    
$g mysql_fetch_array($options))
    
$title $g['title'];
      
$keywords $g['keywords'];
      
$description $g['description'];
       
$content $g['content']
  }
?>

а именно
$title = $g['title'];
$keywords = $g['keywords'];
 $description = $g['description'];


файл мета тегов:
<?php
  
// Мета-теги
  
$meta_tegs = <<<HTML
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="expires" content="0">
  <meta name="Document-State" content="Dynamic">
  <meta name="Resource-Type" content="document">
  <meta name="robots" content="ALL">
  <meta name="author" content="
$author">
  <meta name="description" content="
$description">
  <meta name="keywords" content="
$keywords">
  <title><? echo 
$title; ?></title>
  HTML;
?>


В этом то вся и загвостка!

  Ответить  
 
 автор: DEM   (07.11.2008 в 02:46)   письмо автору
 
   для: PAUELL   (07.11.2008 в 02:24)
 

А почему бы не брать все эти параметры модуля сазу в файле с мета-тегами? Там проводить проверку какой модуль выбран и т.д., ну и в зависимости от этого и соединяться с БД и брать инфу по ужному модулю...

  Ответить  
 
 автор: PAUELL   (07.11.2008 в 03:00)   письмо автору
 
   для: DEM   (07.11.2008 в 02:46)
 

Хорошо спасибо попробую, но хочу спросить а можно ли будет просто большой код просто вывести под одноименную функцию и просто вставлять потом в дизайне?

  Ответить  
 
 автор: DEM   (07.11.2008 в 03:12)   письмо автору
 
   для: PAUELL   (07.11.2008 в 03:00)
 

конечно, если я правильно понял вопрос ;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования