使用CURL 發布包含多維數組的表單資料時,遇到「數組到字串轉換」錯誤是一個常見問題。當嘗試使用包含陣列的陣列設定 CURLOPT_POSTFIELDS 時,會發生這種情況。
由於 Content-Type 標頭必須是 multipart/form-data 以方便檔案傳輸,因此將陣列轉換為查詢字串或使用 http_build_query()不可行。此外,存取接收主機的程式碼來序列化和反序列化陣列也是不可行的。
要解決此問題,可以使用名為 http_build_query_for_curl 的自訂函數。它遞歸地迭代數組,將其轉換為適合 CURL POST 請求的格式。然後可以將修改後的陣列分配給 $post 並傳遞給curl_setopt(),從而避免錯誤。
以下是 http_build_query_for_curl 函數的程式碼及其用法範例:
以上是如何解決用PHP在CURL中傳送多維數組時出現「陣列到字串轉換」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!