PHP????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????
1.??????????????????????????????????????????????????????????????????XML????
2.??????????????????????????????????????????????????
3.??????????????????????????
????????????????????????????????????
1.??????????????????????????????????????
2.????????????????????????????
????????????????????????????????
1.??????????????
2.??????????????
3.????????????
4.????????????????????
5.????????
????????????????????????????
1.??????????????????
2.????????????
3.????????
4.????????
??????????
<?php
/**
* PluginManager Class
*
* ????????????????????
*
* @link http://www.bkjia.com/
*/
class PluginManager
{
/**
* ????????????????
*
* @access private
* @var array
*/
private $_listeners = array();
/**
* ????????
*
* @access public
* @return void
*/
public function __construct()
{
#????$plugin????????????????????????????????????????
#????????????????????$plugin??????????
#$plugin = array(
# 'name' => '????????',
# 'directory'=>'????????????'
#);
// $plugins = get_active_plugins();#??????????????????
//????????????????????????????????
$plugins=array(array("directory"=>"demo",
"name"=>"DEMO"));
if($plugins)
{
foreach($plugins as $plugin)
{//????????????????????????????actions.php????????????????????????
if (@file_exists(STPATH .'plugins/'.$plugin['directory'].'/actions.php'))
{
include_once(STPATH .'plugins/'.$plugin['directory'].'/actions.php');
$class = $plugin['name'].'_actions';
if (class_exists($class))
{
//??????????????
//$this ????????????
new $class($this);
}
}
}
}
#??????????????????????????
}
/**
* ??????????????????????????????
*
* @param string $hook
* @param object $reference
* @param string $method
*/
function register($hook, &$reference, $method)
{
//????????????????????
$key = get_class($reference).'->'.$method;
//????????????????????push????????????
$this->_listeners[$hook][$key] = array(&$reference, $method);
#??????????????????????????
}
/**
* ????????????
*
* @param string $hook ??????????
* @param mixed $data ??????????
* @return mixed
*/
function trigger($hook, $data='')
{
$result = '';
//????????????????????????????????????
if (isset($this->_listeners[$hook]) && is_array($this->_listeners[$hook]) && count($this->_listeners[$hook]) > 0)
{
// ????????????
foreach ($this->_listeners[$hook] as $listener)
{
// ????????????????????????
$class =& $listener[0];
$method = $listener[1];
if(method_exists($class,$method))
{
// ??????????????????
$result .= $class->$method($data);
}
}
}
#??????????????????????????
return $result;
}
}
define(STPATH, "./");
$pluginManager=new PluginManager();
$pluginManager->trigger("demo");
demo????????:
<?php
/**
* ????????Hello World??????????????
*
* @link http://www.bkjia.com/
*/
/**
*????????????????????????
* 1. ??????????????????????action
* 2. ??????????????????{??????_actions}
*/
class DEMO_actions
{
//????????????????pluginManager??????
function __construct(&$pluginManager)
{
//????????????
//??????????????????????
//????????????pluginManager??????
//????????????????????????
$pluginManager->register('demo', $this, 'say_hello');
}
function say_hello()
{
echo 'Hello World';
}
}
php 是一種服務器端的,嵌入html的腳本語言。php區別其他像客戶端java的地方是它的代碼在服務器端執行.php能做什麼?
最低水平,php可以做任何其他cgi程序所能做的事,例如收集表格數據,生成動態頁面內容,或者收發cookies.可能最強大,最有意義的特性是php支持大范圍的數據庫.書寫一個支持數據庫的web 頁面是難以置信的簡單.
下面是當前支持的數據庫:
adabas d interbase solid
dbase msql sybase
empress mysql velocis
filepro oracle unix dbm
informix postgresql
php通過協議也支持與其他服務的"交談",像imap, snmp, nntp, pop3, 甚至是 http. 你也可以打開晦澀的 網絡接口和其他協議交互.
php的簡要歷史
1994年秋季, rasmus lerdorf 開始構思 php. 早期的非發行版本被用在他的主頁上,以追蹤誰在看他的在線簡歷. 1995年年初第一版本出台,當時php只被認為是個人主頁開發工具.它由一個非常單純的只能理解很少數特殊宏的分析引擎和 一些用在主頁後端通用的工具組成.如留言簿,計數器和其他一些東西.這個分析器在1995年年中被重寫並被命名為 php/fi 第二版. fi來自 rasmus 寫的另外一個包, 用於解釋 html 形式的數據.他結合了個人主頁工具腳本和形式解析器,並加 上msql支持.這樣就產生 php/fi 了. php/fi以令人驚奇的步調成長,人們開始把自己的代碼貢獻給它.
很難給出它的硬統計表,但可以估計在1996年末,整個世界至少有15,000個網站在用php/fi.到1997年年中,這個 數字已經超過50,000了. 而在此時php的發展也發生了變化.由rasmus自己偏愛的和幾個人開發的項目變成一個更有組織的團 體成就.ev suraski和andi gutmans重寫了解析器.這個新的解析器成為php版本3的基礎.許多有用的代碼從php/fi 繼承到php3,並且很多是完全重寫的.
今天(1999年年中)不管是php/fi或php3與很多商業產品捆綁在一塊,例如c2級強度的web服務器和紅帽子linux. 根據netcraft提供的數據推斷,保守估計全世界應用php的網站已超過150,000個.由此看來,它比在因特網上運行netscape 的旗艦企業服務器的站點還多.
1.php是網頁文件.需要有支持php的web服務器,才能通過浏覽器打開.如果你實在要打開,用記事本也可以打開,不過裡面是些網頁代碼.你不一定讀得懂 .
2.你所下載的只不過是一個指向(或包含)那個手機鈴聲的網頁,你要真正得到那個鈴聲的地址才能下載它 .
3.應該不是php,是pdf,你把後綴改一下,php文件是網頁格式,用文本編輯器打開,但是本站提供的大部分是pdf格式的,安裝一個pdf閱讀器就能正常打開了.
4.“把擴展名改成 html ,然後用IE打開。”
5.如果安裝了dreamwaver,php文件會顯示dreamwaver可以打開的樣式
不過用不著
到你下載過的貼子裡,看你下載的那個東西的擴展名是什麼,比如word文檔後面就是.doc, pdf文檔後面就是.pdf, 壓縮文檔後面就是.rar或 .zip之類的
然後把擴展名替換.php......余下全文>>
你下載的是一個類似於asp的鏈接文件,而不是你原本的文件!
需要在服務器端執行後才能到達正確的下載地址,所以最好點擊進入網頁獲得正確的下載地址例如後綴類似於rar的,再使用下載地址,如果不能獲取,就可能是服務器出了問題。無法訪問了
PHP是一種服務器端HTML-嵌入式腳本描述語言。 其最強大和最重要的特征是其數據庫集成層,使用它完成一個含有數據庫功能的網頁是不可置信的簡單。在HTML文件中, PHP腳本程序(語法類似於Perl或者c語言)可以使用特別的PHP標簽進行引用, 這樣網頁制作者也不必完全依賴HTML生成網頁了。由於PHP是在服務器端執行的, 客戶端是看不到PHP代碼的。 PHP可以完成任何CGI腳本可以完成的任務,但它的功能的發揮取決於它和各種數據庫的兼容性。 PHP除了可以使用HTTP進行通信,也可以使用IMAP, SNMP, NNTP, POP3協議。