我创建了一个数据库,我用分号;
分隔产品属性。我选择这个的原因是,作为其中一个规范的一部分,它不可能自然地出现。
我希望这样做:
<ul>
<li><?php str_replace(';','</li><li>',$row['specifications']); ?></li>
</ul>
它会创建一个很好的无序列表。但是,分号被视为PHP代码本身的一部分,而不是str_replace
函数的一部分。它没有使用正常的反斜杠方法进行转义。
有没有办法逃避这个函数中的分号字符,或者我在选择分号时有点愚蠢,应该选择别的东西?!
- 编辑 -
抱歉,我的错误,它确实有效。在['规格']之后,我错过了我的近距离。
感谢您的回答!
答案 0 :(得分:3)
$test = "asd;123;asd;123";
echo '<ul>';
echo '<li>'.str_replace(';','</li><li>',$test).'</li>';
echo '</ul>';
对我来说很好。
答案 1 :(得分:3)
我不太确定你想要实现什么,但你的代码片段是错误的
http://sandbox.phpcode.eu/g/d92eb.php
<?php
$row['specifications'] = 't;e;s;t';
?>
<ul>
<li><?php echo str_replace(';','</li><li>',$row['specifications']); ?></li>
</ul>
是正确的(您错过了echo
)
答案 2 :(得分:2)
您的代码中某处必须包含错误匹配的'
。 PHP不会将字符串中的;
视为语句终止符。由于它正在终止语句,因此它不在“内部”字符串中。