[英]how to pass dynamic URL to curl in php - getting error 1
我正在嘗試使用 function 將 $url 傳遞給 curl。URL 是通過以下方法構建的,其中包含一個變量:
a.php // main page, include (a.php, b.php)
b.php // dynamic string function
c.php // curl function
我使用會話數據成功構建了一個動態字符串 // $_SESSION["input"] myDynamicstringfunction 通過多個會話輸入值設置一個字符串。
$dval = myDynamicstringfunction();
echo $dval;
// render correctly to: "-e5 -g6 -g7"
$dval 值是一個按預期解析的字符串。 $url 是:
$url = "https://someurl.com/a/b?dc=-cv1.5 -a1 -b2 -c3 -d4 $dval";
$url 正確呈現
echo $url;
$url = "https://someurl.com/a/b?dc=-cv1.5 -a1 -b2 -c3 -d4 -e5 -g6 -g7";
我使用以下方法將 $url 傳遞給 curl function:
$r = mycUrlfunction($url);
我使用的 curl function:
function singleRequest($url){
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
$curly = curl_exec($ch);
if ($curly == FALSE){
die("cURL Error: " . curl_error($ch));
}
$result = json_decode($curly, true);
// close cURL resource, and free up system resources
curl_close($ch);
echo '<pre>';
return ($result);
}
上面給我一個錯誤 (curl 1) - CURLE_UNSUPPORTED_PROTOCOL (1)
我已經嘗試了很多方法來讓 $url 工作但沒有成功。 如果我像這樣在沒有 $dval 變量的情況下手動設置 $url 值:
$url = "https://someurl.com/a/b?dc=-cv1.5 -a1 -b2 -c3 -d4 -e5 -g6 -g7";
代碼工作正常,我從 API 調用中得到了正確的結果。 我嘗試使用不同的引號、{}、[]、編碼為 ASCII、vprintf() 和其他解決方案,但均未成功。
問題在於構造最初使用的 URL 的動態變量$dynamicstring
$dynamicstring= "-a" . $_SESSION["a"]." -b".$_SESSION['b']." -c".$_SESSION['c']." -d".$_SESSION['d']."<br>";
這有一些問題
"<br>"
構造$dynamicstring
的正確方法是使用 {}
$dynamicstring= "-a{$_SESSION["a"]} -b{$_SESSION['b']} -c{$_SESSION['c']} -d{$_SESSION['d']}";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.