ホームページ >バックエンド開発 >PHPチュートリアル >PHP は正規表現を上手に利用して strings で必要な値を処理します_PHP チュートリアル
今日、Mo の Web サイトから写真を集めたところ、写真の解像度が 320*480 に変更され、元の写真のピクセルに関する情報があったと言ってしまいました。
例: クリアハウス (320*480) 壁紙
それで、最後に残したいのは「クリアハウスの壁紙」ですが、どうすればいいですか?
まず第一に、最初に文字列を検索してから削除することをすぐに考える必要があります。
そうですね、最初は私も同じように考えて、(320*480)、(480*640) などの配列を定義してそこにいくつかの文字列を格納しましたが、後で他の型があることに気づきました。 (320*234) など、すべてをリストすることは不可能ではありません。それは時間の問題です。しかし、そうしないと退屈すぎます。このままだと半日くらい経ってしまい、とても嫌な思いをすることになるでしょう。
それで、私たちは何をすべきでしょうか?
まず、複数のデータを観察すると、その中に「*」が含まれている必要があることがわかりました。そうでないと、含まれない値がコンピューターの負荷を増加させます。
次に、次のものが来ます:
[php]
if(strchr($title, "*"))
文字列に「*」が含まれているかどうかを判断するために使用されます。
含まれている場合は、削除したい文字列があるはずです。次に、削除する文字列を見つけて、NULL に置き換えますか?明らかに、上記の方法では見つけることができません。
そして私は文字列切断法を使用しました:
[php]
$arr=split('([(]*)[0-9]+*[0-9]+([)]*)',$title);//*必ずエスケープしてください
$title = $arr[0].$arr[1]
;
このうち ([(]*)[0-9]+X[0-9]+([)]*) は正規表現です
([(]*) は (
[0-9]+ は、0 から 9 までの数字が少なくとも 1 つあることを意味します
[php]
*存在「*」
そうすると、上記(320*480)は簡単に見つかります。
テストプログラムはこちらです
[php]
$title="クリアハウス (320*480) 壁紙";
if(strchr($title, "*"))
$arr=split('([(]*)[0-9]+*[0-9]+([)]*)',$title);//*エスケープする必要があります
$title = $arr[0].$arr[1]; echo $title
}
?>
著者: ウォリンシュエビン
http://www.bkjia.com/PHPjc/478140.html
www.bkjia.com