Avatar billede Morten Professor
06. oktober 2018 - 09:36 Der er 5 kommentarer

getimagesize()

Hej Eksperter

Har et problem med at få vist nogle varer, jeg har nogen billeder som skal vises hvis der er et billede, der har den størrelse jeg forspøger, ved det er lidt mærkeligt jeg er nød til at gøre sådan, men alle billeder er komprimeret i forvejen, og vil ikke til at lave billederne igen. har over 5000 billeder.
Og derfor er jeg ved at finde en løsning, det virker næsten oplever desværre fejl. den siger:

Warning: getimagesize(http://localhost:8080/skjultlink/wp-content/uploads/2018/07/OY_15106662-Green-F0918-300x376.jpg): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in

Ved godt filen ikke er der, men derfor skal den bare gå til næste.
Og ikke blive ved med at forspøger og derfor lave fejl.

Jeg kan få vist nogle billeder jeg ved er der og med den billede størrelse.
Så det virker, men laver fejl, og derfor kan jeg ikke bruge det på siden, uden den går ned.
Det hele forgår i et loop(gentager processen) det er wordpress woocommerce jeg leger med.

add_filter( 'post_thumbnail_html', 'pn_change_product_image_link', 50, 4 );


function pn_change_product_image_link() {
    $saved_post_id = $post->ID;
    $image = wp_get_attachment_url( get_post_thumbnail_id( $saved_post_id ) );
    $file300x376 = trim($image, ".jpg") .'-300x376.jpg';
    $file300x375 = trim($image, ".jpg") .'-300x375.jpg';
    $file300x374 = trim($image, ".jpg") .'-300x374.jpg';
    $getImageInfo300x376 = getimagesize($file300x376);
    $getImageInfo300x375 = getimagesize($file300x375);
    $getImageInfo300x374 = getimagesize($file300x374);
   
        if ( $getImageInfo300x376[1] == 376 ) {
        echo '<img src="'. $file300x376 .'">';     
    }
    elseif ( $getImageInfo300x375[1] == 375 ) {
        echo '<img src="'. $file300x375 .'">';
        }
    elseif ( $getImageInfo300x374[1] == 374 ) {
        echo '<img src="'. $file300x374 .'">';
        }
    elseif ( strpos($image, 'png') == true ) {
        echo '<img src="'. $image .'">';
   
}
}

Håber der er en der kan hjælpe.
Vil så gerne videre med det.
Avatar billede acore Ekspert
06. oktober 2018 - 16:50 #1
Hvad med noget i stil med

$getImageInfo300x375 = (file_exists($file300x375)? getimagesize($file300x375): 0);

i stedet for

$getImageInfo300x375 = getimagesize($file300x375);

Rettes i alle 3 linier
Avatar billede Morten Professor
06. oktober 2018 - 19:32 #2
Hej Acore

Jeg prøvede lige den, viser ingen billeder nu. Mærkeligt For billederne er der.
Den kan bare ikke finde dem nu.
Avatar billede expnet Seniormester
07. oktober 2018 - 11:28 #3
Prøv lige at lave en print_r($image) ;
Under denne linje    $image = wp_get_attachment_url( get_post_thumbnail_id( $saved_post_id ) );

Også send output her ind
Avatar billede Morten Professor
07. oktober 2018 - 13:23 #4
content/uploads/2018/09/TH_KB0KB04306-073-M0818.jpg
Den kommer med url til billedet

Det jeg så har gjort er at trim den ved jpg og tilføjet feks.: 300x375.jpg
For at få vist det rigtige billede som jeg vil have.
Og det virkede fint, men så når jeg har flere getimagesize hvor nogle ikke er der fordi billedet ikke er der fejler den med den fejl i stedet for bare at lade det være.
Avatar billede Morten Professor
07. oktober 2018 - 13:56 #5
print_r($getImageInfo300x375); kommer output med 0
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester