Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: print_r
 
 автор: streloc   (20.03.2008 в 18:20)   письмо автору
 
 

Вот вывел print_r вот такие данные, а как к ним обратиться?
Допустим как узнать что лежит в id? или status?


SimpleXMLElement Object
(
[result-code] => 0
[bills-list] => SimpleXMLElement Object
(
[bill] => SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 259832936
[status] => 50
[sum] => 1.00
)

)

)

)

   
 
 автор: CrazyAngel   (20.03.2008 в 18:53)   письмо автору
 
   для: streloc   (20.03.2008 в 18:20)
 

$имя_переменной->status;

   
 
 автор: streloc   (21.03.2008 в 10:08)   письмо автору
 
   для: CrazyAngel   (20.03.2008 в 18:53)
 

нет так не работает.

print_r($xml);

$a=$xml->status;
echo $a;
вообще ничего не выводит

   
 
 автор: Atheist   (21.03.2008 в 11:47)   письмо автору
 
   для: streloc   (21.03.2008 в 10:08)
 

$xml->bill->attributes['status']

Но смущает незнание того, что означает "эт" перед attributes.

   
 
 автор: streloc   (21.03.2008 в 11:54)   письмо автору
 
   для: Atheist   (21.03.2008 в 11:47)
 

ТАК тоже тишина ничего не выводит.

   
 
 автор: Atheist   (21.03.2008 в 11:59)   письмо автору
 
   для: streloc   (21.03.2008 в 11:54)
 

Бля...

<?php
ini_set
('display_errors'1);
error_reportingE_ALL );

echo 
'<pre>'var_export($xmltrue), '</pre>';


?

   
 
 автор: streloc   (21.03.2008 в 12:06)   письмо автору
 
   для: Atheist   (21.03.2008 в 11:59)
 

SimpleXMLElement::__set_state(array(
'resultcode' => '0',
'bills-list' =>
SimpleXMLElement::__set_state(array(
'bill' =>
SimpleXMLElement::__set_state(array(
'@attributes' =>
array (
'id' => '259832936',
'status' => '150',
'sum' => '1.00',
),
)),
)),
))

   
 
 автор: Atheist   (21.03.2008 в 12:21)   письмо автору
 
   для: streloc   (21.03.2008 в 12:06)
 

Попробуй так:

<?php
ini_set
('display_errors'1); 
error_reportingE_ALL );

echo 
$xml->bill->{'@attributes'}['status'];

   
 
 автор: streloc   (21.03.2008 в 12:25)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:21)
 

нет ничего

   
 
 автор: Atheist   (21.03.2008 в 12:27)   письмо автору
 
   для: streloc   (21.03.2008 в 12:25)
 

Пиздишь...

   
 
 автор: streloc   (21.03.2008 в 12:35)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:27)
 

сам посмотри

http://www.tursankur.ru/123/order2.php

ini_set('display_errors', 1);
error_reporting( E_ALL );

echo '<pre>', var_export($xml, true), '</pre>';


echo $xml->bill->{'@attributes'}['status'];

   
 
 автор: Atheist   (21.03.2008 в 12:37)   письмо автору
 
   для: streloc   (21.03.2008 в 12:35)
 

$xml->bills-list->bill->{'@attributes'}['status'], $xml->bills-list->bill->attributes['status']?

   
 
 автор: streloc   (21.03.2008 в 12:41)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:37)
 

нет.
bills-list Я заменяю на billslist, а то глючит.

SimpleXMLElement::__set_state(array(
'resultcode' => '0',
'billslist' =>
SimpleXMLElement::__set_state(array(
'bill' =>
SimpleXMLElement::__set_state(array(
'@attributes' =>
array (
'id' => '259832936',
'status' => '150',
'sum' => '1.00',
),
)),
)),
))

всё равно глухо.

   
 
 автор: Atheist   (21.03.2008 в 12:44)   письмо автору
 
   для: streloc   (21.03.2008 в 12:41)
 

Так этот объект формируется из твоего пользовательского класса??

   
 
 автор: streloc   (21.03.2008 в 12:46)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:44)
 

нет я получаю ответ в XML на запрос.

   
 
 автор: Atheist   (21.03.2008 в 12:49)   письмо автору
 
   для: streloc   (21.03.2008 в 12:46)
 

Не понятно почему не выводятся Notice. Ты поставил ini_set(...) и error_reporting( ... ) перед попыткой вывода значения этой переменной?

   
 
 автор: streloc   (21.03.2008 в 12:49)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:49)
 

ini_set('display_errors', 1);
error_reporting( E_ALL );

echo '<pre>', var_export($xml, true), '</pre>';


echo $xml->bill->{'@attributes'}['status'];
echo $xml->billslist->bill->{'@attributes'}['status'];
echo $xml->billslist->bill->attributes['status'];

   
 
 автор: streloc   (21.03.2008 в 12:53)   письмо автору
 
   для: streloc   (21.03.2008 в 12:49)
 

ПРОСТО Я ПОСТАВИЛ СТРОЧКИ НЕ В НАЧАЛО СТРАНИЦЫ

Warning: Missing argument 2 for HTTP_Post(), called in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 49 and defined in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 7

Warning: Missing argument 3 for HTTP_Post(), called in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 49 and defined in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 7

Warning: Missing argument 4 for HTTP_Post(), called in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 49 and defined in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 7

Notice: Undefined variable: referrer in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 12

Notice: Undefined index: SCRIPT_URI in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 13

Notice: Undefined variable: request in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 31

Notice: Undefined variable: referer in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 33

Notice: Undefined variable: result in /bhome/part3/03/streloc/tursankur.ru/www/123/order2.php on line 43

   
 
 автор: Atheist   (21.03.2008 в 12:55)   письмо автору
 
   для: streloc   (21.03.2008 в 12:53)
 

Не можешь показать, как формируется этот объект $xml? Я у себя посмотрю.

   
 
 автор: streloc   (21.03.2008 в 18:01)   письмо автору
 
   для: Atheist   (21.03.2008 в 11:59)
 

-

   
 
 автор: HaJIuBauKa   (21.03.2008 в 12:52)   письмо автору
 
   для: streloc   (20.03.2008 в 18:20)
 

весь код приведите а не только то, что выдает print_r

   
 
 автор: streloc   (21.03.2008 в 12:55)   письмо автору
 
   для: HaJIuBauKa   (21.03.2008 в 12:52)
 


<?

ini_set
('display_errors'1); 
error_reportingE_ALL ); 


$URL="http://mobw.ru/term2/xmlutf.jsp";

   function 
HTTP_Post($URL,$data$referrer$phone) {
          global 
$phone;
       
       
$URL_Info=parse_url($URL);
       
       if(
$referrer==""
         
$referrer=$_SERVER["SCRIPT_URI"];

     
$data_string= ('<?xml version="1.0" encoding="utf-8"?>
<request>
<protocol-version>4.00</protocol-version>
<request-type>33</request-type>
<extra name="password">11111111</extra>
<terminal-id>1111</terminal-id>
<extra name="serial">1111</extra>
<bills-list>
    <bill id="259832936" />
</bills-list>
</request>
'
);

       if(!isset(
$URL_Info["port"]))
         
$URL_Info["port"]=80;
       
       
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
       
$request.="Host: ".$URL_Info["host"]."\n";
       
$request.="Referer: $referer\n";
       
$request.="Content-type: application/x-www-form-urlencoded\n";
       
$request.="Content-length: ".strlen($data_string)."\n";
       
$request.="Connection: close\n";
       
$request.="\n";
       
$request.=$data_string."\n";

       
$fp fsockopen($URL_Info["host"],$URL_Info["port"]);
       
fputs($fp$request);
       while(!
feof($fp)) {
           
$result .= fgets($fp528);
       }
       
fclose($fp);
       return 
$result;
     }
     
$cod HTTP_Post($URL);


$code strchr($cod,"<response>");
$code str_replace("result-code","resultcode",$code);
$code str_replace("bills-list","billslist",$code);
$code str_replace("attributes","attributes",$code);

   
$xml simplexml_load_string($code);

foreach (
$xml->xpath('//response') as $response) {
    
$result_code $response->resultcode;
}


echo 
'<pre>'var_export($xmltrue), '</pre>';


echo 
$xml->bill->{'@attributes'}['status']; 
echo 
$xml->billslist->bill->{'@attributes'}['status'];
echo 
$xml->billslist->bill->attributes['status'];

?>

   
 
 автор: Atheist   (21.03.2008 в 13:03)   письмо автору
 
   для: streloc   (21.03.2008 в 12:55)
 

var_export $xml у меня такой:

SimpleXMLElement::__set_state(array(
'resultcode' => '150',
))

   
 
 автор: streloc   (21.03.2008 в 13:09)   письмо автору
 
   для: Atheist   (21.03.2008 в 13:03)
 

правильно. Это значит неверный пароль. Я же не выложу сюда пароль.

   
 
 автор: Atheist   (21.03.2008 в 13:12)   письмо автору
 
   для: streloc   (21.03.2008 в 13:09)
 

Просто дай получаемый контент ($cod).

   
 
 автор: streloc   (21.03.2008 в 13:15)   письмо автору
 
   для: Atheist   (21.03.2008 в 13:12)
 

HTTP/1.1 200 OK Date: Fri, 21 Mar 2008 10:19:55 GMT Server: Apache Content-Length: 142 Vary: Accept-Encoding,User-Agent Connection: close Content-Type: text/xml;charset=UTF-8 Content-Language: ru 0

   
 
 автор: Atheist   (21.03.2008 в 13:28)   письмо автору
 
   для: streloc   (21.03.2008 в 13:15)
 

Это заголовки. Я так понимаю, там должен быть XML-документ.

   
 
 автор: streloc   (21.03.2008 в 13:39)   письмо автору
 
   для: Atheist   (21.03.2008 в 13:28)
 

нет слишком долго и непонятно. Я думаю проще PHP функциями или регулярными выражениями разобрать
echo $cod = strchr($cod,"id=");
выводит
id="259832936" status ="150" sum="1.00" />

   
 
 автор: Atheist   (21.03.2008 в 14:23)   письмо автору
 
   для: streloc   (21.03.2008 в 13:39)
 

Потом будет не проще и медленней.

   
 
 автор: streloc   (21.03.2008 в 18:01)   письмо автору
 
   для: Atheist   (21.03.2008 в 14:23)
 

SimpleXMLElement Object
(
[resultcode] => 0
[itemlist] => SimpleXMLElement Object
(
[item] => Array
(
[0] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => АГРОХИМБАНК, ГОЛОВНОЙ ОФИС
[id] => XBTM
)

)

[1] => SimpleXMLElement Object
(
[@attributes] => Array
(
[name] => АГРОХИМБАНК, ДО ОТД. #ЩЕЛКОВО#
[id] => YFZJ
)

)




чтобы добраться до
[resultcode] => 0

я делаю так.
foreach ($xml->xpath('//response') as $response) {
    echo $result_code = $response->resultcode;
}


а как добраться до
[@attributes] => Array
                                (
                                    [name] => АГРОХИМБАНК, ГОЛОВНОЙ ОФИС
                                    [id] => XBTM
                                )

два дня уже голову ломаю.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования