Blame | Last modification | View Log | RSS feed
<?php/*** OpenID protocol key-value/comma-newline format parsing and* serialization** PHP versions 4 and 5** LICENSE: See the COPYING file included in this distribution.** @access private* @package OpenID* @author JanRain, Inc. <openid@janrain.com>* @copyright 2005 Janrain, Inc.* @license http://www.gnu.org/copyleft/lesser.html LGPL*//*** Container for key-value/comma-newline OpenID format and parsing*/class Auth_OpenID_KVForm {/*** Convert an OpenID colon/newline separated string into an* associative array** @static* @access private*/function toArray($kvs, $strict=false){$lines = explode("\n", $kvs);$last = array_pop($lines);if ($last !== '') {array_push($lines, $last);if ($strict) {return false;}}$values = array();for ($lineno = 0; $lineno < count($lines); $lineno++) {$line = $lines[$lineno];$kv = explode(':', $line, 2);if (count($kv) != 2) {if ($strict) {return false;}continue;}$key = $kv[0];$tkey = trim($key);if ($tkey != $key) {if ($strict) {return false;}}$value = $kv[1];$tval = trim($value);if ($tval != $value) {if ($strict) {return false;}}$values[$tkey] = $tval;}return $values;}/*** Convert an array into an OpenID colon/newline separated string** @static* @access private*/function fromArray($values){if ($values === null) {return null;}ksort($values);$serialized = '';foreach ($values as $key => $value) {if (is_array($value)) {list($key, $value) = array($value[0], $value[1]);}if (strpos($key, ':') !== false) {return null;}if (strpos($key, "\n") !== false) {return null;}if (strpos($value, "\n") !== false) {return null;}$serialized .= "$key:$value\n";}return $serialized;}}?>