如何从回显语句中删除双引号 [关闭]

Posted

技术标签:

【中文标题】如何从回显语句中删除双引号 [关闭]【英文标题】:How to remove double quotes from an echo statement [closed] 【发布时间】:2021-05-26 01:07:43 【问题描述】:

我有一个从数据库中获取数据的下拉列表。 但它包含双引号。我尝试使用 trim 和 preg_replace 删除双引号。但它没有用。 谁能告诉我我做错了什么?

                echo"<select name=ename[] class='mul-select' multiple value='$ename' required>";
    
                while($row=$r_set->fetch_assoc())
    
                 $values = '<option value="' . $row['name'] . '">"' . $row['name'] . '"</option>';
                 //$v=trim($values,'"');
                 //echo $v;
                   
                echo  preg_replace('/(^[\"\']|[\"\']$)/', '', $values);
                
                echo"</select>";
    
                

Screenshot of problem

【问题讨论】:

一开始就不要输入它们怎么样?它们不是来自数据,您无缘无故地将它们硬编码到您的字符串中。 $values = '&lt;option value="' . $row['name'] . '"&gt;' . $row['name'] . '&lt;/option&gt;';。投票结束这个问题是一个错字。始终仔细检查您的工作/彻底调试它 @Adyson 是的,以前我的代码是:``` echo""; ``` 但是,我遇到了一些其他问题。因此,我将其更改为这个新代码。 你需要在 value 属性两边加上双引号,但在标签之间不需要。我认为您只需要熟悉 html 语法即可。但我的主要观点是,一些基本的调试会很明显引号根本不是来自数据库,然后你会回头看看你的代码,看看它可能来自哪里,并发现了错误。 @ADyson 好的,谢谢。我对此很陌生。我显然做了,在我发布问题之前尝试调试了十几次。是的,我知道它们不是来自数据库。但在下拉列表中,他们来了,正如我在屏幕截图中显示的那样。 是的,那是因为它们在选项标签内,就在数据库输出的旁边。你做了什么调试?例如,如果您将 $row['name'] 本身作为测试回显,您会看到它不包含引号,因此您会知道在附近代码的其他地方查找问题。 【参考方案1】:
//your double quotes come in this line:
$values = '<option value="' . $row['name'] . '">"' . $row['name'] . '"</option>';

//change it to:                 
$values = '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';

【讨论】:

以上是关于如何从回显语句中删除双引号 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除多余的双引号,而不是使用bash脚本在一行文本中打开和关闭双引号

如何在php中删除从json “x”:“y”到x:y的双引号[关闭]

为啥 PowerShell(使用 Perl)在简单的打印语句中删除双引号?

存储过程中执行sql语句时如何转义双引号?

从 C# 中的变量中删除双引号 [关闭]

sql语句中双引号添加的问题