Ainda estou interessado em criar meu próprio programa gerador de WSDL mas como não sou muito fan em reinventar a roda e estou com o tempo muito escasso, acho que isso vai demorar a se concretizar, então por enquanto fica essa dica.
Um amigo a alguns dias me perguntou porque que quando ele passava um array via method POST ele não o recebia corretamente mesmo se o array fosse serializado.
Isso acontece porque os dados serializados ao serem submetidos via HTTP POST ou GET são perdidos devido ao fato de o HTTP codificar caracteres especiais com excessão de - ou _ .
Primeiro, vamos criar uma tela com um formulário HTML simples e um array serializado que será submetido por meio de um objeto hidden:
Abaixo o código PHP:>
form.php
<?php
//Inicializa o array
$array = array("Maçã","Banana","Ameixa","Carambola");
//Serializa e codifica com urlencode
$serializado = urlencode(serialize($array));
?>
Abaixo o código HTML:
E depois vamos recuperar este array serializado e codificado e vamos reverter a situação:
recebe_array.php:
<?php
// Recebe o array serializado enviado pelo form
$serializado = $_POST['array'];
// Des-serializa o array e o decodifica com o urldecode
$array = unserialize(urldecode($serializado));
// O Array está pronto para ser utilizado
print_r($array);
?>