Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中以textarea格式发送xml文件_Php_Html_Xml_Curl - Fatal编程技术网

在PHP中以textarea格式发送xml文件

在PHP中以textarea格式发送xml文件,php,html,xml,curl,Php,Html,Xml,Curl,我需要将位于服务器上的xml文件的内容发送到文本表单。 我尝试在PHP中使用curl方法,但我不知道如何从xml文件中读取内容并将其保存到变量。怎么了 这里PHP代码: if ($model->getSOrderStatuses()->id == 1) { $xml = new XMLWriter(); $xml->openMemory(); $xml->openURI('uploads/files/orders.xml'); $xml->startDocument

我需要将位于服务器上的xml文件的内容发送到文本表单。 我尝试在PHP中使用curl方法,但我不知道如何从xml文件中读取内容并将其保存到变量。怎么了

这里PHP代码:

if ($model->getSOrderStatuses()->id == 1) {
$xml = new XMLWriter();
$xml->openMemory();
$xml->openURI('uploads/files/orders.xml');
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement("order"); //start root
$xml->writeElement("id", $model->getId());
$xml->writeElement("date", gmdate("Y-m-d\/H:i:s", $model->getDateCreated()));
$xml->writeElement("customer", $model->getUserFullName());
$xml->writeElement("phone", $model->getUserPhone());
$xml->writeElement("email", $model->getUserEmail());
$xml->writeElement("delivery_type", $model->getSDeliveryMethods()->getId());
$xml->writeElement("delivery_adress", $model->getUserDeliverTo());
$xml->writeElement("payment_type", $model->getSPaymentMethods()->getId());
$xml->writeElement("comment", $model->getUserComment());
$xml->startElement("products");  //open element
foreach ($model->getSOrderProductss() as $sOrderProduct) {
$total = $total + $sOrderProduct->getQuantity() * $sOrderProduct->toCurrency();
$product = $sOrderProduct->getSProducts();
$xml->startElement("row");       //open element
$xml->writeAttribute("code", $product->getUrl());
$xml->writeAttribute("qty", $sOrderProduct->getQuantity());
$xml->writeAttribute("price", $sOrderProduct->toCurrency());
$xml->writeAttribute("sum", $sOrderProduct->getQuantity() * $sOrderProduct-    >toCurrency());
$xml->endElement();  //close element
}
$xml->endElement();  //close element
$xml->writeElement("sum", my_money_format('',$total));
$xml->endElement();  //close root
$xml->flush();
$xmlorder = 'uploads/files/orders.xml';
$ch = curl_init('http://pathtomyserver/?action=newor');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlorder);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
echo($xmlorder);
$info=curl_getinfo($ch);  
curl_close($ch);
}
}
表格:

if ($model->getSOrderStatuses()->id == 1) {
$xml = new XMLWriter();
$xml->openMemory();
$xml->openURI('uploads/files/orders.xml');
$xml->startDocument('1.0', 'UTF-8');
$xml->startElement("order"); //start root
$xml->writeElement("id", $model->getId());
$xml->writeElement("date", gmdate("Y-m-d\/H:i:s", $model->getDateCreated()));
$xml->writeElement("customer", $model->getUserFullName());
$xml->writeElement("phone", $model->getUserPhone());
$xml->writeElement("email", $model->getUserEmail());
$xml->writeElement("delivery_type", $model->getSDeliveryMethods()->getId());
$xml->writeElement("delivery_adress", $model->getUserDeliverTo());
$xml->writeElement("payment_type", $model->getSPaymentMethods()->getId());
$xml->writeElement("comment", $model->getUserComment());
$xml->startElement("products");  //open element
foreach ($model->getSOrderProductss() as $sOrderProduct) {
$total = $total + $sOrderProduct->getQuantity() * $sOrderProduct->toCurrency();
$product = $sOrderProduct->getSProducts();
$xml->startElement("row");       //open element
$xml->writeAttribute("code", $product->getUrl());
$xml->writeAttribute("qty", $sOrderProduct->getQuantity());
$xml->writeAttribute("price", $sOrderProduct->toCurrency());
$xml->writeAttribute("sum", $sOrderProduct->getQuantity() * $sOrderProduct-    >toCurrency());
$xml->endElement();  //close element
}
$xml->endElement();  //close element
$xml->writeElement("sum", my_money_format('',$total));
$xml->endElement();  //close root
$xml->flush();
$xmlorder = 'uploads/files/orders.xml';
$ch = curl_init('http://pathtomyserver/?action=newor');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlorder);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HEADER,0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
echo($xmlorder);
$info=curl_getinfo($ch);  
curl_close($ch);
}
}
>>链接

您可以使用此

$xml = file_get_contents("path/to/xml.xml");
然后简单地输出到textarea

<textarea name="xml"><?php echo $xml; ?>


提交表单时,没有“文本字段”、“文本区域”、“收音机”、“复选框”等内容。。。只有键=值对。由于您的textarea名为
xml
,您需要在此处提交
xml=your_xml_data_goes_
以澄清:您希望您的php脚本发送http请求,就好像xml文档的(内容)已粘贴到textarea并在浏览器中提交表单一样?扼杀足够表单标签立即关闭-文本区域不是表单的子项:
哦,顺便说一句:无意冒犯,只是:
@VolkerK不,它不是主页,只是我们的ERP/CRM系统用于数据交换的特殊页面:)没有提到主页。Claris主页是一个用于编辑html文档(如FrontPage)的工具
x-sas-window
只是它的“足迹”之一。请参阅此表单位于另一台服务器上。当在文本区域输出内容时,我会得到错误的字符,如。如何解决这个问题?