За последние 24 часа нас посетили 22048 программистов и 1114 роботов. Сейчас ищут 707 программистов ...

без инклюда, пожалуйста

Тема в разделе "PHP для новичков", создана пользователем cryptory, 21 янв 2017.

  1. cryptory

    cryptory Новичок

    С нами с:
    21 янв 2017
    Сообщения:
    21
    Симпатии:
    0
    Друзья, как заставить файл 1.php брать такое значение
    PHP:
    1. $text = "CRYPTORY";
    из файла 2.php и выводить его на странице 1.php?
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @cryptory зачем так делать? По ответу можно будет что-то подсказать.
     
    cryptory нравится это.
  4. cryptory

    cryptory Новичок

    С нами с:
    21 янв 2017
    Сообщения:
    21
    Симпатии:
    0
    По другому никак? Просто вынести некоторые слова из конфига в разные места другого PHP файла по другому не получится?

    PHP:
    1. <?php
    2. #######################################################################################
    3. $projectnumber = "Количество завершенных проектов"; // количество завершенных проектов
    4. $company_name = "CRYPTORY"; // название компании, изменяется на всём сайте
    5. #######################################################################################
    6.  
    7. ?>
     
  5. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    как заставить руку подняться не поднимая руки ?
    --- Добавлено ---
    и я пока так и не понял зачем это именно так надо
     
    artoodetoo и SamyRed нравится это.
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    В чём проблема то? Почему нельзя использовать инклюд?
     
  7. cryptory

    cryptory Новичок

    С нами с:
    21 янв 2017
    Сообщения:
    21
    Симпатии:
    0
    Нужно изменить название компании во всех Титле, в тексте, в кейвордсах... Это необходимо, чтобы шаблон был быстро перенастраиваемым.
    --- Добавлено ---
    Как использовать инклюд в данном примере с переменными? Можно ли попросить у вас пример кода?
    На счет инклюда думал, но он вроде переносит весь текст файла, который мы инклюдим, в одно место. А мне надо эти значения(название компании и количество) раскидать по разным местам. КАК?
     
  8. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    стапе
    templateController.php
    PHP:
    1. <?php
    2.  
    3.  
    4. /*
    5.  
    6.   Модуль управления шаблонами
    7.  
    8.   Автор: Немиро Алексей
    9.  
    10.   04 марта 2007 года
    11.  
    12.   mailto:admin@kbyte.ru
    13.  
    14.   Copyright (c) Nemiro AS, 2007
    15.  
    16. */
    17.  
    18.  
    19.  
    20. class templateController {
    21.  
    22.   public $time_start;
    23.  
    24.   public $content;       // для хранения контента
    25.  
    26.   public $templateName;  // имя файла шаблона
    27.  
    28.   public $errorMessage;  // сообщение об ошибке
    29.  
    30.   public $title;         // заголовок <title></tile>
    31.  
    32.  
    33.  
    34.   // инициализация
    35.  
    36.   function templateController() {
    37.  
    38.     $content = array();
    39.  
    40.     $templateName = "";
    41.  
    42.     $errorMessage = "";
    43.  
    44.     $title = "";
    45.  
    46.   }
    47.  
    48.  
    49.  
    50.   // вывод данных
    51.  
    52.   function Fill() {
    53.  
    54.     // загрузка шаблона
    55.     $result = file_get_contents($this->templateName);
    56.  
    57.     if (!$result) {
    58.  
    59.       $errorMessage = "<span style=\"color: Red\">
    60.  
    61.      Ошибка: Файл шаблона
    62.  
    63.      <strong>".$this->templateName."</strong>
    64.  
    65.      не найден.</span><br />";
    66.  
    67.       return $errorMessage;
    68.  
    69.     } else {
    70.  
    71.       // ищем <title></title>
    72.  
    73.  
    74.       $titleTemplate = '`(<title>(.*)</title>)|(<TITLE>(.*)</TITLE>)|(<Title>(.*)</Title>)`';
    75.  
    76.       if (preg_match($titleTemplate, $result)) {
    77.  
    78.         if ($this->title != NULL) {
    79.  
    80.           $newTitle = $this->title;
    81.  
    82.           $result = preg_replace($titleTemplate, "<title>$newTitle</title>", $result);
    83.  
    84.         }
    85.  
    86.       }
    87.  
    88.  
    89.  
    90.       // поиск и замена блоков контента самим контентом
    91.  
    92.       while ($s = current($this->content)) {
    93.  
    94.         $result = str_replace("<!--php:".key($this->content)."-->", $s, $result);
    95.  
    96.         next($this->content);
    97.  
    98.       }
    99.  
    100.  
    101.  
    102.       echo $result;
    103.     //  $time_end = getmicrotime()- $time_start;
    104.      // echo "<BR>Время генерирования странички2: ".$time_end ;
    105.     }
    106.  
    107.   }
    108.  
    109. }
    110.  
    111.  
    112.  
    113. ?>

    ИСПОЛЬЗОВАНИЕ

    PHP:
    1.    require( $_SERVER['DOCUMENT_ROOT']."/templateController.php");
    2.     // создаем экземпляр класса управления шаблонами
    3.     $master = new templateController();
    4.       // указываем контент для блока HeadContent
    5.     $master->content["HeadContent"] = $header;
    6.     $master->content["BodyContent"] = $body;
    7. // указываем новый файл шаблона
    8.   $master->templateName = $_SERVER['DOCUMENT_ROOT']."/test.html";
    9.   // указываем <title></title>
    10.   $master->title = "чтото в титле";
    11.   // выводим результат
    12.   $master->Fill();

    сожержание test.html
    HTML:
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!--kartochka-3.html-->
    3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    4.      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    5.   <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    6.   <title>заголовок всеравно затрется</title>
    7.   <!--php:HeadContent-->
    8. </head>
    9.  
    10. <!--php:BodyContent-->
    11. </body>
    12. </html>
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    обычно просто не "конфиг" инклудят, а шаблон.
     
  10. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    Если я всё правильно понимаю, то тут надо БД использовать а не плодить файлы компаний, которых в теории может быть тысячи...
     
  11. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Что значит как? В подключаемом файле делаем переменные, подключаем его (файл) в начало нужного файла, а потом эти переменные выводим эхом в нужных местах. Может я не понял, конечно, суть проблемы, но я бы сделал так. Не могу понять в чём сложность.
     
    cryptory нравится это.
  12. cryptory

    cryptory Новичок

    С нами с:
    21 янв 2017
    Сообщения:
    21
    Симпатии:
    0
    РЕШЕНИЕ:

    В файл индекса сверху вставляем

    PHP:
    1. <?php
    2. include '../config.php';
    3. ?>
    Там, где нужно вызвать то или иное значение:

    PHP:
    1. <?php
    2. echo "$projectnumber $company_name"; // Количество завершенных проектов Имя компании
    3. ?>

    Файл конфига:

    PHP:
    1. <?php
    2. #######################################################################################
    3. $projectnumber = "Количество завершенных проектов"; // количество завершенных проектов
    4. $company_name = "CRYPTORY"; // название компании, изменяется на всём сайте
    5. #######################################################################################
    6.  
    7. ?>
     
  13. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну так а в чём, собственно, проблема была? Переменные, как бы для того и нужны, чтобы их инициализировать, а потом проводить с ними различные операции, например, вывод)
    --- Добавлено ---
    Только это работать не должно по идее. Чтоб вывести переменные таким способом нужно использовать конкатенацию:
    PHP:
    1. echo"$projectnumber . $company_name";
     
    cryptory нравится это.
  14. cryptory

    cryptory Новичок

    С нами с:
    21 янв 2017
    Сообщения:
    21
    Симпатии:
    0
  15. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    @SamyRed, конкатенацию надо использовать, если ты выводишь чисто переменные. Он же выводит строку в двойных кавычках. А в двойных кавычках что происходит с переменными?
     
  16. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Точняк, не заметил кавычки)
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв