<ul><li>LocalListingController.php: Set display_errors=0 — was leaking PHP errors into JSON response</li><li>get_yp_com(): Initialized $yp_url, $name, $listingid, $address, $website, $phone, $email, $city, $state, $postal_code to prevent undefined variable warnings and fatal return errors</li><li>get_super_pages(): Added null guard on $businessName before ->text() call — was fatal crash when no results; initialized $name, $address, $phone; added safe $spUrl with hasAttribute check</li><li>get_bing(): Added $name = "" default to prevent undefined variable in return array</li><li>get_facebook(): Added $name = "" default; changed file_get_contents to @file_get_contents; guarded json_decode against null body; fixed if($json->items) to if($json && isset($json->items))</li><li>get_facebook_direct(): Changed required $percentage to optional (default=0) — was fatal when called with one arg; added $clean_bname (was undefined, broke string matching); added $name = "" default; guarded file_get_contents and json access</li><li>get_twitter(): Removed undefined $line2 and $state urlencode calls; added $name = "" default; guarded file_get_contents and json access</li><li>get_foursquare(): Initialized all vars ($fscheck, $fs_url, $name, $address, $website, $phone, $email, $city, $state, $postal_code, $gid); guarded venues foreach against null response; used isset() for all value sub-keys</li><li>get_google_com(): Initialized all vars; guarded foreach against null results array; used isset() for djson sub-properties</li><li>get_yelp_com(): Initialized all vars; fixed display_address access to use implode() instead of hard-coded index access (prevents crash on short arrays)</li><li>get_yahoo(): Added $name = "" default</li><li>get_linkedin(): Added $name = "" default; guarded file_get_contents and json access</li><li>get_pinterest(): Added $name = "" default; guarded file_get_contents and json access</li></ul>