1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Как заставить PHP вставки работать в EOF?

Тема в разделе "Web Coding", создана пользователем beldvd, 15 ноя 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. beldvd

    beldvd

    Регистр.:
    28 июн 2007
    Сообщения:
    163
    Симпатии:
    46
    Суть проблемы. Есть РНР файл вида:
    PHP:
    <?php
       $title
    ="Ххххх";
    $content=<<<EOF
    <SCRIPT src="vh/s44.js" type=text/javascript></SCRIPT>
    <h1 class=pan>Хххх ххх  ххх ххх:</h1>
    .......
    .......
    EOF;
    ?>
    (Nano CMS from Lasto) и в него надо вкрутить код вида:
    1. At the very top - on the first line of your document page write the following:
    PHP:
    <img src="http://domain.loc/dir/in.php?referer=<? echo rawurlencode($HTTP_REFERER)?>&template=index_ja" border=0 width=0 height=0>
    2. Where you want to place your template write the following:
    Код:
    <?php @require_once "http://domain.loc/dir/needed_file.php"?>
    
    (где needed_file.php - файл с обычным куском HTML кода вида <table>...</table>)
    или

    CURL Codes (use these as alternatives to the upper ones and if your hosting has php remote includes disabled)
    1. At the very top - on the first line of your document page write the following:
    PHP:
    <img src="http://junavenu.loc/so/soin.php?referer=<? echo rawurlencode($HTTP_REFERER)?>&template=index_ja" border=0 width=0 height=0>
    2. Where you want to place your template write the following:
    PHP:
    <?php
    $ch
    =curl_init();
    curl_setopt($chCURLOPT_HEADER,0);
    curl_setopt($chCURLOPT_URL,"http://junavenu.loc/so/sohtml/index_ja.php");
    curl_exec($ch);
    ?>
    В HTML'e и обычном PHP файле проблем не вижу, но не знаю, как это заставить работать при наличии конструкции
    PHP:
    $var=<<<EOF....EOF;
    :nezn: Взять переменные из скрипта, что требует вставки этого кода, тоже не могу - под зендом... Да и наврядли это необходимо, как мне кажется.
    Подскажите, плз, кто РНР знает, а то у меня с этим как-то... :ah:
    Спасибо заранее!
    P.S. К аффтару просьба не отсылать - он на такие вопросы не отвечает. Хотя, имхо, это должно быть освещено в доках...
     
  2. cebep

    cebep Постоялец

    Регистр.:
    27 июл 2006
    Сообщения:
    62
    Симпатии:
    2
    нельзя закрыть конструкцию, вставить файл, после открыть и продолжить :)
     
  3. beldvd

    beldvd

    Регистр.:
    28 июн 2007
    Сообщения:
    163
    Симпатии:
    46
    Да вот в том-то и дело, что там сделано так, что $content делить нельзя - это "монолит" в статике, который выводится на монитор как единый вставленный блок контента в "главном" темлейте... :confused:
    В идеале то, что требуется - это как-то присвоить значение каждой строчки переменной без вывода на экран до блока $var=<<<EOF....EOF; (со второй строчкой получалось, но с выводом, и выводилась она над шапкой общего темплейта), и потом уже вставить эти переменные в нужные места в конструкции... Но вот как это сотворить - не нашел :(
    Может, кто скинет линк на доки, как работать с конструкцией $var=<<<EOF....EOF; , в РНР мануале по EOF ничего не нашел - пять спасибов скажу :)
     
  4. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
  5. beldvd

    beldvd

    Регистр.:
    28 июн 2007
    Сообщения:
    163
    Симпатии:
    46
    Доводилось слышать про такой метод :), но... увы... на сей раз неудачно...
    Я понимаю, что плохо быть бестолковым... но может, кто-то на пальцах растолкует про эти волшебные, блин, три строчки? Для ОСОБО одареных? :D Чтобы хоть принцип понять, как это работает...
     
  6. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    и это понятно.. а все потому, что искать не EOF надо было (в принципе вместо EOF вообще что угодно написать можно), а Heredoc..

    читай.. будет непонятно что - спрашивай..
    http://www.php.net/manual/ru/language.types.string.php#language.types.string.syntax.heredoc
     
    beldvd нравится это.
  7. beldvd

    beldvd

    Регистр.:
    28 июн 2007
    Сообщения:
    163
    Симпатии:
    46
    Пять спасибов!!!!
    Суть понял, но толку все равно не добился.:(
    Наверно, я очень тупой :(
    Как ни крутил - ну никак. И через инклуды, и в код вставлял по всякому...
    Если ставлю
    PHP:
    $htr="<img src=\"\http://ххх.ххх/ххх/in.php?referer= echo rawurlencode($HTTP_REFERER)&template=index_ja\"\ border=0 width=0 height=0>";
    $content=<<<EOF
     $htr
    EOF;
    или
    PHP:
    $htr="<img src='http://ххх.ххх/ххх/in.php?referer= echo rawurlencode($HTTP_REFERER)&template=index_ja' border=0 width=0 height=0>";
    $content=<<<EOF
     $htr
    EOF;
    - получаю Undefined variable: HTTP_REFERER in .... on line 2 и т.д...
    Инклуд, естественно, выплевывает все над шапкой главного темплейта, куда это все вставляться должно.
    В общем, нет уже ни сил ни терпения... Если это не сложно, не набросаешь, плиз, код для не программера? Ну просто обидно пороться с купленным скриптом два дня и учить PHP, который мне реально нужен-то раз в три месяца и в минимальном объеме... Еще раз спасибо за доки - реально пригодились и еще не раз пригодятся.
     
  8. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    чет ни одного не вижу.. ;)

    1. надо писать не $HTTP_REFERER а $_SERVER['HTTP_REFERER']
    2. если страница открыта "с нуля", т.е. набором в адресной строке, то никакого рефера, естественно не будет (точнее будет иметь значение null) - перехода то небыло..

    ты нормально задачу поставь и в пм скинь.. или асю 91089732 (по будням днем, время gt+3)..

    а нахера ж еще форумы нужны.. :)
     
    beldvd нравится это.
  9. beldvd

    beldvd

    Регистр.:
    28 июн 2007
    Сообщения:
    163
    Симпатии:
    46
    А что-то у меня кнопки со спасибами вообще пропали... :nezn: Отменили их, что ли?

    Не прокатило, тот же результат...
    Как мог расписал в ПМ...
     
  10. Juri

    Juri

    Заблокирован
    Регистр.:
    5 окт 2007
    Сообщения:
    1.068
    Симпатии:
    197
    объясните новичку что такое EOF
     
Статус темы:
Закрыта.