我正在尝试使用 curl 编写一个简单的脚本,但问题是我需要收集在每个新的 POST 请求(onLoad()
)上生成的特殊密钥。通过创建一个新的 DOM 元素并使用 DOM 中的 GetElementById 函数获取值,可以很容易地传递问题,但是在这种情况下,在我想要返回值的特定标记中没有声明“id”。只有一个名字。
例子:
<input name="trans_id" value="Lk+Vz957skV845b7x2DX7iyR1FI=" type="hidden">
下面是我今天做的一个伪代码(最后一段是我需要帮助的地方):
<?php
// Author : me
// Date : 10.11.2013.
?>
<?php
// Declaring variables :)
$data_string = '';
$url = 'http://www.website.com';
$uagent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6';
// Declaring variables for e-pay
$url2 = 'http:/website2.com';
...
$exChar = '|';
$exStr = '';
$exStr = Explode($exChar, $_POST['ccep']);
$data = array (
"email" => '',
...
"submitFromInputForm" => 'Next',
);
foreach($data as $key=>$value) { $data_string .= $key.'='.$value.'&'; }
rtrim($data_string, '&');
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, $uagent);
curl_setopt ($ch, CURLOPT_POST, count($data));
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data_string);
$result = curl_exec ($ch);
print($result);
// ====================================================================
// Need help with this function
$check = strpos($result, 'Confirmation');
if ($check == True) {
$doc = new DOMDocument();
@$doc->loadHTML($result);
$id = $doc->getElementsByName('trans_id');
echo 'Value:' . $id;
}
// ====================================================================
curl_close($ch);
?>
但老实说,我无法从该函数中获得结果,因为它不存在。谷歌搜索只能帮助我删除结果以使用 getElementsByTagName ,在阅读 PHP 官方的文档后,它不能解决我的问题。
最后的注释:我不想包含任何 Javascripting,只包含纯 PHP。
提前谢谢你,
问候。