"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > PHP के साथ CURL में बहुआयामी ऐरे भेजते समय \"ऐरे से स्ट्रिंग रूपांतरण\" त्रुटि को कैसे हल करें?

PHP के साथ CURL में बहुआयामी ऐरे भेजते समय \"ऐरे से स्ट्रिंग रूपांतरण\" त्रुटि को कैसे हल करें?

2024-11-06 को प्रकाशित
ब्राउज़ करें:619

How to Solve the \

CURL और PHP के माध्यम से बहुआयामी सारणी भेजना

CURL का उपयोग करके बहुआयामी सारणी वाले फॉर्म डेटा को पोस्ट करते समय, "ऐरे से स्ट्रिंग रूपांतरण" त्रुटि का सामना करना एक आम समस्या है। यह तब होता है जब CURLOPT_POSTFIELDS को एक ऐसे सरणी के साथ सेट करने का प्रयास किया जाता है जिसमें सरणियाँ शामिल होती हैं।

चूंकि फ़ाइल स्थानांतरण की सुविधा के लिए सामग्री-प्रकार हेडर मल्टीपार्ट/फॉर्म-डेटा होना चाहिए, सरणी को क्वेरी स्ट्रिंग में परिवर्तित करना या http_build_query() का उपयोग करना संभव नहीं है. इसके अतिरिक्त, सरणी को क्रमबद्ध और क्रमरहित करने के लिए प्राप्तकर्ता होस्ट के कोड तक पहुंचना एक विकल्प नहीं है।

इस समस्या को हल करने के लिए, http_build_query_for_curl नामक एक कस्टम फ़ंक्शन को नियोजित किया जा सकता है। यह सरणी के माध्यम से पुनरावर्ती रूप से पुनरावृत्त होता है, इसे CURL POST अनुरोधों के लिए उपयुक्त प्रारूप में परिवर्तित करता है। संशोधित सरणी को फिर $post को असाइन किया जा सकता है और त्रुटि से बचते हुए, cur_setopt() को पास किया जा सकता है।

यहां http_build_query_for_curl फ़ंक्शन के लिए कोड और इसके उपयोग का एक उदाहरण दिया गया है:

function http_build_query_for_curl( $arrays, &$new = array(), $prefix = null ) {

    if ( is_object( $arrays ) ) {
        $arrays = get_object_vars( $arrays );
    }

    foreach ( $arrays AS $key => $value ) {
        $k = isset( $prefix ) ? $prefix . '[' . $key . ']' : $key;
        if ( is_array( $value ) OR is_object( $value )  ) {
            http_build_query_for_curl( $value, $new, $k );
        } else {
            $new[$k] = $value;
        }
    }
}

$arrays = array(
    'name' => array(
        'first' => array(
            'Natali', 'Yura'
        )
    )
);


http_build_query_for_curl( $arrays, $post );

print_r($post);
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: 1729642519 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3