2017-05-16 8 views
0

私はこのコードを書いて、テキストボックスからの刺し傷を取り除き、悪い言葉を "***"と置き換えたいのですが、なぜ私は末尾に1つの余分な "1"があるのか​​分かりません。画像内の出力の外観。ここなぜ私はPHPの文字列の最後に1を得ていますか?

は、人間によって読み取り可能だ形での変数に関する情報を表示しprint_r()私のコード

<!DOCTYPE> 
 
<html> 
 
    <head> 
 
    <title> Mind Your Language </title> 
 
    </head> 
 
    <body> 
 
    <form action="" method="post"> 
 
     <input type="text" name="string"> 
 
     <input type="submit" name="submit" value="Filter"> 
 
    </form> 
 
    </body> 
 
</html> 
 

 
<?php 
 

 
if(isset($_POST['submit'])) { 
 
    
 
    $badWords = ['badword1', 'badword2', 'badword3', 'badword4', 'badword5']; 
 
    $string = $_POST['string']; 
 
    
 
    foreach($badWords as $badWord) { 
 
    $string1 = str_replace($badWord, "***", $string); 
 
    } 
 
    echo print_r($string1); 
 
} 
 
?>

enter image description here

+2

を使用する必要がありますどちらか。 'print_r()'が文字列を出力した後、aは値を返し、それからエコーします。 –

+0

'echo print_r($ string1、true);' – UTAlan

答えて

1

です。

文字列、整数または浮動小数点数が指定されている場合は、値そのものが出力されます。配列を指定すると、値はキーと要素を示す形式で表示されます。同様の記法がオブジェクトに使用されます。

returnパラメータがTRUEの場合、この関数は文字列を返します。それ以外の場合、戻り値はTRUEになります。

あなたが___and___印刷をエコーし​​ているのでecho print_r($string1, true);または単にprint_r($string1);

関連する問題