space str_replace 中的问题

space proplem in in the str_replace

我已经为 image crwaler 制作了一个 wordpress 插件,但我在这段代码中遇到了问题

所以当我打印 $image 时我得到这个输出 https:// localhost/wordpress

https://

后面有个space

我尝试了 str_replace 但没有成功

我想要结果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);
    }

%09+ 意味着你的字符串中同时包含 tabspace,所以你需要使用 urldecode(),连同 str_replace() 解决这个问题:

<?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;

输出:

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

注意:在替换 tabnewline

时不要忘记使用双引号