我有一个像这样解析XML的代码
$xml->load("https://mywebsite.com/api.php");
我有一个隐藏字段,在隐藏字段(curl_url_string)中有上面的url已经如何加载基于该字段的XML?
像这样?或类似的$xml->load('$curl_url_string');
我该怎么做?
答案 0 :(得分:0)
$xmlString = file_get_contents("http://example.com/webservices/xml.php")
... // do $xmlString validations here
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadXML($xmlString);
答案 1 :(得分:0)
这非常危险,因为最终用户可以更改加载的URL,因此请自担风险。
为了让您的代码按原样运行,这应该可以解决问题:
$curl_url_string = $_REQUEST['curl_url_string'];
$xml->load($curl_url_string);
根据您使用的格式(GET与POST),您可以使用$_GET
或$_POST
代替$_REQUEST
(其中包含$_GET
和$_POST
的内容$curl_url_strings = array(
"api1" => "https://www.example.com/api1.php",
"api2" => "https://www.example.com/api2.php"
);
$curl_url_key = $_REQUEST['curl_url_key'];
if(array_key_exists($curl_url_key, $curl_url_strings)) {
$curl_url_string = $curl_url_strings[$curl_url_key];
$xml->load($curl_url_string);
} else {
// Invalid URL key provided - show an error?
}
)
更好的方法是获取有效网址列表,并在隐藏字段中引用它们;类似的东西:
{{1}}