2016-07-16 15 views
1

Ich versuche, eine $customFieldName in ein Array zu konvertieren, aber ich bekomme es als String zurück. Ich habe versucht, die folgenden:Get_post_meta String-Array zu Array

1 Versuchen

$field = array(); 
    $field = get_post_meta((int)$id[0], $customFieldName, true); 

2 Versuchen

$field = array(); 
    $field = unserialize(get_post_meta((int)$id[0], $customFieldName, true)); 

Der String ich wieder sieht erhalten wie folgt aus:

„{\ "use_own_api": false, \ "google_auth_code \": \ "4 \/hLXqq9X7sX1sOY -K6MhpEZu6bc8fGGADKLnjlcWA-p4 \ ", \" google_api_key \ ": \" AIzaSyAJjpxVyfZ0WQPZSPr72DOuKU3X-sXquqM \ ", \" google_client_id \ ":" 180054848980.apps.googleusercontent.com \ ", \" google_client_secret \ ": \" sdfsd \ " , \ "google_access_token \": \ "access_token \\": \\ "ya29.Ci8YA6-sfsd-asdfas \\", \\ "token_type \\": \\ "Bearer \\", \\ "expires_in \\": 3600, \\ "refresh_token \\": \\ "1 \/534ewsdcy \\", \\ "created \\": 1467867036} \ ", \" ga_active_web_property \ ": {\" __ PHP_Incomplete_Class_Name \ ": \" Google_Webproperty \ ", \" accountId \ ": \" 7489234 \ ", \" childLink \ ": {\" \ PHP_Incomplete_Class_Name \ ": \" Google_WebpropertyChildLink \ ", \" href \ ": \" https: \/\/www.googleapis.com \/analytics \/v3 \/management \/accounts \/7489234 \/webproperties \/UA-7489234-1 \/profiles \ ", \" type \ ": \" analytics # Profile \ "}, \" created \ ":" 2016-06-28T19: 38: 17.530Z "," ID ":" UA-7489234-1 "," industryVertical ": \" COMPUTERS_AND_ELECTRONICS \ ", \\ internalWebPropertyId \": \ "11922adsf \", \ "art \": \ "analytics # webproperty \", \ "level \": \ ""

Allerdings bekomme ich es immer noch als String zurück.

Irgendwelche Vorschläge, wie Sie das Array zurück array bekommen.

Ich freue mich über Ihre Antwort!

+0

Haben Sie das versucht. $ jArr = json_decode ($ jsonString, true); –

Antwort

2

Ich kopiere deine Zeichenfolge aber ersetzen zwei Schrägstriche \\ zu drei \\\ (Ich mache es nur, um Ihre Zeichenfolge korrekt in meine PHP-Code-Anführungszeichen zu kopieren) dann ich und füge zwei}} am Ende der Zeichenfolge (schauen am Ende des $ st unten in Code) gültig json haben - danach kann ich Array erhalten:

$field = json_decode(str_replace("\\\"",'"',get_post_meta((int)$id[0], $customFieldName, true) . '}}'),true); 
:

$st = '{\"use_own_api\":false,\"google_auth_code\":\"4\/hLXqq9X7sX1sOY-K6MhpEZu6bc8fGGADKLnjlcWA-p4\",\"google_api_key\":\"AIzaSyAJjpxVYfZ0WQPZSPr72DOuKU3X-sXquqM\",\"google_client_id\":\"180054848980.apps.googleusercontent.com\",\"google_client_secret\":\"sdfsd\",\"google_access_token\":\"{\\\"access_token\\\":\\\"ya29.Ci8YA6-sfsd-asdfas\\\",\\\"token_type\\\":\\\"Bearer\\\",\\\"expires_in\\\":3600,\\\"refresh_token\\\":\\\"1\/534ewsdcy\\\",\\\"created\\\":1467867036}\",\"ga_active_web_property\":{\"__PHP_Incomplete_Class_Name\":\"Google_Webproperty\",\"accountId\":\"7489234\",\"childLink\":{\"__PHP_Incomplete_Class_Name\":\"Google_WebpropertyChildLink\",\"href\":\"https:\/\/www.googleapis.com\/analytics\/v3\/management\/accounts\/7489234\/webproperties\/UA-7489234-1\/profiles\",\"type\":\"analytics#profiles\"},\"created\":\"2016-06-28T19:38:17.530Z\",\"id\":\"UA-7489234-1\",\"industryVertical\":\"COMPUTERS_AND_ELECTRONICS\",\"internalWebPropertyId\":\"11922adsf\",\"kind\":\"analytics#webproperty\",\"level\":\""' . '}}'; 
$strWithoutSlash = str_replace("\\\"",'"',$st); 
$array = json_decode($strWithoutSlash,true); 

kann dies (oder etwas ähnliches mit str_replace vor json_decode) Also versuchen

+0

Thx für Ihre Antwort! Ich bekomme immer noch eine Zeichenfolge zurück anstelle eines Arrays. Irgendwelche weiteren Vorschläge? – mrquad

+0

@mrquad Ich aktualisiere meine Antwort. –