Загрузка контроллера CI в PHP на одном сервере - PullRequest
2 голосов
/ 31 марта 2010

Как включить содержимое CodeIgniter в обычную страницу PHP на том же сервере, но не в приложении CI?

Например, я пытаюсь загрузить заголовок из CI в Wordpress. Как лучше всего включить контроллер CI (например, index.php / mycontroller / header /) на одном сервере?

Ответы [ 4 ]

1 голос
/ 15 мая 2010

С http://codeigniter.com/forums/viewthread/88635/

Это излишне, так как file_get_contents ($ url) или аналогичный будет лучше. Тем не менее, это может работать для вашей ситуации:

$CI_INDEX = '/path/to/your/codeigniter/index.php';
$path = '/controller/method';
$_SERVER['PATH_INFO'] = $path;
$_SERVER['REQUEST_URI'] = $path;

chdir(dirname($CI_INDEX));
ob_start();
require($CI_INDEX);
$output = ob_get_contents();
ob_end_clean();
die($output);
1 голос
/ 23 апреля 2010

Используйте встроенный в PHP file_get_contents (). Просто убедитесь, что вы используете полный путь HTTP, а не относительный путь. Пример:

<?php
  file_get_contents('http://your.server.com/codeigniter-path/controller/');

Это должно сработать.

0 голосов
/ 01 апреля 2010

Когда вы пытаетесь обернуть содержимое HTML из внешнего источника, этого легко достичь, разместив комментарии HTML (или другие распознаваемые теги) на целевом сайте, а затем с помощью PHP разделите / разнесите содержимое.

Я использовал этот метод для создания нескольких микросайтов для MSN Money, в которых есть. Тогда я бы просто использовал:

list($header_html) = explode('<!-- Header -->', file_get_contents($url));

Это было немного сложнее, включая кеширование и всякое другое безумие, но в основе его лежит метод, который используется WordPress.

0 голосов
/ 01 апреля 2010

Рассматривали ли вы использование iframe на своей странице Wordpress?

<iframe src="http://my-site-url/index.php/mycontroller/header"></iframe>

Возможно, это самое простое решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...