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
和 +
意味着你的字符串中同时包含 tab
和 space
,所以你需要使用 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
注意:在替换 tab
或 newline
时不要忘记使用双引号
我已经为 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
和 +
意味着你的字符串中同时包含 tab
和 space
,所以你需要使用 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
注意:在替换 tab
或 newline