如何在PHP中从URL中获取字符串
我使用curl通过API获取了一组数据,代码如下:如何在PHP中从URL中获取字符串,php,string,url,curl,Php,String,Url,Curl,我使用curl通过API获取了一组数据,代码如下: function query($connectorGuid, $input, $userGuid, $apiKey, $additionalInput) { $url = "https://api.import.io/store/connector/" . $connectorGuid . "/_query?_user=" . urlencode($userGuid) . "&_apikey=" . urlenco
function query($connectorGuid, $input, $userGuid, $apiKey, $additionalInput) {
$url = "https://api.import.io/store/connector/" . $connectorGuid . "/_query?_user=" . urlencode($userGuid) . "&_apikey=" . urlencode($apiKey);
$data = array("input" => $input);
if ($additionalInput) {
$data["additionalInput"] = $additionalInput;
}
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result, true);
}
// Query for tile Bundesliga Stats
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => "http://some_url.com/results_name/1234",
), $userGuid, $apiKey, false);
var_dump($result);
}
我发布了完整的代码以备不时之需,但我真正需要的是最后一部分:
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => "http:/some_url.com/result_name/1234",
), $userGuid, $apiKey, false);
有没有办法将URL设置为一个变量,然后将URL的“result\u name”部分设置为另一个变量?您发布了以下内容:
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => "http://some_url.com/result_name/1234",
), $userGuid, $apiKey, false);
但接着问这个问题:
有没有办法把URL设置成一个变量
然后将URL的“result\u name”部分设置为另一个变量
你不能做这样的事情有什么原因吗:
$URL/$result_name/1234
因此,您的代码类似于:
$URL = "http://some_url.com";
$result_name = "result_name";
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => "$URL/$result_name/1234",
), $userGuid, $apiKey, false);
或者,这可能是为了更容易理解:
$URL = "http://some_url.com";
$result_name = "result_name";
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => $URL . "/" . $result_name . "/1234",
), $userGuid, $apiKey, false);
或者,嘿,看看那个1234
。URL有很多部分。那么,为什么不这样做呢:
// Create a URL array for all of the parts.
$URL_array = array();
$URL_array[] = "some_url.com";
$URL_array[] = "result_name";
$URL_array[] = "1234";
// Then set the result and use `implode` to create a coherent string from that URL array.
$result = query("73df0478-4e6e-4f78-9ab5-f9866ac7a531", array(
"webpage/url" => "http://" . implode("/", $URL_array),
), $userGuid, $apiKey, false);
有没有一个原因让你不能这样做:
“http://$URL/$result\u name/1234”
?是的,我同意@JakeGould,类似于$input=array(“webpage/URL”=>“http://$URL/$result\u name/1234”
然后调用$result=query(“73df0478-4e6e-4f78-9ab5-f9866ac7a531”、$input、$userGuid、$apiKey、false)
。我明白你的意思。不过,我有大约100个这样的任务要做,每个任务都有不同的“结果名称”,所以我想从每个url中提取出来。这有意义吗?