[PHP-users 28950] Re: 変数内で関数を実現するには
根岸 智幸
tomoyu-n @ tokyo-cafe.com
2006年 4月 7日 (金) 11:34:39 JST
根岸です。
細かい仕様がわからないと、正確なコードはかけませんが、
必ず「。」が日本語の最後に入るなら、
#!/usr/bin/php
<?php
function MUL($FL) {
if($FL == 5) {
$RE = "<BR>";
} else {
$RE = "<BR><BR>";
}
return $RE;
}
$String = "あいうえお。MUL(5)";
list($data,$func) = explode('。',$String);
if(preg_match('/(.*?)\((.*)\)/',$func,$match)) {
echo $data.call_user_func($match[1],$match[2])."\n";
}
?>
でしょうか?
On 2006/04/07, at 3:49, MiCa小野 wrote:
> Shusaku Kawaguchi <kawaguchi @ kwgc.jp> wrote:
>> データベースから取得する文字列自体が、「あいうえお。MUL
>> (5)」と
>> なっていて、おっしゃるとおりうまく分割できればよいのですが、
>> うまい方法が思いつかず困っています。
>
> その仕様自体に問題を感じなくもないですが...。
>
> しかし、敢えて現仕様のままやるのなら、文字列関数か正規表現関数で
> ガリガリ調べて、関数部分を取り出す以外ないのでは。
>
> というか、お示しのコードですと、MUL()は引数が5の時
> に"<BR>"を一つ
> 、それ以外は"<BR>"を2つ返すだけなのですから、極端な話、
> 文字列中
> の"MUL(5)"を"<BR>"に、その他の"MUL
> (foo)"を"<BR><BR>"に置換してあ
> げるだけで十分に見えます。
>
> ....が、重ねて申しますけれど、「なんでそんなことしなきゃならんの
> か」が良くわかりません...。
>
> 他にも文字列に埋め込まれる関数がいろいろあるのでしょうか?
>
>
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みく
> ださい
> http://www.php.gr.jp/php/novice.php3
>
>
>
PHP-users メーリングリストの案内