]> source.dussan.org Git - jquery-ui.git/commitdiff
Demos: PHP Strict mode compliance and use parse_json() for JSON encoding. Fixes ...
authorgnarf <gnarf@gnarf.net>
Sun, 9 Jan 2011 23:41:12 +0000 (17:41 -0600)
committerScott González <scott.gonzalez@gmail.com>
Tue, 11 Jan 2011 01:20:14 +0000 (20:20 -0500)
demos/autocomplete/search.php

index 8fa9d28f818a31f81501f62cac730ce1b2784d81..cbe78a52a119fcda789c390d5dfc395b035f8127 100644 (file)
@@ -1,7 +1,10 @@
 <?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",
@@ -569,63 +572,6 @@ $items = array(
 "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) {
@@ -635,6 +581,8 @@ 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