<?php
-
+// no term passed - just exit early with no response
+if (empty($_GET['term'])) exit ;
$q = strtolower($_GET["term"]);
-if (!$q) return;
+// remove slashes if they were magically added
+if (get_magic_quotes_gpc()) $q = stripslashes($q);
+
$items = array(
"Great Bittern"=>"Botaurus stellaris",
"Little Grebe"=>"Tachybaptus ruficollis",
"Heuglin's Gull"=>"Larus heuglini"
);
-function array_to_json( $array ){
-
- if( !is_array( $array ) ){
- return false;
- }
-
- $associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));
- if( $associative ){
-
- $construct = array();
- foreach( $array as $key => $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 = 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 = 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;
-}
$result = array();
foreach ($items as $key=>$value) {
if (count($result) > 11)
break;
}
-echo array_to_json($result);
+
+// json_encode is available in PHP 5.2 and above, or you can install a PECL module in earlier versions
+echo json_encode($result);
?>
\ No newline at end of file