2013-11-14 2 views
0

До этого я искал вокруг проблемы же, как и я, но не нашел ..

я получил URL http://mywebsite/rpc.php?stat=22

тогда, у меня есть этот код:

if(isset($_GET['stat'])){ 
$id = preg_replace("/[^0-9]/", "", $_GET['stat']); 
$result = $rpc->get($id); 
print_r($result); 
} 

этот код выведет массив без результата .. Но, если я изменить код так:

if(isset($_GET['stat'])){ 
//$id = preg_replace("/[^0-9]/", "", $_GET['stat']); 
$result = $rpc->get(22); 
print_r($result); 
} 

он напечатает результат, как я хочу. Я пробовал эхом $ _GET, и он выводит номер 22 .. есть ли кто-нибудь знает, в чем проблема с моим скриптом?

это код, который будет обрабатывать $rpc->get();

public function get ($ids = array(), $fields = array()) 
{ 
if (!is_array($ids)) $ids = array($ids); // Convert $ids to an array if only a single id was passed 
if (count($fields) == 0) $fields = array("id", "name", "downloadDir", "rateDownload", "status", "doneDate", "haveValid", "totalSize"); // Defaults 
$request = array(
"fields" => $fields, 
"ids" => $ids 
); 
return $this->request("torrent-get", $request); 
} 
+0

'$ _GET ['stat'] 'is' '22' ', пока вы явно поставляете' 22'. Это может быть проблема? –

+0

Я никогда не знал об этом .. Пробовал метод от Джеффа Сиссона, и он работает :) спасибо за объяснение @WaleedKhan – G3M

ответ

2

Ваш метод $rpc->get, кажется, хочет целое число в качестве параметра, который вы можете получить от $_GET глобальной, как это:

$id = intval(preg_replace("/[^0-9]/", "", $_GET['stat'])); 
+0

Я не знаю, что это может быть проблемой :) спасибо за решение .. он работает как шарм. – G3M

+1

На этом этапе вы можете просто использовать 'intval ($ _ GET ['stat'])'. Оба попытаются преобразовать его в число (хотя и по-разному), но это будет проще. –

+0

спасибо. Я изменил свой код, как вы сказали :) – G3M

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