2011-10-11 13 views
17
Warning: Illegal offset type in /email_HANDLER.php on line 85 

$final_message = str_replace($from, $to, $final_message); 

preg_match_all('/<img[^>]+>/i',$final_message, $result); 
$img = array(); 
foreach($result as $img_tag) 
{ 
    preg_match_all("/(alt|title|src)=('[^']*')/i",(string)$img_tag, $img[$img_tag]); //LINE 85 
} 

कोई भी? मैं के बारे में इस पर मेरे बालों को फाड़ करने के लिए कर रहा हूँ ...PHP अवैध ऑफसेट प्रकार

यहाँ के $ img_tag

array(1) { 
    [0]=> 
    string(97) "<img alt='' src='http://pete1.netsos.com/site/files/newsletter/banner.jpg' align='' border='0px'>" 
+2

img_tag $ क्या है इस्तेमाल किया जा सकता? – jprofitt

+0

var_dump ($ img_tag) कृपया – RiaD

+0

मुझे लगता है कि यह SimpleXML के साथ नोड ऑपरेशन की तरह कुछ का परिणाम है? –

उत्तर

32

मान लिया जाये कि $img_tag, किसी प्रकार की एक वस्तु है बल्कि एक उचित स्ट्रिंग की तुलना में मेरी var_dump है, करने के लिए $img_tag डाली []

preg_match_all("/(alt|title|src)=('[^']*')/i",(string)$img_tag, $img[(string)$img_tag]); 
//------------------------------------------------------------------^^^^^^^^^ 

कुछ वस्तु प्रकार के अंदर एक स्ट्रिंग, विशेष रूप से SimpleXMLElement उदाहरण के लिए, magic method __toString() के माध्यम से print/echo के लिए एक स्ट्रिंग प्रतिनिधित्व वापस आ जाएगी, लेकिन सेंट नहीं कर सकते और नियमित तारों के रूप में। सरणी कुंजियों के रूप में उनका उपयोग करने के प्रयास illegal offset type त्रुटि उत्पन्न करेंगे जब तक कि आप उन्हें (string)$obj के माध्यम से उचित तारों तक नहीं डाल देते।

+0

अब जब मैं उन दो स्थानों पर (स्ट्रिंग) जोड़ता हूं, तो यह मुझे स्ट्रिंग्स नहीं देता है जब मैं print_r $ img .... छवि स्थान, कोई विचार क्या है? – VACIndustries

+0

पोस्ट 'print_r ($ परिणाम)' ताकि हम देख सकें कि आप किसके साथ शुरुआत कर रहे हैं। –

+0

यह भी देखने लायक है। अच्छा कॉल, मैं पहले कभी इस में भाग गया था। http://us3.php.net/language.types.type-juggling.php – Jazzy

9

this PHP bug report पर पहली टिप्पणी देखें:

आप कुंजी के रूप में सरणियों या वस्तुओं का उपयोग नहीं कर सकते हैं। ऐसा करने से एक चेतावनी होगी: अवैध ऑफ़सेट प्रकार। अपना कोड जांचें।

सुनिश्चित करें कि $img_tag उचित चर प्रकार का है।

1

$result 2-आयामी array.So, $img_tag एक सरणी होना चाहिए।

लेकिन केवल पूर्णांकों और तारों के रूप में ऑफसेट

-1
foreach($result[0] as $img_tag) 

यह काम करता है

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