2010-11-04 9 views
0

Je garde les options de produits sous forme de chaîne dans DB, et je dois l'analyser (chaîne à tableau).Parse une chaîne avec PHP

chaîne est:

{option_name: option_id {variant_id: VARIANT_NAME}}

Comment puis-je analyser avec l'aide de PHP?

+0

Il ressemble à une chaîne JSON. Pourquoi ne pas simplement utiliser json_decode()? – stillstanding

Répondre

7

Pourquoi ne pas utiliser serialize() et unserialize()?

+0

pouvez-vous me donner un exemple? – dino

+0

Au lieu de convertir votre produit à la chaîne que vous avez ci-dessus, prenez le produit (je suppose qu'il est un tableau), puis sérialiser 'serialize (myproductarray $)'. Cela le transforme en une chaîne portable. Lorsque vous avez besoin d'informations de la base de données, obtenir la chaîne, et 'unserialize (myproductstring de $)' pour le récupérer dans un tableau. – matthewpavkov

+0

parfait. Je vous remercie. – dino

1

Vous n'avez pas en détail les formats de terrain alors voici une estimation approximative que vous pouvez modifier:

preg_match('/^{(\w+):(\d+){(\d+):(\w+)}}$/', '{an_option_name:123{456:a_variant_name}}', $matches); 

$option_name = $matches[1]; 
$option_id = $matches[2]; 
$variant_id = $matches[3]; 
$variant_name = $matches[4];