0

PHP関数に慣れようとしていますSimpleXMLが、少し助けていただければ幸いです。コール センターの受信通話の更新を取得し、現在の日付からの新しい受信通話のみを結合文字列に追加しています。cronjob を介して 10 分ごとにこれを実行し、結合された文字列を 1 日かけて成長させる必要があります。

これが私がXML働いているものです:

<?xml version="1.0" encoding="ISO-8859-1"?>
<received>
  <call>
    <countryCode>46</countryCode>
    <phoneNumber>4386541313</phoneNumber>
    <name>Unavailable</name>
    <time>2012-12-05T08:41:29.863Z</time>
  </call>
  ...
</received>


私がやりたいことは、ループですべてphoneNumbertime要素を抽出しforeach、それらを文字列としてコンマ区切りの文字列に追加することです。

文字列は次のようになります。

From the above xml example 4386541313-2012-12-05T08:41:29.863Z
Or phoneNumber-time


コンマ区切りの文字列は次のようになります。

4386541313-2012-12-05T08:41:29.863Z,1186111311-2012-12-03T08:11:21.561Z,...


しかし、現在の日付からの文字列をカンマ区切りのリストIFに追加したいだけです。timestamp

これが私が持っているものですが、それほど多くはなく、これが私が望むことを行うための最良の方法であるかどうかはわかりません:

$date_today = date('Y-m-d');
$combined_string = "4386541313-2012-12-05T08:41:29.863Z,1186111311-2012-12-03T08:11:21.561Z";

$received = simplexml_load_file('thexmlfile.xml');

foreach ($received->call->phoneNumber as $phoneNumber) { 
    foreach ($received->call->time as $time) {

        $new_call = $phoneNumber."-".$time;

        if(strpos($new_call,$date_today) !== false)
                    {
            $combined_string = $new_call.",".$combined_string;
        } 
    }
}

上記は、エラーのない空白のページを返します。

4

1 に答える 1

1

次のようなものを試してみたいかもしれません:

foreach ($received->call as $call) { 
    $new_call = $call->phoneNumber . "-" . $call->time;
    if(strpos($new_call,$date_today) !== false) {
        $combined_string = $new_call.",".$combined_string;
    } 
}

于 2012-12-05T12:19:17.217 に答える