Не получается заинклюдить файл

Тема в разделе "Как сделать...", создана пользователем zek24, 21 май 2013.

Статус темы:
Закрыта.
  1. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    777
    Симпатии:
    231
    Привет,
    не думал что возникнет проблема, но ошибся.
    Итак, есть сайт на опенкарт 1551. В футере есть сквозная ссылка на другой сайт.
    Периодически требуется менять анкор и текст вокруг ссылки на этом и еще нескольких сайтах.
    В очередной раз начал делать это вручную и вспомнил, что когда-то прочел пару страниц про php и решил это дело автоматизировать.
    Создал файл типа file.php (file.tpl) с нужным анкором
    В футере разместил код типа
    PHP:
    include "http://site.com/file.php";
    и начал удивленно смотреть на белый экран...
    При чем, если файл file.php перенести в папку с футером.тпл то все работает
    PHP:
    include "file.php";
    То есть дело в http://site.com/ в слешах, наверное. Но я их уже экранировал как мог и раком и боком - все не то.
    Подскажите, как жить дальше?
     
  2. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.639
    Симпатии:
    1.337
    http://php.net/manual/ru/function.include.php
    "Если "URL fopen-оболочки" включены в PHP (как в конфигурации по умолчанию), вы можете специфицировать файл, подключаемый с использованием URL (через HTTP), вместо локального пути."
     
  3. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    777
    Симпатии:
    231
    да читал вроде
     
  4. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.639
    Симпатии:
    1.337
    Относительные и абсолютные пути.
    - ищем в корне (помоему так)
    include "/file.php";
     
  5. Localut

    Localut Деда Мороз

    Регистр.:
    13 фев 2009
    Сообщения:
    224
    Симпатии:
    81
    Нужно указать путь до файла в формате "../../file.php"
    или
    PHP:
    include $_SERVER['DOCUMENT_ROOT']."/template/file.php";
    Так не сработает.
     
  6. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    777
    Симпатии:
    231
    В том то и дело, что файл должен инклюдиться с стороннего сайта.

    Есть сайты site1 site2, у них в футере размещаю ссылку на сайт siteX, которая должна инклюдиться из файла _http://siteX/file.php
     
  7. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.639
    Симпатии:
    1.337
    значит fopen выключен.
    а что если пойти через file_get_contents :crazy:
     
    zek24 нравится это.
  8. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    777
    Симпатии:
    231
    но это же пошло :rolleyes:

    но сработало... но пошло.
     
  9. APXOH

    APXOH Создатель

    Регистр.:
    16 янв 2013
    Сообщения:
    36
    Симпатии:
    6
    Вопрос в том что инклуд используется для вставки исполняемого кода, то есть применение функции в даном контексте неправильное. Для вставки контента (ссылки) с другого сайта можете использовать:
    - curl
    - file_get_content
    - fopen

    Другой вариант (из вашего сообщения не до конца ясно), что вы пытаетесь вставить все таки кусок кода находящийся в файле PHP с другого сервера, в этом случае обратите внимание что обращаетесь к файлу не как к внутреннему, а как внешнему и до выдачи его он пройдет обработку веб-сервером (исполнится). Возвращен будет не исходный код а результат выполнения этого исходного кода
     
  10. Владик

    Владик

    Регистр.:
    17 фев 2007
    Сообщения:
    167
    Симпатии:
    284
    Не подскажите по инклуду, тоже include не пашет, как сделать file_get_content?
    Такой скрипт, надо подключать с внешнего сайта урл http://www.google.ru/search?q=
    $name = $_GET["name"];
    header("Location: http://www.google.ru/search?q=$name");

    Так примерно?
    header("Location: file_get_contents('http://site.com/url.txt')");

    а в урл тхт это http://www.google.ru/search?q=$name
    короч запутался
     
Статус темы:
Закрыта.