php - 如何在 cURL 中管理带有特殊字符的 URL?
问题描述
我想知道在使用 cURL 时如何管理带有特殊字符的 URL。在下面的代码示例中,我实现了一个返回 url 的 HTTP 响应代码的函数
(注意。我知道还有其他方法可以获取响应代码,但这只是为了说明 URL 中特殊字符的问题)
<?php
function get_http_code($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_exec($ch);
return curl_getinfo($ch, CURLINFO_HTTP_CODE);
}
// urlA has a special character 'â'
$urlA = "https://media.winefinder.com/upload/artiklar/bilder/KSU128248-1-Domaine-de-Ferrand-Châteauneuf-du.jpg";
// urlB has no special charactes
$urlB = "https://media.winefinder.com/upload/artiklar/bilder/A129749-1-Domaine-Lafage-Princesse-2019.png";
echo "<div>Code A = " . get_http_code($urlA) . "</div>"; // --> 404
echo "<div>Code B = " . get_http_code($urlB) . "</div>"; // --> 200
?>
两个 url 都存在,但由于 url 中的特殊字符,第一个返回 404(未找到)。如何将 URL 转换为将返回 200 的编码 URL?我已经尝试过urlencode()
,rawurlencode()
等等,但我无法让它工作。
PS。我试图在 SO 找到类似的问题,但在这里找不到任何对我有帮助的问题......
解决方案
推荐阅读
- angular - 如何在 Firebase 实时数据库(Angular)中仅获取()多个更新值
- google-apps-script - 如何保持值 1 并在每次看到时加 1?
- laravel - 找不到图片来源
- excel - 带有条件“或”的 Excel VlookUp 函数
- apache-spark - 如何检查 reduceByKey 在 spark-streaming 中是否有效执行
- angular - 在 Angular 7 应用程序中使用 svg.js 插件时出现 Prod 构建错误
- android - 尝试将位置坐标从列表视图传递到地图活动时出错
- angular - 使用打字稿模型类时将条件替换为多态
- php - 将常量数组转换为常量字符串
- python - 如何减小数据框的大小?