【问题标题】:Removing single-quote from a string in php从php中的字符串中删除单引号
【发布时间】:2010-10-11 02:41:21
【问题描述】:

我有一个 HTML 表单,用户可以将文本输入到 title 字段中,然后我让 php 创建一个名为 title.html 的 HTML 文件

我的问题是用户可以在 html 文件名中无法使用的标题字段中输入空格和撇号。我用下划线替换了空格:

$FileName = str_replace(" ", "_", $UserInput);

但是,我似乎无法删除单引号?我试过使用:

$FileName = preg_replace("/'/", '', $UserInput); 

但这需要test's 并将其变成test\s.html

【问题讨论】:

  • 您已打开魔术引号。这导致的问题多于解决的问题,因此请关闭它们。

标签: php


【解决方案1】:

使用您当前的 str_replace 方法:

$FileName = str_replace("'", "", $UserInput);

虽然很难看出,但第一个参数是一个双引号,后跟一个单引号,然后是一个双引号。第二个参数是两个双引号,中间没有任何内容。

使用 str_replace,您甚至可以拥有一个要完全删除的字符串数组:

$remove[] = "'";
$remove[] = '"';
$remove[] = "-"; // just as another example

$FileName = str_replace( $remove, "", $UserInput );

【讨论】:

    【解决方案2】:

    您可以在 HTML 实体中替换:

    $FileName = preg_replace("/'/", "\'", $UserInput);
    

    【讨论】:

      【解决方案3】:

      您还可以更严格地删除不允许的字符。以下正则表达式将删除所有不是字母、数字或下划线的字符:

      $FileName = preg_replace('/[^\w]/', '', $UserInput);
      

      您可能希望这样做以确保文件名在不同操作系统之间的最大兼容性。

      【讨论】:

        【解决方案4】:
        $replace_str = array('"', "'", ",");
        $FileName = str_replace($replace_str, "", $UserInput);
        

        【讨论】:

        • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性的 cmets 挤满你的代码,这会降低代码和解释的可读性!
        【解决方案5】:

        试试这个。您可以只删除 '"

        $FileName = str_replace(array('\'', '"'), '', $UserInput); 
        

        【讨论】:

          【解决方案6】:

          我用这个函数htmlspecialchars 来处理图片中的alt属性

          【讨论】:

            【解决方案7】:
            $test = "{'employees':[{'firstName':'John', 'lastName':'Doe'},{'firstName':'John', 'lastName':'Doe'}]}" ; 
            $test = str_replace("'", '"', $test);
            echo   $test;
            $jtest = json_decode($test,true);
            var_dump($jtest);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-11-20
              • 1970-01-01
              • 2013-05-19
              • 2018-01-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-02-26
              相关资源
              最近更新 更多