묻고답하기
안녕하세요? 애드온 php 를 조금 고쳐봤는데 틀린것이 있다면 지적을 받고싶습니다.
2015.03.11 05:53
안녕하세요 트윗카드애드온을 고쳐봤는데 제가 초보라 잘모르거든요 ㅠㅠ 도움을 구하고자 올려봅니다
트윗카드애드온은 게시글을 트윗카드로 보내기쉽게만들어주는 애드온입니다.
기본적으로 본문에 첨부된 이미지가 있으면 트윗에 첨부된이미지가 이미지로 들어가구요
첨부된 이미지가 없으면 애드온설정에서 지정해준 이미지 경로로 트윗에 들어가게되있습니다 ($addon_info->logo;)
저는 첨부된이미지가 없을때는 본문에 img태그가 있는지 확인하여 img 태그가 있으면
img 태그의 src를 트윗이미지의 경로로 지정해주고 싶어서 고쳐봤습니다.
아래 빨간부분이 제가 넣은부분인데 틀린곳이있거나 부하?가 많이 일어나게 고친거라면 지적좀 부탁드립니다 ㅠㅠ
if($doc_src){
$oDocumentModel = &getModel('document');
$oDocument = $oDocumentModel->getDocument($doc_src);
$title = cut_str(strip_tags($oDocument->get('title')),70,'');
$content = cut_str(trim(preg_replace('/\s\s+/', ' ',strip_tags($oDocument->get('content')))),200,'');
$nick_name = $oDocument->getNickName();
$file_list = $oDocument->getUploadedFiles();
$contentt = $oDocument->get('content');
preg_match("/(<img[^>]+>)/i", $contentt, $matches);
$img = $matches[1];
// <img.*> 태그에서 src 의 코드만 얻음
preg_match("/src\=[\"\']?([^\"\'\s\>]+)/i", $img, $matches);
$src_editor = $matches[1];
if($file_list)
{
$source = $file_list[0]->uploaded_filename;
if(strlen($source) >= 2 && substr_compare($source, './', 0, 2) === 0)
{
$filePath = Context::get('request_uri') . substr($source, 2);
}
}elseif($src_editor){
$filePath = $src_editor;
}
else{
$filePath = $addon_info->logo;
}
}
질문 1. if($file_list) 위에 제가 넣은 부분이 적절한지.... pregmatch로 본문을 훑는데 저기에 넣는게 적절한가요?
질문 2. if다음에 elseif다음에 else이렇게 짜도 될까요? elseif문을 저렇게해도 될까요?
질문 3. 작동되게 고친걸까요? 틀린부분이있다면 말씀부탁드립니다 ㅠㅠ
고수님들 부탁드립니다. 조금만 도와주시면 감사드리겠습니다.