Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




get_images_from_uri [ WordPress Function ]

get_images_from_uri ( $uri )
Parameters:
  • (string) $uri
Returns:
  • (string)
Defined at:



Retrieve all image URLs from given URI.

Source


<?php
function get_images_from_uri($uri) {
            
$uri preg_replace('/\/#.+?$/',''$uri);
            if ( 
preg_match('/\.(jpg|jpe|jpeg|png|gif)$/'$uri) && !strpos($uri,'blogger.com') )
                return 
"'" esc_attrhtml_entity_decode($uri) ) . "'";
            
$content wp_remote_fopen($uri);
            if ( 
false === $content )
                return 
'';
            
$host parse_url($uri);
            
$pattern '/<img ([^>]*)src=(\"|\')([^<>\'\"]+)(\2)([^>]*)\/*>/i';
            
$content str_replace(array("\n","\t","\r"), ''$content);
            
preg_match_all($pattern$content$matches);
            if ( empty(
$matches[0]) )
                return 
'';
            
$sources = array();
            foreach (
$matches[3] as $src) {
                
// if no http in url
                
if (strpos($src'http') === false)
                    
// if it doesn't have a relative uri
                    
if ( strpos($src'../') === false && strpos($src'./') === false && strpos($src'/') === 0)
                        
$src 'http://'.str_replace('//','/'$host['host'].'/'.$src);
                    else
                        
$src 'http://'.str_replace('//','/'$host['host'].'/'.dirname($host['path']).'/'.$src);
                
$sources[] = esc_url($src);
            }
            return 
"'" implode("','"$sources) . "'";
        }
        
$url wp_kses(urldecode($url), null);
        echo 
'new Array('.get_images_from_uri($url).')';
        break;

    case 
'photo_js'?>
        // gather images and load some default JS
        var last = null
        var img, img_tag, aspect, w, h, skip, i, strtoappend = "";
        if(photostorage == false) {
        var my_src = eval(
            jQuery.ajax({
                type: "GET",
                url: "<?php echo esc_url($_SERVER['PHP_SELF']); ?>",
                cache : false,
                async : false,
                data: "ajax=photo_images&u=<?php echo urlencode($url); ?>",
                dataType : "script"
            }).responseText
        );
        if(my_src.length == 0) {
            var my_src = eval(
                jQuery.ajax({
                    type: "GET",
                    url: "<?php echo esc_url($_SERVER['PHP_SELF']); ?>",
                    cache : false,
                    async : false,
                    data: "ajax=photo_images&u=<?php echo urlencode($url); ?>",
                    dataType : "script"
                }).responseText
            );
            if(my_src.length == 0) {
                strtoappend = '<?php _e('Unable to retrieve images or no images on page.'); ?>';
            }
        }
        }
        for (i = 0; i < my_src.length; i++) {
            img = new Image();
            img.src = my_src[i];
            img_attr = 'id="img' + i + '"';
            skip = false;

            maybeappend = '<a href="?ajax=photo_thickbox&amp;i=' + encodeURIComponent(img.src) + '&amp;u=<?php echo urlencode($url); ?>&amp;height=400&amp;width=500" title="" class="thickbox"><img src="' + img.src + '" ' + img_attr + '/></a>';

            if (img.width && img.height) {
                if (img.width >= 30 && img.height >= 30) {
                    aspect = img.width / img.height;
                    scale = (aspect > 1) ? (71 / img.width) : (71 / img.height);

                    w = img.width;
                    h = img.height;

                    if (scale < 1) {
                        w = parseInt(img.width * scale);
                        h = parseInt(img.height * scale);
                    }
                    img_attr += ' style="width: ' + w + 'px; height: ' + h + 'px;"';
                    strtoappend += maybeappend;
                }
            } else {
                strtoappend += maybeappend;
            }
        }

        function pick(img, desc) {
            if (img) {
                if('object' == typeof jQuery('.photolist input') && jQuery('.photolist input').length != 0) length = jQuery('.photolist input').length;
                if(length == 0) length = 1;
                jQuery('.photolist').append('<input name="photo_src[' + length + ']" value="' + img +'" type="hidden"/>');
                jQuery('.photolist').append('<input name="photo_description[' + length + ']" value="' + desc +'" type="hidden"/>');
                insert_editor( "\n\n" + encodeURI('<p style="text-align: center;"><a href="<?php echo $url?>"><img src="' + img +'" alt="' + desc + '" /></a></p>'));
            }
            return false;
        }

        function image_selector(el) {
            var desc, src, parent = jQuery(el).closest('#photo-add-url-div');

            if ( parent.length ) {
                desc = parent.find('input.tb_this_photo_description').val() || '';
                src = parent.find('input.tb_this_photo').val() || ''
            } else {
                desc = jQuery('#tb_this_photo_description').val() || '';
                src = jQuery('#tb_this_photo').val() || ''
            }

            tb_remove();
            pick(src, desc);
            jQuery('#extra-fields').hide();
            jQuery('#extra-fields').html('');
            return false;
        }

        jQuery('#extra-fields').html('<div class="postbox"><h2><?php _e'Add Photos' ); ?> <small id="photo_directions">(<?php _e("click images to select"?>)</small></h2><ul class="actions"><li><a href="#" id="photo-add-url" class="button"><?php _e("Add from URL"?> +</a></li></ul><div class="inside"><div class="titlewrap"><div id="img_container"></div></div><p id="options"><a href="#" class="close button"><?php _e('Cancel'); ?></a><a href="#" class="refresh button"><?php _e('Refresh'); ?></a></p></div>');
        jQuery('#img_container').html(strtoappend);
        <?php break;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics