php
  • regex
  • preg-replace
  • 2014-01-17 2 views 1 likes 
    1

    동적 문자열이 여러 번 교체 :내가 뭘하는지 코드를 설명 할 것이다

    을 나는 다음과 같은 문자열을 가지고 데이터가 :

    : 내가 좋아하는 뭔가를 사용

    [[-55-]], [[-75-]] 
    

    <a href="/stuff/55/"><img src="/55.png"></a> 
    
    : 내가하고 싶은 무엇
    $var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].'; 
    $var = str_replace('[[-', '<img src="/', $var); 
    $var = str_replace('-]], '">', $var); 
    

    같은 이미지 출력 뭔가 끝입니다

    문제는 간단한 str_replace 이상을 필요로하며 정규식에서 끔찍한 것입니다.

    도움을 주시면 감사하겠습니다. 같은

    +0

    는 모두 같은 분리 문자로 구분하고 있는가? 그렇다면 "[[-55-]], [[-75-]]"를 $ 문자열로 읽은 다음, explode (",", $ string)를 사용하고 $ array [55], $ array [ 75]. – ZombieBunnies

    답변

    1

    뭔가 :

    $var = 'hi my name is [[-55-]] and I think yoda looks like a bald green [[-75-]].'; 
    $result = preg_replace('/\[\[-(\d+)-\]\]/', '<a href="/stuff/\1/"><img src="/\1.png"></a>', $var); 
    
    +1

    내 대답을 쓰는 주셔서 감사합니다. ;) 유일한 차이점은 정규 표현식은 :/\ [\ [- (\ d +?) - \] \] /'이어야한다는 것입니다. – tenub

    +0

    그랬 으면, 정말로 고마워요. – user3205093

    관련 문제