이미지 경로를 취하고 끝에 텍스트를 추가 한 다음 다시 결합하는 함수를 작성했습니다. 이미지에 새 텍스트를 추가 한 후 파일이 있는지 테스트하려면 if else 브랜치를 작성하려고합니다. I는 화상 경로를 요청할 경우, 예를 들어파일이 있는지 확인하십시오. 원본 경로로 돌아 가기
는 :
http://example.com/image1.jpg
그것은 이것에 수정 될 수있다 :
함수가 워드를 대상http://example.com/image1-150x100.jpg
때문에 $ 포스트> ID 소요 인수, 의도 한 대상의 사용자 정의 필드 이름, 너비 및 높이. 여기
는 기능입니다 :function get_galleria_image ($post_id, $customFieldName, $width, $height) {
$imagePath = get_post_meta($post_id, $customFieldName, true);
$splitImage = explode('.', $imagePath);
$count = count($splitImage);
$firstHalf = array_slice($splitImage, 0, $count-1);
$secondHalf = array_slice($splitImage, $count-1);
$secondHalf[0] = '-' . $width . 'x' . $height . '.' . $secondHalf[0];
$firstHalfJoined = implode('.', $firstHalf);
$completedString = $firstHalfJoined . $secondHalf[0];
// if the filename with the joined string does not exist, return the original image
if (file_exists($completedString)){
return $completedString;
} else {
return $imagePath;
}
}
나는이 원유 알고, 그래서 어떤 아이디어는이 코드를 응축하고 "더 나은"환영하기 위해. 내가 찾는 것은 함수가 항상 원래 이미지 경로를 반환한다는 것입니다. file_exists()는 "http://example.com/image1.jpg"와 같은 절대 경로를 취할 수 있습니까? 아니면 '/path/to/file/image1.jpg'와 같은 루트 스타일 절대 경로 만 허용합니까?
HTTP 헤더 요청 (ayush에서 사용)은 GET을 사용하는 것보다 낫습니다. HEAD 요청은 헤더 만 반환하며 서버는 이미지 자체를 보내려고하지 않습니다. – UnkwnTech
젠장,이 기본 HTTP 물건조차 모르겠다. 나는 RFC를 한 번 읽어야한다. 주의 해 주셔서 감사합니다. – anroesti
@ayush에는 좋은 대답이 있다고 생각하지만 적어도 아무도 upvote에 신경을 쓰지 않는다고 생각하는 적어도 2 명의 사람들이있다. 유일한 upvote 내입니다 ;-) – jeroen