2016-10-11 2 views
0

다음과 같은 문제가 있습니다. 글자 사이에 오직 슬래시로만 나타나는 모든 세미콜론을 교체해야합니다. 문제는 또한 html 엔티티에 세미콜론이 있고 str_replace가 그들을 엉망으로 만든다는 것입니다. ,PHP에서 글자 사이에 세미콜론을 바꾸십시오.

$a = str_replace(";Cat", "/Cat", $a); 
+6

HTML - 디코드 아래의 문자열을 코드를 사용할 수있다? – David

답변

1

는 편지 사이에 세미콜론을 대체 할 수 : -

샘플 문자열 :

Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C 

원하는 출력과 같은 [http://php.net/manual/en/function.str-replace.php], 뭔가

Category A > Subcategory A/Category A > Subcategory B/Category B > Subcategory C 
+0

매력처럼 작동하며, 나는 당신의 빚을 영원히 남습니다. – alexius

0

당신은 않는 str_replace를 시도 할 수 regex lookahead와 lookbehind를 사용할 수 있습니다.

$str = "Category A > Subcategory A;Category A > Subcategory B;Category B > Subcategory C"; 
$str = preg_replace("/(?<!\s);(?!\s)/", "/", $str); 
echo $str; 

또는 HTML 엔티티 경우

&gt; 당신은 대체 수행하기 전에

$str = "Category A &gt; Subcategory A;Category A &gt; Subcategory B;Category B &gt; Subcategory C"; 
$str = preg_replace("/(?<!\&gt);/", "/", $str); 
echo $str; 
관련 문제