導航:首頁 > 編程語言 > php文件編程

php文件編程

發布時間:2023-07-27 14:36:34

❶ 如何使用php編程

PHP是一門高效的網路編程語言,由於它具有編寫靈活、運行快速等優點,迅速成為Web程序員的首選語言。前不久的一份權威調查表明,現在已經有31.6%的網站使用PHP作為主要的伺服器端編程語言。
但是,要成為一名PHP編程高手卻並不容易。並不像很多人想像的那樣,只要能夠飛快地編寫幾條簡單的代碼去解決一個復雜的問題就是PHP編程高手了,真正的PHP高手還需要考慮更多的其它問題。以下三條准則是一名成熟的PHP程序員在編程中應該首先遵循的准則。
1.懶惰是金
2.編寫漂亮的代碼
3.追求程序的速度,而不是編程的速度
一、懶惰是金
做一個懶惰的程序員嗎?這個想法太奇怪了!因為這個世界上最忙碌的人可能就是計算機程序員了。但正是因為程序員太忙了,所以才應該在編程時學會偷懶。
對於一個程序員來說,懶惰的方法有兩種:其一,大膽使用現成的別人的程序代碼,把這些代碼融入到你自己的程序或者項目中去。其二是編寫一些有用的代碼建立一個函數庫,在將來編寫程序時可以順手拈來,省去了許多重復的勞動,自然就可以懶惰一點了。
這兩種偷懶的方法都非常適合PHP程序員了。
首先,PHP是在自由開放的環境中誕生和成長的一門語言。在世界各地,有成千上萬的程序員,他們一直在為PHP的完美而不斷奮斗,他們也願意和別人分享自己的聰明才智和自己編寫的代碼。你每天都可以從一些PHP網站、郵件列表、新聞組發現大量的優秀的程序代碼。這樣說,我並不是鼓勵你整天等著讓別人為你編寫代碼,但是你可以「站在偉人的肩膀上」,充分發揚「拿來主義」,聰明地應用別人的程序代碼可以節省你大量時間。其次,在PHP中,你可以方便地建立自己的函數庫,這樣可以在你以後編寫程序時省去很多麻煩。
下面筆者為大家介紹幾個通用的函數,這些函數有的來自網上的一些開放源代碼的項目,有的精選自郵件列表。如果你能把它們加入到你自己的函數庫中,遲早你將會發現自己受益無窮。
1.通用資料庫處理函數
和其它的CGI函數相比,PHP的優點之一是具有很強大的資料庫處理能力。但是,在PHP中,對於不同的資料庫都使用一些特定的函數來專門處理,缺少通用的資料庫處理函數。這大大降低了程序代碼的可移植性,這也為初學編程的朋友帶來了很多不便。
在網上,許多程序員都通過封裝類解決了這個問題。他們編寫了統一的函數用來處理任何流行的資料庫——不管是在linux世界深受歡迎的Mysql還是在Windows平台上廣泛流行的SqlServer。就筆者個人來說,非常喜歡使用這些函數,因為可以直接使用一些簡單的諸如"query"、"next_record"之類的函數,而不需要考慮資料庫的連接、資料庫句柄這些復雜的東西,更不需要考慮使用的是何種資料庫。
如果你需要這些函數,你可以通過訪問以下的幾個網址而得到:
http://phplib.netuse.de/
http://phpclasses.UpperDesign.com/browse.html/package/20
http://phpdb.linuxbox.com/
2.變數調試函數
PHP程序的調試一直是一件讓人頭疼的事,它既不像VB等高級語言那樣有集成的編譯調試環境,也不想Perl那樣可以在Linux或者DOS環境下直接運行。其實,我們完全可以通過靈活地使用echo語句來完成對PHP的調試工作。
下面的幾個函數可以讓你隨時查看程序中任何變數的類型及其值。
function ss_array_as_string (&$array, $column = 0) {
$str = "Array(
n";
while(list($var, $val) = each($array)){
for ($i = 0; $i < $column+1; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
$str .= $var. ==> ;
$str .= ss_as_string($val, $column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
function ss_object_as_string (&$object, $column = 0) {
if (empty($object->classname)) {
return "$object";
}
else {
$str = $object->classname."(
n";
while (list(,$var) = each($object->persistent_slots)) {
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
global $$var;
$str .= $var. ==> ;
$str .= ss_as_string($$var, column+1)."
n";
}
for ($i = 0; $i < $column; $i++){
$str .= "&nbsp;&nbsp;&nbsp;&nbsp;";
}
return $str.);
}
}
function ss_as_string (&$thing, $column = 0) {
if (is_object($thing)) {
return ss_object_as_string($thing, $column);
}
elseif (is_array($thing)) {
return ss_array_as_string($thing, $column);
}
elseif (is_double($thing)) {
return "Double(".$thing.")";
}
elseif (is_long($thing)) {
return "Long(".$thing.")";
}
elseif (is_string($thing)) {
return "String(".$thing.")";
}
else {
return "Unknown(".$thing.")";
}
}
需要的時候,在程序中簡單地加入下面的一條代碼即可查看程序中的所使用的變數(包括數組和對象)的類型和值:
echo ss_as_string($my_variable);
使用下面的語句,我們可以直接查看程序中所有的變數的值:
echo ss_as_string($GLOBALS);
3. 控制Log信息的函數
調試PHP程序的另外一種重要的方法就是查看Log信息。如果能夠方便地控制Log信息的級別以及Log信息的顯示內容,將會給程序調試帶來更多的便利。下面的幾個函數可以方便地實現這個功能。
$ss_log_level = 0;
$ss_log_filename = /tmp/ss-log;
$ss_log_levels = array(
NONE => 0,
ERROR => 1,
INFO => 2,
DEBUG => 3);
function ss_log_set_level ($level = ERROR) {
global $ss_log_level;
$ss_log_level = $level;
}
function ss_log ($level, $message) {
global $ss_log_level, $ss-log-filename;
if ($ss_log_levels[$ss_log_level] < $ss_log_levels[$level]) {
// 不顯示Log信息
return false;
}
$fd = fopen($ss_log_filename, "a+");
fputs($fd, $level. - [.ss_timestamp_pretty().] - .$message."n");
fclose($fd);
return true;
}
function ss_log_reset () {
global $ss_log_filename;
@unlink($ss_log_filename);
}
在上面的函數中,有四個Log級別變數。運行PHP程序時,只有當Log的級別低於預設的級別值時,Log信息才可以被記錄和顯示出來。例如,在程序中加入如下的一條語句:
ss_log_set_level(INFO);
那麼,運行PHP程序時,只有ERROR和INFO級別的LOG信息才能被記錄和顯示出來,DEBUG級的信息則被忽略了。除此之外,我們還可以設定顯示的信息內容,其語句如下:
ss_log(ERROR, "testing level ERROR");
ss_log(INFO, "testing level INFO");
ss_log(DEBUG, "testing level DEBUG");
你也可以隨時使用下面的語句清空LOG信息:
ss_log_reset();
4.速度測試函數

為了優化代碼,我們需要一種可以測試代碼運行時間的方法,從而來選擇最優的代碼。下面的函數可以測試運行代碼所需的時間:
function ss_timing_start ($name = default) {
global $ss_timing_start_times;
$ss_timing_start_times[$name] = explode( , microtime());
}
function ss_timing_stop ($name = default) {
global $ss_timing_stop_times;
$ss_timing_stop_times[$name] = explode(, microtime());
}
function ss_timing_current ($name = default) {
global $ss_timing_start_times, $ss_timing_stop_times;
if (!isset($ss_timing_start_times[$name])) {
return 0;
}
if (!isset($ss_timing_stop_times[$name])) {
$stop_time = explode(, microtime());
}
else {
$stop_time = $ss_timing_stop_times[$name];
}
$current = $stop_time[1] - $ss_timing_start_times[$name][1];
$current += $stop_time[0] - $ss_timing_start_times[$name][0];
return $current;
}
現在可以輕松地檢查任何一段代碼的執行時間了,甚至我們可以同時使用多個計時器,只需在使用上述的幾個函數時設定不同的參數作為計時器的名稱就可以了。
5.調試和優化資料庫的操作
對於資料庫來說,運行速度是至關重要的。盡管很多書籍和文章都講授了一些快速運行資料庫的方法,但是所有的方法都必須經過實踐的檢驗。下面我們將把PHPLib函數庫中的query()函數和上面介紹的幾個函數綜合起來編寫成新的query()函數,和原先的函數相比,這個函數增加了運行時間的監測功能。
function query($Query_String, $halt_on_error = 1) {
$this->connect();
ss_timing_start();
$this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
ss_timing_stop();
ss_log(INFO, ss_timing_current(). Secs - .$Query_String);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if ($halt_on_error && !$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}
return $this->Query_ID;
}

二、編寫漂亮的代碼
1.將後台程序與前端程序分開
在編寫PHP程序時,有些代碼是用來處理一些事務,例如操作資料庫、進行數學運算等,而另外的一些代碼則只是事務處理的結果顯示出來,例如一些使用echo語句將結果以HTML的格式顯示在Web瀏覽器上的PHP代碼以及那些直接嵌入PHP程序的HTML代碼。首先我們應該清晰地區分這兩種代碼,把前者稱為後台程序,把後者稱為前端程序。
因為PHP是一種嵌入式編程語言,也就是說,所有的PHP代碼都可以嵌入到HTML代碼之中,這為程序的編寫帶來了許多便利之處。但是,「物極必反」,如果在一段較長的程序中將PHP代碼和HTML代碼混合編寫,這將使程序雜亂無章,不利於程序的維護和閱讀。所以我們需要盡可能地將這些程序中混雜於HTML代碼中的PHP代碼移植出來,在專門的文件中將這些代碼封裝成函數,然後在HTML代碼中使用include語句來包含這些文件,在適當的位置調用這些函數即可。
這種做法一方面使HTML代碼和PHP代碼都簡單易讀,另一方面因為HTML代碼需要不斷更新,而這種分離的方法可以確保後台程序不會被破壞。
同前端程序不同,後台程序更多追求的是穩定、結構化,極少更改,所以應該認真地設計和管理。其實,在設計台程序時,投入大量時間是值得的,「現在栽樹,以後乘涼」,在以後的設計工作中將可以輕松地使用現在編寫的後台程序。
2.靈活使用包含文件
正如前面所說的那樣,後台程序應當安排在一系列的包含文件中。包含文件可以通過include語句在需要時動態裝入,也可以在php.ini文件中通過使用auto_prepend_file指令預先自動裝入。
如果使用後一種方法的話,雖然取得了一勞永逸的好處,但是也有一些缺點值得我們注意。下面的一段代碼向我們展示了解析一個龐大的包含文件需要一定的時間:
require(timing.inc);
ss_timing_start();
include(test.inc);
ss_timing_stop();
echo
.ss_timing_current().
;
?>
在上面的代碼中,test.inc是一個1000行的包含文件,運行的結果顯示,解析這個包含文件花費了0.6秒鍾,對於一個大型網站來說,這個速度並不是可以忽略不記的。
使用包含文件的另外一個缺點是:如果一個文件中的一個語句發生錯誤,將會使整個網站的PHP程序都無法運行。所以使用起來也及其小心。
其實,對包含文件稍做處理,即可以使包含文件只在需要時進行解析。下面的代碼使abc.inc文件只在程序需要時才作解析:
if ( defined( __LIBA_INC) ) return;
define( __LIBA_INC, 1 );
/*
* 代碼...
*/
?>
3.使用面向對象的編程方法
PHP也是一種面向對象的語言,面向對象的編程方法是優秀的程序員們非常推崇的一種軟體設計方法,在PHP編程中可以充分發揮面向對象語言的優勢,對編程中的對象進行封裝。在前面的代碼中,我們使用了面向對象的方法,例如在管理資料庫時,我們將query()函數封裝進資料庫類中,這極大地方便了代碼的管理,增加了程序的可讀性。
三、追求程序速度,而不是編程的速度
在網站建設中,程序運行速度和網頁下載速度都是關系成敗的重要因素。作為一名Web程序員,應該更加註意代碼的運行速度。下面介紹的幾種方法都在不同程度上提高了代碼的運行速度。
1.使用內嵌的HTML代碼,而不是PHP的echo語句。
因為PHP是一門嵌入式Web編程語言,可以將HTML代碼和PHP代碼相互嵌入。但是很多程序員擔心在HTML代碼中過多的使用""嵌入PHP代碼會多次調用PHP解釋器,從而降低了PHP代碼的運行速度,所以寧願使用PHP的echo語句來輸出HTML代碼,而不直接使用HTML代碼。但事實卻恰恰相反。每一個PHP頁面只調用一次PHP解釋器來解釋所有的PHP代碼,所以,只在需要時才嵌入PHP代碼,而大多數的時候直接使用HTML代碼輸入結果,不但不會降低程序的運行速度,而且因為減少了對echo語句的解析,往往可以提高代碼的運行速度。
下面的一段代碼證明了我們的結論。在這段代碼中,我們使用了前面介紹的時間測試函數。

使用str-replace而不是ereg-replace
習慣使用Perl進行編程的程序員更加願意使用ereg_replace完成字元串替換工作,因為在PHP中ereg_replace的用法和Perl中模式匹配的用法相近。但是,下面的這段代碼證明,使用str_replace 代替 ereg_replace將可以大大提高代碼的運行速度。

測試str_replace和ereg_replace的運行速度

//這段代碼測試str_replace的運行速度

emphasis; ?>

for ($i=0; $i<1000; $i++) {
str_replace(i>, b>, $string).
;
}
?>

//這段代碼測試ereg_replace的運行速度

for ($i=0; $i<1000; $i++) {
ereg_replace(<([/]*)i>, <\1b>, $string).
;
}
?>

//列印結果

結論

使用str_replace的時間 -

使用ereg_pattern的時間 -
運行上面的代碼,得到的結果是:
使用str_replace的時間 - 0.089757
使用ereg_pattern的時間 - 0.248881
從運行的結果我們可以看出使用str_replace替代ereg_replace作為字元串替換函數,極大地提高了代碼的運行速度。
3.注意字元串的引用
PHP和其它很多編程語言一樣,可以使用雙引號("")來引用字元串,也可以使用單引號()。但是在PHP中,如果使用雙引號來引用字元串,那麼PHP解析器將首先分析字元串中有沒有對變數的引用,有變數的話,將對變數進行替換。如果是單引號,則沒有如此復雜——直接將單引號包含起來的所有字元串直接顯示出來。顯然,在PHP編程中,如果使用單引號引用字元串變數要比使用雙引號快速一些。
4.在資料庫中避免使用聯合操作
比起其它的Web編程語言來說,PHP的資料庫功能十分強大。但是在PHP中資料庫的運行仍然是一件十分費時費力的事情,所以,作為一個Web程序員,要盡量減少資料庫的查詢操作,同時應該為資料庫建立適當的索引。另一件值得注意的事情是在用PHP操作資料庫時,盡可能不使用多個數據表的聯合操作,盡管聯合操作可以增強資料庫的查詢功能,但是卻大大增加了伺服器的負擔。
為了說明這個問題,我們可以看看下面的這個簡單的例子。
我們在資料庫中創建了兩個數據表foo和big_foo。在數據表foo中,只有一個欄位,包含了從1-1000之間的所有自然數。數據表big_foo同樣只有一個欄位,但包含了從1-1,000,000之間的全部自然數。所以,從大小上說,big_foo等於foo與它自身進行了聯合操作。
$db->query("select * from foo");
0.032273 secs
$db->next_record();
0.00048999999999999 secs
$db->query("insert into foo values (NULL)");
0.019506 secs
$db->query("select * from foo as a, foo as b");
17.280596 secs
$db->query("select * from foo as a, foo as b where a.id > b.id");
14.645251 secs
$db->query("select * from foo as a, foo as b where a.id = b.id");
0.041269 secs
$db->query("select * from big_foo");
25.393672 secs
從上面操作結果我們可以發現,對於兩個有1000條記錄的數據表進行聯合,其速度並不比對一個1000000條紀錄的大型數據表單獨進行操作快多少。
5.注意include與require的區別
在PHP變成中,include()與require()的功能相同,但在用法上卻有一些不同,include()是有條件包含函數,而require()則是無條件包含函數。例如在下面的一個例子中,如果變數$somgthing為真,則將包含文件somefile:
if($something){
include("somefile");
}
但不管$something取何值,下面的代碼將把文件somefile包含進文件里:
if($something){
require("somefile");
}
下面的這個有趣的例子充分說明了這兩個函數之間的不同。
$i = 1;
while ($i < 3) {
require("somefile.$i");
$i++;
}
在這段代碼中,每一次循環的時候,程序都將把同一個文件包含進去。很顯然這不是程序員的初衷,從代碼中我們可以看出這段代碼希望在每次循環時,將不同的文件包含進來。如果要完成這個功能,必須求助函數include():
$i = 1;
while ($i < 3) {
include("somefile.$i");
$i++;
}
6.注意echo和print的區別
PHP中echo和print的功能也基本相同,但是兩者之間也有細微差別。在PHP代碼中可以把print作為一個普通函數來使用,例如執行下面的代碼後變數$res的值將為1。
$ret = print "Hello World";
這意味著print可用在一些復雜的表達式中,而echo則不行。同樣,在代碼中echo語句的運行速度要略微快於print語句,因為echo語句不要求返回任何數值.

❷ PHP編程是什麼

PHP 是一種用來製作動態網頁的伺服器端腳本語言。你通過PHP和HTML創建頁面。當訪問者打開網頁時,伺服器端便會處理 PHP 指令,然後把其處理結果送到訪問者的瀏覽器上面,就好像 ASP 或者是 ColdFusion 一樣。然而,PHP 跟 ASP 或 ColdFusion 不一樣的地方在於,它是跨平台的開放源代碼。PHP 可以在 Windows NT 以及很多不同的 Unix 版本中執行,它也可以被編譯為一個 Apache 模塊,或者是一個CGI二進制文件。當被編譯為 Apache 模快時,PHP 尤其輕巧方便。它沒有任何繁瑣程序所產生的負擔,因此可以很快的返回結果,同時也不需為了保持較小的伺服器內存映象,而去調整mod_perl。

除了能夠用來產生你的網頁的內容之外,PHP 也可以用來傳送 HTTP頭。你可以設定 cookies,授權管理,並將使用者重定向至新的頁面。它也能好的訪問很多資料庫及ODBC。另外還可與各式各樣的外部庫集成,由此可以讓你做幾乎任何事情,從創建 PDF 文件到解析XML。

PHP 代碼就嵌在Web頁面中,因此你不必為它建立一個特別的開發環境或IDE。你用<?php and end it with ?>標志PHP代碼(也可以將PHP設定成使用ASP形式的<% %>標志甚至是用<SCRIPT LANGUAGE="php"></SCRIPT>)。PHP引擎會處理這些標志之間的任何東西。

PHP語言的語法跟C以及Perl很像。在使用前,你無須聲明變數。要創建陣列以及散列(關聯性陣列)也很快。PHP的初步面向對象特性還提供了組織及封裝代碼的簡便方法。

盡管當嵌入 Apache 裡面時,PHP運行最快,但在PHP相關站點上還是有關於如何使其與Microsoft IIS 以及 Netscape Enterprise Server無縫集成的操作指南。如果你還沒有PHP,可以在其官方網站下載取得。在那裡也可以找到一份包括PHP所有函數和特性的用戶手冊。

創建自己的命令
因為PHP腳本是寫在 HTML 文檔中的,你不必用特殊的編輯器來創建頁面。不過你必須在支持PHP的伺服器上面執行 PHP。如果你用的是你自己的伺服器,則很容易辦到。如果是通過ISP 服務處理頁面,則需要聯系你的 ISP 的客服小組請他們幫你安裝PHP。

對於Unix系統,你必須具備基本的Unix技巧,例如會使用make以及一個C語言編譯器。在你的系統上,還要有一個 ANSI C編譯器,以及一個Web伺服器。

對於Windows 95/NT ,你需要以下伺服器之一:Microsoft Personal Web Server,Microsoft Internet Information Server 3 或4,Apache 1.3.x,或者Omni HTTPd 2.0b1。

❸ 提高PHP編程效率的53個要點

用單引號代替雙引號來包含字元串 這樣做會更快一些 因為PHP會在雙引號包圍的字元串中搜尋變數 單引號則不會 注意 只有echo能這么做 它是一種可以把多個字元串當作參數的「函數」(譯注 PHP手冊中說echo是語言結構 不是真正的函數 故把函數加上了雙引號)

如果能將類的方法定義成static 就盡量定義成static 它的速度會提升將近 倍

$row[』id』] 的速度是$row[id]的 倍

echo 比 print 快 並且使用echo的多重參數(譯注 指用逗號而不是句點)代替字元串連接 比如echo $str $str

在執行for循環之前確定最大循環數 不要每循環一次都計算最大值 最好運用foreach代替

注銷那些不用的變數尤其是大數組 以便釋放內存

盡量避免使用__get __set __autoload

require_once()代價昂貴

include文件時盡量使用絕對路徑 因為它避免了PHP去include_path里查找文件的速度 解析操作系統路徑所需的時間會更少

如果你想知道腳本開始執行(譯注 即伺服器端收到客戶端請求)的時刻 使用$_SERVER[『REQUEST_TIME』]要好於time()

函數代替正則表達式完成相同功能

str_replace函數比preg_replace函數快 但strtr函數的效率是str_replace函數的四倍

如果一個字元串替換函數 可接受數組或字元作為參數 並且參數長度不太長 那麼可以考慮額外寫一段替換代碼 使得每次傳遞參數是一個字元 而不是只寫一行代碼接受數組作為查詢和替換的參數

使用選擇分支語句(譯注 即switch case)好於使用多個if else if語句

用@屏蔽錯誤消息的做法非常低效 極其低效

打開apache的mod_deflate模塊 可以提高網頁的瀏覽速度

資料庫連接當使用完畢時應關掉 不要用長連接

錯誤消息代價昂貴

在方法中遞增局部變數 速度是最快的 幾乎與在函數中調用局部變數的速度相當

遞增一個全局變數要比遞增一個局部變數慢 倍

遞增一個對象屬性(如 $this >prop++)要比遞增一個局部變數慢 倍

遞增一個未預定義的局部變數要比遞增一個預定義的局部變數慢 至 倍

僅定義一個局部變數而沒在函數中調用它 同樣會減慢速度(其程度相當於遞增一個局部變數) PHP大概會檢查看是否存在全局變數

方法調用看來與類中定義的方法的數量無關 因為我(在測試方法之前和之後都)添加了 個方法 但性能上沒有變化

派生類中的方法運行起來要快於在基類中定義的同樣的方法

調用帶有一個參數的空函數 其花費的時間相當於執行 至 次的局部變數遞增操作 類似的方法調用所花費的時間接近於 次的局部變數遞增操作

Apache解析一個PHP腳本的時間要比解析一個靜態HTML頁面慢 至 倍 盡量多用靜態HTML頁面 少用腳本

除非腳本可以緩存 否則每次調用時都會重新編譯一次 引入一套PHP緩存機制通常可以提升 %至 %的性能 以免除編譯開銷

❹ 如何修改源代碼

怎麼修改網站後台源代碼
修改主頁上的東西,找到網站的FTP,在找到你要修改的哪一項比如是ASP語言的,用編輯器打開需要改的ASP文件在上傳替換原有的ASP文件就OK了~ 先確認你供站後綴是什麼語言,讓後下載對應的編輯器,在下個FTP上傳的軟體。你這個圖不清晰看不多什麼語言的。
網站首頁html代碼怎麼修改,在哪裡修改
網站首頁html代碼方法/步驟:

找到FTP賬號密碼,鏈接伺服器空間;

查找首頁代碼文件;

修改網站代碼文件,若不支持在線修改,可下載代碼文件進行修改,修改後上傳覆蓋即可。

網站首頁的HTML代碼,是打開網站的第一個頁面裡麵包含的代碼。

一般來說,這個文件會以index,index ,index.asp,index.php等命名。要修改它,先要通過PTF進入網站空間伺服器,找到首頁代碼的文件,同時也是需要您修改那個文件代碼的許可權。
網站HTML代碼怎麼修改?
建議使用dreamweaver打開該代碼的文件,修改保存,並測試。如果是已經在網上的,先下載該代碼的文件,備份,修改完,上傳再覆蓋該文件。再登陸網站看看。
什麼是網頁源代碼,網頁源代碼怎麼修改。
網頁源碼是使用html編寫的,通過IE把它翻譯為網頁,它是所有網頁的核心,但是html 並不是計算機語言,只是網頁的另一種描述.源代碼是一種語言,組織排撫網頁上的元素(圖片,視頻,音樂,文字等)的一種標准語言。

網頁源代碼怎麼修改~隨便點1網站~滑鼠點右鍵~彈出查看源文件~你就看到源代碼了!

修改相關的一些位元組可以到達修改網頁的效果!
怎麼修改別人的網頁源代碼
javascript:document.body.contentEditable='true';document.designMode='on';void0、

在搜索欄中輸入這個就好了
網頁上面的源代碼怎麼改?需要什麼軟體嗎? 10分
需要的軟體adobe dreamweaver 或者Notepad++ ,HBuilder(編輯代碼使用,三選一)

FlashFXP(連接網站空間)

步驟:1.使用FlashFXP連接網站的空間,連接時需要ftp的地址(即網站伺服器的地址)

用戶名和密碼。(可以向空間服務商索要)

2.登陸成功後,找到網站的根目錄,下載所需要修改的文件。(使用FlashFXP也可以上傳文件)

3.下載文件到桌面,用adobe dreamweaver打開,就可以修改網站的源碼了。(修改完成別忘了上傳修改的文件)
怎樣編輯代碼
Dreamweaver下這個看看,這是專業做網頁的軟體,也是現在基本上用的很多的軟體,可以代碼和圖形切換,可以直接把框架和圖案拖進去,當然代碼也會自動添加進去,試試~!

mbsky/

j丹zy/js.asp?classid=44&action=show

以上兩個網站基本含該BLOG的所有應用內容
修改一個源代碼的網站 都需要修改哪裡 有哪些注意的地方
黑客的基本技能

黑客態度重要,但技術更加重要。態度無法替代技術,在你被別的黑客稱為黑客之前,有一些基本的技術你必須掌握。

這些基本技術隨著新技術的出現和老技術的過時也隨時間在緩慢改變。例如,過去內容包括使用

編程,而直到最近才包括了HTML。總的來說現在主要包括以下技術:

--------------------------------------------------------------------------------

1. 學習如何編程。

這當然是最基本的黑客技能。如果你還不會任何

,我建議你從Python開始。它設計清晰,文檔齊全,合適初學者入門。它是一門很好的入門語言,並且不僅僅只是個玩具;它非常強大、靈活,也適合做大型項目。我有一篇 Python評價詳細說明這點。好的 教程 可以在Python網站得到。(譯者:比較好的中文Python站點可能是。)

Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優秀的

,不止是用來入門。

但是注意,如果你只會一兩門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個程序員的水平——你需要學會如何以抽象的方式思考編程問題,獨立於任何語言。要做一名真正的黑客,你需要學會在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。

如果要做一些重要的編程工作,你將不得不學習C語言,Unix的核

言。 C++與C非常其他類似;如果你了解其中一種,學習另一種應該不難。但這兩種都不適合編程入門者學習。而且事實上,你越避免用C編程,你的工作效率會越高。

C非常有效率,節約你的機器資源。不幸的是,C的高效是通過你手動做很多底層的管理(如內存)來達到的。底層代碼都是復雜極易出現bug的,會使你花極多的時間調試。如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運行較慢、較低效率,但大幅節省你的時間的語言。因此,選擇Python。

其他對黑客而言比較重要的語言包括 Perl和 LISP。 Perl實用,值得一學;它被廣泛用於

和系統管理,因此即便你從不用Perl寫程序,至少也應該學會看。許多人使用Perl的理由和我建議你使用Python的理由一樣,都是為了避免用C完成那些不需要C高效率的工作。你會需要理解那些工作的代碼的。

LISP值得學習的理由不同——最終掌握了它時你會得到豐富的啟迪和經驗。這些經驗會使你在以後的日子裡成為一個更好的程序員,即使你實際上很少使用LISP本身。

當然,實際上你最好五種都會(Python,Java,

++,Perl和LISP)。除了是最重要的黑客語言外,它們還代表了截然不同的編程思路和方法,每種都會讓你受益非淺。

這里我無法給你完完全全的指導教會你如何編程——這是個復雜的技能。但我可以告訴你,書本和上課也不能作到(最好的黑客中,有許多,也許 幾乎都是自學成材的)。你可以從書本上學到語言的特點——只是一些皮毛,但要使書面知識成為自身技能只能通過實踐和虛心向他人學習。因此要作到 (一)讀代碼及(二)寫代碼。

學習如何編程就象學慣用優美的

寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,再讀些,再寫點…… 如此往復,直到你的文章達到你體會到的範文的簡潔和力量。

過去找到適合閱讀的好的代碼是困難的,因為幾乎沒有大型程序的源代碼能讓新手練手。這種狀況已經

地發生變化;

,編程工具和操作系統(全都由黑客寫成)現在已經隨處可見。讓我們在下一個......
php編程的網站已經上傳,如何用源碼對首頁怎麼修改?
用記事本方式打開Index.php文件

不過這樣不建議,比如ourphp系統,採用的是utf-8編碼

這樣的話不能直接用記事本編輯

可以用專業的編輯軟體 打開PHP原碼 修改就行了
如何修改網站源代碼 買了個代源碼 想修改下
右鍵點擊你想修改的代碼----選擇打開方式---選擇記事本----點確定。就可以打開修改了。

修改後記得保存。

當然上面基本對你來說是廢話,既然你想修改源碼,那就是會編程語言了,既然會編程當然知道用什麼編輯軟體打開了。

所以你問的這個問題沒有什麼實際意義,還是先去看看怎麼做網站,怎麼架設和網頁編輯語言的書籍和教程

❺ 如何運行PHP

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
問題描述:

我們要在電腦上運運ASP文件 只要裝IIS就可以。

哪要運行PHP文件呢。該怎麼辦!~

解析:

如何安裝運行php

1. Unix/Windows: 我的php.ini 文件應該放在哪?

UNIX下默認它應該放在 /usr/local/lib 目錄下。 這是它的 /lib. 很多人冊旦芹會在編譯時改變它,使用--with-config-file-path 標志。 例如, 你可以這樣設它: --with-config-file-path=/etc

然後你可以復制源程序包里的 php.ini-dist 到 /etc/php.ini ,編輯它滿足你的本地化需求。

Windows下 php.ini默認的路徑是 Windows 系統目錄. 如果你在使用 Apache webserver, php.ini 則最先在 Apaches 安裝目錄下被查找, 例如: c:\program files\apache group\apache. 這樣你可以有不同的 php.ini 對應不同版本的 Apache(同一台機器上)。

更多細節請查閱 configuration file.

2. Unix: 我安裝了 PHP, 但我每次載入一個文檔, 會得到下面的消息: Document Contains No Data ! 怎麼回事?

這可能是因為你的 PHP 發生了core-mping錯誤。 查找你的伺服器錯誤日誌文件,看看是否屬於這種情況。 然後報告這個錯誤。如果你知道怎州畢樣使用 gdb ,你可以提供一個 backtrace 在你的錯誤報告里。這將會對開發人員解決 這個問遲帶題有很大幫助。如果你是在將PHP作為Apache模塊使用,那麼請按下面的步驟做:

停止 d 進程

gdb d

停止 d 進程

> run -X -f /path/to/d.conf

瀏覽你剛才出錯的 URL

> run -X -f /path/to/d.conf

如果你還有 core mp, gdb 現在會通知你

打入: bt

在你的 bug report里應該包含backtrace 。 這些會被發往 bugs.php/

如果你的腳本使用了正則表達式函數 (ereg() and friends), 你應該確保你編譯 PHP 和 Apache 用的是同一個正則表達式包。 在 PHP 和 Apache 1.3.x 這個過程是自動進行的。

3. Unix: 我使用 RPMS 安裝 PHP , 但Apache 不支持 PHP頁面! 怎麼辦?

假設你安裝了 Apache 和 PHP(從 RPM ) , 你需要反注釋或者增加一些行在你的 .conf 文件里: # Extra MolesAddMole mod_php.cAddMole mod_php3.cAddMole mod_perl.c# Extra MolesLoadMole php_mole moles/mod_php.soLoadMole php3_mole moles/libphp3.so /* for PHP 3 */LoadMole php4_mole moles/libphp4.so /* for PHP 4 */LoadMole perl_mole moles/libperl.so

And add: AddType application/x-d-php3 .php3 /* for PHP 3 */AddType application/x-d-php .php /* for PHP 4 */

... 到全局域里, 或者到你想要的 支持PHP的虛擬域里。

4. 我使用 RPMS 安裝 PHP 3 , 但是它沒有我需要的資料庫選項支持! 我該怎麼辦?

因為 PHP 3 內建支持的關系, 編譯一個完整的可適於所有應用的 PHP RPM是相當困難的。 在 PHP 4有談到這點。 對 PHP 3, 我們只好建議你使用INSTALL.REDHAT (在 PHP包里)描述的機制。 如果你一定要使用 RPM 版的 PHP 3, 讀...

RPM 包管理器設置 RPMS 簡單的安裝,不帶資料庫支持 and 因為RPMS 使用 /usr/ 而不是標準的 /usr/local/ 目錄存放文件. 你需要告訴 RPM 文件你要支持哪種資料庫以及它們的最上級目錄的位置。

下面的例子將解釋在Apache模式下怎樣支持通行的資料庫Mysql.

當然所有的這些可以稍作修改,以支持其它的PHP支持的資料庫。我們假設你安裝了 MySQL and Apache ,完全是用 RPMS 安裝的。

首先,移去 mod_php3 : rpm -e mod_php3

然後取得rpm包並安裝, 不是 --重編譯 rpm -Uvh mod_php3-3.0.5-2.src.rpm

編輯/usr/src/redhat/SPECS/mod_php3.spec 文件

在 %build 一節里增加你想要的資料庫支持, 以及路徑信息。

對 MySQL 你應該增加: --with-mysql=/usr \

%build 節看起來象: ./configure --prefix=/usr \ --with-apxs=/usr/ *** in/apxs \ --with-config-file-path=/usr/lib \ --enable-debug=no \ --enable-safe-mode \ --with-exec-dir=/usr/bin \ --with-mysql=/usr \ --with-system-regex

改動完成後,象下面這樣重編rpm : rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

Then install the rpm rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

重啟 Apache,你已經得到了rpm下的Mysq

l的支持。 注意到這種做法比你重新得到一個 PHP 3 的tarball 代碼,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。

5. Unix: 我用 FrontPage 擴展包對Apache打了補丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage 包不兼容嗎 ?

不是, PHP 和 FrontPage擴展包運行得很好.。問題是FrontPage 包修改了幾個Apache 結構參數,而PHP要用到它們.在FrontPage擴展包被打上後, 重新編譯 PHP (使用 make clean ; make ) ,會解決這個問題。

6. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面時,空白一片。

在瀏覽器里用 查看源文件 看你的腳本,你可能會發現你看到的是源程序。 這表示 web server 並沒有送腳本到PHP去執行。肯定是伺服器配置上哪兒出了錯。 仔細檢查PHP安裝的 server 配置。

7. Unix/Windows: 我安裝了PHP,但在瀏覽器里看我的 PHP頁面時,我得到一個 server 500 error。

這是伺服器在運行 PHP 時發生了錯誤。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常,這個錯誤就是由於伺服器配置引發的,應該仔細檢查。

8. 某些操作系統: 我安裝PHP沒出錯,可是我啟動Apache時,得到一個 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/d Undefined symbols: _press _unpress

這個問題其實與 PHP 無關, 而與 MySQL 客戶端庫有關。 --with-zlib,有些操作系統需要,而有些不需要。MySQL FAQ已經講述了這個問題。

9. Windows: 我安裝了PHP,但在瀏覽器里看我的PHP頁面, 得到如下錯誤: cgi error: The specified CGI application mi *** ehaved by not returning a plete set of HTTP headers. The headers it did return are:

這是 PHP 根本沒有產生任何輸出。 為了看到可讀的錯誤信息,在命令行,改變目錄到 (php.exe Windows)所在目錄, 運行 php -i. 如果有任何問題,詳細的錯誤信息就顯示出來了,它會告訴你下一步該做什麼。 如果你得到滿屏的HTML代碼 (phpinfo() 函數的輸出), 那麼PHP工作正常。

一旦PHP在命令行模式下工作,再看看你的腳本程序, 它還是失敗,可能是因為以下原因:

你的PHP腳本的許可權許可。 php.exe, php4ts.dll, php.ini 或者任何你可能裝入的PHP文件,它樣都必須能被匿名 inter 用戶 ISUR_ 訪問。

腳本文件根本不存在(或者不是你認為的位置。)請注意在IIS里,你能夠阻塞這個錯誤,做法是在設置腳本映射目錄時, 選上 check file exists 框。這樣如果腳本不存在,伺服器會返回一個404錯誤。 這樣做也有其它的一些好處, 就是IIS僅為你做經過授權的操作。

10. Windows: 我嚴格按照install的要求做,可是還是不能讓我的php在IIS下工作。

確定任何想要運行PHP的用戶有操作php.exe的許可權! IIS 使用匿名的inter用戶,它是在IIS安裝時系統自動增加的。 這個用戶需要操作 php.exe的許可權. 還有,任何需要授權的用戶也必須有訪問 php.exe的許可權。 在 IIS4下,你要告訴它PHP是一個腳本引擎。

❻ PHP5教程之文件操作

一 引論

在任何計算機設備中 文件是都是必須的對象 而在web編程中 文件的操作一直是web程序員的頭疼的地方 而 文件的操作在cms系統中這是必須的 非常有用的 我們經常遇到生成文件目錄 文件(夾)編輯等操作 現在我把php中的這些函數做一詳細總結並實例示範如何使用 關於對應的函數詳細介紹 請查閱php手冊 此處只總結重點 和需要注意的地方 (這在php手冊是沒有的 )( lian )

二 目錄操作

首先介紹的是一個從目錄讀取的函數 opendir() readdir() closedir() 使用的時候是先打開文件句柄 而後迭代列出:

<?php $base_dir = filelist/ ; $fso = opendir($base_dir); echo $base_dir <hr/> ; while($flist=readdir($fso)){ echo $flist <br/> ; } closedir($fso) ?>

這是講返迴文件目錄下面的文件已經目錄的程序( 文件將返回false)

有時候需要知道目錄的信息 可以使用dirname($path)和basename($path) 分別返迴路徑的目錄部分和文件名名稱部分 可用disk_free_space($path)返回看空間空餘空間

創建命令:

mkdir($path )

是許可權碼 在非window下可用umask()函數設置

rmdir($path)

將刪除路徑在$path的文件

dir directory 類也是操作文件目錄的重要類 有 個方法 read rewind close 這是一個仿面向對象的類 它先使用的是打開文件句柄 然後用指針的方式讀取的 這里看php手冊:

<?php$d = dir( /etc/php );echo Handle: $d >handle /n ;echo Path: $d >path /n ;while (false !== ($entry = $d >read())) { echo $entry /n ;}$d >close();?>

輸出:

Handle: Resource id # Path: /etc/php apachecgicli

文件的屬性也非常重要 文件屬性包括創建時間 最後修改時間 所有者 文件組 類型 大小等

下面我們重點談文件操作

三 文件操作

A 讀文件

首先是一個文件看能不能讀取(許可權問題) 或者存在不 我們可以用is_readable函數獲取信息

<?php$file = dirlist php ;if (is_readable($file) == false) { die( 文件不存在或者無法讀取 );} else { echo 存在 ;}?>

判斷文件存在的函數還有file_exists(下面演示) 但是這個顯然無is_readable全面 當一個文件存在的話可以用

<?php$file = filelist php ;if (file_exists($file) == false) { die( 文件不存在 );}$data = file_get_contents($file);echo entities($data);?>

但是file_get_contents函數在較低版本上不支持 可以先創建文件的一個句柄 然後用指針讀取全部:

$fso = fopen($cacheFile r ); $data = fread($fso filesize($cacheFile)); fclose($fso);

還有一種方式 可以讀取二進制的文件:

$data = implode( file($file));

B 寫文件

和讀取文件的方式一樣 先看看是不是能寫:

<?php$file = dirlist php ;if (is_writable($file) == false) { die( 我是雞毛 我不能 );}?>

能寫了的話可以使用file_put_contents函數寫入:

<?php $file = dirlist php ; if (is_writable($file) == false) { die( 我是雞毛 我不能 ); } $data = 我是可鄙 我想要 ; file_put_contents ($file $data); ?>

file_put_contents函數在php 中新引進的函數(不知道存在的話用function_exists函數先判斷一下)低版本的php無法使用 可以使用如下方式:

$f = fopen($file w ); fwrite($f $data); fclose($f);

替換之

寫文件的時候有時候需要鎖定 然後寫:

function cache_page($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this >warns( 無法打開緩存文件 );//trigger_error return false; } if(!flock($fso LOCK_EX)){//LOCK_NB 排它型鎖定 $this >warns( 無法鎖定緩存文件 );//trigger_error return false; } if(!fwrite($fso $pagedata)){//寫入位元組流 serialize寫入其他格式 $this >warns( 無法寫入緩存文件 );//trigger_error return false; } flock($fso LOCK_UN);//釋放鎖定 fclose($fso); return true; }

C 復制 刪除文件

php刪除文件非常easy 用unlink函數簡單操作:

<?php $file = dirlist php ; $result = @unlink ($file); if ($result == false) { echo 蚊子趕走了 ; } else { echo 無法趕走 ; } ?>

即可

復制文件也很容易:

<?php $file = yang txt ; $newfile = ji txt ; # 這個文件父文件夾必須能寫 if (file_exists($file) == false) { die ( 小樣沒上線 無法復制 ); } $result = ($file $newfile); if ($result == false) { echo 復制記憶ok ; } ?>

可以使用rename()函數重命名一個文件夾 其他操作都是這幾個函數組合一下就能實現的

D 獲取文件屬性

我說幾個常見的函數:

獲取最近修改時間:

<?php $file = test txt ; echo date( r filemtime($file)); ?>

返回的說unix的時間戳 這在緩存技術常用

相關的還有獲取上次被訪問的時間fileatime() filectime()當文件的許可權 所有者 所有組或其它 inode 中的元數據被更新時間 fileowner()函數返迴文件所有者

$owner = posix_getpwuid(fileowner($file));

(非window系統) ileperms()獲取文件的許可權

<?php$file = dirlist php ;$perms = substr(sprintf( %o fileperms($file)) );echo $perms;?>

filesize()返迴文件大小的位元組數:

<?php

// 輸出類似 somefile txt: bytes

$filename = somefile txt ; echo $filename : filesize($filename) bytes ;

?>

獲取文件的全部信息有個返回數組的函數stat()函數:

<?php $file = dirlist php ; $perms = stat($file); var_mp($perms); ?>

那個鍵對應什麼可以查閱詳細資料 此處不再展開

四 結束語

lishixin/Article/program/PHP/201311/21262

閱讀全文

與php文件編程相關的資料

熱點內容
回調突破主圖源碼 瀏覽:238
mc生存都市伺服器地址大全 瀏覽:92
unix網路編程環境搭建 瀏覽:963
pythonsocket高並發 瀏覽:257
python開發windowsgui 瀏覽:619
25減9的借位演算法 瀏覽:269
管家婆有必要加密狗嗎 瀏覽:907
電腦文件夾沒保存怎麼恢復 瀏覽:148
買燕窩什麼是溯源碼 瀏覽:585
安卓黨為什麼我不用iphone 瀏覽:266
固態繼電器單片機 瀏覽:980
反編譯exe課件 瀏覽:58
gps測量加密法 瀏覽:960
量價絕殺pdf 瀏覽:482
循環壓縮機振動高的原因 瀏覽:398
教育機構網站源碼 瀏覽:543
程序員租客被騙 瀏覽:401
安卓機用了三年會怎麼樣 瀏覽:296
圖片怎麼轉pdf加密 瀏覽:450
解壓縮軟體免安裝版 瀏覽:962