Example #1
0
/**
 * 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 . "";
}
Example #2
0
/**
 * 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;
}