如何从回显语句中删除双引号 [关闭]
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 = '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';
。投票结束这个问题是一个错字。始终仔细检查您的工作/彻底调试它
@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的双引号[关闭]