用PHP转义分号?

时间:2011-08-15 15:57:27

标签: php

我创建了一个数据库,我用分号;分隔产品属性。我选择这个的原因是,作为其中一个规范的一部分,它不可能自然地出现。

我希望这样做:

<ul>
  <li><?php str_replace(';','</li><li>',$row['specifications']); ?></li>
</ul>

它会创建一个很好的无序列表。但是,分号被视为PHP代码本身的一部分,而不是str_replace函数的一部分。它没有使用正常的反斜杠方法进行转义。

有没有办法逃避这个函数中的分号字符,或者我在选择分号时有点愚蠢,应该选择别的东西?!

- 编辑 -

抱歉,我的错误,它确实有效。在['规格']之后,我错过了我的近距离。

感谢您的回答!

3 个答案:

答案 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不会将字符串中的;视为语句终止符。由于它正在终止语句,因此它不在“内部”字符串中。