이미지 배열에 https 값이 안들어가는데요

이미지 배열에 https 값이 안들어가는데요

QA

이미지 배열에 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'];

 

이렇게 하셔야 합니다

 

 

[Image] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack1_07ddb115-1fd6-4211-bb2c-f4c7006f7cf4.jpg?v=1616467712
                                    [ImageSet] => Array
                                        (
                                            [0] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack1_07ddb115-1fd6-4211-bb2c-f4c7006f7cf4.jpg?v=1616467712
                                            [1] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack2.jpg?v=1616467712
                                            [2] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack3.jpg?v=1616467712
                                            [3] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack4.jpg?v=1616467712
                                            [4] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack5.jpg?v=1616467712
                                            [5] => //cdn.shopify.com/s/files/1/1770/9541/products/NikeAirZoomReactBlack6.jpg?v=1616467712
                                        )

했는데도 안되네요 원래 되는 소스인데 이상하네요

해당 배열에 값이 있는지 확인해보셨나요?

답변을 작성하시기 전에 로그인 해주세요.
전체 125,888 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT