ホームページ  >  記事  >  バックエンド開発  >  正規表現関数を置き換えることができる PHP の一部の文字列操作関数、php 正規表現_PHP チュートリアル

正規表現関数を置き換えることができる PHP の一部の文字列操作関数、php 正規表現_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:13:56942ブラウズ

正規表現関数、PHP正規表現を置き換えることができるPHPの一部の文字列操作関数

0x01: 事前定義された文字に基づく文字列の字句解析

コードをコピーします コードは次のとおりです:

/*
* 正規表現関数を使用すると、大量の情報を処理するときに処理速度が大幅に低下する可能性があります。これらの関数は、正規表現を使用してより複雑な文字列を解析する必要がある場合にのみ使用してください。単純な式を解析する場合は、プロセスを大幅に高速化できる多数の事前定義関数を使用することもできます。
*/

/*
* 事前定義された文字に基づく文字列の字句解析
* strtok() 関数は、事前定義された文字リストに基づいて文字列を解析します。その形式は次のとおりです:
* 文字列 strtok(文字列 str,文字列トークン)
* strtok() 関数。文字列の字句解析を完全に実行するには、この関数を継続的に呼び出す必要があります。この関数の各呼び出しでは、文字列の次の部分の字句解析のみが実行されます。ただし、関数は str の字句解析が完全に完了するか、str パラメータが指定されるまで str 内の位置を追跡するため、str パラメータを指定する必要があるのは 1 回だけです。
* 以下の例に示すように:
*/
$info="lv チェン ヤン|Hello:world&757104454@qq.com";
// (|)(:)( )(&) を含む区切り文字を定義します
$tokens="|:& ";
$tokened=strtok($info, $tokens);
その間 ($tokened)
{
echo "要素:$tokened
";
// strtok() 関数を継続的に呼び出して、文字列全体の字句解析を完了します
$tokened=strtok($tokens);
}
?>

0x02: 事前定義された区切り文字に従って文字列を分解します

コードをコピーします コードは次のとおりです:

/*
* 定義済みの区切り文字に従って文字列を分解します:explode() 関数
* 2 番目の関数は、文字列 str を部分文字列の配列に分割します。その形式は次のとおりです:
* 配列爆発(文字列区切り文字,文字列 str [, int 制限])
※ 元の文字列はセパレータで指定した文字列に応じて複数の要素に分割されます。要素の数は、オプションのlimitパラメータを使用して制限できます。 explode()/sizeof()とstrip_tags()を組み合わせて、特定のテキストブロック内の単語の総数を決定できます
*以下に示すように:
*/
$summary="
継続中の Developer.com PHP シリーズの最新回です
の多くの改善点と追加点について説明します
PHP オブジェクト指向アーキテクチャ。 ";
echo "
";
$words=explode(' ',strip_tags($summary));
echo "この文の長さは次のとおりです:".sizeof($words);
/*
*explode() 関数は常に preg_split、split()、spliti() よりもはるかに高速です。したがって、正規表現を使用する必要がない場合は、この関数を使用する必要があります。
*/
?>

0x03: 配列を文字列に変換します

コードをコピーします コードは次のとおりです:
/*
* 配列を文字列に変換します
*explode()関数は区切り文字に基づいて文字列を対応する配列に変換できますが、配列はimplode()関数を通じて指定された区切り文字を制限として含む文字列に変換できます
* その形式は次のとおりです:
* 文字列の爆破(文字列区切り文字、配列部分)
*以下に示すように:
*/
$citys=array("成都","重慶","北京","上海","広州");
$citystring=implode("|", $citys);
エコー $citystring;
?>

0x04: 複雑な文字列の解析

コードをコピーします コードは次のとおりです:

/*
* 複雑な文字列を解析します
* strpos() 関数は、文字列内で最初に出現する substr を大文字と小文字を区別して検索します。その形式は次のとおりです
* int strpos(string str,string substr [,int offset])
※ オプションのパラメータ offset は、検索を開始する位置を指定します。 substr が str にない場合、strpos() は False を返します。オプションの引数は、strpos() が検索を開始する場所を決定します。
* 次の例では、index.html への最初のアクセスのタイムスタンプを決定します:
*/
$substr="index.html";
$log=<<<ログファイル
192.168.1.1:/www/htdocs/index.html:[2013/06/26:13:25:10]
192.168.1.2:/www/htdocs/index.html:[2013/06/26:13:27:16]
192.168.1.3:/www/htdocs/index.html:[2013/06/26:13:28:45]
ログファイル;
echo "
";
// $substr がログ内で最初に出現する位置は何ですか
$pos=strpos($log, $substr);
//行末の数値位置を見つけます
$pos1=strpos($log,"n",$pos);
//タイムスタンプの開始を計算します
$pos=$pos+strlen($substr)+1;
//タイムスタンプを取得します
$timestamp=substr($log, $pos,$pos1-$pos);
echo "ファイルindex.htmlへの最初のアクセス日: $timestamp
";
/*
* 関数 scriptos() と関数 strpos() の使用法は同じです。唯一の違いは、stripos() は大文字と小文字を区別しないことです。
*/
?>

0x05: 最後の文字列を検索します

コードをコピーします コードは次のとおりです:

/*
* 文字列の最後の出現を検索します
* strrpos() 関数は、文字列の最後の出現を検索し、その位置 (数値シーケンス番号) を次の形式で返します:
* int strrpos(string str,char substr [,offset])
* オプションのパラメータ offset は、strrpos() 関数の検索開始位置を決定します。長いニュース概要を短くしたいとの願いを追加しました
※概要の一部を省略し、省略した部分を省略記号に置き換えます。ただし、単に必要な長さに要約を切り取るだけでは問題ありません
* ステージの長さに最も近い単語の終わりまで、使いやすい方法でカットするとよいでしょう。
※以下の例のように
*/
$limit=100;
$summary="現在進行中の Developer.com PHP シリーズの最新回です。
の多くの改善点と追加点について説明します
PHP オブジェクト指向アーキテクチャ。 if(strlen($summary)>$limit)
$summary=substr($summary, 0,strrpos(substr($summary, 0,$limit)," "))."...";
エコー $summary;
?>

0x06: 文字列のすべてのインスタンスを別の文字列に置き換えます

コードをコピーします コードは次のとおりです:
/*
* 文字列のすべてのインスタンスを別の文字列に置き換えます
* str_replace() 関数は、大文字と小文字を区別して、文字列のすべてのインスタンスを別の文字列に置き換えます。その形式は次のとおりです:
* 混合 str_replace(文字列出現、混合置換、混合 str [,int count])
* str に出現が見つからない場合、str は変更されません。オプションのパラメーター count が定義されている場合は、str 内の count の出現のみが置き換えられます。
* この機能は、以下に示すように、電子メール アドレスを自動的に取得するプログラムから電子的な右クリック アドレスを隠すのに非常に適しています:
*/
$email="lvchenyang@live.cn";
$email=str_replace("@", "(at)", $email);
echo "
".$email;
?>

0x07: 文字列の一部を取得します

コードをコピーします コードは次のとおりです:
/*
* 文字列の一部を取得します
* strstr() 関数は、事前定義された文字列 (出現文字列を含む) の最初の出現から始まる文字列の残りの部分を返します。その形式は次のとおりです:
* 文字列 strstr(文字列 str,文字列の出現[,ブール fefore_needle])
* オプションのパラメータ before_needle は、関数が最初の文字列より前の文字列の部分を返すように strstr() の動作を変更します。
※以下の例は、ltrim()関数と組み合わせて、右クリックでドメイン名を取得する例です
*/
$url="lvchenyang@live.cn";
echo "
".ltrim(strstr($url, "@"),"@");
?>

0x08: 事前定義された値に従って文字列の一部を返します

コードをコピーします コードは次のとおりです:

/*
* substr() 関数は、start と start+length の間の文字列の部分を次の形式で返します:
* string substr(string str,int start [,int length])
* オプションのパラメータが指定されていない場合は、str の先頭から末尾までの文字列を返します
※以下の通り
*/
$str="lvchenyang";
echo "
".substr($str, 2,4);
//出力: チェン
?>

0x09: 文字列の出現頻度を決定します

コードをコピーします コードは次のとおりです:

/*
* 文字列の出現頻度を決定します
* substr_count() は、ある文字列が別の文字列に出現する回数を返します。その形式は次のとおりです:
* int substr_count(string str,string substring [,int offset [,int length]])
* オプションのパラメーター offset と length は、文字列オフセット (オフセットから始まる文字列の一致を試みる) と文字列の長さ (オフセットから始まる検索の長さ) を指定します
* 次の例は、この文内で各単語が出現する回数を決定します
*/
$talk=<<<トーク
私たちは
を使えばこの空間のマインドシェアを支配できると確信しています 私たちの新製品は、マーケティングを通じて真の相乗効果を生み出します
と製品開発チーム。3 か月以内にこのスペースを所有します。
話してください;
echo "
";
$sentencearray=explode(" ", $talk);
foreach ($sentencearray を $item として)
{
echo "単語 $ite​​m が表示されます(".substr_count($talk, $item).")回
";
}
?>

0x10: 文字列の一部を別の文字列に置き換えます

コードをコピーします コードは次のとおりです:

/*
* 文字列の一部を別の文字列に置き換えます
* substr_replace() 関数は、文字列の一部を別の文字列に置き換えます。置換は、指定された開始位置から開始され、開始 + 長さの位置で終了します。
* その形式は次のとおりです:
* stringsubstr_replace(string str、string repalcement、int 開始値と長さの値。
※下記のように電話番号の中4桁を置き換えてください
*/
$phonenum="15926841384";
echo "
".substr_replace($phonenum, "****", 3,4);
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/912669.html技術記事正規表現関数を置き換えることができる PHP の一部の文字列操作関数、PHP 正規表現 0x01: 事前定義された文字に基づいて文字列の字句解析を実行します。次のようにコードをコピーします: ph...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。