note 100863 added to ref.pgsql
| From: | spidgorny at gmail dot com | Date: | Thu, 11 Nov 2010 14:47:31 +0000 |
| Subject: | note 100863 added to ref.pgsql | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-173944@lists.php.net to get a copy of this message | ||
In response to http://www.php.net/manual/en/ref.pgsql.php#57709.
Your PGArrayToPHPArray() doesn't take care of commas inside the quoted string. Here's my
version (single-dimension arrays only).
<?php
function getPGArray($pgArray) {
$pgArray = substr(substr(trim($pgArray), 1), 0, -1);
$v1 = explode(',', $pgArray);
$inside = false;
$out = array();
$o = 0;
foreach ($v1 as $word) {
if ($word{0} == '"') {
$inside = true;
$word = substr($word, 1);
}
if ($word{strlen($word)-1} == '"') {
$inside = false;
$word = substr($word, 0, -1);
}
$out[$o] .= stripslashes(stripslashes($word)); // strange but required
if (!$inside) {
$o++;
}
}
return $out;
}
?>
debug(getPGArray('{BOOT6.INI,"strange нейм
{\\'=â ,.\\'}.info","strange нейм
{\\'=â ,.\\'}1.info"}')); will return
<?php
Array
(
[0] => BOOT6.INI
[1] => strange нейм {'=â .'}.info
[2] => strange нейм {'=â .'}1.info
)
?>
----
Server IP: 69.147.83.197
Probable Submitter: 84.233.202.2
----
Manual Page -- http://www.php.net/manual/en/ref.pgsql.php
Edit -- https://master.php.net/note/edit/100863
Del: integrated -- https://master.php.net/note/delete/100863/integrated
Del: useless -- https://master.php.net/note/delete/100863/useless
Del: bad code -- https://master.php.net/note/delete/100863/bad+code
Del: spam -- https://master.php.net/note/delete/100863/spam
Del: non-english -- https://master.php.net/note/delete/100863/non-english
Del: in docs -- https://master.php.net/note/delete/100863/in+docs
Del: other reasons-- https://master.php.net/note/delete/100863
Reject -- https://master.php.net/note/reject/100863
Search -- https://master.php.net/manage/user-notes.php