JSON_NUMERIC_CHECK und Telefonnummern

8

Unsere PHP API gibt die Ergebnisse unter Verwendung von json_encode mit JSON_NUMERIC_CHECK enabled aus, was für Finanzzahlen, Binärwerte usw. wichtig ist. Wir haben jedoch kürzlich ein Telefonnummernfeld eingeführt und es entfernt Nullen vom Anfang der Nummer, wenn es umgewandelt wird es als Integer.

Ich habe versucht, den Wert "(string)" zu erzwingen, bevor er zu json_encode geht, aber es sieht so aus, als ob die Funktion ihn überschreibt. zB:

%Vor%

Produziert:

%Vor%

Irgendwelche Vorschläge, wie Sie das am besten handhaben können, wären sehr willkommen. Ich möchte wirklich nicht darauf zurückgreifen müssen, am Ende der Telefonnummer nachgestellte Leerzeichen hinzuzufügen, wenn es ausgegeben wird, nur um es als String durchzukommen.

Danke!

    
Ryan Marshall 02.07.2014, 00:00
quelle

4 Antworten

5

Anstatt es in eine Zeichenkette einzugeben, tun Sie etwas wie folgt:

%Vor%

Es wird die abschließende Null behalten:

%Vor%

Dekodieren:

%Vor%

Ausgabe:

%Vor%     
user1978142 02.07.2014 01:15
quelle
1

Hatte das gleiche Problem mit Telefonnummern, das geht über ein Array (keine Objekte!), um nur numerische Werte zu erzeugen, die nicht mit 0 oder + zu einem int oder float beginnen.

%Vor%     
Sander Backus 24.08.2015 12:17
quelle
1

Sie können dies versuchen:

%Vor%

als Beispiel in mysql: WÄHLEN SIE CONCAT ('xn #', Telefonnummer) als Telefonnummer ...

Wenn Sie json_encode() verwendet haben, ersetzen Sie die Zeichenfolge wie folgt:

%Vor%     
Pablo Pixcasso 15.11.2017 00:54
quelle
-1

Für das, was es wert ist, hatte ich ein ähnliches Problem, da ich internationale Telefonnummern habe, die mit einem + -Symbol beginnen. Ich habe urlencode in meiner Telefonnummernfolge verwendet, um das Problem zu umgehen:

%Vor%     
Luke 03.02.2016 23:41
quelle

Tags und Links