php
  • append
  • embed
  • str-replace
  • 2014-01-07 2 views 1 likes 
    1

    이 soundcloud embed의 src = ""부분에 문자열을 추가하는 더 안전한 방법이 더 있는지 궁금합니다. 를 사용하여이 작업을 수행하는 방법이 있나요URL에 추가하기위한 PHP str_replace()

    $sc_preview_embed = '<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/110090423"></iframe>'; 
    
    $sc_preview = str_replace('"></iframe>','&buying=false&download=true"></iframe>', $sc_preview_embed); 
    

    : 일반 사용자가 필드에 자신의 사운드 클라우드의 임베드 코드에 붙여 넣을 수있는 바와 같이, 나는 코드를 변경하고 위로 내 않는 str_replace()를 듣는 그들에 대해 조금 걱정 와일드 카드가 포함되어 사용자 삽입 코드에 '& buying = false & download = true'만 추가됩니다 (src="").

    +0

    나는 사운드 클라우드의 API 및 이것 저것에 익숙하지 않은거야 동안, 나는 일반적인 질문이 있습니다 - 당신은 embedding을위한 * html * 코드 전체를 제공 할 필요가 있는가, URL을위한'trackId' 만 제공 할 것인가? :) – ninetwozero

    답변

    0

    어쩌면 조금 "hackish",하지만 당신은 사용할 수 있습니다

    preg_match('/(src=".*")/', $sc_preview_embed, $match); 
    $sc_preview = str_replace($match[0], rtrim($match[0],'"').'&buying=false&download=true"', $sc_preview_embed); 
    echo $sc_preview; 
    

    출력 :

    <iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/110090423&buying=false&download=true"></iframe> 
    
    +0

    감사합니다. – Osu

    0

    preg_replace를 사용하고 src = "(. +?)"(따옴표 사이의 모든 항목)과 일치시킬 수 있습니다. replace는 src = "$ 1YOUR-ADDITION-HERE"입니다. $ 1은 첫 번째 부분에서 찾은 일치 항목입니다.

    0

    "쉬운"방법은 문자열 중간에서 바꾸기를하는 것입니다.

    $sc_preview = str_replace('player/?url=','player/?buying=false&download=true&url=', $sc_preview_embed); 
    

    은 "올바른"방법은, 다음, 쿼리 문자열을 조작 할 PHP's parse_url를 사용 후, 임베드 내에서 URL을 추출 삽입 이내에 교체 아마.

    이렇게하면 아무 것도 엉망이되지 않도록해야합니다.

    그러나 사용자에게 소스 코드, URL 만 붙여 넣지 말 것을 요청할 수 있습니다. 그렇게하면 원하는 방식으로 삽입을 구성 할 수 있습니다.

    +0

    안녕하세요, Terence, 이걸 주셔서 감사합니다 - 당신은 내가 URL에서 소스 코드를 어떻게 만들 수 있는지 보여 줄 수 있습니까? 나는 SoundCloud 직접 링크를 사용하는 온라인 예제를 다음과 같이 찾을 수 없었다. https://soundcloud.com/instrumentalbgm/power-on-through-instrumental – Osu

    +0

    아, 그냥 URL이 단순하다고 가정했다. SoundCloud API를 사용하여 찾아 볼 수 있습니다. http://developers.soundcloud.com/docs#resolving –

    관련 문제