導航:首頁 > 編程語言 > phputf8utf16

phputf8utf16

發布時間:2025-09-28 21:52:45

1. 什麼是php

PHP是超文本預處理器,是一種通用開源腳本語言。

PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利於學習,使用廣泛,主要適用於Web開發領域。

優點:

1、流行,容易上手

PHP是目前最流行的編程語言,這毋庸置疑。它驅動全球超過2億多個網站,有全球超過81.7%的公共網站在伺服器端採用PHP。PHP常用的數據結構都內置了,使用起來方便簡單,也一點都不復雜,表達能力相當靈活。

2、開發職位很多

在伺服器端的網站編程中PHP會更容易幫助你找到工作。很多互聯網相關企業都在使用PHP開發框架,所以可以說市場對PHP的開發程序員的需求還是比較大的。

3、仍然在不斷發展

PHP在不斷兼容著類似closures和命名空間等技術,同時兼顧性能和當下流行的框架。版本是7之後,一直在提供更高性能的應用。

4、可植入性強

PHP 語言在補丁漏洞升級過程中,核心部分植入簡單易行,且速度快。

5、拓展性強

PHP 語言在資料庫應用過程中,可以從資料庫調取各類數據,執行效率高。

(1)phputf8utf16擴展閱讀:

缺點

1、PHP的解釋運行機制

在 PHP 中,所有的變數都是頁面級的,無論是全局變數, 還是類的靜態成員,都會在頁面執行完畢後被清空。

2、設計缺陷

缺少關注PHP被稱作是不透明的語言,因為沒有堆棧追蹤,各種脆弱的輸入。沒有一個明確的設計哲學。早期的PHP受到Perl的影響,帶有out參數的標准庫又是有C語言引入,面向對象的部分又是從C++和Java學來的。

3、對遞歸的不良支持

PHP並不擅長遞歸。它能容忍的遞歸函數的數量限制和其他語言比起來明顯少。

2. PHP文件插入header("Content-type: text/html; charset=utf-8"); 報錯

header("Conten-type:text/html;charset=utf-8");

寫錯了 少個 t應該是

header("Content-type:text/html;charset=utf-8");

或者這樣:

<?php

header("Content-type:text/html;charset=gb2312");

$dir="d:/";

$fp=opendir($dir);

while(($file=readdir($fp))!==false){

echo $file."<br>";

}

closedir($fp);

?>

(2)phputf8utf16擴展閱讀:

PHP中header('content-type:text/html;charset="utf-8')和error_reporting()的作用

1.header

PHP文件插入header("Content-type: text/html; charset=utf-8");
相當於頁面裡面的<meta http-equiv="Content-Type" content="text/html; charset=utf-8">;
目的:防止頁面出現亂碼

2.error_reporting

定義和用法:error_reporting()設置PHP的報錯級別並返回當前級別。
函數語法:error_reporting(report_level)

如果參數 level 未指定,當前報錯級別將被返回。下面幾項是level可能的值:

1:E_ERROR 致命的運行錯誤。錯誤無法恢復,暫停執行腳本。

2:E_WARNING 運行時警告(非致命性錯誤)。非致命的運行錯誤,腳本執行不會停止。

4:E_PARSE 編譯時解析錯誤。解析錯誤只由分析器產生。

8:E_NOTICE 運行時提醒(這些經常是你代碼中的bug引起的,也可能是有意的行為造成的。)

16:E_CORE_ERROR PHP啟動時初始化過程中的致命錯誤。

32:E_CORE_WARNING PHP啟動時初始化過程中的警告(非致命性錯)。

64:E_COMPILE_ERROR 編譯時致命性錯。這就像由Zend腳本引擎生成了一個E_ERROR。

128:E_COMPILE_WARNING 編譯時警告(非致命性錯)。這就像由Zend腳本引擎生成了一個E_WARNING警告。

256:E_USER_ERROR 用戶自定義的錯誤消息。這就像由使用PHP函數trigger_error(程序員設置E_ERROR)

512:E_USER_WARNING 用戶自定義的警告消息。這就像由使用PHP函數trigger_error(程序員設定的一個E_WARNING警告)

1024:E_USER_NOTICE 用戶自定義的提醒消息。這就像一個由使用PHP函數trigger_error(程序員一個E_NOTICE集)

2048:E_STRICT 編碼標准化警告。允許PHP建議如何修改代碼以確保最佳的互操作性向前兼容性。

4096:E_RECOVERABLE_ERROR 開捕致命錯誤。這就像一個E_ERROR,但可以通過用戶定義的處理捕獲(又見set_error_handler())

8191:E_ALL 所有的錯誤和警告(不包括 E_STRICT) (E_STRICT will be part of E_ALL as of PHP6.0)

任意數目的以上選項都可以用「或」來連接(用 OR 或 |),這樣可以報告所有需要的各級別錯誤。
例如,下面的代碼關閉了用戶自定義的錯誤和警告,執行了某些操作,然後恢復到原始的報錯級別

3. 字元串的16、PHP中介紹

string是一系列字元。在 php 中,字元和位元組一樣,也就是說,一共有 256 種不同字元的可能性。這也暗示 php 對 Unicode 沒有本地支持。請參閱函數utf8_encode()和utf8_decode()以了解有關 Unicode 支持
注:一個字元串變得非常巨大也沒有問題,php 沒有給字元串的大小強加實現范圍,所以完全沒有理由擔心長字元串。
語法
字元串可以用三種字面上的方法定義。
單引號
雙引號
定界符 指定一個簡單字元串的最簡單的方法是用單引號(字元 ')括起來。
要表示一個單引號,需要用反斜線(/)轉義,和很多其它語言一樣。如果在單引號之前或字元串結尾需要出現一個反斜線,需要用兩個反斜線表示。注意如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!所以通常不需要轉義反斜線本身。
注:在 php 3 中,此情況下將發出一個 E_NOTICE 級的警告。
注:和其他兩種語法不同,單引號字元串中出現的變數和轉義序列不會被變數的值替代。
<?phpecho 'this is a simple string';echo 'You can also have embedded newlines instrings this way as it isokay to do';// Outputs: Arnold once said: I'll be backecho 'Arnold once said: I/'ll be back';// Outputs: You deleted C:/*.*?echo 'You deleted C://*.*?';// Outputs: You deleted C:/*.*?echo 'You deleted C:/*.*?';// Outputs: This will not expand: /n a newlineecho 'This will not expand: /n a newline';// Outputs: Variables do not $expand $eitherecho 'Variables do not $expand $either';?>
此外,如果試圖轉義任何其它字元,反斜線本身也會被顯示出來!
雙引號字元串最重要的一點是其中的變數名會被變數值替代。細節參見字元串解析。 另一種給字元串定界的方法使用定界符語法(「<<<」)。應該在 <<< 之後提供一個標識符,然後是字元串,然後是同樣的標識符結束字元串。
結束標識符必須從行的第一列開始。同樣,標識符也必須遵循 php 中其它任何標簽的命名規則:只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。
例子 11-3. 非法的例子
<?phpclass foo { public $bar = <<<EOTbarEOT;}?>
定界符文本表現的就和雙引號字元串一樣,只是沒有雙引號。這意味著在定界符文本中不需要轉義引號,不過仍然可以用以上列出來的轉義代碼。變數會被展開,但當在定界符文本中表達復雜變數時和字元串一樣同樣也要注意。
例子 11-4. 定界符字元串例子
<?php$str = <<<EODExample of stringspanning multiple linesusing heredoc syntax.EOD;/* More complex example, with variables. */class foo{ var $foo; var $bar; function foo() { $this->foo = 'Foo'; $this->bar = array('Bar1', 'Bar2', 'Bar3'); }}$foo = new foo();$name = 'MyName';echo <<<EOTMy name is $name. I am printing some $foo->foo.Now, I am printing some {$foo->bar[1]}.This should print a capital 'A': /x41EOT;?>注:定界符支持是 php 4 中加入的。 當用雙引號或者定界符指定字元串時,其中的變數會被解析。
有兩種語法,一種簡單的和一種復雜的。簡單語法最通用和方便,它提供了解析變數,數組值,或者對象屬性的方法。
復雜語法是 php 4 引進的,可以用花括弧括起一個表達式。
簡單語法如果遇到美元符號($),解析器會盡可能多地取得後面的字元以組成一個合法的變數名。如果想明示指定名字的結束,用花括弧把變數名括起來。
<?php$beer = 'Heineken';echo $beer's taste is great; // works, ' is an invalid character for varnamesecho He drank some $beers; // won't work, 's' is a valid character for varnamesecho He drank some ${beer}s; // worksecho He drank some {$beer}s; // works?>
同樣也可以解析數組索引或者對象屬性。對於數組索引,右方括弧(])標志著索引的結束。對象屬性則和簡單變數適用同樣的規則,盡管對於對象屬性沒有像變數那樣的小技巧。
<?php// These examples are specific to using arrays inside of strings.// When outside of a string, always quote your array string keys// and do not use {braces} when outside of strings either.// Let's show all errorserror_reporting(E_ALL);$fruits = array('strawberry' => 'red', 'banana' => 'yellow');// Works but note that this works differently outside string-quotesecho A banana is $fruits[banana].;// Worksecho A banana is {$fruits['banana']}.;// Works but php looks for a constant named banana first// as described below.echo A banana is {$fruits[banana]}.;// Won't work, use braces. This results in a parse error.echo A banana is $fruits['banana'].;// Worksecho A banana is . $fruits['banana'] . .;// Worksecho This square is $square->width meters broad.;// Won't work. For a solution, see the complex syntax.echo This square is $square->width00 centimeters broad.;?>
對於任何更復雜的情況,應該使用復雜語法。
復雜(花括弧)語法不是因為語法復雜而稱其為復雜,而是因為用此方法可以包含復雜的表達式。
事實上,用此語法可以在字元串中包含任何在名字空間的值。僅僅用和在字元串之外同樣的方法寫一個表達式,然後用 { 和 } 把它包含進來。因為不能轉義「{」,此語法僅在 $ 緊跟在 { 後面時被識別(用「{/$」或者「/{$」來得到一個字面上的「{$」)。用一些例子可以更清晰:
<?php// Let's show all errorserror_reporting(E_ALL);$great = 'fantastic';// 不行,輸出為:This is { fantastic}echo This is { $great};// 可以,輸出為:This is fantasticecho This is {$great};echo This is ${great};// Worksecho This square is {$square->width}00 centimeters broad.;// Worksecho This works: {$arr[4][3]};// This is wrong for the same reason as $foo[bar] is wrong// outside a string. In otherwords, it will still work but// because php first looks for a constant named foo, it will// throw an error of level E_NOTICE (undefined constant).echo This is wrong: {$arr[foo][3]};// Works. When using multi-dimensional arrays, always use// braces around arrays when inside of stringsecho This works: {$arr['foo'][3]};// Works.echo This works: . $arr['foo'][3];echo You can even write {$obj->values[3]->name};echo This is the value of the var named $name: {${$name}};?>
訪問和修改字元串中的字元
字元串中的字元可以通過在字元串之後用花括弧指定所要字元從零開始的偏移量來訪問和修改。
注:為了向下兼容,仍然可以用方括弧。不過此語法自 php 4 起已過時。
例子 11-5. 一些字元串例子
<?php// Get the first character of a string$str = 'This is a test.';$first = $str{0};// Get the third character of a string$third = $str{2};// Get the last character of a string.$str = 'This is still a test.';$last = $str{strlen($str)-1};// Modify the last character of a string$str = 'Look at the sea';$str{strlen($str)-1} = 'e';?> 字元串可以用「.」(點)運算符連接。注意這里不能用「+」(加)運算符。更多信息參見字元串運算符。
有很多實用函數來改變字元串。
普通函數見字元串函數一節,高級搜索和替換見正則表達式函數(兩種風格:Perl 和 POSIX 擴展)。
還有 URL 字元串函數,以及加密/解密字元串的函數(mcrypt 和 mhash)。
最後,如果還是找不到想要的函數,參見字元類型函數。 可以用 (string) 標記或者strval()函數將一個值轉換為字元串。當某表達式需要字元串時,字元串的轉換會在表達式范圍內自動完成。例如當使用echo()或者print()函數時,或者將一個變數值與一個字元串進行比較的時候。閱讀手冊中有關類型和類型戲法中的部分有助於更清楚一些。參見settype()。
布爾值TRUE將被轉換為字元串 1,而值FALSE將被表示為 (即空字元串)。這樣就可以隨意地在布爾值和字元串之間進行比較。
整數或浮點數數值在轉換成字元串時,字元串由表示這些數值的數字字元組成(浮點數還包含有指數部分)。
數組將被轉換成字元串 Array,因此無法通過echo()或者print()函數來輸出數組的內容。請參考下文以獲取更多提示。
對象將被轉換成字元串 Object。如果因為調試需要,需要將對象的成員變數列印出來,請閱讀下文。如果希望得到該對象所依附的類的名稱,請使用函數get_class()。自 php 5 起,如果合適可以用 __toString() 方法。
資源類型總是以 Resource id #1 的格式被轉換成字元串,其中 1 是 php 在運行時給資源指定的唯一標識。如果希望獲取資源的類型,請使用函數get_resource_type()。
NULL將被轉換成空字元串。
正如以上所示,將數組、對象或者資源列印出來,並不能提供任何關於這些值本身的有用的信息。請參閱函數print_r()和var_mp(),對於調試來說,這些是更好的列印值的方法。
可以將 php 的值轉換為字元串以永久地儲存它們。這種方法被稱為序列化,可以用函數serialize()來完成該操作。如果在安裝 php 時建立了 WDDX 支持,還可以將 php 的值序列化為 XML 結構。 當一個字元串被當作數字來求值時,根據以下規則來決定結果的類型和值。
如果包括「.」,「e」或「E」其中任何一個字元的話,字元串被當作float來求值。否則就被當作整數。
該值由字元串最前面的部分決定。如果字元串以合法的數字數據開始,就用該數字作為其值,否則其值為 0(零)。合法數字數據由可選的正負號開始,後面跟著一個或多個數字(可選地包括十進制分數),後面跟著可選的指數。指數是一個「e」或者「E」後面跟著一個或多個數字。
<?php$foo = 1 + 10.5; // $foo is float (11.5)$foo = 1 + -1.3e3; // $foo is float (-1299)$foo = 1 + bob-1.3e3; // $foo is integer (1)$foo = 1 + bob3; // $foo is integer (1)$foo = 1 + 10 Small Pigs; // $foo is integer (11)$foo = 4 + 10.2 Little Piggies; // $foo is float (14.2)$foo = 10.0 pigs + 1; // $foo is float (11)$foo = 10.0 pigs + 1.0; // $foo is float (11)?>
此轉換的更多信息見 Unix 手冊中關於 strtod(3) 的部分。
如果想測試本節中的任何例子,可以拷貝和粘貼這些例子並且加上下面這一行自己看看會發生什麼:
<?phpecho /$foo==$foo; type is . gettype ($foo) . <br />/n;?>
不要指望在將一個字元轉換成整型時能夠得到該字元的編碼(可能也會在 C 中這么做)。如果希望在字元編碼和字元之間轉換,請使用ord()和chr()函數。

閱讀全文

與phputf8utf16相關的資料

熱點內容
java拼接url 瀏覽:589
什麼網站app可以看書 瀏覽:539
Aes256加密結果不一樣 瀏覽:482
centos7ssh命令 瀏覽:576
手機如何把掃描件做成文件夾形式 瀏覽:821
視頻加密通過什麼形式 瀏覽:984
柳州空氣壓縮機總廠 瀏覽:294
python編寫小工具 瀏覽:798
sql建立視圖的命令 瀏覽:690
mfc客戶端設計源碼 瀏覽:272
單片機vl 瀏覽:625
phputf8utf16 瀏覽:306
文件夾如何自動修改 瀏覽:296
我的世界秋月之光伺服器地址18 瀏覽:715
linux下進程與線程 瀏覽:991
phpconsume 瀏覽:972
利用單片機控制4個led燈 瀏覽:215
pdf文件在電腦怎麼打開 瀏覽:864
芝麻分演算法 瀏覽:487
c語言常用濾波演算法 瀏覽:457