[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpprintipp] Re: _interpretInteger failing?
From: |
Brian Kroth |
Subject: |
[Phpprintipp] Re: _interpretInteger failing? |
Date: |
Mon, 16 Aug 2010 07:14:39 -0500 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
Some more info on that situation:
$ipp->setPrinterURI('/printers/');
$ipp->getJobs($my_jobs=true, $limit=0, $which_jobs='', $subset=false);
foreach ($ipp->jobs_attributes as $job) {
print_r($job);
}
However, if I do the following, all the details seem to be returned:
$ipp->setPrinterURI('/printers/');
$ipp->getJobs($my_jobs=true, $limit=0, $which_jobs='', $subset=false);
foreach ($ipp->jobs_attributes as $job) {
$ipp->getJobAttributes($job->job_uri->_value0, false, 'all');
$job = $ipp->job_attributes;
print_r($job);
}
Thanks,
Brian
Brian Kroth <address@hidden> 2010-08-13 16:51:
> Hello, I was just looking at the CVS version of your PHP classes and it
> appears that the _interpretInteger() function is always returning 0.
> Any thoughts?
>
> For example:
> [time_at_creation] => stdClass Object
> (
> [_type] => integer
> [_range] => job-attributes
> [_value0] => 0
> )
>
> [time_at_processing] => stdClass Object
> (
> [_type] => no-value
> [_range] => job-attributes
> [_value0] =>
> )
>
> [time_at_completed] => stdClass Object
> (
> [_type] => no-value
> [_range] => job-attributes
> [_value0] =>
> )
>
> [job_id] => stdClass Object
> (
> [_type] => integer
> [_range] => job-attributes
> [_value0] => 0
> )
>
> [job_state] => stdClass Object
> (
> [_type] => enum
> [_range] => job-attributes
> [_value0] => Unknown(IETF standards track "job-state" reserved):
> 0x64d9d3d5
> )
>
> [job_media_sheets_completed] => stdClass Object
> (
> [_type] => integer
> [_range] => job-attributes
> [_value0] => 0
> )
>
> Also, split() was deprecated in php 5.3.0, so I replaced all calls to
> that with preg_split() in my local copy. I've attached a patch for
> that. It seems you've already solved the socket reading problem that
> were preventing more than some small number of printers from being
> listed.
>
> Thanks,
> Brian
> ? preg_split.diff
> Index: BasicIPP.php
> ===================================================================
> RCS file: /sources/phpprintipp/phpprintipp/php_classes/BasicIPP.php,v
> retrieving revision 1.5
> diff -u -r1.5 BasicIPP.php
> --- BasicIPP.php 9 Oct 2009 17:05:12 -0000 1.5
> +++ BasicIPP.php 13 Aug 2010 21:49:25 -0000
> @@ -545,7 +545,8 @@
> if (!$page_ranges) return true;
> $page_ranges = trim(str_replace("-", ":", $page_ranges));
> $first = true;
> - $page_ranges = split(' ', $page_ranges);
> + #$page_ranges = split(' ', $page_ranges);
> + $page_ranges = preg_split('# #', $page_ranges);
> foreach($page_ranges as $page_range)
> {
> $value = self::_rangeOfIntegerBuild($page_range);
> @@ -1222,7 +1223,8 @@
>
> default:
> $server_response = preg_replace("/: $/", '',
> $this->serveroutput->headers[0]);
> - $strings = split(' ', $server_response, 3);
> + #$strings = split(' ', $server_response, 3);
> + $strings = preg_split('# #', $server_response, 3);
> $errno = $strings[1];
> $string = strtoupper(str_replace(' ', '_', $strings[2]));
> trigger_error(
> @@ -1847,7 +1849,8 @@
>
> protected function _rangeOfIntegerBuild($integers)
> {
> - $integers = split(":", $integers);
> + #$integers = split(":", $integers);
> + $integers = preg_split("#:#", $integers);
> for ($i = 0; $i < 2; $i++) $outvalue[$i] =
> self::_integerBuild($integers[$i]);
> return $outvalue[0] . $outvalue[1];
> }
> Index: http_class.php
> ===================================================================
> RCS file: /sources/phpprintipp/phpprintipp/php_classes/http_class.php,v
> retrieving revision 1.6
> diff -u -r1.6 http_class.php
> --- http_class.php 1 Mar 2010 19:17:36 -0000 1.6
> +++ http_class.php 13 Aug 2010 21:49:25 -0000
> @@ -175,7 +175,8 @@
> $this->connected = false;
> $url = $arguments["URL"];
> $port = $this->default_port;
> - $url = split (':', $url, 2);
> + #$url = split (':', $url, 2);
> + $url = preg_split ('#:#', $url, 2);
> $transport_type = $url[0];
> $unix = false;
> switch ($transport_type)
> @@ -201,7 +202,8 @@
> $url = $url[1];
> if (!$unix)
> {
> - $url = split ("/", preg_replace ("#^/{1,}#", '', $url), 2);
> + #$url = split ("/", preg_replace ("#^/{1,}#", '', $url), 2);
> + $url = preg_split ("#/#", preg_replace ("#^/{1,}#", '', $url), 2);
> $url = $url[0];
> $port = $this->port;
> $error = sprintf (_("Cannot resolve url: %s"), $url);
> @@ -247,7 +249,8 @@
> {
> return $this->_HttpError ($error, E_USER_WARNING);
> }
> - $authtype = split (' ', $this->reply_headers["www-authenticate"]);
> + #$authtype = split (' ', $this->reply_headers["www-authenticate"]);
> + $authtype = preg_split ('# #', $this->reply_headers["www-authenticate"]);
> $authtype = strtolower ($authtype[0]);
> switch ($authtype)
> {
> @@ -516,11 +519,14 @@
> private function _BuildDigest ()
> {
> $auth = $this->reply_headers["www-authenticate"];
> - list ($head, $auth) = split (" ", $auth, 2);
> - $auth = split (", ", $auth);
> + #list ($head, $auth) = split (" ", $auth, 2);
> + list ($head, $auth) = preg_split ("# #", $auth, 2);
> + #$auth = split (", ", $auth);
> + $auth = preg_split ("#, #", $auth);
> foreach ($auth as $sheme)
> {
> - list ($sheme, $value) = split ('=', $sheme);
> + #list ($sheme, $value) = split ('=', $sheme);
> + list ($sheme, $value) = preg_split ('#=#', $sheme);
> $fields[$sheme] = trim (trim ($value), '"');
> }
> $nc = sprintf ('%x', $this->nc);
> @@ -559,7 +565,8 @@
> if (array_key_exists ("qop", $fields))
> {
> $qop = strtolower ($fields["qop"]);
> - $qop = split (" ", $qop);
> + #$qop = split (" ", $qop);
> + $qop = preg_split ("# #", $qop);
> if (in_array ("auth", $qop))
> $qop = "auth";
> else
signature.asc
Description: Digital signature