如何从 echo 语句中删除双引号 [已关闭]

How to remove double quotes from an echo statement [closed]

提问人:Accidentally Inked 提问时间:2/24/2021 最后编辑:doğukanAccidentally Inked 更新时间:2/24/2021 访问量:134

问:


这个问题似乎不是关于帮助中心定义的范围内的编程。

2年前关闭。

我有一个从数据库中获取数据的下拉列表。 但它包含双引号。我试图使用 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>";
    
                }

问题截图

PHP HTML 数据库 行情

评论

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

答:

0赞 riverlet 2/24/2021 #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>';