首页 > 解决方案 > str_replace 没有输入

问题描述

要删除新行,以下代码运行良好;

<?php 
  $text = "Hello \nwelcome to \ngeeksforgeeks"; 
  $text = str_replace("\n", "", $text); 
 echo $text; 
?>

输出:您好,欢迎来到 geeksforgeeks。

但是当我把它作为输入时它不起作用;

 <form method="post">
       <label>enter string</label>&nbsp
       <input type="text" name="string"></input><br><br>
       <input type="submit" name="enter"></input>
 </form>
<?php 
    if(isset($_POST['enter']))
    {
      $text=$_POST['string'];
     $out=str_replace("\n","",$text);
      echo $out;

     }
 ?>

输入:您好\n欢迎来到\ngeeksforgeeks;

输出:你好\n欢迎来到\ngeeksforgeeks。

请告诉我原因

标签: phpstring

解决方案


在双引号字符串中,\n是成为换行符的转义序列。您想匹配\n用户输入中的文字,因此您应该使用单引号字符串,它不处理转义序列。

if(isset($_POST['enter']))
{
    $text=$_POST['string'];
    $out=str_replace('\n',"",$text);
    echo $out;
}

请参阅PHP 中的单引号和双引号字符串有什么区别?


推荐阅读