このようにフォーマットされた文字列を取得する簡単な方法は何ですか:
c:7|bn:99
その文字列を簡単に使用できますか?したがって、c: の後ろにある番号を取得したい場合、どうすれば簡単に取得できますか。同じ、bn:? の後ろの数字のこと。
関数を使用することも、関数を 2 回preg_match()
使用することもできますexplode()
(最初は|
区切り記号で、2 回目は:
区切り記号で)。
例 #1:
<?php
if( preg_match( '/^c:(\d+)\|bn:(\d+)$/', $sString, $aMatches ) )
{
print_r( $aMatches );
}
?>
例 #2:
<?php
$aPairs = explode('|', $sString ); // you have two elements in $aPairs
foreach( $aParis as $sPair )
{
print_r( explode(':', $sPair ) );
}
?>
c
&bn
が動的でない場合:
var_dump(sscanf("c:7|bn:99","c:%d|bn:%d"));
array(2) {
[0]=>
int(7)
[1]=>
int(99)
}
$arr = array();
$str = "c:7|bn:99";
$tmp1 = explode('|', $str);
foreach($tmp1 as $val)
{
$tmp2 = explode(':', $val);
$arr[$tmp2[0]] = $tmp2[1];
}
//print ur array
print_r($arr);
//accessing specifc value
echo $arr['c']." ".$arr['bn'];
これを試して:
$string = 'c:7|bn:99';
preg_match('/\Ac:([0-9]+)\|bn:([0-9]+)\z/', $string, $matches);
var_dump($matches);