2011-08-15 6 views
0

제품 속성이 세미콜론으로 분리 된 데이터베이스를 만들었습니다 ;. 내가 이것을 선택한 이유는 사양 중 하나의 일부로 자연스럽지 않게 나타날 가능성이 매우 낮기 때문입니다. PHP의 세미콜론을 탈출 하시겠습니까?

나는이 작업을 수행하고자 하였다

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

그것은 좋은 정렬되지 않은 목록을 만든 것입니다. 그러나 세미콜론은 str_replace 함수의 일부가 아닌 PHP 코드 자체의 일부로 간주됩니다. 정상적인 백 슬래시 방법으로는 이스케이프되지 않습니다.

이 함수에서 세미콜론 문자를 이스케이프하는 방법이 있습니까? 아니면 세미콜론을 선택하는 데 약간의 실수가 있었습니까? 다른 것을 선택 했어야합니까?!

- 편집 -

죄송합니다. 제 실수는하지 않습니다. 나는 [ '명세'] 후에 나의 가까운 괄호를 놓쳤다.

답변을 주셔서 감사합니다.

+0

정말요? ''; ''이 문장 종결 자로 해석된다는 결론을 이끌어내는 증거는 무엇입니까? –

답변

3
$test = "asd;123;asd;123"; 
echo '<ul>'; 
echo '<li>'.str_replace(';','</li><li>',$test).'</li>'; 
echo '</ul>'; 

저에게 잘 작동합니다.

+0

일치하지 않음'(''닫지 않음, 응답 해 주셔서 감사합니다. –

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> 

+0

불일치'('닫지 않고 응답 해 주셔서 감사합니다.) –

2

당신은 있어야합니다 (당신이 echo을 놓친) 올바른입니다 잘못 코드의 어느 곳에서나 '에 잘못 일치했습니다. PHP는 문자열 안에 ;을 문장 종결 자로 취급하지 않습니다. 명령문을 종료하기 때문에 문자열 내부가 아닙니다.

+0

불일치'('닫지 않고 응답 해 주셔서 감사합니다. –