gpt4 book ai didi

php - 如何转义 fopen 的 url

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:33 26 4
gpt4 key购买 nike

看起来 fopen 无法打开带空格的文件。例如:

$url = 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg';
fopen($url, 'r');

返回 false(注意 url 中的空格),但浏览器可以访问文件。我还尝试通过 urlencoderawurlencode 转义 url,但没有成功。如何正确逃避空间?

最佳答案

您可以使用此代码:

$arr = parse_url ( 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg' );
$parts = explode ( '/', $arr['path'] );
$fname = $parts[count($parts)-1];
unset($parts[count($parts)-1]);
$url = $arr['scheme'] . '://' . $arr['host'] . join('/', $parts) . '/' . urlencode ( $fname );
var_dump( $url );

替代和更短的答案(感谢@Dziamid)

$url = 'http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main 616x200.jpg';
$parts = pathinfo($url);
$url = $parts['dirname'] . '/' . urlencode($parts['basename']);
var_dump( $url );

输出:

string(76) "http://gatewaypeople.com/images/articles/cntrbutnssttmnts12_main+616x200.jpg"

关于php - 如何转义 fopen 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801280/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com