PHP文字列まとめ

10474 ワード

定義:1つの文字列stringは、各文字が1バイトに等しい一連の文字から構成されます.これは、PHPは256文字セットしかサポートできないため、Unicodeはサポートされていないことを意味します.多くの初心者が公式サイトでこの言葉を見たとき、疑問に思っていると思います.PHPは中国語を印刷できるのではないでしょうか.なぜ文字列がUnicodeをサポートしていないと言うのですか?実際、文字列はascii文字セットを元にサポートし、そのまま保存して符号化しないが、他の文字セットに対しては自動的に文書の符号化に基づいて符号化されるので、文書の符号化設定が正しければ、文字列に保存されている符号化を正確に読み取ることができる.
常用関数は文字列の関数が非常に多いので、ざっと数えて100個近いので、全部覚えるのはあまり現実的ではありません.常用を覚えるしかありません.他に使うときはマニュアルを見てみましょう.
接続と分割
1.explode-1つの文字列を使用して別の文字列を分割
使用方法:
array explode ( string $delimiter , string $string [, int $limit ] )

例:
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2


2.implode-1次元配列の値を文字列に変換
使用方法:
string implode ( string $glue , array $pieces )

例:
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

3.str_split-文字列を配列に変換
使用方法:
array str_split ( string $string [, int $split_length = 1 ] )

例:
$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

//     
Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

4.mb_split-正規表現を使用してマルチバイト文字列を分割
使用方法:
array mb_split ( string $pattern , string $string [, int $limit = -1 ] )

例:
To split an string like this: " 、に、 、ほん、 、ご" using the "、" delimiter i used:

     $v = mb_split('、'," 、に、 、ほん、 、ご");

but didn't work.

The solution was to set this before:

       mb_regex_encoding('UTF-8');
      mb_internal_encoding("UTF-8"); 
     $v = mb_split('、'," 、に、 、ほん、 、ご");

and now it's working:

Array
(
    [0] =>  
    [1] => に
    [2] =>  
    [3] => ほん
    [4] =>  
    [5] => ご
)

5.preg_split-正規表現で文字列を区切る
使用方法:
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

例:
//       (  " ", \r, \t, 
, \f) $keywords = preg_split("/[\s,]+/", "hypertext language, programming"); print_r($keywords); // Array ( [0] => hypertext [1] => language [2] => programming )

6.strstrstr-検索文字列の最初の出現で、大文字と小文字のバージョンがstristrであることを無視します.
使用方法:
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

例:
$email  = '[email protected]';
$domain = strstr($email, '@');
echo $domain; //    @example.com

$user = strstr($email, '@', true); //   PHP 5.3.0  
echo $user; //    name

7.strrchr—指定した文字列の最後の出現を検索します.
使用方法:
string strrchr ( string $haystack , mixed $needle )

例:
$path = '/www/public_html/index.html';
$filename = substr(strrchr($path, "/"), 1);
echo $filename; // "index.html"

8.strpos-文字列が最初に表示された場所を検索します.対応する最後に表示された関数はstrrposです.
使用方法:
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

9.substr-文字列のサブストリングを返します
使用方法:
string substr ( string $string , int $start [, int $length ] )

例:
$rest = substr("abcdef", -1);    //    "f"
$rest = substr("abcdef", -2);    //    "ef"
$rest = substr("abcdef", -3, 1); //    "d"

検索と置換
1.preg_match-正規表現マッチングを実行
使用方法:
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

例:
// URL       
preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $matches);
$host = $matches[1];//$host www.php.net

//            
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "domain name is: {$matches[0]}
"; // domain name is: php.net Regex quick reference [abc] A single character: a, b or c [^abc] Any single character but a, b, or c [a-z] Any single character in the range a-z [a-zA-Z] Any single character in the range a-z or A-Z ^ Start of line $ End of line \A Start of string \z End of string . Any single character \s Any whitespace character \S Any non-whitespace character \d Any digit \D Any non-digit \w Any word character (letter, number, underscore) \W Any non-word character \b Any word boundary character (...) Capture everything enclosed (a|b) a or b a? Zero or one of a a* Zero or more of a a+ One or more of a a{3} Exactly 3 of a a{3,} 3 or more of a a{3,6} Between 3 and 6 of a options: i case insensitive m make dot match newlines x ignore whitespace in regex o perform #{...} substitutions only once

2.preg_replace-正規表現の検索と置換を実行します.preg_filter()はpreg_に等しいreplace()は、ターゲットと一致する結果のみを返す(変換される可能性がある)以外は
使用方法:
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

例:
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);

//  The bear black slow jumped over the lazy dog.

3.wordwrap-指定された数の文字列を中断
使用方法:
string wordwrap ( string $str [, int $width = 75 [, string $break = "
" [, bool $cut = false ]]] )

例:
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "
", true); echo "$newtext
"; // A very long wooooooo ooooord.

4.nl 2 br-文字列のすべての新しい行の前にHTML改行タグを挿入
使用方法:
string nl2br ( string $string [, bool $is_xhtml = true ] )

5.htmlspecialchars — Convert special characters to HTML entities htmlspecialchars_decode-特殊なHTMLエンティティを通常の文字に変換
使用方法:
string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

6.htmlentities — Convert all applicable characters to HTML entities
使用方法:
string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

例:
$str = "A 'quote' is bold";

// Outputs: A 'quote' is bold
echo htmlentities($str);
// htmlspecialchars     

// Outputs: A 'quote' is bold
echo htmlentities($str, ENT_QUOTES);

暗号化
1.md 5-文字列のMD 5ハッシュ値を計算します.md 5_file-指定したファイルのMD 5ハッシュ値の計算
使用方法:
string md5 ( string $str [, bool $raw_output = false ] )

2.sha 1-文字列のsha 1ハッシュ値を計算します.sha 1_file-ファイルのsha 1ハッシュ値を計算します
使用方法:
string sha1 ( string $str [, bool $raw_output = false ] )

3.hash:ハッシュ値(メッセージの概要)を生成し、hash_file:指定したファイルの内容を使用してハッシュ値を生成します.
使用方法:
string hash ( string $algo , string $data [, bool $raw_output = false ] )

4.crc 32-文字列を計算するcrc 32多項式
使用方法:
int crc32 ( string $str )

strの32ビットサイクル冗長検査符号多項式を生成する.これは、通常、転送されたデータが完全であるかどうかを確認するために使用されます.
その他
1.addslashes-反斜線参照文字列を使用
使用方法:
string addslashes ( string $str )

2.lcfirst-文字列の最初の文字を小文字にし、ucfirst-文字列の頭文字を大文字に変換
使用方法:
string lcfirst ( string $str )

3.ucwords-文字列内の各単語の頭文字を大文字に変換
使用方法:
string ucwords ( string $str )

4.strtoupper-文字列を大文字に変換し、strtolower-文字列を小文字に変換
使用方法:
string strtoupper ( string $string )

5.trim-文字列の先頭と末尾の空白文字(または他の文字)を削除し、ltrimは文字列の先頭の空白文字(または他の文字)を削除し、rtrimは文字列の末端の空白文字(または他の文字)を削除します.
使用方法:
string trim ( string $str [, string $charlist = " \t
\r\0\x0B" ] )

6.sprintf-フォーマットされた文字列を返します.
使用方法:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
//Possible format values:
%% - Returns a percent sign
%b - Binary number
%c - The character according to the ASCII value
%d - Signed decimal number (negative, zero or positive)
%e - Scientific notation using a lowercase (e.g. 1.2e+2)
%E - Scientific notation using a uppercase (e.g. 1.2E+2)
%u - Unsigned decimal number (equal to or greather than zero)
%f - Floating-point number (local settings aware)
%F - Floating-point number (not local settings aware)
%g - shorter of %e and %f
%G - shorter of %E and %f
%o - Octal number
%s - String
%x - Hexadecimal number (lowercase letters)
%X - Hexadecimal number (uppercase letters)

//Additional format values. These are placed between the % and the letter (example %.2f):

+ (Forces both + and - in front of numbers. By default, only negative numbers are marked)
' (Specifies what to use as padding. Default is space. Must be used together with the width specifier. Example: %'x20s (this uses "x" as padding)
- (Left-justifies the variable value)
[0-9] (Specifies the minimum width held of to the variable value)
.[0-9] (Specifies the number of decimal digits or maximum string length)

7.strcmp-バイナリセキュリティ文字列比較、strcasecmp-バイナリセキュリティ比較文字列(大文字と小文字を区別しない)
使用方法:
int strcmp ( string $str1 , string $str2 )

8.strrev-文字列を反転
使用方法:
string strrev ( string $string )

参考サイト
  • php公式サイト
  • 文字、文字セット、文字コード
  • w3school
  • PHP文字列処理
  • PHPでよく使われる文字列処理関数