繁体   English   中英

如何在php中转义双引号? /“ 不管用

[英]How to escape double quotation marks in php? /" is not working

我花了几个小时试图使此代码正常工作:

<?php foreach ($stocks as $stock):?>
    <option value="<?= $stock(\"symbol\") ?>" > <?= $stock("symbol") ?></option>   
<?php endforeach ?>

运行此代码时出现错误:

解析错误:语法错误,意外的'“ symbol \\”)?>“'(T_CONSTANT_ENCAPSED_STRING),期望/home/jharvard/vhosts/pset7/templates/sell_form.php中的标识符(T_STRING)

请帮忙!

更改为:

<option value="<?= $stock("symbol") ?>" > <?= $stock("symbol") ?></option>

您正在转义不需要转义的引号。

尝试此操作,只需更改引号即可:

<?php foreach ($stocks as $stock):?>
   <option value="<?= $stock('symbol'); ?>" > <?= $stock("symbol"); ?></option>   
<?php endforeach ?>

注意:未经测试的建议。

这里根本不需要转义引号。 \\“符号\\”在这里被视为常量,但是该名称没有常量。

周围的HTML引号仅由浏览器评估,并且对PHP解释器不起作用。 PHP将仅评估内部内容,而忽略周围的内容,并且浏览器的HTML解析将永远不会在PHP代码中看到引号,而只会显示结果字符串$ stock(“ symbol”)

我不确定您要做什么,但是由于您使用了foreach ,所以我猜测这是一个多维数组。

尝试这个:

<?php
$stocks = array(
    array(
        "symbol" => "value2"
        ),
    array(
        "symbol" => "value2"
        )
    );
?>
<select>
<?php foreach ($stocks as $stock):?>
    <option value="<?= $stock["symbol"] ?>"> <?= $stock["symbol"] ?></option>   
<?php endforeach ?>
</select>

编辑:如果您希望显示有双引号,请使用此:

    <option value="<?= $stock["symbol"] ?>">"<?= $stock["symbol"] ?>"</option>   
<?php foreach ($stocks as $stock):?>
<option value="<?= $stock("\"symbol\"") ?>" > <?= $stock("symbol") ?></option>   
<?php endforeach ?>

您可以使用单引号,也可以使用上面的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM