답변 2개
답변에 대한 댓글 4개
다른 방법은 잘 모르겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
안녕하세요.
아래의 방법을 참고해 보시겠어요..
1. 외부 이미지 다운로드하여 서버에 저장 샘플
<?php
function save_external_image($image_url, $save_path) {
// 이미지 파일을 다운로드
$ch = curl_init($image_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$image_data = curl_exec($ch);
curl_close($ch);
// 이미지 데이터를 서버에 저장
file_put_contents($save_path, $image_data);
}
// 사용 예시
$image_url = 'http://example.com/image.jpg';
$save_path = 'path/to/save/image.jpg';
save_external_image($image_url, $save_path);
?>
2. 게시물 내용에서 외부 이미지 URL을 찾아 서버에 저장 후 경로 수정 샘플
<?php
function save_images_and_replace_content($content) {
// 이미지 URL을 추출하기 위한 정규식
$pattern = '/<img[^>]+src=["\'](http[^"\']+)["\'][^>]*>/i';
preg_match_all($pattern, $content, $matches);
foreach ($matches[1] as $image_url) {
// 이미지 파일명을 추출
$image_name = basename($image_url);
$save_path = 'path/to/save/' . $image_name;
// 이미지를 서버에 저장
save_external_image($image_url, $save_path);
// 기존 이미지 URL을 서버 경로로 변경
$server_image_url = '/path/to/save/' . $image_name;
$content = str_replace($image_url, $server_image_url, $content);
}
return $content;
}
// 게시물 저장 시 사용 예시
$content = '<p><img src="http://example.com/image.jpg" alt="Example Image"></p>';
$new_content = save_images_and_replace_content($content);
echo $new_content;
?>
3. 기존 게시물 일괄처리 샘플
<?php
include_once('common.php');
// 모든 게시물을 처리
$result = sql_query("SELECT wr_id, wr_content FROM g5_write_board");
while ($row = sql_fetch_array($result)) {
$wr_id = $row['wr_id'];
$wr_content = $row['wr_content'];
// 외부 이미지를 서버에 저장하고 경로를 수정
$new_content = save_images_and_replace_content($wr_content);
// 수정된 내용을 데이터베이스에 업데이트
sql_query("UPDATE g5_write_board SET wr_content = '".addslashes($new_content)."' WHERE wr_id = $wr_id");
}
?>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인