2013-08-02 2 views
2

피드의 모든 Buy_URL을 다시 쓸 수있는 맞춤 PHP 함수가있는 데이터 피드 플러그인을 사용하고 있습니다.substr 대신 str_replace를 사용해야합니까?

http://www.affiliatecompa.com/product/clean.com?ref=ab 

내가 시작과

"http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com"

"와 URL의 끝을 다시 할 : 예를 들어, 원래 Buy_URLs 중 하나가 이것이다, 말 laik "라고한다. 그래서이 될해야합니다

http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com/product/clean.com?ref=laik 

나는 플러그인의 저자 연락 그는 플러그인의 기능을 내 테마의 function.php에 다음 코드를 삽입 한 후 전화 나에게 말했다

function WOKI_Change_Url($x){ 
    $y = substr($x, 29); 
    $y = substr($y, -2); 
    return "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com" . $y . 'laik'; 
} 
는 URL의 다른 부분을 제거하기 때문에

는 분명히 작동하지 않습니다 모든 Buyurl 지금은 SUBSTR 내가이 경우 수행 할 작업에 적합한 아니라고 생각

http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.comlaik 

이되고있다. 대신 함수에서 str_replace를 사용해야합니까?

+0

검사 : parse_url (http://www.php.net/manual/en/function.parse-url.php), [parse_str (HTTP : // WWW .php.net/manual/en/function.parse-str.php) 및 [http_build_query] (http://www.php.net/manual/en/function.http-build-query.php) – bitWorking

답변

0

str_replace()은 사용자가하려는 작업에 적합하지만 그의 방법도 사용할 수 있습니다. 방금 매개 변수를 substr()에 두었습니다. 당신의 가치를 알고있는 경우

str_replace()에 관해서는
function WOKI_Change_Url($x){ 
    $y = substr($x, 29); 
    $y = substr($y, 0, -2); //the 0 here tells it to use the whole string, minus the last two chars; without the zero, this would muck things up a lot 
    return "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com" . $y . 'laik'; 
} 

것을 너무 일할 수 : 해당 매개 변수와 함께 작동합니다 그의 코드는 항상 문자열의 ref=ab 부분에 2 문자 값을 가지고 (가정에 다시 추가 당신은 무엇을 대체하기 위해 노력하고 있지만 상황이없는 str_replace를 사용하여 이스케이프와 복잡 항상 ref=laik이 그 다음은 (이스케이프 수행 할 urlencode() 사용) 작업을해야으로 대체 될 정확히 ref=ab 경우 :.

function WOKI_Change_Url($x){ 
    $y = str_replace($x, "ref=ab", "ref=laik"); //this replaces the ref=ab part 
    return "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com" . urlencode($y); 
} 

주를이 확실하지 않은 경우 교체 할 항상 ab이 될 것이므로 preg_replace을 대신 사용해야하며 ref= 이후의 모든 것을 대체하는 정규 표현식을 사용해야 할 수도 있습니다. 뭔가 같은 기능 밖으로

function WOKI_Change_Url($x){ 
    $y = preg_replace("/ref=.*/", "ref=laik", $x); //this replaces the ref= part for anything... but I haven't tested it 
    return "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com" . urlencode($y); 
} 
+0

감사합니다. 도움. 나는 그들 모두를 시험해 보았다. 그러나 불행하게도 그들 중의 누구도 일하지 않는다. substr()은 시작과 끝을 다시 쓰는 대신 "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com"과 "laik"를 함께 넣습니다. URL. preg_replace 및 str_replace()는 전체 URL을 "http://www.dsqce.com/click-111111-1111XX111?url=http%3A%2F%2Fwww.affiliatecompa.com"으로 바꿉니다. 나는 계속 노력할 것이다. 고맙습니다. – RedGiant

+0

저는 소스 URL이 매개 변수로 함수에 전달되지 못하게한다고 생각하기 시작했습니다. 'WOKI_Change_Url' 함수가 호출 된 관련 코드 예제를 사용하여 질문을 업데이트 할 수 있습니까? 당신이 기술 한 행동은'$ x'가 아무런 가치가 없다면 일어날 일에 적합합니다. –

+0

각 테스트의 첫 번째 줄에'echo $ x;'를 추가하거나,'return $ x;'를 사용하여 각 함수의 첫 줄에 추가하면된다. url. –

관련 문제