2020年如何正確使用php,2020年應注意什麼

本文目錄一覽:

PHP是什麼類型的文件,該如何使用?

PHP,即「PHP: Hypertext Preprocessor」,是一種廣泛用於 Open Source(開放源代碼)的尤其適合 Web 開發並可以嵌入 HTML 的多用途腳本語言。它的語法接近 C,Java 和 Perl,而且容易學習。該語言的主要目標是讓 Web 開發人員快速的書寫動態生成的網頁.

PHP 代碼是運行在服務端的.

它的使用需要你的伺服器安裝php服務.

PHP 能做什麼?

PHP 能做任何事。PHP 主要是用於服務端的腳本程序,因此您可以用 PHP 來完成任何其它的 CGI 程序能夠完成的工作,例如收集表單數據,生成動態網頁,或者發送/接收 Cookies。但 PHP 的功能遠不局限於此。

PHP 腳本主要用於以下三個領域。

服務端腳本。這是 PHP 最傳統,也是最主要的目標領域。開展這項工作您需要具備以下三點:PHP 解析器(CGI 或者伺服器模塊)、WEB 伺服器和 WEB 瀏覽器。您需要在運行 WEB 伺服器時,安裝並配置 PHP,然後,可以用 WEB 瀏覽器來訪問 PHP 程序的輸出,即瀏覽服務端的 PHP 頁面。請查閱「安裝」一章以獲取更多信息。

命令行腳本。您可以編寫一段 PHP 腳本,並且不需要任何伺服器或者瀏覽器來運行它。通過這種方式,您僅僅只需要 PHP 解析器來執行。這種用法對於依賴 cron(Unix 或者 Linux 環境)或者 Task Scheduler(Windows 環境)的日常運行的腳本來說是理想的選擇。這些腳本也可以用來處理簡單的文本。請參閱「PHP 的命令行模式」以獲取更多信息。

編寫客戶端的 GUI 應用程序。對於基於窗口式的應用程序來說,PHP 或許不是一種最好的語言,但是如果您非常精通 PHP,並且希望在您的客戶端應用程序中使用 PHP 的一些高級特性,您可以利用 PHP-GTK 來編寫這些程序。用這種方法,您還可以編寫跨平台的應用程序。PHP-GTK 是 PHP 的一個擴展,在通常發布的 PHP 包中並不包含它。如果您對 PHP-GTK 感興趣,請訪問其網站以獲取更多信息。

PHP 能夠用在所有的主流操作系統上,包括 Linux、Unix 的各種變種(包括 HP-UX、Solaris 和 OpenBSD)、Microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已經支持了大多數的 WEB 伺服器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal Web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。對於大多數的伺服器,PHP 提供了一個模塊;還有一些 PHP 支持 CGI 標準,使得 PHP 能夠作為 CGI 處理器來工作。

綜上所述,使用 PHP,您可以自由地選擇操作系統和 WEB 伺服器。同時,您還可以在開發時選擇使用面對過程和面對對象,或者兩者混和的方式來開發。儘管 PHP 目前的版本還沒有支持 OOP 所有的標準,但很多代碼倉庫和大型的應用程序(包括 PEAR 庫)僅使用 OOP 代碼來開發。

使用 PHP,您並不局限於輸出 HTML。PHP 還能被用來動態輸出圖像、PDF 文件甚至 Flash 動畫(使用 libswf 和 Ming)。您還能夠非常簡便的輸出文本,例如 XHTML 以及任何其它形式的 XML 文件。PHP 能夠自動生成這些文件,在服務端開闢出一塊動態內容的緩存,可以直接把它們列印出來,或者將它們存儲到文件系統中。

PHP 最強大最顯著的特性之一,是它支持很大範圍的資料庫。您會發現利用 PHP 編寫資料庫支持的網頁簡單得難以置信。目前,PHP 支持如下資料庫:

Adabas D Ingres Oracle (OCI7 and OCI8)

dBase InterBase Ovrimos

Empress FrontBase PostgreSQL

FilePro (read-only) mSQL Solid

Hyperwave Direct MS-SQL Sybase

IBM DB2 MySQL Velocis

Informix ODBC Unix dbm

我們同時還有一個 DBX 擴展庫使得您可以自由的使用該擴展庫支持的任何資料庫。另外,PHP 還支持 ODBC,即 Open Database Connection Standard(開放資料庫連接標準),因此您可以連接任何其它支持該世界標準的資料庫。

PHP 還支持利用諸如 LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows 環境)等不計其數的協議的服務。您還可以開放原始網路埠,使得任何其它的協議能夠協同工作。PHP 支持和所有 WEB 開發語言之間的 WDDX 複雜數據交換。關於相互連接,PHP 已經支持了對 Java 對象的即時連接,並且可以將他們自由的用作 PHP 對象。您甚至可以用我們的 CORBA 擴展庫來訪問遠程對象。

PHP 具有極其有效的文本處理特性,支持從 POSIX 擴展或者 Perl 正則表達式到 XML 文檔解析。為了解析和訪問 XML 文檔,我們支持了 SAX 和 DOM 標準。您可以使用我們的 XSLT 擴展庫來轉換 XML 文檔。

如果您將 PHP 用於電子商務領域,您會發現其 Cybercash payment、CyberMUT、VeriSign Payflow Pro 以及 CCVS 函數對於您的在線交易程序來所是非常有用的。

PHP程序設計軟體如何使用?

可用任何文本編輯器,如記事本即可.常用的是editplus ultraEdit ,dreamweaver等

PHP程序是文本類型的.保存的時候擴展名保存為.php即可

運行PHP程序需要有WEB伺服器軟體,xp上可裝IIS或apache,然後下載個PHP包,配置伺服器讓它支持PHP即可

如何正確運用PHP Spreadsheet

其實在眾多方法中感覺Pear中的Spreadsheet_Excel_Writer很是好用。關於PHP Spreadsheet_Excel_Writer的安裝本文不予介紹。

以下為PHP Spreadsheet_Excel_Writer的引用的內容:

?php

//調用Writer.php

require_once 『Spreadsheet/Excel/Writer.php』;

//創建Workbook

$workbook = new Spreadsheet_Excel_Writer();

//定義導出Excel文件名

$workbook-send(』test.xls』);

//創建Worksheet

$worksheet = $workbook-addWorksheet(』My first worksheet』);

//設置字體大小

$format_column = $workbook-addformat(array(』Size』=9,』Bold』=1));

//數據寫入

//標題行(第一行)

$worksheet-write(0, 0, 『Name』, $format_column);

$worksheet-write(0, 1, 『Age』, $format_column);

//第一個人(第二行)

$worksheet-write(1, 0, 『John Smith』);

$worksheet-write(1, 1, 30);

//第二個人(第三行)

$worksheet-write(2, 0, 『Johann Schmidt』);

$worksheet-write(2, 1, 31);

//第三個人(第四行)

$worksheet-write(3, 0, 『Juan Herrera』);

$worksheet-write(3, 1, 32);

//關閉Workbook

$workbook-close();

?

以上代碼示例就是PHP Spreadsheet_Excel_Writer的具體使用方法。

php引用函數的使用方法

在技術學習的道路上,能掌握一些有用的技巧,對於初學者是非常有幫助的,下面是php引用函數的使用方法,希望大家會喜歡。

1.不要在你的應用程序中gzip輸出,讓apache來做

考慮使用ob_gzhandler?不,別這樣做。它沒有任何意義。PHP應該是來寫應用程序的。不要擔心PHP中有關如何優化在伺服器和瀏覽器之間傳輸的數據。

使用apache mod_gzip/mod_deflate通過.htaccess文件壓縮內容。

2.從php echo javascript代碼時使用json_encode

有些時候一些JavaScript代碼是從php動態生成的。

$images = array( ‘myself.png’ , ‘friends.png’ , ‘colleagues.png’);

$js_code = ”;foreach($images as $image)

{

$js_code .= “‘$image’ ,”;

}

$js_code = ‘var images = [‘ . $js_code . ‘]; ‘;echo $js_code;//Output is var images = [‘myself.png’ ,’friends.png’ ,’colleagues.png’ ,];

放聰明點。使用json_encode:

$images = array( ‘myself.png’ , ‘friends.png’ , ‘colleagues.png’);

$js_code = ‘var images = ‘ . json_encode($images);

echo $js_code;//Output is : var images = [“myself.png”,”friends.png”,”colleagues.png”]

這不是很整潔?

3.在寫入任何文件之前檢查目錄是否可寫

在寫入或保存任何文件之前,請務必要檢查該目錄是否是可寫的,如果不可寫的話,會閃爍錯誤消息。這將節省你大量的「調試」時間。當你工作於Linux時,許可權是必須要處理的,並且會有很多很多的許可權問題時,當目錄不可寫,文件無法讀取等的時候。

請確保你的應用程序儘可能智能化,並在最短的時間內報告最重要的信息。

$contents = “All the content”;

$file_path = “/var/www/project/content.txt”;

file_put_contents($file_path , $contents);

這完全正確。但有一些間接的問題。file_put_contents可能會因為一些原因而失敗:

父目錄不存在

目錄存在,但不可寫

鎖定文件用於寫入?

因此,在寫入文件之前最好能夠一切都弄明確。

$contents = “All the content”;

$dir = ‘/var/www/project’;

$file_path = $dir . “/content.txt”;if(is_writable($dir))

{

file_put_contents($file_path , $contents);

}else{    die(“Directory $dir is not writable, or does not exist. Please check”);

}

通過這樣做,你就能得到哪裡文件寫入失敗以及為什麼失敗的準確信息。

4.改變應用程序創建的文件的許可權

當在Linux環境下工作時,許可權處理會浪費你很多時間。因此,只要你的php應用程序創建了一些文件,那就應該修改它們的許可權以確保它們在外面「平易近人」。否則,例如,文件是由「php」用戶創建的,而你作為一個不同的用戶,系統就不會讓你訪問或打開文件,然後你必須努力獲得root許可權,更改文件許可權等等。

// Read and write for owner, read for everybody elsechmod(“/somedir/somefile”, 0644);// Everything for owner, read and execute for otherschmod(“/somedir/somefile”, 0755);

5.不要檢查提交按鈕值來檢查表單提交

if($_POST[‘submit’] == ‘Save’)

{    //Save the things}

以上代碼在大多數時候是正確的,除了應用程序使用多語言的情況。然後「Save」可以是很多不同的東西。那麼你該如何再做比較?所以不能依靠提交按鈕的值。相反,使用這個:

if( $_SERVER[‘REQUEST_METHOD’] == ‘POST’ and isset($_POST[‘submit’]) )

{    //Save the things}

現在你就可以擺脫提交按鈕的值了。

6.在函數中總是有相同值的地方使用靜態變數

//Delay for some timefunction delay(){

$sync_delay = get_option(‘sync_delay’);    echo “

Delaying for $sync_delay seconds…”;

sleep($sync_delay);    echo “Done

“;

}

相反,使用靜態變數:

//Delay for some timefunction delay(){    static $sync_delay = null;    if($sync_delay == null)

{

$sync_delay = get_option(‘sync_delay’);

}    echo “

Delaying for $sync_delay seconds…”;

sleep($sync_delay);    echo “Done

“;

}

7.不要直接使用$ _SESSION變數

一些簡單的例子是:

$_SESSION[‘username’] = $username;

$username = $_SESSION[‘username’];

但是這有一個問題。如果你正在相同域中運行多個應用程序,會話變數會發生衝突。2個不同的應用程序在會話變數中可能會設置相同的鍵名。舉個例子,一個相同域的前端門戶和後台管理應用程序。

因此,用包裝函數使用應用程序特定鍵:

define(‘APP_ID’ , ‘abc_corp_ecommerce’);//Function to get a session variablefunction session_get($key){

$k = APP_ID . ‘.’ . $key;    if(isset($_SESSION[$k]))

{        return $_SESSION[$k];

}    return false;

}//Function set the session variablefunction session_set($key , $value){

$k = APP_ID . ‘.’ . $key;

$_SESSION[$k] = $value;    return true;

}

8.封裝實用輔助函數到一個類中

所以,你必須在一個文件中有很多實用函數:

function utility_a(){    //This function does a utility thing like string processing}function utility_b(){    //This function does nother utility thing like database processing}function utility_c(){    //This function is …}

自由地在應用程序中使用函數。那麼你或許想要將它們包裝成一個類作為靜態函數:

class Utility{    public static function utility_a()

{

}    public static function utility_b()

{

}    public static function utility_c()

{

}

}//and call them as $a = Utility::utility_a();

$b = Utility::utility_b();

這裡你可以得到的一個明顯好處是,如果php有相似名稱的內置函數,那麼名稱不會發生衝突。

從另一個角度看,你可以在相同的應用程序中保持多個版本的相同類,而不會發生任何衝突。因為它被封裝了,就是這樣。

9.一些傻瓜式技巧

使用echo代替print

使用str_replace代替preg_replace,除非你確定需要它

不要使用short tags

對於簡單的字元串使用單引號代替雙引號

在header重定向之後要記得做一個exit

千萬不要把函數調用放到for循環控制行中。

isset比strlen快

正確和一致地格式化你的’代碼

不要丟失循環或if-else塊的括弧。

不要寫這樣的代碼:

if($a == true) $a_count++;

這絕對是一種浪費。

這樣寫

if($a == true)

{

$a_count++;

}

不要通過吃掉語法縮短你的代碼。而是要讓你的邏輯更簡短。使用具有代碼高亮功能的文本編輯器。代碼高亮有助於減少錯誤。

10. 使用array_map快速處理數組

比方說,你要trim一個數組的所有元素。新手會這樣做:

foreach($arr as $c = $v)

{

$arr[$c] = trim($v);

}

但它可以使用array_map變得更整潔:

$arr = array_map(‘trim’ , $arr);

這適用於trim數組$arr的所有元素。另一個類似的函數是array_walk。

11.使用php過濾器驗證數據

你是不是使用正則表達式來驗證如電子郵件,IP地址等值?是的,每個人都是這樣做的。現在,讓我們試試一個不同的東西,那就是過濾器。

php過濾器擴展程序將提供簡單的方法來有效驗證或校驗值。

12.強制類型檢查

$amount = intval( $_GET[‘amount’] );

$rate = (int) $_GET[‘rate’];

這是一種好習慣。

13.使用set_error_handler()將Php錯誤寫入到文件

set_error_handler()可以用來設置自定義的錯誤處理程序。在文件中編寫一些重要的錯誤用於日誌是個好主意。

14.小心處理大型數組

大型的數組或字元串,如果一個變數保存了一些規模非常大的東西,那麼要小心處理。常見錯誤是創建副本,然後耗盡內存,並得到內存溢出的致命錯誤:

$db_records_in_array_format; //This is a big array holding 1000 rows from a table each having 20 columns , every row is atleast 100 bytes , so total 1000 * 20 * 100 = 2MB$cc = $db_records_in_array_format; //2MB moresome_function($cc); //Another 2MB ?

當導入csv文件或導出表到csv文件時,上面這樣的代碼很常見。

像上面這樣做可能經常會由於內存限制而讓腳本崩潰。對於小規模的變數它不會出現問題,但當處理大型數組時一定要對此加以避免。

考慮通過引用傳遞它們,或者將它們存儲在一個類變數中:

$a = get_large_array();

pass_to_function($a);

這樣一來,相同的變數(並非其副本)將用於該函數。

class A{    function first()

{        $this-a = get_large_array();        $this-pass_to_function();

}    function pass_to_function()

{        //process $this-a

}

}

儘快復原它們,這樣內存就能被釋放,並且腳本的其餘部分就能放鬆。

下面是關於如何通過引用來賦值從而節省內存的一個簡單示例。

?phpini_set(‘display_errors’ , true);

error_reporting(E_ALL);

$a = array();for($i = 0; $i 100000 ; $i++)

{

$a[$i] = ‘A’.$i;

}echo ‘Memory usage in MB : ‘. memory_get_usage() / 1000000 . ‘

‘;

$b = $a;

$b[0] = ‘B’;echo ‘Memory usage in MB after 1st copy : ‘. memory_get_usage() / 1000000 . ‘

‘;

$c = $a;

$c[0] = ‘B’;echo ‘Memory usage in MB after 2st copy : ‘. memory_get_usage() / 1000000 . ‘

‘;

$d = $a;

$d[0] = ‘B’;echo ‘Memory usage in MB after 3st copy (reference) : ‘. memory_get_usage() / 1000000 . ‘

‘;

一個典型php 5.4機器上的輸出是:

Memory usage in MB : 18.08208Memory usage in MB after 1st copy : 27.930944Memory usage in MB after 2st copy : 37.779808Memory usage in MB after 3st copy (reference) : 37.779864

因此可以看出,內存被保存在第3份通過引用的副本中。否則,在所有普通副本中內存將被越來越多地使用。

15.在整個腳本中使用單一的資料庫連接

請確保你在整個腳本使用單一的資料庫連接。從一開始就打開連接,使用至結束,並在結束時關閉它。不要像這樣在函數內打開連接:

function add_to_cart(){

$db = new Database();

$db-query(“INSERT INTO cart …..”);

}function empty_cart(){

$db = new Database();

$db-query(“DELETE FROM cart …..”);

}

有多個連接也不好,會因為每個連接都需要時間來創建和使用更多的內存,而導致執行減緩。

在特殊情況下。例如資料庫連接,可以使用單例模式。

PHP源碼如何使用

PHP程序都要用MYSQL,如果沒有MYSQL,就不能用它們;

第一:配置資料庫信息,改成自己所需的;

第二:導入資料庫;

第三:安裝wamp5

輸入

自己的文件名。

1:如果是php源碼,在本地電腦使用時。要先安裝phpnow環境套件包(下附),裡面包含

了php+mysql等,也是用迅雷搜索下載。那個套件安裝很傻瓜化,不用我說了。

2:把所有的源碼複製到套件安裝目錄下的htdocs文件夾里,使用方法如上面的3

3:如果打不開,請先確定你的資料庫是需要導入的嗎?如果是,請用

導入資料庫。再檢查資料庫連接文件config.php

(用記事本打開,一般是這個文件。)里的資料庫連接參數如密碼等是否正確,

否則改之。

4:如果你添加了虛擬主機,想在虛擬主機里運行php源碼,那就把源碼複製到虛

擬主機所控的文件夾下,用「http://虛擬主機地址/

」來訪問。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245084.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:05
下一篇 2024-12-12 13:05

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 如何正確複製聖誕樹程序代碼?

    複製聖誕樹程序代碼是一項基本的技能,無論是初學者還是前端開發專業人員都需要掌握。本文將從多個方面詳細闡述如何正確地複製聖誕樹程序代碼,讓你能夠安心地應對代碼複製難題。 一、代碼複製…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24

發表回復

登錄後才能評論