2012-09-10 31 views
-1

,则用PHP读取XML文件所以,我试图创建一个页面来读取特定日期的特定XML文件。 我有这个问题,所有的帮助将不胜感激。如果日期为

这是我的XML文件的结构:

<?xml version="1.0" encoding="iso-8859-1"?> 
<excercises> 
    <excercise> 
     <name>Test</name> 
    <sr></sr> 
    <weight>25kg</weight> 
    <comment>Testing</comment> 
    </excercise> 
    <excercise> 
    <name>Test II</name> 
    <sr></sr> 
    <weight>250kg</weight> 
    <comment>Testing more</comment> 
    </excercise> 
</excercises> 

这里是我的PHP代码:

<?php $month = mktime("m"); ?> 
<?php $weekday = mktime("weekday"); ?> 

<?php 
$doc = new DOMDocument(); 

if ($month == "01","03","05","07","09","11") && ($weekday == "Monday") { 
    $doc->loadXML('resourceMon.xml'); } 
if ($month == "01","03","05","07","09","11") && ($weekday == "Tuesday") { 
    $doc->load('resourceTue.xml'); } 
if ($month == "01","03","05","07","09","11") && ($weekday == "Thursday") { 
    $doc->load('resourceThu.xml'); } 
if ($month == "01","03","05","07","09","11") && ($weekday == "Friday") { 
    $doc->load('resourceFri.xml'); } 

if ($month == "02","04","06","08","10","12") && ($weekday == "Monday") { 
    $doc->load('resourceMon.xml'); } 
if ($month == "02","04","06","08","10","12") && ($weekday == "Tuesday") { 
    $doc->load('resourceTue.xml'); } 
if ($month == "02","04","06","08","10","12") && ($weekday == "Thursday") { 
    $doc->load('resourceThu.xml'); } 
if ($month == "02","04","06","08","10","12") && ($weekday == "Friday") { 
    $doc->load('resourceFri.xml'); } 

else { echo "This day is not a right day to workout!"; } 


$xpath = new DOMXPath($dom); 


$root=$doc->documentElement; 

$excercises = $dom->getElementsByTagName("excercise"); 
foreach($excercises as $excercise) { 
    $names = $excercise->getElementsByTagName("name"); 
    $name = $names->item(0)->nodeValue; 

    $sr = $excercise->getElementsByTagName("sr"); 
    $sr = $sr->item(0)->nodeValue; 

    $weights= $excercise->getElementsByTagName("weight"); 
    $weight= $weights->item(0)->nodeValue; 

    $comments = $excercise->getElementsByTagName("comment"); 
    $comment = $comments->item(0)->nodeValue; 

    echo "<tr><td><b>$name</b></td><td>$sr</td><td>$weight</td><td><i>$comment</i></td></tr>"; 

    } 
?> 

+1

那你到底有什么问题呢? – nageeb

回答

0

首先,阅读文档mktime。它根本不像你如何使用它。

其次,$foo == "01", "02", ...是无稽之谈。如果您需要此类比较,请使用in_array

第三,你是在过于复杂的事情。这样做:

$file = 'resource' . date('D') . '.xml'; 

$doc->loadXML($file); 

switch (date('N')) { 
    case 1 : 
     $file = 'resourceMon.xml'; 
     break; 
    case 2 : 
     ... 
    default : 
     return false; 
} 

$doc->loadXML($file); 
0

您可以编写条件这样

if (($month == "01" || $month =="03" || $month =="05" || $month =="07" || $month =="09" || $month =="11")) && ($weekday == "Monday") { 
    $doc->loadXML('resourceMon.xml'); } 
0

mktime返回unix timesta MP

你需要使用所有的date()

date('l') // returns Monday, Tuesday, Wednesday etc. 
date('m') // returns month in two digits, 01, 02, 03 etc. 
0

1)使用日期()代替mktime。
2)使用load()而不是loadXML。
3)制造阵列和使用in_array找到特定月份的数组中的()

<?php $month = date("m"); 
$weekday = date("D"); 

$doc = new DOMDocument(); 

$monthHaystack = array("01","03","05","07","09","11"); 
if (in_array($month,$monthHaystack) && ($weekday == "Mon")) { 
    $doc->load('resourceMon.xml'); } 

else { echo "This day is not a right day to workout!"; } 

?> 

然后其余部分保持不变,没有任一需要的xpath。