1

文字列を展開する場所に関するルールをユーザーに提出してもらう必要があります。

文字列があるとしましょう:

$str = "Age: 20 Town: London Country: UK";

ユーザーが文字列の「UK」の部分を必要としているとしましょう。

$input = "Country:";

この場合 :

$output = end(explode($input, $str));

$output would contain: "UK"

彼が「ロンドン」を欲しがっている場合、どうすればよいでしょうか?

$str = "Age: 20 Town: London Country: UK";

$part = end(explode('Town:', $str));

$parts = explode('Country: UK', $part);

$parts[0]; -> London

しかし、爆発のユーザー入力パラメーターに基づいてこれを行う最善の方法は何でしょうか。基本的に、文字列から何かを切り取るオプションを提供したいと思います。これは、 Country、Age などの同じ基本部分文字列。

編集1:

私は十分に明確だったとは思いません、悪いです。

基本的に、ユーザー入力は、必要な値の四捨五入をターゲットにする必要があります。

$str = "年齢: 20 町: ロンドン 国: イギリス"; $userinput = "町: {#!# のようなワイルドカード} 国:"

ワイルドカードを探してその場所の部分文字列を返すには、どの関数/関数の組み合わせを使用できますか?

編集2:実験して解決策を見つけました

出力が必要 = コペンハーゲン

$string = "Age: 20 Town: Copenhagen Location: Denmark";

$input = "Town: #!# Location:";

$rules = explode('#!#', $input);

$part = explode($rules[0], $string);

$part = explode($rules[1], $part[1]);

echo $part[0]; ->Copenhagen
4

4 に答える 4

0

あなたはこれを行うことができます:

$str = 'Age: 20 Town: London Country: UK';
$input = 'Town: #!# Country:';
$parts = explode(' ',$str);
$sides = explode(' #!# ',$input);
$left = $sides[0]; $right = $sides[1];
$length = count($parts);
$output = '';
for($i = 0 ; $i<$length ; $i++) {
    if($parts[$i] == $right) {
        for($j = $i+1 ; $j<$length ; $j++) {
            if($parts[$j]==$left) break;
            $output .= $parts[$j];
        }
    }
}

echo $output;

テスト済み、動作中。

出力:

UK
于 2013-07-04T17:36:27.407 に答える