从表单字段加载XML?

时间:2015-01-13 21:23:14

标签: php xml get

我有一个像这样解析XML的代码

 $xml->load("https://mywebsite.com/api.php");

我有一个隐藏字段,在隐藏字段(curl_url_string)中有上面的url已经如何加载基于该字段的XML?

像这样?或类似的

$xml->load('$curl_url_string');

我该怎么做?

2 个答案:

答案 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}}