2012-07-05 2 views
0

Включенный ниже образец данных, найденных в файле 1.php:Манипулирование объект с помощью CURL и PHP

: [ 
    { 
     "ID": "1", 
     "active": "1", 
     "wait": "30" 
    }, 
    { 
     "ID": "6", 
     "active": "1", 
     "wait": "10" 
    }, 
    { 
     "ID": "8", 
     "active": "1", 
     "wait": "65" 
    } 
] 
} 

Это мой код до сих пор, и я не получаю очень далеко, так что любая помощь оценена.

<?php 
$url = "1.php"; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$data = curl_exec ($ch); 
curl_close ($ch); 

if((date("H") < 9) || (date("H") > 24)) { 
    echo "Closed"; 
} else { 
    echo ($Queue_Time: <= 10) ? $data : $Queue_Time-5; 
}; 
$result = json_decode ($json); 
$arr = array(1, 2); 

?> 

В принципе, я хотел бы, чтобы отобразить «ID»: «1» в качестве имени, такие, как «мясо» «ID»: «2», «сыр» и т.д. Затем отобразить время ожидания очереди, которая значение «wait» рядом с именем. Магазин открыт только с 10 утра до 5 вечера, поэтому за эти часы я просто хочу, чтобы он отображал имя и «Закрыто» рядом с ним в ожидании времени ожидания.

И, наконец, если время ожидания больше 10 минут, то я бы хотел вычесть 5 минут от этого значения.

Мне не удалось получить код, указанный выше, чтобы работать должным образом, и он действительно оценил бы руку.

Большое спасибо

ответ

0

Я взял несколько свободы, пытаясь получить то, что вы хотите, так что дайте мне знать, как близко это:

// Assuming we have a correctly formatted JSON array from CURL 
$data = '[ 
    { 
     "ID": "1", 
     "active": "1", 
     "wait": "30" 
    }, 
    { 
     "ID": "6", 
     "active": "1", 
     "wait": "10" 
    }, 
    { 
     "ID": "8", 
     "active": "1", 
     "wait": "65" 
    } 
] 
'; 

// This array maps IDs to Names 
$department[1] = 'Meat'; 
$department[2] = 'Cheese'; 
$department[6] = 'Fish'; 
$department[8] = 'Vegetables'; 

// Decode the JSON data 
$data = json_decode($data); 

// Loop through each area 
foreach ($data as $counter) { 
    // Check if closed 
    if((date("H") < 10) || (date("H") > 17)) { 
     $queue = "Closed"; 
    } else { 
     $queue = ($counter->wait <= 10) ? $counter->wait : $counter->wait-5; 
    }; 
    // Output name and wait time 
    echo $department[$counter->ID].' '.$queue.'<br />'; 

} 
+0

Большое спасибо, но я до сих пор есть некоторые проблемы. – chriz1000

+0

Забота о предоставлении дополнительной информации? –

+0

Большое спасибо, это работает в принципе. Это работает прекрасно с тестовыми данными: $ данных = «[ { "ID": "1", "активная": "1", "ждать": "30" }, { «ID «: "6", "активный": "1", "ждать": "10" }, { "ИД": "8", "активный": "1", "ждать" : "65" } ] '; Однако я пытаюсь захватить данные из 1.php, используя curl_init(); когда я удаляю тестовые данные, он не считывает значения с 1.php Любые идеи? – chriz1000

Смежные вопросы