Ad

Space Proplem In In The Str_replace

I have made a wordpress plugin for image crwaler but i have proplem in this code

so when i print $image i get this output https:// localhost/wordpress

there is a space after https://

i tryed str_replace but did not gone

i want the result https://localhost/wordpress

<?php
    function image_url_filter($url) {
        $url = str_replace('?ssl=1', '', $url);
        $url = str_replace('https://', '', $url);
        $url = str_replace('http://', '', $url);
        $url = str_replace('//', '', $url);
        $url = str_replace('http:', '', $url)
            return "https://{$url}";
        }

    function get_chapter_images() {
        include('simple_html_dom.php');
        $url = 'http://localhost/wordpress/manga/manga-name-ain/chapter-4/';
        $html = file_get_html($url);
        $images_url = array();
        foreach ($html->find('.page-break img') as $e) {
            $image_links = $e->src;
            array_push($images_url, image_url_filter($image_links));
        }
        //print_r($images_url);
        return $images_url;
    }

    $images_links = get_chapter_images();
    foreach ($images_links as $image) {
        print_r($image);
    }
Ad

Answer

%09 and + means you have both tab and space in your string, so you need to use urldecode(), together with str_replace() to fix that:

<?php
    $url = 'https%3A%2F%2F%09%09%09+%09%09%09localhost%2Fwordpress%2Fwp-content%2Fuploads%2FWP-manga%2Fdata%2Fmanga_5e62092804a6d%2Ff6954e41130c0015b5b89a3021d55595%2F12.jpg';
    $url_decode = urldecode($url);
    $url_decode = str_replace(" ", "", $url_decode);
    $url_decode = str_replace("\t", "", $url_decode);
    echo $url_decode;

output:

https://localhost/wordpress/wp-content/uploads/WP-manga/data/manga_5e62092804a6d/f6954e41130c0015b5b89a3021d55595/12.jpg

Note: Don't forget to use double quotas when replacing tab or newline

Ad
source: stackoverflow.com
Ad