Aynı sunucu üzerinde PHP CI denetleyicisi yükleniyor

4 Cevap php

Nasıl CodeIgniter aynı sunucuda düzenli bir PHP sayfası içeriği değil CI app parçası içerebilir?

Örneğin ben içine Wordpress CI bir başlık yüklemeye çalışıyorum ediyorum. Nedir CI denetleyicisi (örneğin; index.php / mycontroller / başlık /) eklemek için en iyi yolu, aynı sunucuda?

4 Cevap

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

File_get_contents ($ url) veya benzer, daha iyi olurdu gibi bu overkill. Ancak, sizin durumunuza çalışabilir:

$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);

PHP'nin yerleşik file_get_contents () kullanın. Sadece tam HTTP yolu, göreli bir yol değil kullandığınızdan emin olun. Örnek:

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

Yani hile yapmak gerekir.

Eğer Wordpress sayfasında bir iframe kullanarak düşündünüz mü?

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

Bu basit çözüm olabilir.

Eğer harici bir kaynaktan gelen HTML içeriğini kaydırmak için çalışırken, bu kolayca içeriği patlamaya / bölmek için PHP kullanarak sonra, hedef sitede HTML yorumlarını (ya da diğer tanınabilir etiketleri) yerleştirerek elde edilebilir.

Ben inç Sonra ben sadece kullanmak istiyorum var MSN Money için çeşitli mikro-siteleri oluşturmak için bu yöntemi kullandık:

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

Bu önbelleğe alma ve diğer delilik her türlü içeren, biraz daha kompleks oldu, ama onun üssünde olduğunu WordPress izin verirseniz kullanmak yöntemdir.