다시한번 질문좀 드릴게요..! 채택완료
AntonyPang
8년 전
조회 4,232
팁자료실에 있는 외부이미지 저장할수 있는 소스인데요..!
(출처, untitle님)의 자료구요..! 기존에 타홈페이지에서 사진을 잘 복사 붙여넣기 했었는데 ㅠㅠ
한사이트에서 될때있고 안될때가 있는데요..!
혹시 아래 코드에서 어디쪽을 수정해야하는지 알수있을까요..
제가 초보라 자세히좀 부탁드릴게요..
</p><p><?php</p><p>//ver1.0 150410 @_untitle_d</p><p> </p><p> </p><p>function save_remote_image($url, $save_path)</p><p>{</p><p> $ch = curl_init ($url);</p><p> curl_setopt($ch, CURLOPT_HEADER, 0);</p><p> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);</p><p> curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);</p><p> curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);</p><p> $data=curl_exec($ch);</p><p> curl_close ($ch);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$chars_array = array_merge(range(0,9), range('a','z'), range('A','Z'));</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$filename = preg_replace("/\.(php|phtm|htm|cgi|pl|exe|jsp|asp|inc)/i", "$0-x", basename($url));</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>shuffle($chars_array);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$shuffle = implode("", $chars_array);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$change_filename = abs(ip2long($_SERVER[REMOTE_ADDR])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename))); </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$out_path = $save_path.$change_filename;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p> if(file_exists($out_path)) @unlink($out_path);</p><p> $fp = fopen($out_path,'x');</p><p> fwrite($fp, $data);</p><p> fclose($fp);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>return $change_filename;</p><p>}</p><p> </p><p> </p><p> </p><p>if ($w == '' || $w == 'r'){</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$data_dir = G5_DATA_PATH.'/file/'.$bo_table.'/';</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$data_url = G5_DATA_URL.'/file/'.$bo_table.'/';</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$img_content = str_replace(">", ">", str_replace("<", "<", stripslashes($_POST[wr_content])));</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$patten = "/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>preg_match_all($patten, $img_content, $match); </p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if ($match[1]) {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>foreach ($match[1] as $link) {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$url = parse_url($link);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>if ($url[host] && $url[host] != $_SERVER[HTTP_HOST]) {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$img_content = str_replace($link, ($data_url.save_remote_image($link, $data_dir)), $img_content);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p>$sql = "update ".$write_table." set wr_content = '".sql_real_escape_string(trim($img_content))."' where wr_id = '".$wr_id."'";</p><p>sql_query($sql);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>}</p><p><span class="Apple-tab-span" style="white-space:pre"> </span></p><p>}</p><p> </p><p> </p><p> </p><p>?></p><p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
답변을 작성하려면 로그인이 필요합니다.
로그인