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網頁出現以下的錯誤:

Warning: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) failed:....
這是什麼錯誤?

回覆:
因為你沒有指定session檔的存放路徑.


  解決方法:

(1)在c硬碟建立文件夾tmp

(2)打開php.ini,找到session.save_path,修改為session.save_path= "c:/tmp"

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";
?>
---------------------------------------------------------

導航貓 Navicat for MySQL Enterprise Edition.v9.0.14 繁體中文版

導航貓 Navicat for MySQL Enterprise Edition.v9.0.14 繁體中文版

Navicat MySQL 是一套強大的 MySQL 資料庫伺服器管理及開發工具。
它可以用於在任何 3.21 或以上的 MySQL 版本,並支援最新版 MySQL 的大部份功能,
包括觸發器、預存程序、函式、事件、檢視、管理使用者等等。
它不只適用於資深的專業開發人員,對於新手也相當容易上手。
透過它極具巧思的圖形化使用者介面 (GUI),Navicat MySQL 讓你可以快速且容易的以安全且簡單的方法建立、組織、存取及共享資訊。

attachments/201010/9246365856.png

軟體介紹:

最新的 MySQL 版本支援

Navicat MySQL - 一個強大的 MySQL Database Server 管理及開發工具。
最主要支援的功能:
    * 支援 MySQL 3.21 或以上的版本
    * 支援萬國碼 (Unicode) / 字元集
    * 支援 MySQL 的事件、檢視及預存程式的建立
    * 支援觸發器
    * 支援外鍵

額外的連線選項


    * 支援 SSH 通道
      透過 Navicat 的 SSH 通道建立一個安全的 SSH 階段連線。兩個主機間可享用一個牢固的驗證及安全加密通訊。
    * 支援 HTTP 通道
      當你的 ISP 不允許直接連線到他們的 MySQL server 但允許建立 HTTP 連線時,Navicat 可以提供你使用 HTTP 穿隧 (Tunneling) 功能。HTTP 穿隧 (Tunneling) 使用與網站伺服器相同協定 (http://) 及相同連接埠 (port 80) 以連接到一個 MySQL server。
    * 提供 MySQL server 自動重新連線
      使用這個選項「愈時重新連線」,它會透過偵測 (ping) 來保持與這個伺服器的連線。
    * 透過 Navicat MySQL 匯出登錄資料 (.reg)
      當 Navicat 從一部電腦遷移到另一部新的機器時,你可以簡單的傳輸你的連線設定。只需要簡單的透過 Navicat 匯出登錄資料並在這部新的機器回存即可。

即時的資料庫導覽

    * 一旦連線即立即開啟資料庫為顯示狀態
      連線後馬上開啟你偏好的資料庫。更有效的簡省你的時間及工作!

無所不包的 MySQL 物件管理

    * 建立、編輯及刪除資料表的欄位、索引、外鍵及觸發器
      使用資料表設計 - 一個基本用來操作資料表的 Navicat MySQL 工具,你可以建立、編輯及刪除資料表的欄位、索引、外鍵及其他。
    * 傾印物件定義成為一個 sql 檔案
      簡單的將物件定義及資料傾印成 sql 檔案來備份。
    * 列印資料庫 / 資料表結構
      列印資料庫 / 資料表定義以呈現它們在 Navicat 中的結構。一眼即可完整瞭解各別物件的結構。

多樣化的匯入及匯出能力


    * 從 ODBC 匯入資料
      你可以在設定好一個資料來源連線後從 ODBC 匯入資料。如果連線成功,所有可用的資料表會包含在內。只需要簡單的選擇你要匯入的資料表或使用加入查詢按鈕指定一個查詢。
    * 從超過 18 種常見格式匯入資料,包括 MS Access, MS Excel, XML, PDF 及 TXT
      匯入精靈可以讓你從各種格式匯入資料到一個資料表。除此之外,你可以儲存你的設定成一個匯入設定檔供設定排程使用。
    * 匯出資料到 MS Access, MS Excel, MS Word, HTML, PDF, TXT, CSV, DBF, XML, 等
      同樣地,匯出精靈可以讓你匯出資料到各種格式。儲存你的設定成一個匯出設定檔供設定排程使用。
    * 匯出資料並建立記錄成 sql 檔案的 INSERT 陳述式
      在資料傳輸期間,你可以選擇以記錄選項匯出資料成 sql 檔案,如完整的 insert 陳述式 / 協議 insert 陳述式等。

強大的資料操作工具

    * 表單檢視
      以表單檢視操作目前的記錄。享受更簡潔顯示的欄位名稱及它的值,能更聚焦在目前的記錄上。
    * 支援外鍵資料選擇
      使用這個圖形介面工具 - 外鍵資料選擇,你可以從參考的資料表中找到外鍵的值。停止並切換檢視到一個主資料表以尋找可用的外鍵值!
    * 資料及結構同步
      Navicat for MySQL 可以讓你從一個 MySQL 資料庫以詳細分析程式傳輸資料到另一個。同樣的,你可以比對並修改這個資料表結構。在資料及結構同步上,目標資料庫可以與來源資料庫相同,也可以是其他的 MySQL server。
    * 支援本地 / 遠端 MySQL 資料庫資料傳輸
      從一個 MySQL 資料庫傳輸資料表/檢視/預存程式/事件到另一個 MySQL 資料庫,或成為一個純文字檔案。
    * 支援備份及回存 MySQL 資料庫
      經常性的備份資料庫對使用者是相當重要的。使用 Navicat 備份/回存你的 MySQL 所有資料表及記錄、檢視、預存程式及事件。你也可以在資料庫間排程備份。
    * 建立排程備份、匯入 / 匯出、資料傳輸、儲存查詢及資料同步
      建立一個設定的排程批次工作以執行一或多個定期的、指定開始及結束的日期及時間。批次工作可以建立的對象包括查詢、報表列印、備份、資料傳輸、資料同步、匯入及匯出。
    * 傳送排定工作的電子郵件通知
      產生通知電子郵件給你指定的收件人,讓他們取得最新排程的資訊。透過你在排程中回傳結果的電子郵件帳號來直接讀取。

強大的安全性管理

    * 視覺化的使用者管理
      Navicat 提供一個視覺化的工具來管理使用者。你可以輕鬆的加入、複製、刪除使用者,並編輯通用使用者權限、從選取的資料庫、資料表 / 檢視、欄位及預存程式 / 函式取得權限。

具設計巧思的視覺化產生器 / 編輯器

    * 視覺化查詢 / 檢視產生器
      視覺化查詢 / 檢視產生器 - 分為兩個部份:上面的圖形檢視,及底下的語法檢視,讓你可以視覺化的建立並編輯查詢 / 檢視而不需具備 SQL 知識。
    * 查詢編輯器
      它可以讓你建立並編輯一個查詢的 SQL 文字、準備及執行選取的查詢。
    * 支援參數查詢
      設定查詢參數在每次執行時加入變數值到一個查詢。
    * 查詢、檢視及事件自動完碼
      在查詢編輯器、檢視及事件中使用最新自動完碼功能,體驗一個快速建構 SQL 條件式的方法。當你要選擇可用的資料庫物件內容或 SQL 關鍵字,你所要做的只需從下拉式清單中選取。

容易使用的報表產生器(僅包含於 Enterprise 版本)

    * 以視覺化產生器建立報表
      使用我們反善介面的圖形化報表產生器建立不同類型的報表。設計包括發票、統計、郵遞標籤及其他等。
    * 匯出報表成為多種格式,PDF, Excel, HTML 等
      享受更多的報表輸出格式 - text, pdf, Lotus, Excel, Graphic, Html 及其他。請在 Navicat Enterprise 版本中瞭解報表產生器的這些功能。
    * 與其他使用報表檢視器者檢視及共享報表
      Navicat 報表檢視器可以讓你導覽由 Navicat MySQL 報表產生器產生的報表。與它最接近的事就是你可以與未安裝 Navicat 但有安裝 Navicat 報表檢視器的人共享報表。

更多的強大功能

    * 虛擬群組
      一個在 Navicat 中更好的組織物件的方法。你可以使用這個虛擬群組功能將物件組織成群組。虛擬群組可以套用在連線、資料表、檢視預存程式、事件、查詢、報表、備份及排程中。
    * 伺服器監控
      在伺服器監控視窗中勾選你要監控的伺服器的核取鈕。可以點選程式清單、變數或狀態頁籤以顯示及/或修改 MySQL servers 的內容。
    * SQL 中控台
      要使用命令列介面,你可以在 Navicat 中開啟 SQL 中控台。它提供你可以與文字基礎的畫面互動從資料庫輸入查詢及輸出結果。
    * 停駐
      你可以自訂你的視窗行為樣式為停駐視窗或浮動視窗。選擇停駐已開啟的視窗到主視窗或停駐視窗,或繼承上個停駐樣式。

導航貓 Navicat for MySQL Enterprise Edition.v9.0.14 繁體中文版官方下載網址:

http://download.navicat.com/download/navicat9_premium_ct.exe


『將軍』你是武藝高強?膽識過人?精通騎射?您生錯時代啦!
『戰馬』你是汗血寶馬?善奔能越?躍馬中原?此戰場沒有你的舞台!
動態的架站程式時代,要自訂PHP程式頁面有那麼難嗎?
MySQL『資料庫』與『資料表』,用PHP程式有那麼難呼叫嗎?
不用死背『PHP程式』與『MySQL資料庫』語法也能設計嗎?
這是自動化軟體程式的年代(用PHPMaker設計在彈指之間完成)
這不是:神話!程式軟體模組取代了這一切複雜的工程
死背『PHP程式』與『MySQL資料庫』語法,是為學校考試用的!
因為,有些人的技術已經離這個網站的實用性非常遙遠!
------------------------------------------------------------
大家都知道網路創業的好處:
1.初期建置網站金額較低,甚至零成本。
2.初期人事、水電成本較低。
3.網路店面比較沒有曝光的地區限制(除非產品、物流、語言的限制)。
4.消費者可以在任何時間瀏覽與選購商品(24小時營業)。
5.初期可採用眾多的網路平台,免費宣傳、曝光方式,之後再採用付費的方式,提高效益。
6.即使沒有成功,成本損失也較低。


想要網路創業自動賺錢,你應該具備那些專業技能呢?

那座而言不如起而行,如何開始您的第一步行動呢?

1.先評估自己會什麼網路技能?不會那些網路技能?
將自己的優勢寫下來,也將自己需要進修的專業技能逐一記錄下來

2.找到您需要的課程(利用下班時間,努力精研)
最好是影片課程,不要只是一般書店的書籍或網路電子書
(因為圖片與文字根本學習效率不好,無法有效迅速學會,學習中有問題要問誰?)
實際網路經營時發生網站語法錯誤或網站被駭客入侵!
那您最好有個專業『會程式語言與架設主機』的老師可以免費技術諮詢
不然,一發生問題,您的網路事業就停擺了,網站一停就無收入!
(就好像上班放無薪假一樣....悽慘!)。
有甚至網站資料全毀,資料庫也出問題,你要在第一時間內就能快速修護!
這一點你可要小心!網路創業絕對要有:技術諮詢!
迅速回覆的專業老師(或專業技術顧問)。
不然,就像大海裡頭的孤鳥,叫天天不應,叫地地也不靈
(自己閉門造車摸索是網路創業者最悲慘的失敗原因!)。


attachments/201208/5398530876.jpg

2.你的網站要自己架設!
(請人設計網站費用貴,小則三四萬高者也有十幾萬元的,往後網站維護也不方便!)

這方面你可以學習:
1.網站架設與網頁設計教學
詳細介紹:
http://por.tw/Website_Design/E_learning/index.php
長期技術支援網站:
http://por.tw/Website_Design

2.購物網站架站教學
詳細介紹:
http://por.tw/sale/cmmerse-4-all/index.php
長期技術支援網站:
http://por.tw/sale

3.部落格架站、行銷、賺錢術教學
詳細介紹:
http://por.tw/blog/E_learning/index.php
長期技術支援網站:
http://por.tw/blog

4.PHP+MySQL+PHPMaker+Dreamweaver整合教學
(PHPMaker運用設計網站教學)

詳細介紹:
http://por.tw/php/new-E_learning/index.php
長期技術支援網站:
http://por.tw/php

5.Flash-動畫製作教學
詳細介紹:
http://por.tw/flash/new-E_learning/index.php
長期技術支援網站:
http://por.tw/flash
-------------------------------------------------------------------------
3.網站圖片非常重要,你如果不會拍照與修圖,那您就要學習:
商業商品攝影教學
詳細介紹:
http://por.tw/design/photographing_Course/index.php
長期技術支援網站:
http://por.tw/design
-------------------------------------------------------------------------
4.影片能讓您的網站更出色,如果您不會錄影
或影片剪接、編輯、上字幕、做特效,那您就要學習:

【錄影影片製作】技術教學
詳細介紹:
http://por.tw/photo-video/video_Course/index.php
長期技術支援網站:
http://por.tw/photo-video
-------------------------------------------------------------------------
5.有了網站,接下來就是『如何將網站經營的有聲有色?』
這就需要專業的網路行銷技術:
A.搜尋引擎排名SEO教學
詳細介紹:
http://por.tw/seo/new-seo/index.php
長期技術支援網站:
http://por.tw/seo

B.EDM電子報製作教學
詳細介紹:
http://por.tw/edm/edm_Marketing/index.php
長期技術支援網站:
http://por.tw/edm

C.電子書製作賺錢密技教學
詳細介紹:
http://por.tw/ebook/new-ebook/index.php
長期技術支援網站:
http://por.tw/ebook

D.【訂單王】超級網路秒殺成交法-A-page 【一頁定江山】行銷賺錢術
詳細介紹:
http://por.tw/page/new-E_learning/index.php
長期技術支援網站:
http://por.tw/page
-------------------------------------------------------------------------
6.如果您想要學習『專案方式』的專業技能,您可以學習:
A.「網路創業賺錢_如何從網路創業賺錢賺到第一個100萬!」課程
詳細介紹:
http://por.tw/soho/new-E_learning/index.php
長期技術支援網站:
http://por.tw/soho

B.藉助『程式』邁向網路自動賺錢術(Auto Rich -自富課程)
詳細介紹:
http://por.tw/Rich/new-E_learning/index.php
長期技術支援網站:
http://por.tw/Rich

C.【正印家族】授權營運專案‧自動印鈔機賺錢術
詳細介紹:
http://por.tw/money/new-E_learning/index.php
長期技術支援網站:
http://por.tw/money
-------------------------------------------------------------------------
7.您的網站可以用兩種方式經營
1.是租用虛擬主機
(創業初期,如果尚無長遠規劃可租虛擬主機空間架設網站)

2.是自己擁有獨立主機!
如果您有此長遠的規劃,那您可以申購此服務:
替你架設Linux主機伺服器+影片教你維護(還有遠端技術協助)讓你自己當家作主!
http://por.tw/linux/new-E_learning/index.php
長期技術支援網站:
http://por.tw/linux
-------------------------------------------------------------------------
8.此外,如果你對國外軟體感覺不好用,那您可以學習:
軟體中文化實戰教學影片
軟體中文化實戰教學影片教學詳細介紹:
http://por.tw/f2blog/new-E_learning/index.php
長期技術支援網站:
http://por.tw/f2blog

不論是英文、日文、大陸簡體或其他軟體,能透過軟體中文化技術變成:繁體中文版
那在網路事業的經營上,所有要用到的軟體,就能通通變成:繁體中文版啦!
那是業經營起來當然是:得心應手!手到擒來!

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

你有沒有想要將Mysql資料庫中字符替換?

如何使用SQL語法,將MySQL資料表中的替換字串?

你有這樣的苦惱問題嗎?
當以SQL為資料庫的網站內有大量的文字要修改替換時,最陽春的方法就是一筆一筆的修改(那不是要出人命?)
可是如果需修改的數量龐大,那麼可能就會修改到暈倒了(至少會累倒進醫院吊點滴...)
最快的方法就是利用SQL語法替換字串:


你可以用以下的方法(快速的把字串刪除或換掉!)


phpMyAdmin 替換資料字串(使用phpMyAdmin進入資料庫執行SQL語法)
基本的語法範例如下:
UPDATE `資料表名稱` SET `資料表欄位` = REPLACE(`資料表欄位`,'要替換的文字','替換後的文字') WHERE `資料表欄位` LIKE '%要替換的文字%'

例如:要把logContent欄位中的『</div>』字串刪除!
UPDATE `f2cont_logs` SET `logContent` = REPLACE(`logContent`,'</div>','') WHERE `logContent` LIKE '%</div>%'
--------------------------------------------------------

又例如:要將網址「http://visdacom.com」換成「http://por.tw」!

 UPDATE `f2cont_logs` SET `logContent` = REPLACE(`logContent`,'http://visdacom.com','http://por.tw') WHERE `logContent` LIKE '%http://visdacom.com%'
--------------------------------------------------------
注意:要練習之前請先備份好資料庫不然把資料庫弄壞啦(又沒有備份檔案可以還原時)
我看你會笑不出來,懊惱不已捶胸頓足!

網站經營一陣子後,內容越來越多(MySql資料庫就會變成很大)
有些架站程式後台可以備份與還原(會自動分割)
所以網站的備份與還原當然沒有問題!
但是萬一你的網站或架站程式並沒有此功能時
您使用phpMyAdmin將MySQL資料庫匯出時當然沒有問題
但是當你要還原(匯入)時,可能就匯出現:MySql檔案過大無法匯入的窘境!
那該怎麼辦呢?


使用phpmyadmin匯出與匯入方式更換MySql Server時
若在匯入時遇到"你正嘗試上載大容量檔案,請查看此文件如何略過此限制"的訊息.這是因為匯入的檔超過限制。

-----------------------------------------------------------
總教頭教你解決的辦法如下:

下載BigDump這個軟體,下載網址:

http://www.ozerov.de/bigdump.zip

官方網址:http://www.ozerov.de/bigdump/

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

接下來自動將SQL檔案分割上傳:

1. 下載 BigDump
2. 在轉檔Server的Web根目錄下建立暫存目錄(例如:temp),解壓縮bigdump.php與將要匯入的sql檔放於該暫存目錄下
3. 修改bigdump.php檔案

$db_server = ""; //server位址,一般為 "localhost"
$db_name = "AAA"; //MySql資料庫名稱
$db_username = "BBB"; //MySql帳號
$db_password = "CCC"; //MySql密碼

4.匯入mysql檔案:  http://你的網站網址/temp(暫存檔目錄)/bigdump.php
-----------------------------------------------------------
若使用BigDump 後仍然發生 max_allowed_packet 問題

解決方法:

vi /etc/my.ini
在[mysqld]項下增加如下敘述
max_allowed_packet=64M

重新啟動 MySQL 即可大功告成!
-----------------------------------------------------------
標籤: mysql phpMyAdmin

[PHP] include_once 與 require_once(包含其它的檔案進來)

[PHP] include_once 與 require_once(包含其它的檔案進來)

include_once 與 require_once都是PHP的函式,主要是要包含其它的檔案進來,而且萬一該檔案被包含過了,則不會重新再包含一次。

而基於PHP不可能開發同一個函式的情況下,去試了一下他的不同之處,在於include_once萬一遇到錯誤,則會持續執行。
但require_once則會停止執行,並產生Fatal Errors。


以程式碼說明如下:

檔名:test.php


<?php
 require_once("a.php");
 require_once("c.php");
 echo dirname(__FILE__)." in test.php ";
?>


檔名:a.php

<?php
 echo dirname(__FILE__)." in a.php"."</br>";
 require_once("b.php");
?>


檔名:b.php

<?php
 echo dirname(__FILE__)." in b.php"."</br>";
?>


則會出現下列結果:
C:AppServwwwPTS in a test.php
C:AppServwwwPTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPTS est.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'c.php' (include_path='.;C:php5pear') in C:AppServwwwPTS est.php on line 3
但若是改成include_once,則會變成
C:AppServwwwPTS in a test.php
C:AppServwwwPTS in b test.php

Warning: require_once(c.php) [function.require-once]: failed to open stream: No such file or directory in C:AppServwwwPTS est.php on line 3

Warning: include_once() [function.include]: Failed opening 'c.php' for inclusion (include_path='.;C:php5pear') in C:AppServwwwPTS est.php on line 3
C:AppServwwwPTS in test.php
由此應該可以很輕易地看出兩者的不同了!

PHP程式設計問題諮詢:
要怎麼在函數裏取得函數外的變數值?


---------------------------------------------------------
PHP程式設計問題回覆:
要在函數裏取得函數外的變數值,請看以下的範例:


<?PHP
$a="PHP";
foo();
Function foo()
{
global $a;//刪除這裏看看是什麼結果
Echo "$a";
}
?>
entities(nl2br($str));
?>
---------------------------------------------------------

使用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程式教學問與答)

問題:我在一網頁向另一網頁POST資料name,為什麼輸出$name時卻得不到任何值?

技術回覆:在PHP4.2以後的版本中register_global預設為off

  若想取得從另一頁面送出的變數:

方法一:在PHP.ini中找到register_global,並把它設定為on.

方法二:在接收網頁最前面放上這個extract($_POST);extract($_GET);(注意extract($_SESSION)前必須要有Session_Start()).

方法三:一個一個讀取變數$a=$_GET["a"];$b=$_POST["b"]等,這種方法雖然麻煩,但比較安全.

  2:除錯你的程式

在運行時必須知道某個變數為何值。我是這樣做的,建立一檔案debug.php,其內容如下:

<?PHP
Ob_Start();
Session_Start();
Echo "<pre>";

Echo "本頁得到的_GET變數有:";
Print_R($_GET);

Echo "本頁得到的_POST變數有:";
Print_R($_POST);

Echo "本頁得到的_COOKIE變數有:";

Print_R($_COOKIE);

Echo "本頁得到的_SESSION變數有:";
Print_R($_SESSION);
Echo "</pre>";
?>

然後在php.ini中設定:include_path = "c:/php",並將debug.php放在此檔夾,以後就可以在每個網頁裏包括此檔,檢視得到的變數名和值.

  3:如何使用session

凡是與session有關的,之前必須呼叫函數session_start();

為session付值很簡單,如:

<?php
Session_start();
$Name = "這是一個Session例子";
Session_Register("Name");//注意,不要寫成:Session_Register("$Name");
Echo $_SESSION["Name"];
//之後$_SESSION["Name"]為"這是一個Session例子"
?>

在php4.2之後,可以為session直接付值:

<?PHP
Session_Start();
$_SESSION["name"]="value";
?>

取消session可以這樣:

<?php
session_start();
session_unset();
session_destroy();
?>
取消某個session變數在php4.2以上還有BUG.

注意:

1:在呼叫Session_Start()之前不能有任何輸出.例如下面是錯誤的.
==========================================
1行
2行 <?PHP
3行 Session_Start();//之前在第一行已經有輸出
4行 .....
5行 ?>
==========================================


提示1:

凡是出現"........headers already sent..........",就是Session_Start()之前嚮流覽器輸出資訊.

去掉輸出就標準,(COOKIE也會出現這種錯誤,錯誤原因一樣)

提示2:


如果你的Session_Start()放在迴圈語句裏,並且很難確定之前哪裡向流覽器輸出資訊,可以用下面這種方法:

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