$value ){ // We first copy each key/value pair into a staging array, // formatting each key and value properly as we go. // Format the key: if( is_numeric( $key ) ){ $key = "key_$key"; } $key = '"'.addslashes( $key ).'"'; // Format the value: if( is_array( $value )){ $value = yourls_array_to_json( $value ); } else if( !is_numeric( $value ) || is_string( $value ) ){ $value = '"'.addslashes( $value ).'"'; } // Add to staging array: $construct[] = "$key: $value"; } // Then we collapse the staging array into the JSON form: $result = "{ " . implode( ", ", $construct ) . " }"; } else { // If the array is a vector (not associative): $construct = array(); foreach( $array as $value ){ // Format the value: if( is_array( $value )){ $value = yourls_array_to_json( $value ); } else if( !is_numeric( $value ) || is_string( $value ) ){ $value = '"'.addslashes($value).'"'; } // Add to staging array: $construct[] = $value; } // Then we collapse the staging array into the JSON form: $result = "[ " . implode( ", ", $construct ) . " ]"; } return $result; } /** * BC Math functions (assuming if one doesn't exist, none does) * */ if ( !function_exists( 'bcdiv' ) ) { function bcdiv( $dividend, $divisor ) { $quotient = floor( $dividend/$divisor ); return $quotient; } function bcmod( $dividend, $modulo ) { $remainder = $dividend%$modulo; return $remainder; } function bcmul( $left, $right ) { return $left * $right; } function bcadd( $left, $right ) { return $left + $right; } function bcpow( $base, $power ) { return pow( $base, $power ); } } /** * http_build_url compatibility function * * @since 1.7 */ if ( !function_exists( 'http_build_url' ) ) { include YOURLS_INC . '/http_build_url/http_build_url.php'; }