PHP文字列置換回数制御方法

Jun 20, 2016 pm 01:03 PM
PHP文字列

私が最近取り組んだプロジェクトには、キーワードの一括置換の問題がありました。置換だけについては何も言うことはありませんが、ここで必要なのは、各キーワードを 1 回だけ置換する必要があるということです。 PHP関連の関数ドキュメントを確認したところ、PHP自体にこの関数を実装する機能がないことが判明したため、自分で解決する必要がありました。悩んだ末にいくつか考えられる方法をまとめてみたのでメモ!

(1) この関数を実装するには preg_replace 関数自体が置換回数を制御できるので、具体的な実装方法は以下のように考えました。 1 回のみの置換に限定されず、最大の置換回数を実現できます。たとえば、$limit が 2 の場合、単語が何度も出現する場合に 2 回のみ置換されることを意味し、-1 はすべての置換を意味します。

$search と $replace はどちらも文字列または配列にすることができますが、

function str_replace_limit($search,$replace,$content,$limit=-1){<br />    if(is_array($search)){<br />        foreach ($search as $k=>$v){<br />            $search[$k]='`'.preg_quote($search[$k],'`').'`';<br />        }<br />    }else{<br />        $search='`'.preg_quote($search,'`').'`';<br />    }<br />	//把图片描述去掉<br />	$content=preg_replace("/alt=([^ >]+)/is",'',$content);<br />    return preg_replace($search,$replace,$content,$limit);<br /><p>}
ログイン後にコピー

に対応する必要があります (2) substr_replace 関数を使用して実装しますが、それは一度実装してください Replace

//まずキーワードの位置を見つけてから、substr_replace (システム関数) を使用して置換操作を実行します

function str_replace_once($search,$replace,$content){<br />	//把图片描述去掉<br />	$content=preg_replace("/alt=([^ >]+)/is",'',$content);<br />    $pos=strpos($content,$search);<br />    if($pos===false){<br />        return $haystack;<br />    }<br />    return substr_replace($content,$replace,$pos,strlen($search));<br />}
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPで文字をASCIIコードに変換する方法 PHPで文字をASCIIコードに変換する方法 Mar 03, 2023 pm 06:55 PM

PHP では、ord() 関数を使用して文字を ASCII コードに変換できます。この関数は、単一文字または文字列の最初の文字の ASCII 値を返すことができます。返された ASCII 値は整数形式で表示されます。構文 "ord (string)" の場合、パラメータ "string" は省略できません。ASCII 値を取得する文字列 (または単一の文字) です。

PHP文字列内の特定の文字を空に置き換える方法 PHP文字列内の特定の文字を空に置き換える方法 Mar 06, 2023 pm 06:39 PM

PHP 文字列内の特定の文字を null 文字に置き換える方法は 2 つあります: 1. str_replace() 関数を使用して、指定された文字を null 文字に置き換えます。最初のパラメータを指定された文字に設定し、 null 文字への 2 番目のパラメータ。構文 "str_replace("指定された文字","", $str)"; 2. preg_replace() 関数を正規表現とともに使用して、指定された文字と一致し、それを null 文字で置き換えます。構文 " preg_replace('/指定文字/', "",$str)"。

PHPの文字列からすべての大文字を削除する方法 PHPの文字列からすべての大文字を削除する方法 Sep 26, 2022 pm 07:59 PM

2 つの削除方法: 1. preg_replace() を使用して正規表現を実行し、すべての大文字を検索し、null 文字に置き換えます。構文は「preg_replace('/[A-Z]/','',$str)」です。 2. preg_filter() を使用して正規表現を実行し、すべての大文字を検索し、空文字に置き換えます。構文は「preg_filter('/[A-Z]/','',$str)」です。

PHPの文字列から左右の文字を削除する方法 PHPの文字列から左右の文字を削除する方法 Mar 27, 2023 pm 03:29 PM

PHP は、Web アプリケーションの開発によく使用される型付きプログラミング言語です。 Web 開発中は、文字列から特定の文字を削除する、文字列内の数字や文字を保持するなど、文字列に対してさまざまな操作を実行する必要がある場合があります。この記事では、PHP で文字列の左側または右側にある特定の文字を削除する方法に焦点を当てます。

PHP文字列から漢字のみを抽出する方法 PHP文字列から漢字のみを抽出する方法 Sep 22, 2022 pm 07:44 PM

2 つの方法: 1. 通常のフィルター文字列で preg_match_all() を使用します。構文は "preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);" です。 ; 2. preg_replace() を使用して文字列内の中国語以外の文字を通常検索し、空の文字に置き換えます。構文は "preg_replace("/[^\x{4E00}-\x{9FFF}]+/u) です。 " ,",$str)"。

PHPの文字列から二重引用符を削除する方法 PHPの文字列から二重引用符を削除する方法 Mar 28, 2023 pm 04:54 PM

PHP は非常に人気のあるプログラミング言語であり、動的な Web サイトを構築するための推奨ツールの 1 つです。 PHP 開発では、文字列を操作する必要があることがよくありますが、一般的な要件の 1 つは文字列から二重引用符を削除することです。この記事では、PHP 文字列から二重引用符を削除する方法をいくつか紹介します。

PHPで文字列に文字を追加することは可能でしょうか? PHPで文字列に文字を追加することは可能でしょうか? Aug 19, 2022 pm 07:51 PM

PHP では文字列に文字を追加できます。 2 つの実装方法: 1. 文字列コネクタ「.」を使用して、指定された文字を文字列の先頭または末尾に接続します。構文は、「指定された文字.文字列」または「文字列.指定された文字」です。 2. substr_replace を使用します ( ) 関数は、文字列の指定された位置に指定された文字を挿入します。構文は "substr_replace(string, 指定された文字, 指定された位置, 0)" です。指定された位置の値は 0、負または正のいずれかになります。

PHPの文字列区切り文字とは何ですか? PHPの文字列区切り文字とは何ですか? Sep 23, 2022 pm 05:48 PM

PHP 文字列区切り文字には 2 種類あります: 1. ヒアドキュメント区切り文字: "<<<" 演算子の後に識別子を指定する必要があり、その後に改行、文字列自体が続き、最後に以前に定義された識別子を使用する必要があります。終了のサインとして。 2. Nowdoc 区切り文字: 「<<<」演算子の後に、一重引用符で囲んだ識別子を指定する必要があり、その後に改行、その後に文字列自体が続き、最後に以前に定義した識別子を終了マークとして使用する必要があります。

See all articles