Wie schnell prüfen, ob ein String JSON in PHP ist?
Hallo zusammen! Ich bin ein PHP-Anfänger und habe ein Problem. In Projekten muss ich oft Daten von APIs oder aus Formularen abrufen, wo ein String ankommt, der JSON oder normaler Text sein kann. Ich muss feststellen, ob der String gültiges JSON ist, und das so schnell wie möglich, weil es viele solcher Prüfungen geben wird.
Derzeit verwende ich diesen Ansatz:
```php
function isJson($string) {
json_decode($string);
return (json_last_error() == JSON_ERROR_NONE);
}
```
Aber ich habe gehört, dass dies nicht die schnellste Methode ist und es effizientere Ansätze gibt. Mich beschäftigen folgende Punkte:
1. Wie langsam ist `json_decode` bei großen Strings?
2. Gibt es eine Möglichkeit, den String ohne vollständiges Parsing zu prüfen?
3. Was ist, wenn der String nur eine Zahl oder `true` ist? `json_decode` gibt für solche Werte Erfolg zurück, obwohl es kein JSON-Objekt oder -Array ist.
4. Muss ich spezielle Fälle berücksichtigen, z. B. sehr große JSONs (Megabyte)?
Ich möchte eine Lösung finden, die effizient ist.