테스트 사이트 - 개발 중인 베타 버전입니다

이미지 배열에 https 값이 안들어가는데요 채택완료

GST1 3년 전 조회 1,000

[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개

채택된 답변
+20 포인트

우선 전체소스도 올리지 않고 본인만 알수있게 일부분만 올려서 왜안들어가냐 물어보면 답해줄 분들도 없을겁니다

 

그리고 올려준 소스를 봤을때도 본인이 하고싶은건

 

특정 변수값에 // 이 포함되면 https 를 붙이고 싶으신거 같은데요 

 

그럼 strpos 를 썼을때 // 의 시작 위치가 0보다 크면 이라고 조건을 해주셔야 합니다

 

</p>

<p>                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'];</p>

<p>

위 코드를 보죠 

php 절차적 프로그래밍 이니까 위에서 부터 조건을 비교하면서 내려오겠죠 ?

if(stripos($json_data['images'], "http") !== false)

http 가 있으면 그대로 표시하고

else if(stripos($json_data['images'], "//") === 0) // 

// 값이 없으면 https 를 붙이고

else

위 2개조건이 다 안맞으면 그대로 출력

 

이라고 하셨으니

 

위 샘플 데이터를 봤을때는 당연히 else 값이 실행이되서 

$image_set[] 값에 원데이터가 들어갑니다

 

// 가 있을때 https 를 붙이고 싶으시면 

</p>

<p>                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'];</p>

<p>

 

이렇게 하셔야 합니다

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

G
GST1
3년 전
[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
)

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

댓글을 작성하려면 로그인이 필요합니다.

하틴
3년 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

G
GST1
3년 전
배열값은 있다고 출력되네요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인