[解決済み] preg_replace_callback の使用方法について教えてください。
2022-02-19 21:14:57
質問
次のようなHTML文があります。
[otsection]Wallpapers[/otsection]
WALLPAPERS GO HERE
[otsection]Videos[/otsection]
VIDEOS GO HERE
私がやろうとしていることは、[otsection]タグをhtmlのdivに置き換えることです。 その際、divのidを1->2->3...と増やしたいのですが、どうすればよいでしょうか?
ですから、例えば、上記の文は、次のように翻訳されるべきです。
<div class="otsection" id="1">Wallpapers</div>
WALLPAPERS GO HERE
<div class="otsection" id="2">Videos</div>
VIDEOS GO HERE
私が調べた限りでは、これを行う最良の方法は、preg_replace_callbackを介して、各置換の間にid変数をインクリメントすることです。 しかし、1時間作業しても、うまくいきません。
何かお手伝いいただけることがあれば、ぜひお願いします。
解決方法は?
以下をお使いください。
$out = preg_replace_callback(
"(\[otsection\](.*?)\[/otsection\])is",
function($m) {
static $id = 0;
$id++;
return "<div class=\"otsection\" id=\"ots".$id."\">".$m[1]."</div>";
},
$in);
特に、私が
static
という変数があります。この変数は関数の呼び出しに渡って持続します。つまり、関数が呼び出されるたびにインクリメントされ、それがマッチするたびに発生します。
また、前置詞に
ots
をIDに追加してください。要素のIDは数字で始めてはいけません。
PHP5.3以前の場合。
$out = preg_replace_callback(
"(\[otsection\](.*?)\[/otsection\])is",
create_function('$m','
static $id = 0;
$id++;
return "<div class=\"otsection\" id=\"ots".$id."\">".$m[1]."</div>";
'),
$in);
関連
-
[解決済み】接続の取得に失敗しました: php_network_getaddresses: getaddrinfo failed: 名前またはサービスが不明
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】count()パラメータは配列かlaravelのcountableを実装したオブジェクトでなければならない
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] ある文字列が特定の単語を含んでいるかどうかを確認するにはどうすればよいですか?
-
[解決済み] YouTube APIからYouTubeビデオのサムネイルを取得する方法を教えてください。
-
[解決済み] PHPでHTML/XMLをパースして処理する方法とは?
-
[解決済み] どのような場合に '$this' よりも 'self' を使うべきですか?
-
[解決済み] PHPでパスワードをハッシュ化するためにbcryptを使用するにはどうすればよいですか?
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】「初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーになる。0
-
[解決済み】 PHP 未定義関数の呼び出し
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み】未定義のメソッド mysqli_stmt::get_result を呼び出す。
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
[解決済み] PHP で日付の書式を別のものに変換する