人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについての質問です。
変数$fooの中にある文字列から
%1%のような文字列を検索して
変数$hoge[1]の中にある文字列と置換したい場合、どのように記述すればよいのでしょうか。
この時、%n%と$hoge[n]は同じ数字です。

●質問者: e23jp
●カテゴリ:インターネット ウェブ制作
✍キーワード:hoge PHP 変数 数字 文字列
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● kurukuru-neko
●15ポイント

$no = 1;

$rep = $foo = str_replace(sprintf("%%%d%%",$no),$hoge[$no],$foo);

str_replace

http://jp.php.net/manual/ja/function.str-replace.php


2 ●
●25ポイント
<?php

 $foo = 'foo%0%foo%1%foo%2%foo%3%foo%4%foo%5%foo%4%foo%3%foo%2%foo%1%foo%0%';
 $hoge = array("A","B","C","D");

 $counter = 0;
 foreach ( $hoge as $replacement ) {
 $pattern = '/%' . $counter . '%/';
 $foo = preg_replace($pattern, $replacement, $foo);
 $counter += 1;
 }

 print_r($foo);

?>

参考になれば幸いです。


3 ● nandedarou
●20ポイント
function Conv($n){
 global $hoge;
 return $hoge[ $n[1] ];
}

$foo = preg_replace_callback('/%(\d)%/', 'Conv', $foo);

こんなのでも、できます。

http://jp.php.net/manual/ja/function.preg-replace-callback.php


4 ● heppokoA
●35ポイント ベストアンサー

正規表現のパターン修飾子に ''e'' をつけるのが早いと思います。

$hoge = array("A","B","C");
$tpl = "Replace %0% %1% %2%";

print preg_replace('/%(\d)%/e','$hoge[\1]',$tpl);
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ