2012-07-17 6 views
4

내가 이해할 수없는 (또는 배우는) 것이 있다면 preg_replace 구문입니다. >< 사이의 가능한 모든 기호 (공백, 탭, 줄 바꿈 등)를 제거하는 데 도움이 필요합니다. 지금까지이 함께했다preg_replace : 방법?

<?xml version=\"1.0\" encoding=\"UTF-8\"?><bl><snd>BANK</snd><rcv>ME</rcv><intid>773264</intid><date>17072012</date></bl> 

을 :

$this -> data = preg_replace('\>(.*?)<\', '><', $data); 

하지만 '아무튼 나는 그것을 볼 필요가

<?xml version=\"1.0\" encoding=\"UTF-8\"?><bl> <snd>BANK</snd> <rcv>ME</rcv> <intid>773264</intid> <date>17072012</date></bl> 

:

의미, 나는 그런 XML을 심지어 내가 필요한 것에 가까이 다가선다. 해결책이 인정 될 것입니다.

+0

([EREG은 (정규식 분리를 누락) 레그로 변환]의 중복 가능성 http://stackoverflow.com/questions/6270004/converting-ereg-expressions-to-preg) – mario

답변

7

당신은 당신은 단지 구분 기호를 필요로하고 공백 문자에 대한 검색을 제한하기 위해, 가까운 위치 :

preg_replace('#>\s+<#', '><', $data); 
#는 구분 문자입니다

\s 어떤 공백 문자에 대한 속기입니다.

this example에서 작동하는 것을 볼 수 있습니다. 공백

제거 용
+0

가능한 탭 기호도 제거합니까? 나는 그 질문을 갱신했다. 공백 만 있어야하지만 누가 압니까? – Peon

+1

@DainisAbols, [yes] (http://viper-7.com/z0VO3G) – 0b10011

+0

니스, 고맙습니다. – Peon

1

:

preg_replace('/\s\s+/', ' ', $data); 

제거 새로운 라인 용 :

$string = preg_replace('/\r\n/', "", $data);