2015-11-23 6 views
6

में कनवर्ट करें मैं कुछ डेटा प्राप्त करने के लिए php का उपयोग कर वेबसाइट स्क्रैप कर रहा हूं। मुझे प्राप्त डेटा एक मान्य जावास्क्रिप्ट सरणी है।जावास्क्रिप्ट स्ट्रिंग को php array

  "['v42, 2015', 23428, 30243, 76993] 
       , 
      ['v43, 2015', 24060, 30401, 73412] 
       , 
      ['v44, 2015', 22855, 29720, 71573] 
       , 
      ['v45, 2015', 24455, 30757, 78991] 
       , 
      ['v46, 2015', 24275, 30398, 84424]" 

अब मेरे पास यह स्ट्रिंग php में है, लेकिन मैं इसे एक php सरणी में कैसे परिवर्तित कर सकता हूं?

+3

कृपया (फिर से) ले [दौरे], चारों ओर एक नजर है, और के माध्यम से [सहायता] पढ़ते हैं, विशेष रूप से [में *:

इस उदाहरण कोड का प्रयास करें? *] (/ मदद/कैसे पूछने के लिए) आपने क्या प्रयास किया है? तुम क्या फंस गए हो –

उत्तर

6
$string = "['v42, 2015', 23428, 30243, 76993] 
       , 
      ['v43, 2015', 24060, 30401, 73412] 
       , 
      ['v44, 2015', 22855, 29720, 71573] 
       , 
      ['v45, 2015', 24455, 30757, 78991] 
       , 
      ['v46, 2015', 24275, 30398, 84424]"; 

यह एक मान्य js सरणी यदि आप उचित शुरू & अंत वर्ग कोष्ठक सीमांकक जोड़ने है। इसके अलावा, php json पार्सर आवश्यकताओं का पालन करने के लिए, स्ट्रिंग delimiters एकल उद्धृत के बजाय डबल-उद्धृत होना चाहिए, इसलिए एक त्वरित प्रतिस्थापन किया जाना चाहिए।

फिर आप तो जैसे यह डिकोड कर सकते हैं:

$ary = json_decode('['.str_replace("'",'"',$string).']', true); 
+0

मुझे नहीं पता कि मुझे आपकी विधि से 'शून्य' क्यों मिला है – Andrew

+1

@ स्विडमैन ने इस मुद्दे को देखा, एकल उद्धरण को डबल कोट्स के साथ प्रतिस्थापित करने की आवश्यकता है। मेरा जवाब अपडेट कर रहा है। – Calimero

0

आप [ ]'' साथ और फिर स्ट्रिंग को तोड़ने की जगह कोशिश कर सकते हैं।

$string = str_replace(']', '', str_replace('[', '',$string)); 
$array = explode(',', $string); 
2

सिंगल कोट्स जेएस में मान्य हो सकते हैं, लेकिन JSON को कभी-कभी इसमें कोई समस्या होती है। आप इसे यहाँ की कोशिश कर सकते हैं: JSONLint

एक मान्य JSON के लिए, बस डबल कोट्स " साथ एकल उद्धरण ' की जगह, सरणियों आप कोष्ठक [] के साथ अपने स्ट्रिंग के चारों ओर करने के लिए है के साथ एक सरणी प्राप्त करने के लिए। मैं कैसे एक अच्छा सवाल पूछते हैं

$string = "['v42, 2015', 23428, 30243, 76993] 
       , 
      ['v43, 2015', 24060, 30401, 73412] 
       , 
      ['v44, 2015', 22855, 29720, 71573] 
       , 
      ['v45, 2015', 24455, 30757, 78991] 
       , 
      ['v46, 2015', 24275, 30398, 84424]"; 

$string = str_replace("'" , '"', $string); 
$string = '['.$string.']'; 

echo "<pre>"; 
var_dump(json_decode($string)); 
+1

उद्धरण अंक को स्पॉट करने वाला अच्छा बिंदु। – Calimero

+1

अच्छी तरह से धन्यवाद, आप से भी अच्छा जवाब;) – swidmann

संबंधित मुद्दे