请帮我弄清楚什么PHP API或PHP脚本应该我用从DHL the shipment statuses获得只有可用的DHL Tracking Codes由物流公司提供,履行我们的订单从电子商务网站的航运。我的任务是创建一个PHP CronJob代码,将检查和注册DHL跟踪航运的状态,在后端报告中使用它们。我将非常感谢任何可能帮助我找到正确方向的建议。
the shipment statuses
DHL Tracking Codes
3ks5zfa01#
我仍然在寻找正确的方法来完成我的任务。到目前为止,我没有看到其他方法比分析DHL跟踪网页考虑只有跟踪号码可用,这似乎是不够的使用他们的一些API。DHL API需要登录凭据,密钥等...然而,我目前的解析代码可能对寻找类似解决方案的人有用。只要包含您的跟踪代码,并在您的本地主机或甚至http://phpfiddle.org/上运行代码:
$tracking_array=Array('000000000000', '1111111111111'); // Tracking Codes function create_track_url($track) { $separator = '%2C+'; $count = count($track); $url = ''; if ($count < 2 && $count > 0){ $url = $track[0]; }else if ($count >1){ foreach ($track as $k => $v) { $sep = ($count-2); if ($k > $sep){ $separator =''; } $url .= $v.$separator; } } return $url; } //load the html $dom = new DOMDocument(); $html = $dom->loadHTMLFile("https://nolp.dhl.de/nextt-online-public/en/search?piececode=".create_track_url($tracking_array)); //discard white space $dom->preserveWhiteSpace = false; //the table by its tag name $xpath = new DOMXpath($dom); $expression = './/h2[contains(@class, "panel-title")]'; $track_codes =array(); foreach ($xpath->evaluate($expression) as $div) { $track_codes[]= preg_replace( '/[^0-9]/', '', $div->nodeValue ); } $tables = $dom->getElementsByTagName('table'); $table = array(); foreach($track_codes as $key => $val) { //get all rows from the table $rows = $tables->item($key)->getElementsByTagName('tr'); // get each column by tag name $cols = $rows->item($key)->getElementsByTagName('th'); $row_headers = NULL; foreach ($cols as $node) { //print $node->nodeValue."\n"; $row_headers[] = $node->nodeValue; } //get all rows from the table $rows = $tables->item(0)->getElementsByTagName('tr'); foreach ($rows as $row) { // get each column by tag name $cols = $row->getElementsByTagName('td'); $row = array(); $i=0; foreach ($cols as $node) { # code... //print $node->nodeValue."\n"; if($row_headers==NULL) $row[] = $node->nodeValue; else $row[$row_headers[$i]] = $node->nodeValue; $i++; } $table[$val][] = $row; } } print '<pre>'; print_r($table);
1条答案
按热度按时间3ks5zfa01#
我仍然在寻找正确的方法来完成我的任务。到目前为止,我没有看到其他方法比分析DHL跟踪网页考虑只有跟踪号码可用,这似乎是不够的使用他们的一些API。DHL API需要登录凭据,密钥等...然而,我目前的解析代码可能对寻找类似解决方案的人有用。只要包含您的跟踪代码,并在您的本地主机或甚至http://phpfiddle.org/上运行代码: