php定義字元串
① php定義一個字元串為什麼開頭是數字就不能帶字母了
數字開頭系統認為是數值,加字母就會報錯。而字母開頭,系統認為是字元串,你後面加數字也是成立的。
但是這是很不標準的寫法,字元串都要用 單引號或者雙引號括起來。數字就不需要
② 簡述用雙引號和單引號定義字元串的區別(PHP編程)
php裡面還有第三種定義字元串的方法叫定界符(文檔式字元串變數):
格式為:
變數名=<<<定界符
字元串內容
定界符;
例子:
$str=<<收藏本站
begin;
定界符的好處是可以容納任意字元串而不需要轉義。
③ PHP中,如何將post過來的數字定義為字元串
人家就是弱類型的語言,你的值用在字元串環境中他就是字元串,用在數字環境中它就是數字。
④ PHP 字元串問題
要重復還是沒重復呢?
這個是輸出所有的小寫字母,不管是不是重復的,比如你輸入的字元串為aa,則輸出aa
<?php
function getLower($str){
$len = strlen($str);
$newstr = '';
$lower = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
for($i=0;$i<$len;$i++){
if(in_array($str[$i],$lower)){
$newstr .= $str[$i];
}
}
return $newstr;
}
$str = "youWant";//根據需要定義你的字元串
$str = getLower($str);//調用函數後得到的小寫字母的字元串
?>
這個是輸出不重復的
<?php
function getLower($str){
$len = strlen($str);
$newstr = array();
$lower = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
for($i=0;$i<$len;$i++){
if(in_array($str[$i],$lower)){
if(!in_array($str[$i],$newstr)){
$newstr[] = $str[$i];
}
}
}
return implode("",$newstr);
}
echo getLower("aaBBacde");//將輸出acde,重復的a不輸出
?>
你根據需要選你需要的
⑤ php字元串拼接問題 為什麼字元串定義的時候不能 $string=「string」.$var 而這
單引號的意思是:把$username和$password的輸出值轉化為字元串,以保證存如資料庫的時候符合 資料庫的欄位類型
雙引號:保證整個sql語句是個字元串,雙引號中間代表一句話,成對出現,如果不是成對出現php就會報錯
點(.)是連接符號,變數不能在字元串中直接輸出,所以用雙引號隔開,然後.鏈接
希望對你能有所幫助。
⑥ php中 定義變數為字元串,但字元串中有引號,怎麼辦
加一個反斜杠不久得了……
\"——引號
\n——換行
\t——一個tab符號
……
其他的你可以去看看php手冊
⑦ php 定義字元串
$callback2 = $callback . " '&' " . $_GET['forward']; & 有單引號
$callback2 = $callback . " & " . $_GET['forward']; & 無單引號
⑧ PHP 預定義字元 包括些什麼
是預定義變數或者常量吧?
預定義常量
以下常量作為 PHP 核心的一部分一直有效。
CASE_LOWER ( integer )
CASE_LOWER 用在 array_change_key_case() 中將數組的鍵名轉換成小寫字母。這也是 array_change_key_case() 的默認值。
CASE_UPPER ( integer )
CASE_UPPER 用在 array_change_key_case() 中將數組的鍵名轉換成大寫字母。
排序順序標識:
SORT_ASC ( integer )
SORT_ASC 用在 array_multisort() 函數中,使其升序排列。
SORT_DESC ( integer )
SORT_DESC 用在 array_multisort() 函數中,使其降序排列。
排序類型標識:用於各種排序函數
SORT_REGULAR ( integer )
SORT_REGULAR 用於對對象進行通常比較。
SORT_NUMERIC ( integer )
SORT_NUMERIC 用於對對象進行數值比較。
SORT_STRING ( integer )
SORT_STRING 用於對對象進行字元串比較。
SORT_LOCALE_STRING ( integer )
SORT_LOCALE_STRING 基於當前區域來對對象進行字元串比較。PHP 4.4.0 和 5.0.2 新加。
COUNT_NORMAL ( integer )
COUNT_RECURSIVE ( integer )
EXTR_OVERWRITE ( integer )
EXTR_SKIP ( integer )
EXTR_PREFIX_SAME ( integer )
EXTR_PREFIX_ALL ( integer )
EXTR_PREFIX_INVALID ( integer )
EXTR_PREFIX_IF_EXISTS ( integer )
EXTR_IF_EXISTS ( integer )
EXTR_REFS ( integer )
伺服器變數:$_SERVER
注: 在 PHP 4.1.0 及以後版本使用。之前的版本,使用 $HTTP_SERVER_VARS。
$_SERVER 是一個包含諸如頭部(headers)、路徑(paths)和腳本位置(script locations)的數組。數組的實體由 web 伺服器創建。不能保證所有的伺服器都能產生所有的信息;伺服器可能忽略了一些信息,或者產生了一些未在下面列出的新的信息。這意味著,大量的這些變數在 CGI 1.1 specification 中說明,所以您應該仔細研究它。
這是一個「superglobal」,或者可以描述為自動全局變數。這只不過意味這它在所有的腳本中都有效。在函數或方法中您不需要使用 global $_SERVER; 訪問它,就如同使用 $HTTP_SERVER_VARS 一樣。
$HTTP_SERVER_VARS 包含著同樣的信息,但是不是一個自動全局變數。(注意: $HTTP_SERVER_VARS 和 $_SERVER 是不同的變數,PHP 處理它們的方式不同。)
如果設置了 register_globals 指令,這些變數也在所有腳本中可用;也就是,分離了 $_SERVER 和 $HTTP_SERVER_VARS 數組。相關信息,請參閱安全的相關章節 使用 Register Globals。這些單獨的全局變數不是自動全局變數。
您或許會發現下面列出的某些 $_SERVER 元素並不可用。注意,如果以命令行方式運行 PHP,下面列出的元素幾乎沒有有效的(或是沒有任何實際意義的)。
「PHP_SELF」
當前正在執行腳本的文件名,與 document root相關。舉例來說,在URL地址為 http://example.com/test.php/foo.bar 的腳本中使用 $_SERVER['PHP_SELF'] 將會得到 /test.php/foo.bar 這個結果。
如果 PHP 以命令行方式運行,該變數無效。
「argv」
傳遞給該腳本的參數。當腳本運行在命令行方式時,argv 變數傳遞給程序 C 語言樣式的命令行參數。當調用 GET 方法時,該變數包含請求的數據。
「argc」
包含傳遞給程序的命令行參數的個數(如果運行在命令行模式)。
「GATEWAY_INTERFACE」
伺服器使用的 CGI 規范的版本。例如,「CGI/1.1」。
'SERVER_NAME'
當前運行腳本所在伺服器主機的名稱。如果該腳本運行在一個虛 擬 主 機上,該名稱是由那個虛 擬 主 機所設置的值決定。
'SERVER_SOFTWARE'
伺服器標識的字串,在響應請求時的頭部中給出。
「SERVER_PROTOCOL」
請求頁面時通信協議的名稱和版本。例如,「HTTP/1.0」。
「REQUEST_METHOD」
訪問頁面時的請求方法。例如:「GET」、「HEAD」,「POST」,「PUT」。
「QUERY_STRING」
查詢(query)的字元串。
「DOCUMENT_ROOT」
當前運行腳本所在的文檔根目錄。在伺服器配置文件中定義。
「HTTP_ACCEPT」
當前請求的 Accept: 頭部的內容。
「HTTP_ACCEPT_CHARSET」
當前請求的 Accept-Charset: 頭部的內容。例如:「iso-8859-1,*,utf-8」。
「HTTP_ACCEPT_ENCODING」
當前請求的 Accept-Encoding: 頭部的內容。例如:「gzip」。
「HTTP_ACCEPT_LANGUAGE」
當前請求的 Accept-Language: 頭部的內容。例如:「en」。
「HTTP_CONNECTION」
當前請求的 Connection: 頭部的內容。例如:「Keep-Alive」。
「HTTP_HOST」
當前請求的 Host: 頭部的內容。
「HTTP_REFERER」
鏈接到當前頁面的前一頁面的 URL 地址。不是所有的用戶代理(瀏覽器)都會設置這個變數,而且有的還可以手工修改 HTTP_REFERER。因此,這個變數不總是正確真實的。
「HTTP_USER_AGENT」
當前請求的 User_Agent: 頭部的內容。該字元串表明了訪問該頁面的用戶代理的信息。一個典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。您也可以使用 get_browser() 得到這個信息。
「REMOTE_ADDR」
正在瀏覽當前頁面用戶的 IP 地址。
「REMOTE_PORT」
用戶連接到伺服器時所使用的埠。
「SCRIPT_FILENAME」
當前執行腳本的絕對路徑名。
「SERVER_ADMIN」
該值指明了 Apache 伺服器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛 擬 主 機上,則該值是那個虛 擬 主 機的值。
「SERVER_PORT」
伺服器所使用的埠。默認為「80」。如果你使用 SSL 安全連接,則這個值為您所設置的 HTTP 埠。
「SERVER_SIGNATURE」
包含伺服器版本和虛 擬 主 機名的字元串。
「PATH_TRANSLATED」
當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在伺服器進行虛擬到真實路徑的映像後的結果。
「SCRIPT_NAME」
包含當前腳本的路徑。這在頁面需要指向自己時非常有用。
「REQUEST_URI」
訪問此頁面所需的 URI。例如,「/index.html」。
「PHP_AUTH_USER」
當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的用戶名。
「PHP_AUTH_PW」
當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是用戶輸入的密碼。
「PHP_AUTH_TYPE」
當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變數便是認證的類型。
⑨ 字元串的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()函數。
⑩ PHP:給字元串定界是什麼意思
php定界符("<<<EOT"):給字元串定界的方法使用定界符語法(「<<<」)。應該在
<<< 之後提供一個標識符,然後是字元串,然後是同樣的標識符結束字元串。
結束標識符必須從行的第一列開始。同樣,標識符也必須遵循 PHP
中其它任何標簽的命名規則:只能包含字母數字下劃線,而且必須以下劃線或非數字字元開始。
<?php
/*******************
日期:2010-10-12
功能:定界符
*******************/
//定義字元串
$p="string(字元串):是一個字元串,PHP對字元串可以用三種方法定義單引號、雙引號、定界符;";
//定界符的使用方式
$string=<<<EOT
<html>
<head>
<title></title>
</head>
<body>
<p style="width:500px;border:1px solid #ccc;">{$p}<p>
</body>
</html>
EOT;//警告:很重要的一點必須指出,結束標識符所在的行不能包含任何其它字元,可能除了一個分號(;)之外。這尤其意味著該標識符不能被縮
進,而且在分號之前和之後都不能有任何空格或製表符。同樣重要的是要意識到在結束標識符之前的第一個字元必須是你的操作系統中定義的換行符。
echo $string;
//註:單引號、雙引號、php定界符("<<<EOT")在實際應用中可以混使用的,單引號、雙引號在程序中定義一些不連續的
字元串,而定界符主要針對大段的html的,使用定界符,插標簽的方式,不會打亂html代碼的順序,方便調試。不能用定界符語法初始化類成員。用其它字
符串語法替代。
?>