0

結果から文字を削除する方法。
文字を削除しようとすると、エラーが発生します

コード:

function getInbetweenStrings($start, $end, $str){
$regex = "/$start([a-zA-Z0-9_]*)$end/";
preg_match_all($regex, $str, $matches);
return $matches[1];
}
$text ='<input type="hidden" name="elementId" value="1826" id="elementId">';
$str = $text;
$str_arr = getInbetweenStrings('<input type="hidden" name="elementId" value="', '" id="elementId">', $str);
print_r($str_arr);

このコードの結果は次のようになります

Array ( [0] => 1826 )

1826 が必要なだけで、echo
に変更すると、コードは Array not even とだけ書き込みます。print_r($str_arr);$str_arr;Array ( [0] => 1826 )

コードについて何かアドバイスはありますか。

4

2 に答える 2

0

$str_arrは配列であり、エコーできません。配列には要素が含まれています。配列でない場合はエコーできます。

これを行うだけです:

echo $str_arr[0];

または、変数に割り当てることができます。

$your_var = $str_arr[0];
echo $your_var;

フォーム送信時にトリガーするコード:

if(isset($_POST['submitted'])){
    function getInbetweenStrings($start, $end, $str){
    $regex = "/$start([a-zA-Z0-9_]*)$end/";
    preg_match_all($regex, $str, $matches);
    return $matches[1];
    }
    $text ='<input type="hidden" name="elementId" value="1826" id="elementId">';
    $str = $text;
    $str_arr = getInbetweenStrings('<input type="hidden" name="elementId" value="', '" id="elementId">', $str);
    //print_r($str_arr);
    $var = $str_arr[0];
    echo $var;
}
else
{
?>
<form method="post" action="">
    <input type="submit" value="Click the button" name="submitted" />
</form>
<?php
}
?>
于 2013-06-30T15:44:18.397 に答える