PHP+MySQL+Dreamweaver整合教學(PHPMaker運用設計網站教學):快速設計網站與網頁
總教頭特別企畫【專業整合課程】比傳統的學習的還要快速與實用!


感謝您造訪 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地。 你可進入教學詳細內容介紹頁面,詳細瞭解PHP程式設計+MySQL資料庫(PHPMaker運用設計網站教學)及相關技術維護影片教學(完整配套措施),馬上可以設計架站程式與PHP網頁,快速建立MySQL資料庫、自動生成PHP網頁。可對資料庫進行瀏覽、修改、查詢、加入和刪除(整合成我們需要的網站)。

要在網路上經營網站賺大錢,不能只會下載現有的程式來架站(自己設計才能完全符合專業的特殊需求),你不用死背PHP語法,更可以完全不用花錢用購買資料庫(PHPMySQL完全免費!)你可以透過技術學習,讓PHP程式網頁+網路資料庫+Dreamweaver整合教學→讓你快速成為:【動態網站程式設計專家→你能因此賺大錢】!

 PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學):

http://por.tw/php/new-E_learning/index.php


PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用教學)密訓基地  總教頭  敬上



瀏覽模式: 普通 | 列表

問題:
請問為什麼我向另一網頁傳送變數時,只得到前半部分,以空格開頭的則全部丟失?


<?php
$Var="hello php";//修改為$Var="   hello php";試試得到什麼結果
$post= "receive.php?Name=".$Var;
header("location:$post");
?>

receive.php的內容:


<?PHP
Echo "<pre>";
Echo  $_GET["Name"];
Echo "</pre>";
?>


回覆:
正確的方法是:


<?php
$Var="hello php";
$post= "receive.php?Name=".urlencode($Var);
header("location:$post");
?>

在接收頁面你不需要使用Urldecode(),變數會自動編碼.

如何用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程式的五個小技巧

使用php程式的五個小技巧
 
php程式的一些小技巧,這些比較基礎,總結一下(
如果你是老鳥那就當成複習吧)。

1. str_replace

str_replace是非常常常常常用的php函數,用於字串置換,經常看到某些php新人為了置換一批字串,寫了好多行str_replace,實在是慘不忍睹。

比如這個例子:

$str = '某人的棲息地 --- www.abc.net';

$str = str_replace('某人', '壞人', $str);

$str = str_replace('的', 'di', $str);

$str = str_replace('棲息地', '豬窩窩', $str);

$str = str_replace('www.abc.net', 'abc.net', $str);

以上,置換了4次字串,實際只要換個寫法,一行就搞定了:

$str = '某人的棲息地 --- www.abc.net';

$str = str_replace(array('某人', '的', '棲息地', 'www.abc.net'), array('壞人', 'di', '豬窩窩', 'abc.net'), $str);

 

2. array

經常看到有人拿陣列這樣寫:

echo $arr[some_key];

上面這行代碼能跑,看上去也沒什麼大問題,但是如果你把php.ini的error notice開啟的話,會收到一大批error。
php解析器首先是拿「some_key」當作一個常量來解釋的,但如果沒有定義some_key這樣一個常量,解析器還是很寬容的把它當作了一個字串來看待。
因此新人同學們最好寫完整一點:

echo $arr['some_key'];

這樣就沒有問題了,如果你要把它放在雙引號中連用,也不能省掉引號,可以這樣寫:

echo "這是混在雙引號中的字串{$arr['some_key']}";

 

3. 類型戲法

類型戲法相當好用,比如有一個表單送出過來的變量,標準情況下它應該是整型的,有時候偷懶省去校驗的寫法可以是這樣的:

$intVar = (int)$_POST['post_var'];

再比如陣列,有時候寫鍵值要打引號是不是很不爽啊,我們可以把它轉換成object,比如:

$arr = array('name' => 'volcano', 'sex' => 'male');

$arr = (object)$arr;

echo $arr->name;

echo $arr->sex;

是不是很省事?

 

4. lambda函數

lamda函數和array_*系列函數使用有奇效,拿php手冊上的一個例子來說:

<?php

$av = array("the ", "a ", "that ", "this ");

array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));

print_r($av);

?>

至少省了一個for迴圈

 

5. 嵌套迴圈顯示表格的單元格

嵌套迴圈顯示表格的單元格,這是一個很老的話題哦,往往會要在某個單元格後邊加個條件判斷什麼的,考慮是不是要輸出tr抑或是td標籤。

俺這裡介紹一個辦法,利用array_chunk函數能夠比較工整的輸出html,見下例,這個例子要輸出一個4行6列的表格:

<?php

$arr = range(1, 24); //這個會生成一個陣列array(1,2,3,4....24)

$arr = array_chunk($arr, 6);

// output table

?>

<table> <?php foreach($arr as $row): ?> <tr> <?php foreach($row as $col):?> <td><?php echo $col?></td> <?php endforeach;?> </tr> <?php endforeach;?> </table>
PHP程式設計問題諮詢:
要如何使Html/PHP格式的字串不被解釋,而是照原樣顯示?


---------------------------------------------------------
PHP程式設計問題回覆:
使Html/PHP格式的字串不被解釋,你可以這樣處理:

<?PHP
$str="<h1>PHP</h1>";
Echo "被解釋過的: ".$str."<br>經過處理的:";
Echo  htmlentities(nl2br($str));
?>
---------------------------------------------------------
PHP程式設計問題諮詢:
我怎麼知道系統預設支援什麼函數?


---------------------------------------------------------
PHP程式設計問題回覆:
要怎麼知道系統預設支援什麼函數,請看以下的範例:


<?php
$arr = get_defined_functions();
Function php() {
}
echo  "<pre>";
Echo  "這裏顯示系統所支援的所有函數,和自定以函數php ";
print_r($arr);
echo  "</pre>";
?>

---------------------------------------------------------
PHP程式設計問題諮詢:
為什麼我升級PHP後,原來的程式出現滿螢幕的 Notice: Undefined variable:


---------------------------------------------------------
PHP程式設計問題回覆:
 Notice: Undefined variable:
這是警告的意思,由於變數未定義引起的.
打開php.ini,找到最下面的error_reporting,修改為error_reporting = E_ALL & ~E_NOTICE

對於Parse error錯誤
error_reporting(0)無法關閉.
如果你想關閉任何錯誤提示,打開php.ini,找到display_errors,設置為display_errors = Off.以後任何錯誤都不會提示.

PHP網站如何防止CC攻擊呢?

PHP網站如何防止CC攻擊呢?

所謂的CC攻擊就是對方利用程式或一些代理對您的網站進行不間斷的訪問,造成您的網站處理不了而處於當機狀態。
這種時候您的統計系統(可能是量子、百度等)當然也是統計不到的。
不過我們可以借助於一些防攻擊的軟體來實現,不過效果有時並不明顯。
下面我提供一段PHP的代碼,可以起到一定的防CC效果。

主要功能:在3秒內連續重整頁面5次以上將指向本機 http://127.0.0.1

 attachments/201112/2027852462.png

使用PHP執行linux系統指令

如何使用PHP執行linux系統指令呢?
相信這是很多學員想知道答案!

首先先要給大家介紹PHP執行linux系統指令的幾個基本函數。

system函數

說明:執行外部程式並顯示輸出資料。
語法:string system(string command, int [return_var]);
返回值: 字串

詳細介紹:
本函數就像是 C 語中的函數 system(),用來執行指令,並輸出結果。若是 return_var 參數存在,則執行 command 之後的狀態會填入 return_var 中。同樣值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。若 PHP 以模組式的執行,本函數會在每一行輸出後自動更新 Web 伺服器的輸出緩衝暫存區。若需要完整的返回字串,且不想經由不必要的其它中間的輸出介面,可以使用 PassThru()。

案例代碼:
< ?php
$last_line = system('ls', $retval);
echo 'Last line of the output: ' . $last_line;
echo '<hr />Return value: ' . $retval;
?>

exec函數
說明:執行外部程式。
語法:string exec(string command, string [array], int [return_var]);
返回值: 字串

詳細介紹:
本函數執行輸入 command 的外部程式或外部指令。
它的返回字串只是外部程式執行後返回的最後一行;若需要完整的返回字串,可以使用 PassThru() 這個函數。

要是參數 array 存在,command 會將 array 加到參數中執行,若不欲 array 被處理,可以在執行 exec() 之前呼叫 unset()。
若是 return_var 跟 array 二個參數都存在,則執行 command 之後的狀態會填入 return_var 中。

值得注意的是若需要處理使用者輸入的資料,而又要防止使用者耍花招破解系統,則可以使用 EscapeShellCmd()。

案例代碼:
<?php
echo exec('whoami');
?>  

popen函數
說明:開啟檔案。
語法:int popen(string command, string mode);
返回值: 整數

詳細介紹:
本函數執行指令開檔,而該檔案是用管道模式處理的檔案。
用本函數開啟的檔案只能是單向的 (只能讀或只能寫),而且一定要用 pclose() 關閉。
在檔案操作上可使用 fgets()、fgetss() 與 fputs()。若是開檔發生錯誤,返回 false 值。

案例代碼:
<?
$fp = popen( "/bin/ls", "r" );
?>  
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";
?>
---------------------------------------------------------

最短的PHP微網誌程式代碼

您知道最短的PHP微網誌程式代碼如何編寫嗎?

最短的PHP微網誌程式。
基本需求是:
1.無亂碼(最好UTF-8)。
2.有輸入框可以發佈新訊息。
3.送出後馬上可以看到新發的內容。
4.必須使用POST模式送出。
5.訊息後面要有時間標示。
6.不能發佈任何HTML標籤。


<?php
header("content-type:text/html; charset=utf-8");
$a=@file_get_contents(l);
($p=$_POST[s])&&file_put_contents(l,$a='<hr>'.htmlspecialchars($p).date(' Y-m-d H:i').$a);
echo '<form method=post><input name=s></form>'.$a;
?>

運行效果如圖:

attachments/201205/1553844664.gif

註釋一下:

<?php
header("content-type:text/html; charset=utf-8"); //傳送到utf-8聲明
/*
* 從名叫l的檔案裡面讀取資料。
* php裡面的常量如果沒有先聲明,那麼預設值是等於常量本身的那個字串。
* 也就是說沒有聲明過的l=="l" , ABCD == "ABCD"
*/
$a=@file_get_contents(l);
/*
* a && b; 貌似是php特有的語法結構。 大概意思是 先執行a,
* 然後判斷a是否為true,如果是,那麼繼續執行b
*
* ($p=$_POST[s]) 是先把$_POST[s]的值賦給$p,
* 然後括號的值為$p轉換為布爾型。也就是說,只要$p不是空字串,
* 或是false,或是0,或是null。就會繼續執行後面的語句
*
* 後面操作是把剛剛讀出來的$a的前面加上新的資料,然後寫入l檔案
*/
($p=$_POST[s])&&file_put_contents(l,$a='<hr>'.htmlspecialchars($p).date(' Y-m-d H:i').$a);
/*
* 顯示html語句,用於構造一個可以post送出的輸入框,沒有送出按鈕,直接按換行送出。
* 由於頁面是用utf-8編碼,所以送出的資料也是utf-8編碼
*/
echo '<form method=post><input name=s></form>'.$a;//#註釋2
?>

本PHP程式設計+MySQL資料庫+Dreamweaver整合教學(PHPMaker運用設計網站教學)密訓基地立志於收集各類PHP程式設計、MySQL資料庫及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!