이미지 배열에 https 값이 안들어가는데요
본문
[ImageSet] => Array
(
[0] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomInfinityTourBlueGreen2.jpg?v=1631828070
[1] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomInfinityTourBlueGreen1.jpg?v=1631828070
[2] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomInfinityTourBlueGreen3.jpg?v=1631828061
[3] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomInfinityTourBlueGreen4.jpg?v=1631828061
[4] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomInfinityTourBlueGreen5.jpg?v=1631828061
)
>>>
if($json_data['images'] and !in_array($json_data['images'], $image_set) ) {
if(stripos($json_data['images'], "http") !== false) $image_set[] = $json_data['images'];
else if(stripos($json_data['images'], "//") === 0) $image_set[] = "https:".$json_data['images'];
else $image_set[] = $domain.$json_data['images'];
}
왜 안들어갈까요??
답변 2
우선 전체소스도 올리지 않고 본인만 알수있게 일부분만 올려서 왜안들어가냐 물어보면 답해줄 분들도 없을겁니다
그리고 올려준 소스를 봤을때도 본인이 하고싶은건
특정 변수값에 // 이 포함되면 https 를 붙이고 싶으신거 같은데요
그럼 strpos 를 썼을때 // 의 시작 위치가 0보다 크면 이라고 조건을 해주셔야 합니다
if(stripos($json_data['images'], "http") !== false) $image_set[] = $json_data['images'];
else if(stripos($json_data['images'], "//") === 0) $image_set[] = "https:".$json_data['images'];
else $image_set[] = $domain.$json_data['images'];
위 코드를 보죠
php 절차적 프로그래밍 이니까 위에서 부터 조건을 비교하면서 내려오겠죠 ?
if(stripos($json_data['images'], "http") !== false)
http 가 있으면 그대로 표시하고
else if(stripos($json_data['images'], "//") === 0) //
// 값이 없으면 https 를 붙이고
else
위 2개조건이 다 안맞으면 그대로 출력
이라고 하셨으니
위 샘플 데이터를 봤을때는 당연히 else 값이 실행이되서
$image_set[] 값에 원데이터가 들어갑니다
// 가 있을때 https 를 붙이고 싶으시면
if(stripos($json_data['images'], "http") !== false) $image_set[] = $json_data['images'];
else if(stripos($json_data['images'], "//") > 0) $image_set[] = "https:".$json_data['images'];
else $image_set[] = $domain.$json_data['images'];
이렇게 하셔야 합니다
!-->!-->
해당 배열에 값이 있는지 확인해보셨나요?