/** * serialize the php value to the string value to put in the xml * @param $xsd_type, xsd type the value hold * @param $data_value, the data_value with php type * @return string serialized to string */ function wsf_convert_php_type_to_string($xsd_type, $data_value) { $serialized_value = $data_value; if ($serialized_value === NULL) { return ""; } // we treat dateTime value differently if ($xsd_type == "dateTime" || $xsd_type == "date" || $xsd_type == "time") { if (gettype($data_value) == "integer") { if ($xsd_type == "dateTime") { $serialized_value = date("Y-m-d", $data_value) . "T" . date("H:i:s", $data_value) . "Z"; } else { if ($xsd_type == "date") { $serialized_value = date("Y-m-d", $data_value); } else { if ($xsd_type == "time") { $serialized_value = date("H:i:s", $data_value) . "Z"; } } } } else { // hope the other type is the string as it is $serialized_value = (string) $data_value; } } else { $xsd_php_mapping_table = wsf_wsdl_util_xsd_to_php_type_map(); if (array_key_exists($xsd_type, $xsd_php_mapping_table)) { //retrieve the php type $type = $xsd_php_mapping_table[$xsd_type]; if ($type == "boolean") { if ($data_value == FALSE) { $serialized_value = "false"; } else { $serialized_value = "true"; } } } } return $serialized_value . ""; }
/** * deserialize the php value from the string value to the given xsd type value * @param $xsd_type, xsd type the value hold * @param $data_value, the data_value with the string type * @return cast type */ function wsf_convert_string_to_php_type($xsd_type, $data_value) { // we treat dateTime value differently if ($xsd_type == "dateTime" || $xsd_type == "date" || $xsd_type == "time") { $date_value = str_replace("T", " ", $data_value); $converted_value = strtotime($date_value); } else { $xsd_php_mapping_table = wsf_wsdl_util_xsd_to_php_type_map(); $converted_value = $data_value; if (array_key_exists($xsd_type, $xsd_php_mapping_table)) { $type = $xsd_php_mapping_table[$xsd_type]; if ($type == 'integer') { $converted_value = (int) $data_value; } else { if ($type == 'float') { $converted_value = (double) $data_value; } else { if ($type == 'boolean') { $converted_value = $data_value === "true"; } else { if ($type == 'string') { $converted_value = $data_value; } else { $converted_value = $data_value; } } } } } } return $converted_value; }