【PHP程式設計+MySQL資料庫+PHPMaker整合教學+技術諮詢】 本月特價優惠中! 動態的架站程式時代,要自訂PHP程式頁面有那麼難嗎? MySQL『資料庫』與『資料表』,用PHP程式有那麼難控制嗎? 你不用死背『PHP程式』與『MySQL資料庫』語法也能獨自設計完成! 這是自動化軟體程式的年代 (用PHPMaker 設計在彈指之間就能自動生成整個 PHP 程式系統) 這不是:神話!程式軟體模組取代了這一切複雜的工程。 你可以自己建構自己專屬的: 訂購表單、會員名單、擴增購物車特殊頁面 →POS 系統、CRM 系統、ERP 系統、HRM 系統...等等 (更可以加入數據資源銷售賺錢!) 該是:【見證奇蹟】的時候了! 非親眼所見....真的無法相信此神兵利器!

php程式教學

隱藏apache和php的版本訊息可以盡量減少敏感訊息洩露的方法,並不會使你的伺服器真的更安全,如果你現在使用的版本比較舊,請務必盡快將系統升級,降低被蠕蟲攻擊的風險。

隱藏apache和php的版本訊息,web server避免一些不必要的麻煩,可以把apache和php的版本訊息不顯示

隱藏 Apache 版本訊息

/etc/apache2/apache2.conf 或 /etc/httpd/conf/httpd.conf

ServerTokens ProductOnly
ServerSignature Off

重啟 apache
現在 http 頭裡面只看到:
Server: Apache

隱藏 PHP 版本
php.ini

expose_php On
改成
expose_php Off

重啟apache後,php版本在http頭中隱藏了。

詳解 :

為了防止某些別有用心的傢伙窺視我們的伺服器,應該做些什麼.
我們來看一下關聯的2個參數,分別為ServerTokens和ServerSignature,通過控制這2個閥門應該就能起到一些作用,比如我們可以在配置檔案中這麼寫:
ServerTokens Prod
ServerSignature Off

ServerTokens
用於控制伺服器是否相應來自使用者端的請求,向使用者端輸出伺服器系統類型或內建模組等重要的系統訊息。 在主配置檔案中提供全局控制預設閥值為”Full”(ServerTokens Full),所以,如果你的Linux發行版本沒有變更過這個閥值的話,所有與你的系統有關的敏感訊息都會向全世界公開。比如RHEL會將該 閥值變更為”ServerTokens OS”,而Debian依然使用預設的”Full”閥值
以apache-2.0.55為例,閥值可以設定為以下某項(後面為相對應的Banner Header):
Prod >>> Server: Apache
Major >>> Server: Apache/2
Minor >>> Server: Apache/2.0
Minimal >>> Server: Apache/2.0.55
OS >>> Server: Apache/2.0.55 (Debian)
Full (or not specified) default >>> Server: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b

ServerSignature
控制由系統生成的頁面(錯誤訊息,mod_proxy ftp directory listing等等)的頁腳中如何顯示訊息。

可在全局設定檔案中控制,或是通過.htaccess檔案控制
預設為”off”(ServerSignature Off),有些Linux發行版本可能會開啟這個閥門,比如Debian在預設的虛擬主電腦上預設將這個閥門設定為開放
全局閥門的閥值會被虛擬主電腦或目錄單位的配置檔案中的閥值所覆蓋,所以,必須確保這樣的事情不應該發生
可用的閥值為下面所示:
Off (default): 不輸出任何頁腳訊息 (如同Apache1.2以及更舊版本,用於迷惑)
On:輸出一行關於版本號以及處於運行中的虛擬主電腦的ServerName (2.0.44之後的版本,由ServerTokens負責是否輸出版本號)
EMail: 建立一個傳輸到給ServerAdmin的”mailto”

注意:上述關於如何設定2個閥門從而盡量減少敏感訊息洩露的方法,並不會使你的伺服器真的更安全,如果你現在使用的版本比較舊,請務必盡快將系統升級,降低被蠕蟲攻擊的風險。

PHP程式設計問題諮詢:
請問,資料放入資料庫和取出來顯示在頁面需要注意什麼?

———————————————————
PHP程式設計問題回覆:
資料放入資料庫和取出來顯示在頁面需要注意什麼,可以參考以下的說明:

寫入資料庫時
$str=addslashes($str);
$sql="insert into `tab` (`content`) values('$str')";
輸出資料庫時
$str=stripslashes($str);
顯示資料庫內容時
$str=htmlspecialchars(nl2br($str)) ;

如何讀取當前位址欄資訊?可以參考以下的說明:
<?php
$s="http://{$_SERVER['HTTP_HOST']}:{$_SERVER["SERVER_PORT"]}{$_SERVER['SCRIPT_NAME']}";
$se='';
foreach ($_GET as $key => $value) {     
$se.=$key."=".$value."&";     
}   
$se=Preg_Replace("/(.*)&$/","$1",$se);
$se?$se="?".$se:"";
echo   $s."?$se";
?> 

MacBook入手了,配置工作環境,首先得讓Mac OS支援PHP。不管你是採用整合的開發環境,比如XAMPP for Mac OS X,還是採用Mac OS中自帶的Apache和PHP,甚至自己重新編譯安裝,減少麻煩的第一步就是啟用root使用者。

本文采用的模式是使用Mac OS X 10.5.6自帶的Apache和PHP,安裝MySQL的dmg版本,以下操作非特殊說明均以root使用者在指令行下進行。

啟用root使用者
1.開啟「目錄實用工具」,它位於「應用程式」資料夾的「實用工具」資料夾中。
2.點按鎖圖示以進行變更。您將需要輸入管理員名稱和密碼。
3.選取「編輯」>「啟用 Root 使用者」。
4.為 root 使用者輸入安全密碼,然後在「驗證」欄再次輸入它,最後點按「好」。

啟用Apache
Mac OS X 10.5.6自帶了Apache 2.2.9,直接在指令行運行apachectl start,Apache就搞定了。

現在Apache的主目錄就是/Libary/WebServer/Documents/,你可以在這目錄裡放置檔案測試了。

啟用PHP
Mac OS X 10.5.6自帶了PHP 5.2.6,我們需要做的就是將PHP加入Apache中。

修改/etc/apache2/httpd.conf中的
#loadModule php5_module libexec/apache2/libphp5.so

loadModule php5_module libexec/apache2/libphp5.so

然後將/etc/php.ini.default複製為/etc/php.ini。
cp /etc/php.ini.default /etc/php.ini

之後就可以按照自己的習慣修改php.ini的配置
比如將error_reporting = E_ALL & ~E_NOTICE
修改為
error_reporting = E_ALL

最後,重啟Apache,可以在/Libary/WebServer/Documents/目錄中建立個phpinfo.php來測試了。
apachectl restart

PHP程式設計問題諮詢:
我想在每個檔最前,最後面都加上一檔.但一個一個添加很麻煩
有沒有解決的辦法?

———————————————————
PHP程式設計問題回覆:
 我想在每個檔最前,最後面都加上一檔.但一個一個添加很麻煩
您可以這樣處理:

1:打開php.ini文件
設置 include_path= "c:"

2:寫兩個文件
auto_prepend_file.php 和 auto_append_file.php 保存在c磁碟,他們將自動依附在每個php檔的頭部和尾部.

3:在php.ini中找到:
Automatically add files before or after any PHP document.
auto_prepend_file = auto_prepend_file.php;依附在頭部
auto_append_file = auto_append_file.php;依附在尾部

以後你每個php檔就相當於
<?php
Include "auto_prepend_file.php" ;

…….//這裏是你的程式

Include "auto_append_file.php";
?>
———————————————————

GUID: 即Globally Unique Identifier(全球唯一標識符)
也稱作 UUID(Universally Unique IDentifier) 。

GUID是一個通過特定算法產生的二進位長度為128位的數字標識符,用於指示產品的唯一性。
GUID 主要用於在擁有多個節點、多台電腦的網路或系統中,配置必須具有唯一性的標識符。

在 Windows 平台上,GUID 廣泛應用於微軟的產品中,用於標識如如註冊表項、類及介面標識、資料庫、系統目錄等對象。   

php中並沒有標準的guid,只是有個函數 uniqid() 生成唯一id。
而在mysql中有函數生成guid:SELECT UUID()

PHP程式設計問題諮詢:
我想要如何配置GD庫,其方法為何?

———————————————————
PHP程式設計問題回覆:
您要如何配置GD庫,可以參考以下的範例:

1:用dos命令(也可以手動操作,拷貝dlls檔夾裏所有dll檔到system32目錄下) copy c:phpdlls*.dll c:windowssystem32
2:打開php.ini
設置extension_dir = "c:/php/extensions/";
3:
extension=php_gd2.dll;把extension前面的逗號去掉,如果沒有php_gd2.dll,php_gd.dll也一樣,保證確實存在這一檔c:/php/extensions/php_gd2.dll
4:運行下面程式進行測試
<?php
Ob_end_flush();
//注意,在此之前不能向流覽器輸出任何資訊,要注意是否設置了 auto_prepend_file.
header ("Content-type: image/png");
$im = @imagecreate (200, 100)
    or die ("無法創建圖像");
$background_color = imagecolorallocate ($im, 0,0, 0);
$text_color = imagecolorallocate ($im, 230, 140, 150);
imagestring ($im, 3, 30, 50,  "A Simple Text String", $text_color);
imagepng ($im);
?>

———————————————————————-

     您知道PHP6將實現的8個特性和功能嗎?   

PHP創始人Rasmus Lerdorf提出的一個wishlist:

1.完全拋棄全局變量

2. 刪除Magic Quotes

3. 增加一個輸入過濾延伸代替Magic Quotes,提供一個機制讓開發者很容易自己關閉或開啟這個功能。
          而不是像現在的作法那樣先判斷伺服器的GPC是否開啟。

4. 預設加入opcode cache,對代碼執行進行速度上的改善。
          目前大多用的是PECL或APC,但有一個官方的解決專案顯然是比較好的。

5. 刪除安全模式 safe_mode,改進open_basedir

6. 刪除在PHP3/4中已經被標示為過時deprecated的內容

另兩個考慮中的,但是意義不太大的:

7. 標識符(程式中使用的變量名、函數名、標號等)大小寫敏感

8. 刪除各種函數的別名

PHP程式設計問題諮詢:
請問,我用Apache後首頁出現亂碼如何排除?

———————————————————
PHP程式設計問題回覆:
您用Apache後首頁出現亂碼要排除,可以參考以下的說明:

———————————————————

方法一:
AddDefaultCharset ISO-8859-1 改為 AddDefaultCharset off

方法二:
AddDefaultCharset big5

———————————————————

 在搜尋引擎排名SEO教學中,總教頭常提到Google PageRank PR值
那如何達成Google PageRank PR值線上查詢?其php代碼又該如何撰寫?

PR值全稱為PageRank.PageRank(網頁層級)是Google用於評測一個網頁重要性的一種方法。
在揉合了諸如Title標識和Keywords標識等所有其它因素之後

Google通過PageRank來調整結果.使那些更具重要性的網頁在搜尋結果中另網站排名獲得提升
從而提高搜尋結果的關聯性和質量.PR值最高為10.一般PR值達到4.就算是一個不錯的網站了

PageRank是google搜尋排名算法中的一個組成部分,層級從1到10級
10級為滿分PR值越高說明該網頁在搜尋排名中的地位越重要

也就是說,在其他條件相同的情況下,PR值高的網站在google搜尋結果的排名中有優先權。
———————————————
< ?php

// Edit this to your website url:
$myWebSite = http://www.mycodes.net;

define('GMAG', 0xE6359A60);

//unsigned shift right
function zeroFill($a, $b) {
$z = hexdec(80000000);

if ($z & $a) {
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
} else {
$a = ($a>>$b);
}

return $a;
}

function mix($a,$b,$c) {

$a -= $b; $a -= $c; $a ^= (zeroFill($c,13));
$b -= $c; $b -= $a; $b ^= ($a< &lt;8);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,13));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,12));
$b -= $c; $b -= $a; $b ^= ($a<&lt;16);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,5));
$a -= $b; $a -= $c; $a ^= (zeroFill($c,3));
$b -= $c; $b -= $a; $b ^= ($a<&lt;10);
$c -= $a; $c -= $b; $c ^= (zeroFill($b,15));

return array($a,$b,$c);
}

function GCH($url, $length=null, $init=GMAG) {

if(is_null($length)) {
$length = sizeof($url);
}

$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;

while($len >= 12) {
$a += ($url[$k+0] +($url[$k+1]< &lt;8) +($url[$k+2]<&lt;16) +($url[$k+3]<&lt;24));
$b += ($url[$k+4] +($url[$k+5]<&lt;8) +($url[$k+6]<&lt;16) +($url[$k+7]<&lt;24));
$c += ($url[$k+8] +($url[$k+9]<&lt;8) +($url[$k+10]<&lt;16)+($url[$k+11]<&lt;24));
$mix = mix($a,$b,$c);
$a = $mix[0]; $b = $mix[1]; $c = $mix[2];
$k += 12;
$len -= 12;
}

$c += $length;

switch($len) {/* all the case statements fall through */
case 11: $c+=($url[$k+10]<&lt;24);
case 10: $c+=($url[$k+9]<&lt;16);
case 9 : $c+=($url[$k+8]<&lt;8);
/* the first byte of c is reserved for the length */
case 8 : $b+=($url[$k+7]<&lt;24);
case 7 : $b+=($url[$k+6]<&lt;16);
case 6 : $b+=($url[$k+5]<&lt;8);
case 5 : $b+=($url[$k+4]);
case 4 : $a+=($url[$k+3]<&lt;24);
case 3 : $a+=($url[$k+2]<&lt;16);
case 2 : $a+=($url[$k+1]<&lt;8);
case 1 : $a+=($url[$k+0]);
/* case 0: nothing left to add */
}

$mix = mix($a,$b,$c);
/*——————————————– report the result */
return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {

for($i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}

return $result;
}

function getPR($_url) {

$url = 'info:'.$_url;
$ch = GCH(strord($url));
$url='info:'.urlencode($_url);
$pr = file("http://www.google.com/search?client=navclient-auto&ch=6$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=$url");
$pr_str = implode("", $pr);

return substr($pr_str,strrpos($pr_str, ":")+1);
}

echo "<br>The PR of $myWebsite is: ".getPR($myWebSite);
?>
 
———————————————————–

您知道在使用PHP程式中,日曆算法是如何達成的嗎?

/**
* 日曆
*
*/
if (function_exists(‘date_default_timezone_set’)) {
date_default_timezone_set(‘Asia/Chongqing’);
}
$date = isset($_GET[‘date’]) ? $_GET[‘date’] : date(‘Y-m-d’);
$date = getdate(strtotime($date));
$end = getdate(mktime(0, 0, 0, $date[‘mon’] + 1, 1, $date[‘year’]) – 1);
$start = getdate(mktime(0, 0, 0, $date[‘mon’], 1, $date[‘year’]));
$pre = date(‘Y-m-d’, $start[0] – 1);
$next = date(‘Y-m-d’, $end[0] + 86400);
$html = ‘<table border=”1″>’;
$html .= ‘<tr>’;
$html .= ‘<td><a href=”‘ . $PHP_SELF . ‘?date=’ . $pre . ‘”>-</a></td>’;
$html .= ‘<td colspan=”5″>’ . $date[‘year’] . ‘;’ . $date[‘month’] . ‘</td>’;
$html .= ‘<td><a href=”‘ . $PHP_SELF . ‘?date=’ . $next . ‘”>+</a></td>’;
$html .= ‘</tr>’;
$arr_tpl = array(0 => ”, 1 => ”, 2 => ”, 3 => ”, 4 => ”, 5 => ”, 6 => ”);
$date_arr = array();
$j = 0;
for ($i = 0; $i < $end[‘mday’]; $i++) {
if (!isset($date_arr[$j])) {
$date_arr[$j] = $arr_tpl;
}
$date_arr[$j][($i+$start[‘wday’])%7] = $i+1;
if ($date_arr[$j][6]) {
$j++;
}
}
foreach ($date_arr as $value) {
$html .= ‘<tr>’;
foreach ($value as $v) {
if ($v) {
if ($v == $date[‘mday’]) {
$html .= ‘<td><b>’ . $v . ‘</b></td>’;
} else {
$html .= ‘<td>’ . $v . ‘</td>’;
}
} else {
$html .= ‘<td>&nbsp;</td>’;
}
}
$html .= ‘</tr>’;
}
$html .= ‘</table>’;
echo $html;

PHP程式編輯器 MPSOFTWARE phpDesigner 8.1.0.10 版

phpDesigner8 是一個強大的和閃電般快速的PHP IDE和PHP編輯器
它也是一個全功能的HTML5,CSS3和JavaScript編輯器功能,以提高您的生產力提高 – 為初學者和專業開發人員!
一切從編輯 phpDesigner8 設計、分析、除錯PHP、HTML5、CSS3供JavaScript和其他語系的網站發佈!



MPSOFTWARE phpDesigner 8 主要特點:

與朦朧的智慧語法高亮和沒有暗淡
»PHP,HTML和CSS的語法檢查
»PHP,HTML CSS和JavaScript代碼完成,內含jQuery和其他流行的JavaScript框架
PHP和JavaScript代碼提示
»HTML的代碼檢查
»直觀的模式瀏覽通過您的代碼,內含你的項目
支援嵌套的PHP對像
»PHP類工作的進階支援
支援PHP和JavaScript面向對像寫程式(OOP)
»HTML的代碼檢查
»為PHP代碼瀏覽器(過濾器),CSS和JavaScript的
»工作與任何PHP框架(內含通過代碼完成和代碼提示)
»前往任何PHP,CSS和JavaScript的聲明
»見在phpDesigner7 jQuery的支援行動
除錯和配置檔與Xdebug的PHP腳本
»簡單易學的介面和有趣的使用

phpDesigner 8 is more than just a powerful and lightning fast PHP IDE and PHP EDITOR – it's also a full-featured HTML5-, CSS3- and JavaScript editor boosted with features to increase your productivity — for both beginners and professional developers!
phpDesigner 8 assists you with everything from editing, analyzing, debugging to publishing websites powered by PHP, HTML5, CSS3 to JavaScript and other languages!

Main features:
» Intelligent syntax highlighting with dim and no dim
» Syntax check for PHP, HTML and CSS
» Code completion for PHP, HTML, CSS and javascript including jQuery and other popular javascript frameworks
» Code tip for PHP and javascript
» Code inspector for HTML
» Intuitive way to navigate through your code including your projects
» Support for nested PHP objects
» Advanced support for working with PHP classes
» Support for PHP and javascript object oriented programming (oop)
» Code inspector for HTML
» Code explorer for PHP (with filter), CSS and javascript
» Work with any PHP framework (including through the code completion and code tip)
» Go to any PHP, CSS and javascript declarations
» See support for jQuery in phpDesigner 7 in action
» Debug and profile PHP scripts with Xdebug
» Easy to learn interface and fun to use


MPSOFTWARE phpDesigner 8 Size: 23.9 MB


PHP程式編輯器 MPSOFTWARE phpDesigner 8.1.0.10 版
Home Page: http://www.mpsoftware.dk/phpdesigner.php

PHP程式設計問題諮詢:
請問,如何遠端鏈結Mysql資料庫?

———————————————————
PHP程式設計問題回覆:
您要從遠端鏈結Mysql資料庫,可以參考以下的說明:

———————————————————

在增加用戶的mysql表裏有一個host欄位,修改為"%",或者指定允許連接的ip位址,這樣,你就可以遠端調用了。

$link=mysql_connect("192.168.1.80:3306","root","");

———————————————————

PHP程式設計問題諮詢:
我想利用PHP上傳文件,其方法為何?

———————————————————
PHP程式設計問題回覆:
您要利用PHP上傳文件,可以參考以下的範例:

<html><head>
<title>上載文件表單</title></head>
<body>
<form enctype="multipart/form-data" action="" method="post">
請選擇檔: <br>
<input name="upload_file" type="file"><br>
<input type="submit" value="上傳文件">
</form>
</body>
</html>

<?
$upload_file=$_FILES['upload_file']['tmp_name'];
$upload_file_name=$_FILES['upload_file']['name'];

if($upload_file){
$file_size_max = 1000*1000;// 1M限制檔上傳最大容量(bytes)
$store_dir = "d:/";// 上傳檔的儲存位置
$accept_overwrite = 1;//是否允許覆蓋相同檔
// 檢查檔大小
if ($upload_file_size > $file_size_max) {
echo "對不起,你的檔容量大於規定";
exit;
}

// 檢查讀寫檔
if (file_exists($store_dir . $upload_file_name) && !$accept_overwrite) {
Echo   "存在相同檔案名的文件";
exit;
}

//複製檔到指定目錄
if (!move_uploaded_file($upload_file,$store_dir.$upload_file_name)) {
echo "複製檔失敗";
exit;
}

}

Echo   "<p>你上傳了文件:";
echo  $_FILES['upload_file']['name'];
echo "<br>";
//用戶端機器文件的原名稱。

Echo   "文件的 MIME 類型為:";
echo $_FILES['upload_file']['type'];
//檔的 MIME 類型,需要流覽器提供該資訊的支援,例如“image/gif”。
echo "<br>";

Echo   "上傳文件大小:";
echo $_FILES['upload_file']['size'];
//已上傳檔的大小,單位為位元組。
echo "<br>";

Echo   "檔上傳後被臨時儲存為:";
echo $_FILES['upload_file']['tmp_name'];
//檔被上傳後在服務端儲存的暫存檔案名。
echo "<br>";

$Erroe=$_FILES['upload_file']['error'];
switch($Erroe){
        case 0:
            Echo   "上傳成功"; break;
        case 1:
            Echo   "上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值."; break;
        case 2:
            Echo   "上傳檔的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值。";    break;
        case 3:
            Echo   "檔只有部分被上傳";break;
        case 4:
            Echo   "沒有檔被上傳";break;
}
?>

————————————————————-

改善PHP開發模式的方法
  
關於如何使用PHP語系來開發應用程式,我們每個人都有自己的技巧和方法。
實際上,我們大家都知道,有很多種模式和方法可以讓開發變得更加簡單。
儘管如此,還是有一些方法,尤其是編碼樣式和習慣,是大家公認的。
我們列舉出了可以改善PHP開發模式的方法。

我們不應該輕視代碼的組織,選取的編碼樣式應該是事先約定好的,許多人只是隨機的在做這些事情,這讓他們的代碼變得十分混亂,十分令人難以理解。

你可以在那裡宣稱自己是最好的開發者,但是,如果你的代碼缺乏良好的組織,你是不會走的太遠的。
舉個例子,比如說,在當地的社區大學中,你是一名教師。
如果你決定從初級和進階的資料中隨機地選取一大堆知識,然後按照這種順序把這些知識教授給你的學生
而不是從初級到進階,循序漸進地教授給你的學生,那麼你的學生們會十分困惑,而且,作為一名教師,他們是不會歡迎你的,如果他們不歡迎你,他們就不會上你的課。

我的觀點是,找出一種適合你的組織方法和編碼樣式,並且一直堅持下去,這樣的話,你的代碼的組織和配置會變得十分有條理。

對於獨立的開發者來說,內定檔案並不是很流行,它主要是面向企業項目和開源項目的。
但是,這並不是說,內定檔案對你的項目沒有好處。對於你的項目來說,內定檔案是改善你的編碼和工作模式的重中之重。

許多支援PHP的整合開發環境(IDE)都支援內定檔案,這可以說明你記住你建立那些函數的時候用了哪些參數,或是,那些函數的功能是什麼?

如果你把你的項目移交給另外一個開發者或團隊,他們一定會對這份內定檔案心存感激的,因為它傳遞了和PHP項目(尤其是那些規模較大的PHP項目)有關的大量訊息。
 

PHP程式設計問題諮詢:
請問,怎麼用php解釋字元?

———————————————————
PHP程式設計問題回覆:
怎麼用php解釋字元?,您可以參考以下的說明:

———————————————————
怎麼用php解釋字元呢?

例如:輸入2+2*(1+2),自動輸出8
可以用eval函數

<form method=post action="">
<input type="text" name="str"><input type="submit">
</form>
<?php
$str=$_POST['str'];
eval("$o=$str;");
Echo   "$o";
?>
另外,用此函數必須特別小心!!
如果有人輸入format: d:會是什麼結果?

————————————————————-

PHP程式設計問題諮詢:
請問,為什麼單引號,雙引號在接受頁面變成('")?

———————————————————
PHP程式設計問題回覆:
為什麼單引號,雙引號在接受頁面變成('"),可以參考以下的說明:

———————————————————
解決方法:

方法一:在php.ini中設置:magic_quotes_gpc = Off


方法二: $str=stripcslashes($str)

———————————————————

如何用PHP網頁,取得目前Linux主機PHP版本?(phpversion)

如果你是租用虛擬主機,如何知道Linux主機PHP版本呢?
———————————————————-
方法如下:
先用網頁編輯軟體
例如:Dreamweaver 新增一個新的PHP動態空白網頁
切到程式碼
刪除全部字串,再貼入下面語法,存檔並上傳至主機網站下
在瀏覽器網址列輸入該PHP路徑,開啟該網頁
即可以看到該Linux主機PHP版本!

<?php

// prints e.g. ‘Current PHP version: 3.0rel-dev’

echo “Current PHP version: “.phpversion();

?>

———————————————————–
語法 : string phpversion (void)

說明 :

傳回現在所安裝的PHP的版本。

———————————————————–
參考 : phpinfo( ) phpcredits( ) php_logo_guid( )

 

PHP【函式簡介】Require及Require_once( )
    require 的使用方法如 require("header.inc"); 。
這個語法通常放在 PHP 程式的最前面,PHP 程式在執行前,就會先讀入 require 所指定引入的檔案,使它變成 PHP 程式網頁的一部份。
常用的函式可以寫成一個函式庫檔案,然後用這個方法將它引入網頁中。

require_once 的作用和 require 是幾乎相同的,唯一的差別在於 require_once 會先檢查要引入的檔案是不是已經在該程式中的其他地方被引入過了。
如果有的話,就不會再次重複引入該檔案。
這項功能有時候是很重要的,比方說要引入的檔案裡面宣告了一些我們自行定義的函數,那麼如果在同一個程式重複引入這個檔案,在第二次引入的時候便會發生錯誤訊息,因為 PHP 不允許相同名稱的函數被重複宣告。

用單引號代替雙引號來包括字串 ,這樣做會更快一些。

因為PHP會在雙引號包圍的字串中搜尋變量,單引號則不會,注意:只有echo能這麼做,它是一種可以把多個字串當作參數的「函 數」(譯註:PHP手冊中說echo是語系結構,不是真正的函數,故把函數加上了雙引號)。

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

2、$row[』id』] 的速度是$row[id]的7倍。

3、echo 比 print 快 ,並且使用echo的多重參數(譯註:指用逗號而不是句點)代替字串連線,比如echo $str1,$str2。

4、最好使用Foreach執行迴圈 ,在執行for迴圈之前確定最大迴圈數,不要每迴圈一次都計算最大值。

5、註銷那些不用的變量尤其是大陣列 ,以便釋放記憶體。

6、盡量避免使用__get,__set,__autoload 。對於__開頭的函數就命名為魔術函數,此類函數都在特定的條件下廚房的。總得來說,有下面幾個魔術函數

__construct(),__destruct(),__get(),__set(),__unset(),__call(),__callStatic(),__sleep(),__wakeup(),__toString(),__set_state(),__clone(),__autoload()

7、require_once()代價昂貴 。

8、include檔案時盡量使用絕對路徑 ,因為它避免了PHP去include_path裡尋找檔案的速度,解析操作系統路徑所需的時間會更少。

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

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

11、str_replace函數比preg_replace函數 快,但strtr函數的效率是str_replace函數的四倍。

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

13、使用選取分支語句代替條件語句 ,選取分支語句(即switch case)好於使用多個if,else if語句。

14、不用@ ,用@屏蔽錯誤訊息的做法非常低效,極其低效。

15、開啟apache的mod_deflate模組,可以提高網頁 的瀏覽速度 。

16、資料庫連線當使用完畢時應關掉,不要用長連線 。

17、錯誤訊息代價昂貴 。

18、在方法中遞增局部變量,速度是最快的 。幾乎與在函數中呼叫局部變量的速度相當。

19、遞增一個全局變量要比遞增一個局部變量慢2倍 。

20、遞增一個對像屬性(如:$this->prop++)要比遞增一個局部變量慢3倍。

21、遞增一個未預定義的局部變量要比遞增一個預定義的局部變量慢9至10倍。

22、僅定義一個局部變量而沒在函數中呼叫它,同樣會減慢速度(其程度相當於遞增一個局部變量)。PHP大概會檢檢視是否存在全局變量。

23、方法呼叫看來與類中定義的方法的數量無關,因為我(在測試方法之前和之後都)加入了10個方法,但效能上沒有變化。

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

25、呼叫帶有一個參數的空函數,其花費的時間相當於執行7至8次的局部變量遞增操作。類似的方法呼叫所花費的時間接近於15次的局部變量遞增操 作。

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

27、除非腳本可以快取,否則每次呼叫時都會重新編譯一次。引入一套PHP快取機制通常可以提升25%至100%的效能,以免除編譯開銷。

28、盡量做快取,可使用memcached。memcached是一款高效能的記憶體對像快取系統,可用來加速動態Web應用程式,減輕資料庫負 載。對操作碼 (OP code)的快取很有用,使得腳本不必為每個請求做重新編譯。

29、當操作字串並需要檢驗其長度是否滿足某種要求時,你想當然地會使用strlen()函數。此函數執行起來相當快,因為它不做任何計算,只返 回在zval 結構(C的內建資料結構,用於存儲PHP變量)中存儲的已知字串長度。但是,由於strlen()是函數,多多少少會有些慢,因為函數呼叫會經由諸多步 驟,如字母小寫化(譯註:指函數名小寫化,PHP不區分函數名大小寫)、哈希尋找,會跟隨被呼叫的函數一起執行。在某些情況下,你可以使用isset() 技巧加速執行你的代碼。

(舉例如下)

if (strlen($foo) < 5) { echo 「Foo is too short」$$ }
(與下面的技巧做比較)
if (!isset($foo{5})) { echo 「Foo is too short」$$ }

呼叫isset()恰巧比strlen()快,因為與後者不同的是,isset()作為一種語系結構,意味著它的執行不需要函數尋找和字母小寫化。 也就是說,實際上在檢驗字串長度的頂層代碼中你沒有花太多開銷。

34、當執行變量$i的遞增或遞減時,$i++會比++$i慢一些。這種差異是PHP特有的,並不適用於其他語系,所以請不要修改你的C或Java 代碼並指望它們能立即變快,沒用的。++$i更快是因為它只需要3條指令(opcodes),$i++則需要4條指令。後置遞增實際上會產生一個臨時變 量,這個臨時變量隨後被遞增。而前置遞增直接在原值上遞增。這是最改善處理的一種,正如Zend的PHP改善器所作的那樣。牢記這個改善處理不失為一個好 主意,因為並不是所有的指令改善器都會做同樣的改善處理,並且存在大量沒有裝配指令改善器的際網路服務提供商(ISPs)和伺服器。

35、並不是事必面向對像(OOP),面向對像往往開銷很大,每個方法和對像呼叫都會消耗很多記憶體。

36、並非要用類實現所有的資料結構,陣列也很有用。

37、不要把方法細分得過多,仔細想想你真正打算重用的是哪些代碼?

38、當你需要時,你總能把代碼分解成方法。

39、盡量採用大量的PHP內建函