-1

データを取得する必要がある XML ドキュメントがあります。基本的にスケジュールを組んでいます。変数 $timeToFind が既にあり、"7:00am" から "10:00pm" まで 30 分ずつインクリメントしています。イベントの時間の長さを計算する方法もあります。

月曜日 (mon) にイベントが見つかったかどうかを $timeToFind で確認する方法を使用する必要があります。見つかった場合は、時刻とタイプを含む div をエコーし​​、そうでない場合は空の div をエコーし​​ます。

$xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?>
<schedule>
    <about>
        <name>Person 1</name>
    </about>
    <daily>
        <mon>
            <event type="work" start="8:00am" end="12:00pm">
                <title>Work at McDonalds</title>
            <description>Go to work and get free food.</description>
            </event>
        <event type="classs" start="12:30pm" end="2:30pm">
            <title>English Class</title>
            <description>Go to English class in Room 219.</description>
        </event>
        </mon>
    </daily>
</schedule>');


$dayStart = 7;
$dayEnd = 22.5;
$hoursInDay = $dayEnd - $dayStart;


for ($i=$dayStart; $i<=$dayEnd; $i+=.5) {

// if it happens to be 1:00 (13), keep the $current variable non-military
if($i >= 13){
    $current = $i-12;
}else {
    $current = $i;
}

// $i >= 12, then it's PM, else AM
if($i >= 12){
    $timeToFind = $timeToFind . "pm";
}else {
    $timeToFind = $timeToFind . "am";
}


$nodes = $xml->xpath(sprintf('/mon/event[@type="%s"]', $timeToFind));

if (!empty($nodes)) {
    printf('Time "%s" found!! <br> ', $timeToFind);
} else {
    printf('Time "%s" Not found. <br> ', $timeToFind);
}
}
4

1 に答える 1

1

「非軍事的な」ハッキングをしないことを強くお勧めします。

ここを見て ください http://www.php.net/manual/en/class.simplexmlelement.php#103614

simplexml を使用して xml データ構造を解析するコードの場合。スケジュール ループを実行する前に、xml を何らかの構造に読み込む必要があります。

HtH

ルース

于 2013-02-05T23:05:36.787 に答える