2017-12-31 87 views
-1

이 코드를 사용하여 콘텐츠의 타임 스탬프를 감지하고 있습니다.타임 스탬프를 워드 프레스 단축 코드로 변환

$pattern = '/(<div\s+[^<]*?\bclass="[^<"]*\btimestamp\b[^<]*?>[^<]*)?(?<!:)\d{1,2}:\d{2}(?::\d{2})?(?!(?::\d{2})?\s*[ap]\.?m\.?)(?!.*?["\'])/'; 
    $foundTimestamp = preg_replace_callback($pattern, array($this, 'spp_ts_callback'), $content); 

    function spp_ts_callback($m) { 
     return empty($m[1]) ? '[spp-timestamp time="'. $m[0] . '"]' : $m[0]; 
    } 

는 예를

$content= '05:10 Hani shares some time-saving podcast automation tips'; 

에 대한 계획 내용에 작동하지만 난 그냥 링크를 넣어 경우에 그렇지 작동 옆에

$content='05:10 Hani shares some time-saving podcast automation tips <a href="http://wordpress.org">http://wordpress.org</a>'; 
+0

을하지만 당신은 당신이 당신의 내용을 가져있는 사업부를 넣어하지 않은 ...하지만 정규식에 당신은 div에있다? ? –

+0

예 div가 클래스 "타임 스탬프"가있는 타임 스탬프를 검색하지 못합니다. –

답변

0

원래 정규식 :

/(<div\s+[^<]*?\bclass="[^<"]*\btimestamp\b[^<]*?>[^<]*)?(?<!:)\d{1,2}:\d{2}(?::\d{2})?(?!(?::\d{2})?\s*[ap]\.?m\.?)(?!.*?["\'])/ 

끝 부분에 네거티브 모양을 넣었습니다. 앞서 (?!. *? [ "\ ']) 일치하는"마르크을 ... 당신의 두번째 내용 즉 ...

인용 부호를 포함

"http://w있다 왜 캡처되지 않습니다.

는 그냥 정규식에서 "마크 제거 :

(<div\s+[^<]*?\bclass="[^<"]*\btimestamp\b[^<]*?>[^<]*)?(?<!:)\d{1,2}:\d{2}(?::\d{2})?(?!(?::\d{2})?\s*[ap]\.?m\.?)(?!.*?[\']) 

Demo