Aqui vai um código inteiro funcionando, basta salvar como arquivo php e executar:
<html>
<body>
<?
// *** Aqui a funcao que captura dados dos produtos ***
function CapturaMultiplos(&$dados, $cat, $busca, $inicio, $qtd, $codaf, $usuario, $senha) {
$url = "http://www.mercadolivre.com.br/jm/searchXml?as_categ_id=" . $cat . "&as_word=" . $busca . "&as_desde=" . $inicio . "&as_qshow=" . $qtd . "&user=" . $usuario . "&pwd=" . $senha . "&noQCat=Y";
$handle = fopen ($url, "rb");
$conteudo = "";
do {
$data = fread($handle, 8192);
if (strlen($data) == 0) {
break;
}
$conteudo .= $data;
} while(true);
fclose ($handle);
$texto = split ('<items>', $conteudo);
$texto = split ('</items>', $texto[1]);
$texto = split ('</item>', $texto[0]);
for ($i = 0; $i < count($texto)-1; $i++) {
$id = split ('id="', $texto[$i]);
$id = split ('">', $id[1]);
$dados[$i]['id'] = $id[0];
$titulo = split ('<title>', $texto[$i]);
$titulo = split ('</title>', $titulo[1]);
$ant = array(" ,", "+");
$nov = array(",", " + ");
$titulo = str_replace($ant, $nov, $titulo[0]);
$titulo = preg_replace("/\s+/s", " ", trim($titulo));
$dados[$i]['titulo'] = $titulo;
$url = split ('<link>', $texto[$i]);
$url = split ('</link>', $url[1]);
$url = str_replace("XXX", $codaf, $url[0]);
$dados[$i]['url'] = $url;
$imagem = split ('<image_url>', $texto[$i]);
$imagem = split ('</image_url>', $imagem[1]);
$dados[$i]['imagem'] = $imagem[0];
$mpago = split ('<mpago>', $texto[$i]);
$mpago = split ('</mpago>', $mpago[1]);
$dados[$i]['mpago'] = $mpago[0];
$moeda = split ('<currency>', $texto[$i]);
$moeda = split ('</currency>', $moeda[1]);
$dados[$i]['moeda'] = $moeda[0];
$preco = split ('<price>', $texto[$i]);
$preco = split ('</price>', $preco[1]);
$preco = substr_replace($preco[0], ',', strlen($preco[0])-3, 1);
if (strlen($preco) > 6) {
$preco = substr_replace($preco, '.', strlen($preco)-7, 1);
}
$dados[$i]['preco'] = $preco;
}
}
// *** Aqui chamamos a funcao ***
CapturaMultiplos($dados, 2074, "", 1, 10, 322368, "", "");
// *** Agora basta listar os produtos ***
for ($i = 0; $i < count($dados); $i++) {
echo("Imagem: <img src='" . $dados[$i]['imagem'] . "'><br>");
echo("Url: " . $dados[$i]['url'] . "<br>");
echo("Título: " . $dados[$i]['titulo'] . "<br>");
echo("Mercado Pago: " . $dados[$i]['mpago'] . "<br>");
echo("Preço: " . $dados[$i]['moeda'] . " " . $dados[$i]['preco'] . "<br><br>");
}
?>
</body>
</html>
O código é simples, não vou falar sobre a função em sí, mas vale uma explicação sobre o uso:
1) Os argumentos da
CapturaMulplicos são os seguintes:
- CapturaMultiplos(
$dados,
$categoria,
$busca,
$inicio,
$quantidade,
$codigo_afiliado,
$usuario,
$senha);
-
$dados = uma array que vai receber a lista de produtos
-
$categoria = veja a numeração da categoria desejada no site do ML
-
$busca = se desejar fazer uma busca por palavra(s)
-
$inicio = iniciar por determinado item da lista de produtos
-
$quantidade = quantos produtos capturar (obs: para capturar mais de 10 produtos você precisa pedir uma senha para o ML)
-
$codigo_afiliado = seu código de afiliado ML
-
$usuario = fornecido pelo ML e necessário para listar mais de 10 produtos
-
$senha = fornecida pelo ML e necessária para listar mais de 10 produtos
2) Feito isso a lista de produtos estará em
$dados, em forma de array:
$dados[0]['imagem']
$dados[0]['url']
$dados[0]['titulo']
$dados[0]['mpago']
$dados[0]['moeda']
$dados[0]['preco']
$dados[1]['imagem']
$dados[1]['url']
$dados[1]['titulo']
$dados[1]['mpago']
$dados[1]['moeda']
$dados[1]['preco']
A quantidade de produtos é a que você pediu ao chamar a função. Para acessar a lista basta fazer um loop como no final do exemplo.
O objetivo do script é apenas capturar dados dos produtos. Depois disso você pode formatar a exibição como ficar melhor no seu site. No
meu caso, eu estou exibindo produtos aleatórios em forma de banner, na parte superior, e em forma de arranha-céu, do lado direito. E agora fiz também uma
loja virtual.
Flw!
Edição feita por: SuperEly, 01/01/2006, 13:40.