Well this JSON I have doesn't work on PHP Json_decode, it returns NULL, and when I place the exact JSON in the website http://jsonformatter.curiousconcept.com/#jsonformatter
it says its valid and it works just fine.
$json = <<<START
{"currentUserScreenName":"tatXtxt","recentPlaces":[],"cdnBase":{"versioned":{"ssl":["https:\/\/si0.twimg.com\/a\/1309465578"],"http":["http:\/\/a0.twimg.com\/a\/1309465578","http:\/\/a1.twimg.com\/a\/1309465578","http:\/\/a2.twimg.com\/a\/1309465578","http:\/\/a3.twimg.com\/a\/1309465578"]},"unversioned":{"ssl":["https:\/\/si0.twimg.com"],"http":["http:\/\/a0.twimg.com","http:\/\/a1.twimg.com","http:\/\/a2.twimg.com","http:\/\/a3.twimg.com"]}},"pageLocaleJS":"http:\/\/a3.twimg.com\/a\/1309465578\/javascripts\/phoenix\/i18n\/pt.js","becameUser":false,"payload":{"profiling":false,"conditionalTemplates":{}},"isNarrow":true,"deciderFeatures":{"tweet_stream_list":1,"geo_location":1,"people_stream_friends":1,"tweet_stream_favorites":1,"promo_component":1,"phoenix_local_gowalla":1,"new_trends_location_selector":1,"geo_ui":1,"flock":1,"phoenix_geo_v4":1,"geo_ui_dropdown_available":1,"tweet_stream_mentions_polling":1,"contact_import_stream":1,"html5Routing":1,"list_stream_memberships":1,"phoenix_frontpage_rotate_avatars":1,"tweet_stream_retweets_by_you":1,"inline_media_component":1,"whotofollow_random_sample":1,"phoenix_sandboxed_ajax":1,"tweet_stream_following_polling":1,"whotofollow_recommendations":1,"phoenix_first_time":1,"list_stream_own_lists":1,"phoenix_facets_logged_out":1,"phoenix_amazon_details":1,"in_reply_to_component":1,"sync_scribe":1,"geo_show_similar_places":1,"phoenix_turkey_permalink":1,"tweet_streams_polling":1,"media_flagging":1,"phoenix_search_relevance_logged_out":1,"user_shuffler":1,"mobile_download_gallery_logged_out":1,"phoenix_aol_video":1,"logged_out_people_search":1,"social_context":1,"email_device_settings":1,"people_streams":1,"tweet_stream_user_polling":1,"tweet_stream_retweets_by_you_polling":1,"people_stream_people_search":1,"phoenix_local_plancast":1,"scribe_client_event":1,"tweet_streams":1,"profile_combined_api":1,"tweet_stream_user":1,"phoenix_facets_videos":1,"phoenix_instagram_and_friends":1,"tweet_geo_component":1,"tweet_stream_mentions":1,"phoenix_tweetbox_talon":1,"phoenix_scribe":1,"phoenix_local_meetup":1,"tweet_stream_search":1,"phoenix_facets":1,"dashboard_activity_following":1,"retweeters_component":1,"people_stream_list_followers":1,"more_lists_component":1,"mt_tweet_backend_bing":1,"phoenix_talon_on_copy":1,"place_users_stream":1,"message_stream":1,"tweet_stream_home":1,"phoenix_autocomplete_place_trigger_words":1,"dashboard_activity_favorites":1,"dashboard_activity_listed":1,"list_streams":1,"tweet_stream_your_tweets_retweeted_polling":1,"phoenix_local_foursquare":1,"phoenix_puffin":1,"tweet_stream_list_polling":1,"tweet_stream_retweets_by_others":1,"phoenix_search_dropdown":1,"people_stream_follower_requests":1,"tweet_stream_home_polling":1,"trends_component":1,"phoenix_search_relevance":1,"tweet_stream_your_tweets_retweeted":1,"phoenix_pretty_links":1,"local_trends":1,"place_people_component":1,"people_stream_list_members":1,"place_tweets_component":1,"dashboard_activity_followers":1,"following_page_tweets_tab":1,"list_stream_subscriptions":1,"tweet_stream_retweets_by_others_polling":1,"mobile_download_gallery":1,"geo_more_places":1,"japanese_ad_component":1,"infinite_scroll":1,"tweet_stream_search_polling":1,"whotofollow_similarities":1,"people_stream_followers":1,"recent_tweets_component":1,"tweet_stream_favorites_polling":1,"welcome_warm_signup":1,"geo_allow_set_location_manually":1,"promptbird_phoenix":1,"phoenix_facets_images":1,"promoted_accounts_in_whotofollow_viewall":1,"suggestion_categories_streams":1,"geo_place_creation":1,"conversations":1,"tweet_stream_following":1,"phoenix_autocomplete":1,"onebox_user_search":1,"advanced_search":1,"i18n_new_translation_center":1,"fake_loggedout_decider":1,"newest_list_members_component":1},"adminRights":false,"isPreflight":false,"languages":[{"css_classes":"western pt","name":"Portugu\u00eas","code":"pt","name_en":"Portuguese"},{"css_classes":"western it","name":"Italiano","code":"it","name_en":"Italian"},{"css_classes":"western es","name":"Espa\u00f1ol","code":"es","name_en":"Spanish"},{"css_classes":"western tr","name":"T\u00fcrk\u00e7e","code":"tr","name_en":"Turkish"},{"css_classes":null,"name":"English","code":"en","name_en":"English"},{"css_classes":"asian ko","name":"\ud55c\uad6d\uc5b4","code":"ko","name_en":"Korean"},{"css_classes":"western fr","name":"fran\u00e7ais","code":"fr","name_en":"French"},{"css_classes":"western ru","name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","code":"ru","name_en":"Russian"},{"css_classes":"western de","name":"Deutsch","code":"de","name_en":"German"},{"css_classes":"asian ja","name":"\u65e5\u672c\u8a9e","code":"ja","name_en":"Japanese"}],"abBuckets":{"remember_me_on_signup_83":{"bucket":"experiment","version":9,"experiment_key":"remember_me_on_signup_83","bucket_names":["control","experiment"]},"Contact_Import_Images-40":{"bucket":"control","version":3,"experiment_key":"Contact_Import_Images-40","bucket_names":["control","images"]},"Contact_Import_Services-39":{"bucket":"control","version":4,"experiment_key":"Contact_Import_Services-39","bucket_names":["control","vertical","vertical_matched"]},"welcome_flow_addressbook_81":{"bucket":"control","version":8,"experiment_key":"welcome_flow_addressbook_81","bucket_names":["control","addressbook"]},"Relevance_V1-49":{"bucket":"control","version":10,"experiment_key":"Relevance_V1-49","bucket_names":["control","recent"]}},"pageLocaleClass":"western pt","pageLocale":"pt","globalConfig":{"photo_sizes":{"large":{"h":2048,"resize":"fit","w":1024},"medium":{"h":1200,"resize":"fit","w":600},"thumb":{"h":150,"resize":"crop","w":150},"small":{"h":480,"resize":"fit","w":340}},"non_username_paths":["about","account","accounts","activity","all","announcements","anywhere","api_rules","api_terms","apirules","apps","auth","badges","blog","business","buttons","contacts","devices","direct_messages","download","downloads","edit_announcements","faq","favorites","find_sources","find_users","followers","following","friend_request","friendrequest","friends","goodies","help","home","im_account","inbox","invitations","invite","jobs","list","login","logout","me","mentions","messages","newtwitter","notifications","nudge","oauth","phoenix_search","positions","privacy","public_timeline","related_tweets","replies","retweeted_of_mine","retweets","retweets_by_others","rules","saved_searches","search","sent","settings","share","signup","signin","similar_to","statistics","terms","tos","translate","trends","tweetbutton","twttr","update_discoverability","users","welcome","who_to_follow","widgets","zendesk_auth","media_signup","phoenix_qunit_tests"],"max_media_per_upload":1,"short_url_length_https":20,"characters_reserved_per_media":20,"photo_size_limit":3145728,"short_url_length":19},"requestCacheSeedData":[{"options":[{}],"json":{"profile_sidebar_border_color":"C0DEED","profile_background_tile":false,"profile_sidebar_fill_color":"DDEEF6","name":"Testando","created_at":"Fri Jul 01 11:10:49 +0000 2011","location":null,"profile_image_url":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","is_translator":false,"profile_link_color":"0084B4","id_str":"327319701","follow_request_sent":false,"contributors_enabled":false,"favourites_count":0,"states":{"pending_email":"testandoXXXX#hotmail.com","bouncing_email":["testandoXXXX#hotmail.com"],"detached_email":false,"suspended":false,"needs_employee_email_update":false},"url":null,"default_profile":true,"id":327319701,"utc_offset":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","profile_use_background_image":true,"listed_count":0,"lang":"pt","followers_count":0,"profile_text_color":"333333","protected":false,"profile_background_color":"C0DEED","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","verified":false,"time_zone":null,"geo_enabled":false,"description":null,"notifications":false,"statuses_count":0,"default_profile_image":true,"friends_count":0,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","show_all_inline_media":false,"following":false,"screen_name":"tatXtxt"},"api_request_name":"account\/verify_credentials"},{"options":[{"include_available_features":1,"include_entities":1,"pc":true,"contributor_details":true}],"json":[],"api_request_name":"statuses\/home_timeline"},{"options":[{}],"json":{"sleep_time":{"end_time":null,"enabled":false,"start_time":null},"language":"pt","discoverable_by_email":true,"always_use_https":false,"geo_enabled":false},"api_request_name":"account\/settings"},{"options":[{"pc":true}],"json":{"trends":{"current_trends":[{"name":"#listentoyourheart","url":"http:\/\/search.twitter.com\/search?q=%23listentoyourheart"},{"name":"#youneedtositdown","url":"http:\/\/search.twitter.com\/search?q=%23youneedtositdown"},{"name":"Teddy Bautista","url":"http:\/\/search.twitter.com\/search?q=%22Teddy%20Bautista%22"},{"name":"#eqakl","url":"http:\/\/search.twitter.com\/search?q=%23eqakl"},{"name":"Mayor Duterte","url":"http:\/\/search.twitter.com\/search?q=%22Mayor%20Duterte%22"},{"name":"Brendon Urie","url":"http:\/\/search.twitter.com\/search?q=%22Brendon%20Urie%22"},{"name":"Mirror Mirror","url":"http:\/\/search.twitter.com\/search?q=%22Mirror%20Mirror%22"},{"name":"BTD","url":"http:\/\/search.twitter.com\/search?q=BTD"},{"name":"'Perfect Night'","url":"http:\/\/search.twitter.com\/search?q=%22'Perfect%20Night'%22"},{"name":"Black & White","url":"http:\/\/search.twitter.com\/search?q=%22Black%20&%20White%22"}]}},"api_request_name":"trends\/current"},{"options":[{}],"json":{"promo":{"name":"IOC Olympic Day (PT)","created_at":"Wed Jun 22 21:28:29 +0000 2011","promo_contents":"\u003Ca href=\"http:\/\/contest.olympic.org\/\" class=\"definition\" onClick=\"javascript: pageTracker._trackPageview('\/\ndefinition\/IOC_pt');\"\u003E\u003Cstrong\u003EDia Ol\u00edmpico no Twitter\u003C\/strong\u003E\u003C\/a\u003E Comemore o espir\u00edto dos Jogos Ol\u00edmpicos no Twitter e voc\u00ea poder\u00e1 ganhar uma viagem a Londres 2012.","promo_type":"","updated_at":"Thu Jun 23 17:00:45 +0000 2011","id":150,"is_sponsored":false,"is_active":true,"locale":"pt"}},"api_request_name":"promos\/random"}],"remoteIP":"189.104.75.181","appcacheRequiredMajorVersion":1,"userProperties":{"emailDiscoverabilitySet":true,"mobilePhoneDiscoverabilitySet":false,"deviceAddress":null,"discoverableByEmail":true,"discoverableByMobilePhone":false,"emailAddress":"null","deviceSetup":false},"currentUser":{"memberships_path":"\/tatXtxt\/lists\/memberships","rgba_tweet_border_color":"rgba(0,132,180,0.15)","linkified_status":"","rgba_sidebar_color":"rgba(221,238,246,0.9)","user_followers_path":"\/tatXtxt\/followers","screen_name_from_server":"tatXtxt","profile_image_url_from_server":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","rgba_newtweets_border_color":"rgba(0,132,180,0.25)","rgba_tweet_background_color":"rgba(0,132,180,0.1)","subscriptions_path":"\/tatXtxt\/lists\/subscriptions","user_favorites_path":"\/tatXtxt\/favorites","profile_path":"\/tatXtxt","id":327319701,"rgba_newtweets_background_color":"rgba(0,132,180,0.2)","lists_path":"\/tatXtxt\/lists","rgba_text_color":"rgba(51,51,51,0.6)","user_following_path":"\/tatXtxt\/following","latest_timestamp":"","account_profile_image_path":"\/account\/profile_image\/tatXtxt","bigger_profile_image_url":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2.png"},"requestFullCity":"br,05,feira_de_santana","postAuthenticityToken":"3de1b517590cad537393d7c2999d024524c8b492","isAdmin":false}
START;
print_r(json_decode($json));
Thank you in advance
I escaped all single quotes with \' and encapsulated it all with single quotes and it seems to work:
<?php
$json = '{"currentUserScreenName":"tatXtxt","recentPlaces":[],"cdnBase":{"versioned":{"ssl":["https:\/\/si0.twimg.com\/a\/1309465578"],"http":["http:\/\/a0.twimg.com\/a\/1309465578","http:\/\/a1.twimg.com\/a\/1309465578","http:\/\/a2.twimg.com\/a\/1309465578","http:\/\/a3.twimg.com\/a\/1309465578"]},"unversioned":{"ssl":["https:\/\/si0.twimg.com"],"http":["http:\/\/a0.twimg.com","http:\/\/a1.twimg.com","http:\/\/a2.twimg.com","http:\/\/a3.twimg.com"]}},"pageLocaleJS":"http:\/\/a3.twimg.com\/a\/1309465578\/javascripts\/phoenix\/i18n\/pt.js","becameUser":false,"payload":{"profiling":false,"conditionalTemplates":{}},"isNarrow":true,"deciderFeatures":{"tweet_stream_list":1,"geo_location":1,"people_stream_friends":1,"tweet_stream_favorites":1,"promo_component":1,"phoenix_local_gowalla":1,"new_trends_location_selector":1,"geo_ui":1,"flock":1,"phoenix_geo_v4":1,"geo_ui_dropdown_available":1,"tweet_stream_mentions_polling":1,"contact_import_stream":1,"html5Routing":1,"list_stream_memberships":1,"phoenix_frontpage_rotate_avatars":1,"tweet_stream_retweets_by_you":1,"inline_media_component":1,"whotofollow_random_sample":1,"phoenix_sandboxed_ajax":1,"tweet_stream_following_polling":1,"whotofollow_recommendations":1,"phoenix_first_time":1,"list_stream_own_lists":1,"phoenix_facets_logged_out":1,"phoenix_amazon_details":1,"in_reply_to_component":1,"sync_scribe":1,"geo_show_similar_places":1,"phoenix_turkey_permalink":1,"tweet_streams_polling":1,"media_flagging":1,"phoenix_search_relevance_logged_out":1,"user_shuffler":1,"mobile_download_gallery_logged_out":1,"phoenix_aol_video":1,"logged_out_people_search":1,"social_context":1,"email_device_settings":1,"people_streams":1,"tweet_stream_user_polling":1,"tweet_stream_retweets_by_you_polling":1,"people_stream_people_search":1,"phoenix_local_plancast":1,"scribe_client_event":1,"tweet_streams":1,"profile_combined_api":1,"tweet_stream_user":1,"phoenix_facets_videos":1,"phoenix_instagram_and_friends":1,"tweet_geo_component":1,"tweet_stream_mentions":1,"phoenix_tweetbox_talon":1,"phoenix_scribe":1,"phoenix_local_meetup":1,"tweet_stream_search":1,"phoenix_facets":1,"dashboard_activity_following":1,"retweeters_component":1,"people_stream_list_followers":1,"more_lists_component":1,"mt_tweet_backend_bing":1,"phoenix_talon_on_copy":1,"place_users_stream":1,"message_stream":1,"tweet_stream_home":1,"phoenix_autocomplete_place_trigger_words":1,"dashboard_activity_favorites":1,"dashboard_activity_listed":1,"list_streams":1,"tweet_stream_your_tweets_retweeted_polling":1,"phoenix_local_foursquare":1,"phoenix_puffin":1,"tweet_stream_list_polling":1,"tweet_stream_retweets_by_others":1,"phoenix_search_dropdown":1,"people_stream_follower_requests":1,"tweet_stream_home_polling":1,"trends_component":1,"phoenix_search_relevance":1,"tweet_stream_your_tweets_retweeted":1,"phoenix_pretty_links":1,"local_trends":1,"place_people_component":1,"people_stream_list_members":1,"place_tweets_component":1,"dashboard_activity_followers":1,"following_page_tweets_tab":1,"list_stream_subscriptions":1,"tweet_stream_retweets_by_others_polling":1,"mobile_download_gallery":1,"geo_more_places":1,"japanese_ad_component":1,"infinite_scroll":1,"tweet_stream_search_polling":1,"whotofollow_similarities":1,"people_stream_followers":1,"recent_tweets_component":1,"tweet_stream_favorites_polling":1,"welcome_warm_signup":1,"geo_allow_set_location_manually":1,"promptbird_phoenix":1,"phoenix_facets_images":1,"promoted_accounts_in_whotofollow_viewall":1,"suggestion_categories_streams":1,"geo_place_creation":1,"conversations":1,"tweet_stream_following":1,"phoenix_autocomplete":1,"onebox_user_search":1,"advanced_search":1,"i18n_new_translation_center":1,"fake_loggedout_decider":1,"newest_list_members_component":1},"adminRights":false,"isPreflight":false,"languages":[{"css_classes":"western pt","name":"Portugu\u00eas","code":"pt","name_en":"Portuguese"},{"css_classes":"western it","name":"Italiano","code":"it","name_en":"Italian"},{"css_classes":"western es","name":"Espa\u00f1ol","code":"es","name_en":"Spanish"},{"css_classes":"western tr","name":"T\u00fcrk\u00e7e","code":"tr","name_en":"Turkish"},{"css_classes":null,"name":"English","code":"en","name_en":"English"},{"css_classes":"asian ko","name":"\ud55c\uad6d\uc5b4","code":"ko","name_en":"Korean"},{"css_classes":"western fr","name":"fran\u00e7ais","code":"fr","name_en":"French"},{"css_classes":"western ru","name":"\u0420\u0443\u0441\u0441\u043a\u0438\u0439","code":"ru","name_en":"Russian"},{"css_classes":"western de","name":"Deutsch","code":"de","name_en":"German"},{"css_classes":"asian ja","name":"\u65e5\u672c\u8a9e","code":"ja","name_en":"Japanese"}],"abBuckets":{"remember_me_on_signup_83":{"bucket":"experiment","version":9,"experiment_key":"remember_me_on_signup_83","bucket_names":["control","experiment"]},"Contact_Import_Images-40":{"bucket":"control","version":3,"experiment_key":"Contact_Import_Images-40","bucket_names":["control","images"]},"Contact_Import_Services-39":{"bucket":"control","version":4,"experiment_key":"Contact_Import_Services-39","bucket_names":["control","vertical","vertical_matched"]},"welcome_flow_addressbook_81":{"bucket":"control","version":8,"experiment_key":"welcome_flow_addressbook_81","bucket_names":["control","addressbook"]},"Relevance_V1-49":{"bucket":"control","version":10,"experiment_key":"Relevance_V1-49","bucket_names":["control","recent"]}},"pageLocaleClass":"western pt","pageLocale":"pt","globalConfig":{"photo_sizes":{"large":{"h":2048,"resize":"fit","w":1024},"medium":{"h":1200,"resize":"fit","w":600},"thumb":{"h":150,"resize":"crop","w":150},"small":{"h":480,"resize":"fit","w":340}},"non_username_paths":["about","account","accounts","activity","all","announcements","anywhere","api_rules","api_terms","apirules","apps","auth","badges","blog","business","buttons","contacts","devices","direct_messages","download","downloads","edit_announcements","faq","favorites","find_sources","find_users","followers","following","friend_request","friendrequest","friends","goodies","help","home","im_account","inbox","invitations","invite","jobs","list","login","logout","me","mentions","messages","newtwitter","notifications","nudge","oauth","phoenix_search","positions","privacy","public_timeline","related_tweets","replies","retweeted_of_mine","retweets","retweets_by_others","rules","saved_searches","search","sent","settings","share","signup","signin","similar_to","statistics","terms","tos","translate","trends","tweetbutton","twttr","update_discoverability","users","welcome","who_to_follow","widgets","zendesk_auth","media_signup","phoenix_qunit_tests"],"max_media_per_upload":1,"short_url_length_https":20,"characters_reserved_per_media":20,"photo_size_limit":3145728,"short_url_length":19},"requestCacheSeedData":[{"options":[{}],"json":{"profile_sidebar_border_color":"C0DEED","profile_background_tile":false,"profile_sidebar_fill_color":"DDEEF6","name":"Testando","created_at":"Fri Jul 01 11:10:49 +0000 2011","location":null,"profile_image_url":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","is_translator":false,"profile_link_color":"0084B4","id_str":"327319701","follow_request_sent":false,"contributors_enabled":false,"favourites_count":0,"states":{"pending_email":"testandoXXXX#hotmail.com","bouncing_email":["testandoXXXX#hotmail.com"],"detached_email":false,"suspended":false,"needs_employee_email_update":false},"url":null,"default_profile":true,"id":327319701,"utc_offset":null,"profile_image_url_https":"https:\/\/si0.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","profile_use_background_image":true,"listed_count":0,"lang":"pt","followers_count":0,"profile_text_color":"333333","protected":false,"profile_background_color":"C0DEED","profile_background_image_url_https":"https:\/\/si0.twimg.com\/images\/themes\/theme1\/bg.png","verified":false,"time_zone":null,"geo_enabled":false,"description":null,"notifications":false,"statuses_count":0,"default_profile_image":true,"friends_count":0,"profile_background_image_url":"http:\/\/a0.twimg.com\/images\/themes\/theme1\/bg.png","show_all_inline_media":false,"following":false,"screen_name":"tatXtxt"},"api_request_name":"account\/verify_credentials"},{"options":[{"include_available_features":1,"include_entities":1,"pc":true,"contributor_details":true}],"json":[],"api_request_name":"statuses\/home_timeline"},{"options":[{}],"json":{"sleep_time":{"end_time":null,"enabled":false,"start_time":null},"language":"pt","discoverable_by_email":true,"always_use_https":false,"geo_enabled":false},"api_request_name":"account\/settings"},{"options":[{"pc":true}],"json":{"trends":{"current_trends":[{"name":"#listentoyourheart","url":"http:\/\/search.twitter.com\/search?q=%23listentoyourheart"},{"name":"#youneedtositdown","url":"http:\/\/search.twitter.com\/search?q=%23youneedtositdown"},{"name":"Teddy Bautista","url":"http:\/\/search.twitter.com\/search?q=%22Teddy%20Bautista%22"},{"name":"#eqakl","url":"http:\/\/search.twitter.com\/search?q=%23eqakl"},{"name":"Mayor Duterte","url":"http:\/\/search.twitter.com\/search?q=%22Mayor%20Duterte%22"},{"name":"Brendon Urie","url":"http:\/\/search.twitter.com\/search?q=%22Brendon%20Urie%22"},{"name":"Mirror Mirror","url":"http:\/\/search.twitter.com\/search?q=%22Mirror%20Mirror%22"},{"name":"BTD","url":"http:\/\/search.twitter.com\/search?q=BTD"},{"name":"\'Perfect Night\'","url":"http:\/\/search.twitter.com\/search?q=%22\'Perfect%20Night\'%22"},{"name":"Black & White","url":"http:\/\/search.twitter.com\/search?q=%22Black%20&%20White%22"}]}},"api_request_name":"trends\/current"},{"options":[{}],"json":{"promo":{"name":"IOC Olympic Day (PT)","created_at":"Wed Jun 22 21:28:29 +0000 2011","promo_contents":"\u003Ca href=\"http:\/\/contest.olympic.org\/\" class=\"definition\" onClick=\"javascript: pageTracker._trackPageview(\'\/\ndefinition\/IOC_pt\');\"\u003E\u003Cstrong\u003EDia Ol\u00edmpico no Twitter\u003C\/strong\u003E\u003C\/a\u003E Comemore o espir\u00edto dos Jogos Ol\u00edmpicos no Twitter e voc\u00ea poder\u00e1 ganhar uma viagem a Londres 2012.","promo_type":"","updated_at":"Thu Jun 23 17:00:45 +0000 2011","id":150,"is_sponsored":false,"is_active":true,"locale":"pt"}},"api_request_name":"promos\/random"}],"remoteIP":"189.104.75.181","appcacheRequiredMajorVersion":1,"userProperties":{"emailDiscoverabilitySet":true,"mobilePhoneDiscoverabilitySet":false,"deviceAddress":null,"discoverableByEmail":true,"discoverableByMobilePhone":false,"emailAddress":"null","deviceSetup":false},"currentUser":{"memberships_path":"\/tatXtxt\/lists\/memberships","rgba_tweet_border_color":"rgba(0,132,180,0.15)","linkified_status":"","rgba_sidebar_color":"rgba(221,238,246,0.9)","user_followers_path":"\/tatXtxt\/followers","screen_name_from_server":"tatXtxt","profile_image_url_from_server":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2_normal.png","rgba_newtweets_border_color":"rgba(0,132,180,0.25)","rgba_tweet_background_color":"rgba(0,132,180,0.1)","subscriptions_path":"\/tatXtxt\/lists\/subscriptions","user_favorites_path":"\/tatXtxt\/favorites","profile_path":"\/tatXtxt","id":327319701,"rgba_newtweets_background_color":"rgba(0,132,180,0.2)","lists_path":"\/tatXtxt\/lists","rgba_text_color":"rgba(51,51,51,0.6)","user_following_path":"\/tatXtxt\/following","latest_timestamp":"","account_profile_image_path":"\/account\/profile_image\/tatXtxt","bigger_profile_image_url":"http:\/\/a1.twimg.com\/sticky\/default_profile_images\/default_profile_2.png"},"requestFullCity":"br,05,feira_de_santana","postAuthenticityToken":"3de1b517590cad537393d7c2999d024524c8b492","isAdmin":false}';
print_r(json_decode($json));
PHP parses the string (heredoc) literal in your script. And \ may have a special meaning depending on the character that follows. If you want a \ in your string you should/must write \\ in your literal
$json = <<<START
{"currentUserScreenName":"tatXtxt","recentPlaces":[],"cdnBase":{"versioned":{"ssl":["https:\\/\\/si0.twimg.com\\/a\\/1309465578"],"http":["http:\\/\\/a0.twimg.com\\/a\\/1309465578","http:\\/\\/a1.twimg.com\\/a\\/1309465578","http:\\/\\/a2.twimg.com\\/a\\/1309465578","http:\\/\\/a3.twimg.com\\/a\\/1309465578"]},"unversioned":{"ssl":["https:\\/\\/si0.twimg.com"],"http":["http:\\/\\/a0.twimg.com","http:\\/\\/a1.twimg.com","http:\\/\\/a2.twimg.com","http:\\/\\/a3.twimg.com"]}},"pageLocaleJS":"http:\\/\\/a3.twimg.com\\/a\\/1309465578\\/javascripts\\/phoenix\\/i18n\\/pt.js","becameUser":false,"payload":{"profiling":false,"conditionalTemplates":{}},"isNarrow":true,"deciderFeatures":{"tweet_stream_list":1,"geo_location":1,"people_stream_friends":1,"tweet_stream_favorites":1,"promo_component":1,"phoenix_local_gowalla":1,"new_trends_location_selector":1,"geo_ui":1,"flock":1,"phoenix_geo_v4":1,"geo_ui_dropdown_available":1,"tweet_stream_mentions_polling":1,"contact_import_stream":1,"html5Routing":1,"list_stream_memberships":1,"phoenix_frontpage_rotate_avatars":1,"tweet_stream_retweets_by_you":1,"inline_media_component":1,"whotofollow_random_sample":1,"phoenix_sandboxed_ajax":1,"tweet_stream_following_polling":1,"whotofollow_recommendations":1,"phoenix_first_time":1,"list_stream_own_lists":1,"phoenix_facets_logged_out":1,"phoenix_amazon_details":1,"in_reply_to_component":1,"sync_scribe":1,"geo_show_similar_places":1,"phoenix_turkey_permalink":1,"tweet_streams_polling":1,"media_flagging":1,"phoenix_search_relevance_logged_out":1,"user_shuffler":1,"mobile_download_gallery_logged_out":1,"phoenix_aol_video":1,"logged_out_people_search":1,"social_context":1,"email_device_settings":1,"people_streams":1,"tweet_stream_user_polling":1,"tweet_stream_retweets_by_you_polling":1,"people_stream_people_search":1,"phoenix_local_plancast":1,"scribe_client_event":1,"tweet_streams":1,"profile_combined_api":1,"tweet_stream_user":1,"phoenix_facets_videos":1,"phoenix_instagram_and_friends":1,"tweet_geo_component":1,"tweet_stream_mentions":1,"phoenix_tweetbox_talon":1,"phoenix_scribe":1,"phoenix_local_meetup":1,"tweet_stream_search":1,"phoenix_facets":1,"dashboard_activity_following":1,"retweeters_component":1,"people_stream_list_followers":1,"more_lists_component":1,"mt_tweet_backend_bing":1,"phoenix_talon_on_copy":1,"place_users_stream":1,"message_stream":1,"tweet_stream_home":1,"phoenix_autocomplete_place_trigger_words":1,"dashboard_activity_favorites":1,"dashboard_activity_listed":1,"list_streams":1,"tweet_stream_your_tweets_retweeted_polling":1,"phoenix_local_foursquare":1,"phoenix_puffin":1,"tweet_stream_list_polling":1,"tweet_stream_retweets_by_others":1,"phoenix_search_dropdown":1,"people_stream_follower_requests":1,"tweet_stream_home_polling":1,"trends_component":1,"phoenix_search_relevance":1,"tweet_stream_your_tweets_retweeted":1,"phoenix_pretty_links":1,"local_trends":1,"place_people_component":1,"people_stream_list_members":1,"place_tweets_component":1,"dashboard_activity_followers":1,"following_page_tweets_tab":1,"list_stream_subscriptions":1,"tweet_stream_retweets_by_others_polling":1,"mobile_download_gallery":1,"geo_more_places":1,"japanese_ad_component":1,"infinite_scroll":1,"tweet_stream_search_polling":1,"whotofollow_similarities":1,"people_stream_followers":1,"recent_tweets_component":1,"tweet_stream_favorites_polling":1,"welcome_warm_signup":1,"geo_allow_set_location_manually":1,"promptbird_phoenix":1,"phoenix_facets_images":1,"promoted_accounts_in_whotofollow_viewall":1,"suggestion_categories_streams":1,"geo_place_creation":1,"conversations":1,"tweet_stream_following":1,"phoenix_autocomplete":1,"onebox_user_search":1,"advanced_search":1,"i18n_new_translation_center":1,"fake_loggedout_decider":1,"newest_list_members_component":1},"adminRights":false,"isPreflight":false,"languages":[{"css_classes":"western pt","name":"Portugu\\u00eas","code":"pt","name_en":"Portuguese"},{"css_classes":"western it","name":"Italiano","code":"it","name_en":"Italian"},{"css_classes":"western es","name":"Espa\\u00f1ol","code":"es","name_en":"Spanish"},{"css_classes":"western tr","name":"T\\u00fcrk\\u00e7e","code":"tr","name_en":"Turkish"},{"css_classes":null,"name":"English","code":"en","name_en":"English"},{"css_classes":"asian ko","name":"\\ud55c\\uad6d\\uc5b4","code":"ko","name_en":"Korean"},{"css_classes":"western fr","name":"fran\\u00e7ais","code":"fr","name_en":"French"},{"css_classes":"western ru","name":"\\u0420\\u0443\\u0441\\u0441\\u043a\\u0438\\u0439","code":"ru","name_en":"Russian"},{"css_classes":"western de","name":"Deutsch","code":"de","name_en":"German"},{"css_classes":"asian ja","name":"\\u65e5\\u672c\\u8a9e","code":"ja","name_en":"Japanese"}],"abBuckets":{"remember_me_on_signup_83":{"bucket":"experiment","version":9,"experiment_key":"remember_me_on_signup_83","bucket_names":["control","experiment"]},"Contact_Import_Images-40":{"bucket":"control","version":3,"experiment_key":"Contact_Import_Images-40","bucket_names":["control","images"]},"Contact_Import_Services-39":{"bucket":"control","version":4,"experiment_key":"Contact_Import_Services-39","bucket_names":["control","vertical","vertical_matched"]},"welcome_flow_addressbook_81":{"bucket":"control","version":8,"experiment_key":"welcome_flow_addressbook_81","bucket_names":["control","addressbook"]},"Relevance_V1-49":{"bucket":"control","version":10,"experiment_key":"Relevance_V1-49","bucket_names":["control","recent"]}},"pageLocaleClass":"western pt","pageLocale":"pt","globalConfig":{"photo_sizes":{"large":{"h":2048,"resize":"fit","w":1024},"medium":{"h":1200,"resize":"fit","w":600},"thumb":{"h":150,"resize":"crop","w":150},"small":{"h":480,"resize":"fit","w":340}},"non_username_paths":["about","account","accounts","activity","all","announcements","anywhere","api_rules","api_terms","apirules","apps","auth","badges","blog","business","buttons","contacts","devices","direct_messages","download","downloads","edit_announcements","faq","favorites","find_sources","find_users","followers","following","friend_request","friendrequest","friends","goodies","help","home","im_account","inbox","invitations","invite","jobs","list","login","logout","me","mentions","messages","newtwitter","notifications","nudge","oauth","phoenix_search","positions","privacy","public_timeline","related_tweets","replies","retweeted_of_mine","retweets","retweets_by_others","rules","saved_searches","search","sent","settings","share","signup","signin","similar_to","statistics","terms","tos","translate","trends","tweetbutton","twttr","update_discoverability","users","welcome","who_to_follow","widgets","zendesk_auth","media_signup","phoenix_qunit_tests"],"max_media_per_upload":1,"short_url_length_https":20,"characters_reserved_per_media":20,"photo_size_limit":3145728,"short_url_length":19},"requestCacheSeedData":[{"options":[{}],"json":{"profile_sidebar_border_color":"C0DEED","profile_background_tile":false,"profile_sidebar_fill_color":"DDEEF6","name":"Testando","created_at":"Fri Jul 01 11:10:49 +0000 2011","location":null,"profile_image_url":"http:\\/\\/a1.twimg.com\\/sticky\\/default_profile_images\\/default_profile_2_normal.png","is_translator":false,"profile_link_color":"0084B4","id_str":"327319701","follow_request_sent":false,"contributors_enabled":false,"favourites_count":0,"states":{"pending_email":"testandoXXXX#hotmail.com","bouncing_email":["testandoXXXX#hotmail.com"],"detached_email":false,"suspended":false,"needs_employee_email_update":false},"url":null,"default_profile":true,"id":327319701,"utc_offset":null,"profile_image_url_https":"https:\\/\\/si0.twimg.com\\/sticky\\/default_profile_images\\/default_profile_2_normal.png","profile_use_background_image":true,"listed_count":0,"lang":"pt","followers_count":0,"profile_text_color":"333333","protected":false,"profile_background_color":"C0DEED","profile_background_image_url_https":"https:\\/\\/si0.twimg.com\\/images\\/themes\\/theme1\\/bg.png","verified":false,"time_zone":null,"geo_enabled":false,"description":null,"notifications":false,"statuses_count":0,"default_profile_image":true,"friends_count":0,"profile_background_image_url":"http:\\/\\/a0.twimg.com\\/images\\/themes\\/theme1\\/bg.png","show_all_inline_media":false,"following":false,"screen_name":"tatXtxt"},"api_request_name":"account\\/verify_credentials"},{"options":[{"include_available_features":1,"include_entities":1,"pc":true,"contributor_details":true}],"json":[],"api_request_name":"statuses\\/home_timeline"},{"options":[{}],"json":{"sleep_time":{"end_time":null,"enabled":false,"start_time":null},"language":"pt","discoverable_by_email":true,"always_use_https":false,"geo_enabled":false},"api_request_name":"account\\/settings"},{"options":[{"pc":true}],"json":{"trends":{"current_trends":[{"name":"#listentoyourheart","url":"http:\\/\\/search.twitter.com\\/search?q=%23listentoyourheart"},{"name":"#youneedtositdown","url":"http:\\/\\/search.twitter.com\\/search?q=%23youneedtositdown"},{"name":"Teddy Bautista","url":"http:\\/\\/search.twitter.com\\/search?q=%22Teddy%20Bautista%22"},{"name":"#eqakl","url":"http:\\/\\/search.twitter.com\\/search?q=%23eqakl"},{"name":"Mayor Duterte","url":"http:\\/\\/search.twitter.com\\/search?q=%22Mayor%20Duterte%22"},{"name":"Brendon Urie","url":"http:\\/\\/search.twitter.com\\/search?q=%22Brendon%20Urie%22"},{"name":"Mirror Mirror","url":"http:\\/\\/search.twitter.com\\/search?q=%22Mirror%20Mirror%22"},{"name":"BTD","url":"http:\\/\\/search.twitter.com\\/search?q=BTD"},{"name":"'Perfect Night'","url":"http:\\/\\/search.twitter.com\\/search?q=%22'Perfect%20Night'%22"},{"name":"Black & White","url":"http:\\/\\/search.twitter.com\\/search?q=%22Black%20&%20White%22"}]}},"api_request_name":"trends\\/current"},{"options":[{}],"json":{"promo":{"name":"IOC Olympic Day (PT)","created_at":"Wed Jun 22 21:28:29 +0000 2011","promo_contents":"\\u003Ca href=\\"http:\\/\\/contest.olympic.org\\/\\" class=\\"definition\\" onClick=\\"javascript: pageTracker._trackPageview('\\/\\ndefinition\\/IOC_pt');\\"\\u003E\\u003Cstrong\\u003EDia Ol\\u00edmpico no Twitter\\u003C\\/strong\\u003E\\u003C\\/a\\u003E Comemore o espir\\u00edto dos Jogos Ol\\u00edmpicos no Twitter e voc\\u00ea poder\\u00e1 ganhar uma viagem a Londres 2012.","promo_type":"","updated_at":"Thu Jun 23 17:00:45 +0000 2011","id":150,"is_sponsored":false,"is_active":true,"locale":"pt"}},"api_request_name":"promos\\/random"}],"remoteIP":"189.104.75.181","appcacheRequiredMajorVersion":1,"userProperties":{"emailDiscoverabilitySet":true,"mobilePhoneDiscoverabilitySet":false,"deviceAddress":null,"discoverableByEmail":true,"discoverableByMobilePhone":false,"emailAddress":"null","deviceSetup":false},"currentUser":{"memberships_path":"\\/tatXtxt\\/lists\\/memberships","rgba_tweet_border_color":"rgba(0,132,180,0.15)","linkified_status":"","rgba_sidebar_color":"rgba(221,238,246,0.9)","user_followers_path":"\\/tatXtxt\\/followers","screen_name_from_server":"tatXtxt","profile_image_url_from_server":"http:\\/\\/a1.twimg.com\\/sticky\\/default_profile_images\\/default_profile_2_normal.png","rgba_newtweets_border_color":"rgba(0,132,180,0.25)","rgba_tweet_background_color":"rgba(0,132,180,0.1)","subscriptions_path":"\\/tatXtxt\\/lists\\/subscriptions","user_favorites_path":"\\/tatXtxt\\/favorites","profile_path":"\\/tatXtxt","id":327319701,"rgba_newtweets_background_color":"rgba(0,132,180,0.2)","lists_path":"\\/tatXtxt\\/lists","rgba_text_color":"rgba(51,51,51,0.6)","user_following_path":"\\/tatXtxt\\/following","latest_timestamp":"","account_profile_image_path":"\\/account\\/profile_image\\/tatXtxt","bigger_profile_image_url":"http:\\/\\/a1.twimg.com\\/sticky\\/default_profile_images\\/default_profile_2.png"},"requestFullCity":"br,05,feira_de_santana","postAuthenticityToken":"3de1b517590cad537393d7c2999d024524c8b492","isAdmin":false}
START;
Related
$string = "Response 22: 404 (8345ms), headers: Accept-Ranges=bytes,
Cache-Control=no-cache, no-store, private, Connection=close,
Content-Encoding=gzip, Content-Language=it-it, Content-Length=1674,
Content-Location=index.html.it-it, Content-Type=text/html;
charset=utf-8, Date=Wed, 24 Sep 2014 19:01:30 GMT,
ETag='eb1-50331586750c0;503ac178f62dd', Last-Modified=Tue, 16 Sep 2014
16:35:55 GMT, Server=Apache,
Strict-Transport-Security=max-age=31536000; includeSubDomains,
TCN=choice, Vary=negotiate,accept,accept-language,Accept-Encoding,
X-Frame-Options=SAMEORIGIN, X-UA-Compatible=IE=Edge";
Here I want to grab response number(=> 22), response code(=> 404) and its milli seconds(=> 8345ms).
I think I have to use regex, but I am new to that. Can you please give any suggestions?
Response\s*(\d+):\s*(\d+)\s*\((\S+)?\)
Try this.Get the three groups.See demo.
http://regex101.com/r/qC9cH4/3
I am trying to grab my twitter feed using the following code:
// Make the request and get the response into the $json variable
$json = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
// It's json, so decode it into an array
$result = json_decode($json);
// Access the profile_image_url element in the array
echo $result->created_at;
?>
I get the result of:
Thu Oct 25 18:40:50 +0000 2012
If I try to get the text with:
echo $result->text;
I get this error:
Notice: Undefined property: stdClass::$text in /Library/WebServer/Documents/include/twitter_noformat/items.php on line 35
A partial var_dump of my data format includes this:
{"created_at":"Thu Aug 01 16:12:18 +0000 2013",
"id":362969042497175553,
"id_str":"362969042497175553",
"text":"A warm welcome to our new international students from China, Hong Kong and Germany! http:\/\/t.co\/GLvt3GynJV",
"source":"web",
"truncated":false,"in_reply_to_status_id":null,"in_reply_to_status_id_str":null,"in_reply_to_user_id":null,"in_reply_to_user_id_str":null,"in_reply_to_screen_name":null,"user":
My question is:
created_at gives me a value. id gives me a value. Why doesn't text? I know nothing about JSON btw. I'm not a very advanced programmer, but the pattern looks the same to me.
Edit: Well I found a cool snippet that converted my twitter array to something more readable. The function goes like this:
// It's json, so decode it into an array
$result = json_decode($json);
// Access the profile_image_url element in the array
$pretty = function($v='',$c=" ",$in=-1,$k=null)use(&$pretty){$r='';if(in_array(gettype($v),array('object','array'))){$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").'<br>';foreach($v as $sk=>$vl){$r.=$pretty($vl,$c,$in+1,$sk).'<br>';}}else{$r.=($in!=-1?str_repeat($c,$in):'').(is_null($k)?'':"$k: ").(is_null($v)?'<NULL>':"<strong>$v</strong>");}return$r;};
echo $pretty($result);
The results now look like this:
statuses_count: 583
lang: en
status:
created_at: Thu Aug 01 21:10:10 +0000 2013
id: 363044004444651522
id_str: 363044004444651522
text: #CalStateEastBay AD Sara Lillevand Judd '86 honored for her work as an athletic adminstrator. http://t.co/WzOqjIDrBw
This is strange because that makes text look like it's part of an object?
I have determined that twitter kicks back an array of objects. Those objects can have a lot of items(?) As I mentioned previously though I can echo $result->created_at; but not text. They are both at the same level of the array.
thanks in advance for your help,
Donovan
Alright here was my solution after a day of research:
$result = json_decode( $json );
echo "Text:" . $result->status->text . "<br />";
Text was a child(?) of status. I could echo created_at because it was used at two levels of the array, which I hadn't seen before. Text was inside the status object I guess.
created_at: Thu Oct 25 18:40:50 +0000 2012
favourites_count: 1
utc_offset: -25200
time_zone: Pacific Time (US & Canada)
geo_enabled: 1
verified:
statuses_count: 583
lang: en
status:
created_at: Thu Aug 01 21:10:10 +0000 2013
id: 363044004444651522
id_str: 363044004444651522
text: #CalStateEastBay AD Sara Lillevand Judd '86 honored for her work as an athletic adminstrator. http://t.co/WzOqjIDrBw
I am trying to get the events for my fullCalendar implementation with the "events (as a JSON feed)" built in feature.
...
event: 'calendarFill.php',
...
The php file returns the following JSON data:
[{"id":"40","title":"test four","services":"Reflexology (40), foot-soak","start":"Tue Mar 26 2013 13:00:00","end":"Tue Mar 26 2013 13:40:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test two of update. this sentence added at update.","seat":"Side Couch 9","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"},{"id":"41","title":"test four","services":"Foot-Soak, ","start":"Wed Mar 27 2013 19:00:00","end":"Wed Mar 27 2013 19:15:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test of addslashes. what's going to happen?","seat":"Front Chair 2","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"}]
The above does not work - the events are not displayed on the calendar. I've cut and pasted the code directory in my Javascript code:
events: {"id":"40","title":"test four","services":"Reflexology (40), foot-soak","start":"Tue Mar 26 2013 13:00:00","end":"Tue Mar 26 2013 13:40:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test two of update. this sentence added at update.","seat":"Side Couch 9","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"},{"id":"41","title":"test four","services":"Foot-Soak, ","start":"Wed Mar 27 2013 19:00:00","end":"Wed Mar 27 2013 19:15:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test of addslashes. what's going to happen?","seat":"Front Chair 2","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"}],
And, it does not display. But, if I edit the above to remove all the quotes that are not surrounding text values (as below), IT WORKS.
events: [{id:40,title:"test four",services:"Reflexology (40), foot-soak",start:"Tue Mar 26 2013 13:00:00",end:"Tue Mar 26 2013 13:40:00",color:"#e56b15",customerId:21,phone:"555-0404",email:"test4",notes:"test two of update. this sentence added at update.",seat:"Side Couch 9",vip:"yes",confirmed:"yes",knows_policies:"yes",customer_here:0,allDay:false},{id:41,title:"test four",services:"Foot-Soak, ",start:"Wed Mar 27 2013 19:00:00",end:"Wed Mar 27 2013 19:15:00",color:"#e56b15",customerId:21,phone:"555-0404",email:"test4",notes:"test of addslashes. what's going to happen?",seat:"Front Chair 2",vip:"yes",confirmed:"yes",knows_policies:"yes",customer_here:0,allDay:false}],
I am using the documentation at this link: http://arshaw.com/fullcalendar/docs/event_data/events_json_feed/
What am I doing wrong? Should I remove the 'json_encode' from my php and just return a string formatted like the above? I'd like to do it the 'right' way and not some work-around.
Added the php as requested:
// for connection to db
include("../includes/config.php");
include("../includes/mysql_functions.php");
// connection with db
$linkID = db_connect();
$returnValue = array();
$getEventData = mysql_query("SELECT apt_num, services, apt_date_start, apt_date_end, therapist, customer_num, notes, seat, confirmed, knows_policies, here FROM appointments", $linkID);
if ($getEventData != FALSE && mysql_num_rows($getEventData) > 0)
{
while ($theEventData = mysql_fetch_array($getEventData))
{
$getCustomerString = "SELECT first_name, middle_name, last_name, phone, email, vip FROM customer WHERE customer_num = ".$theEventData['customer_num'];
$getCustomerData = mysql_query($getCustomerString, $linkID);
if ($getCustomerData != FALSE && mysql_num_rows($getCustomerData) > 0)
{
while($theCustomerData = mysql_fetch_array($getCustomerData))
{
$customerName = $theCustomerData['first_name']." ".$theCustomerData['middle_name']." ".$theCustomerData['last_name'];
$customerPhone = $theCustomerData['phone'];
$customerEmail = $theCustomerData['email'];
$customerVip = $theCustomerData['vip'];
}
}
else
{
$customerName = "error";
$customerPhone = "error";
$customerEmail = "error";
$customerVip = "error";
}
$rowArray['id'] = $theEventData['apt_num'];
$rowArray['title'] = $customerName;
$rowArray['services'] = $theEventData['services'];
$rowArray['start'] = date("D", $theEventData['apt_date_start'])." ".date("M", $theEventData['apt_date_start'])." ".date("d", $theEventData['apt_date_start'])." ".date("Y", $theEventData['apt_date_start'])." ".date("H", $theEventData['apt_date_start']).":".date("i", $theEventData['apt_date_start']).":".date("s", $theEventData['apt_date_start']);
$rowArray['end'] = date("D", $theEventData['apt_date_end'])." ".date("M", $theEventData['apt_date_end'])." ".date("d", $theEventData['apt_date_end'])." ".date("Y", $theEventData['apt_date_end'])." ".date("H", $theEventData['apt_date_end']).":".date("i", $theEventData['apt_date_end']).":".date("s", $theEventData['apt_date_end']);
$rowArray['color'] = $theEventData['therapist'];
$rowArray['customerId'] = $theEventData['customer_num'];
$rowArray['phone'] = $customerPhone;
$rowArray['email'] = $customerEmail;
$rowArray['notes'] = $theEventData['notes'];
$rowArray['seat'] = $theEventData['seat'];
$rowArray['vip'] = $customerVip;
$rowArray['confirmed'] = $theEventData['confirmed'];
$rowArray['knows_policies'] = $theEventData['knows_policies'];
$rowArray['customer_here'] = $theEventData['here'];
$rowArray['allDay'] = "false";
array_push($returnValue, $rowArray);
}
}
else
{
$returnValue[0] = "error";
}
print json_encode($returnValue);
Markus Vetter (from Google+) found the problem. In the original code returned from my php file there is an "'" that causes an issue. I needed to 'addslashes' to my php before returning it to the jQuery/Javascript. Once that was done, the jQuery / fullCalendar code was able to render my events as expected.
A second pair of eyes does wonders! Thank you Markus Vetter!
The original code returned:
[{"id":"40","title":"test four","services":"Reflexology (40), foot-soak","start":"Tue Mar 26 2013 13:00:00","end":"Tue Mar 26 2013 13:40:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test two of update. this sentence added at update.","seat":"Side Couch 9","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"},{"id":"41","title":"test four","services":"Foot-Soak, ","start":"Wed Mar 27 2013 19:00:00","end":"Wed Mar 27 2013 19:15:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test of addslashes. what's going to happen?","seat":"Front Chair 2","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"}]
After using 'addslashes' in my php for all text fields:
[{"id":"40","title":"test four","services":"Reflexology (40), foot-soak","start":"Tue Mar 26 2013 13:00:00","end":"Tue Mar 26 2013 13:40:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test two of update. this sentence added at update.","seat":"Side Couch 9","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"},{"id":"41","title":"test four","services":"Foot-Soak, ","start":"Wed Mar 27 2013 19:00:00","end":"Wed Mar 27 2013 19:15:00","color":"#e56b15","customerId":"21","phone":"555-0404","email":"test4","notes":"test of addslashes. what\'s going to happen?","seat":"Front Chair 2","vip":"yes","confirmed":"yes","knows_policies":"yes","customer_here":"0","allDay":"false"}]
Actually solved this time! In my php file, the last value added to the $rowArray is: $rowArray['allDay'] = "false". Instead of being a text value, it needs to be the actual boolean value. This "$rowArray['allDay'] = false" fixed the problem.
I had the same issue and it was a formatting thing for me as well.
This is how my json is returning now and it is finally working.
[{"title":"Coke Trade Show","start":"2014-12-03"},{"title":"Michigan Show","start":"2014-12-04"}]
Definitely a good idea to paste your json return straight into the JS to make sure it is working.
Im having problems with the dropbox API.
When i try to get the metadata for my folder, i get the data output like this:
{"hash":"10f86b5b7c9c9276501f67a71ecd41c9","thumb_exists":false,"bytes":0,"path":"\/","is_dir":true,"size":"0 bytes","root":"app_folder","contents":[{"revision":7,"rev":"7069e0896","thumb_exists":true,"bytes":19749,"modified":"Tue, 20 Mar 2012 05:06:43 +0000","client_mtime":"Mon, 26 Sep 2011 11:50:43 +0000","path":"\/1_sml.jpg","is_dir":false,"icon":"page_white_picture","root":"dropbox","mime_type":"image\/jpeg","size":"19.3 KB"},{"revision":6,"rev":"6069e0896","thumb_exists":true,"bytes":15797,"modified":"Tue, 20 Mar 2012 05:06:43 +0000","client_mtime":"Mon, 26 Sep 2011 11:51:09 +0000","path":"\/2_sml.jpg","is_dir":false,"icon":"page_white_picture","root":"dropbox","mime_type":"image\/jpeg","size":"15.4 KB"},{"revision":5,"rev":"5069e0896","thumb_exists":true,"bytes":13349,"modified":"Tue, 20 Mar 2012 05:06:43 +0000","client_mtime":"Mon, 26 Sep 2011 11:51:26 +0000","path":"\/3_sml.jpg","is_dir":false,"icon":"page_white_picture","root":"dropbox","mime_type":"image\/jpeg","size":"13 KB"},{"revision":4,"rev":"4069e0896","thumb_exists":true,"bytes":8838,"modified":"Tue, 20 Mar 2012 05:06:43 +0000","client_mtime":"Mon, 26 Sep 2011 11:51:46 +0000","path":"\/4_sml.jpg","is_dir":false,"icon":"page_white_picture","root":"dropbox","mime_type":"image\/jpeg","size":"8.6 KB"},{"revision":3,"rev":"3069e0896","thumb_exists":true,"bytes":99646,"modified":"Tue, 20 Mar 2012 04:57:58 +0000","client_mtime":"Tue, 20 Sep 2011 14:14:26 +0000","path":"\/bg.jpg","is_dir":false,"icon":"page_white_picture","root":"dropbox","mime_type":"image\/jpeg","size":"97.3 KB"}],"icon":"folder"}
My problem is that i would like get the output for each the image/file name only.. But i can find the right way to do it.. i through i could do it this way:
$info = json_encode($dropbox->getMetaData(''));
foreach($info->contents->path as $file){
echo $file;
}
But i get this error:
Warning: Invalid argument supplied for foreach() in /home/djrasmusp/rasmusp.com/db/index.php on line 16
But is there anyone that can give me a helping hand with my problem?
Try json_decode instead of json_encode (and maybe use second parameter to produce associated array instead of stdClass).
I had the same problem, here is my solution:
$metaData = $dropbox->metaData($path);
foreach($metaData['body']->contents as $file){
$f = str_replace("/", "", $file->path);
echo "<li>$f</li>";
}
tested by me :)
require_once('bootstrap.php');
$metaData = $dropbox->metaData();
foreach($metaData['body']->contents as $file)
{
echo "<pre>";
echo $file->path;
}
I have a text file that I am displaying in a table. I am using preg_match_all to find a specific Title with a specific Chapter and I am replacing the Title and Chapter with preg_replace to make it a link..
For example the contents within the text file are as follows:
Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44
And I am replacing the Title's and Chapters... (i.e. Naruto 123) with a link to the webpage where that is located.
I also need to take into effect the folderpath that the webpage is located in.
The folderpath is the title of the anime. So if we were doing it for Naruto 123 the folder path is Naruto/.
So in the end the link will look like this:
http://website/folderpath/animetitle animechapter
The problem that I have is that I can get the folderpath's correct but I cannot create 2 or more distinct links. My code replaces Naruto 123 and Naruto 98 with the same link.
Here is what my code:
<?
$data=file_get_contents('series-updates.txt'); //get data from file
$regexp[0]="/(Naruto)[[:space:]](\w+)/";
$regexp[1]="/Naruto/";
preg_match($regexp[0], $data, $matches); //match Manga Title with Chapter for URL
$url= $matches[0];
preg_match($regexp[1], $data, $matches2); //match Manga Title for folderpath
$folderpath= $matches2[0];
$patterns= '/(Naruto)[[:space:]](\w+)/';
$replacements= ''.$url.'';
$data=preg_replace($patterns,$replacements, $data);
$dat=explode("\n",$data); //split data at new lines
echo '<table cellspacing=0>';
foreach ($dat AS $value) { //loop
echo '<tr><td>'.$value.'</td></tr>';
}
echo '</table>';
?>
here is an the output of the code:
http://xennetworks.com/output3.php
** ALSO, the reason why in the php code I am using preg_match instead of preg_match_all is because if I use preg_match_all for the links I get the output of ARRAY and I wanted you to see the outcome that I would like.
Try this on for size though I'm not sure what you're looking for the link URL:
$s= <<<STR
Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44
STR;
preg_match_all('/\w{3}\s\d{2}\s\d{2}:\d{2}\s(.+)?\s(\d{2,})/', $s, $m);
for ($i=0; $i<count($m[1]); $i++) {
$url= sprintf('http://xennetworks.com/%s %s', $m[1][$i], $m[2][$i]);
echo("$url\n");
}
<?php
$filedata = "Dec 04 20:15 Naruto 123
Dec 04 17:42 Naruto 98
Dec 04 16:19 D Gray Man 001
Dec 04 16:05 Bleach 128
Dec 04 12:13 50 x 50 44";
$lines = explode("\n", $filedata);
echo "<table border=\"1\">";
foreach($lines as $line)
{
echo "<tr>";
preg_match("/^([a-zA-Z]{3}\s\d{2}\s\d{2}:\d{2})\s(.+?)\s(\d+)\s*?$/", $line, $matches);
echo "<td>$matches[1]</td>";
echo "<td>$matches[2] $matches[3]</td>";
echo "</tr>";
}
echo "</table>"
?>