codyzzd 0 Denunciar post Postado Dezembro 6, 2009 eae galera estava eu aqui aprendendo ER com PHP e CURL pra fazer um cadastro no banco automatico de algumas paginas da internet :P invez de fazer na mao e tals cheguei ate aqui $urlsite= "http://www.sanavita.com.br/loja/pontosSub.aspx?estado=rj&cidade="; $html = implode('', file($urlsite)); //pega local preg_match_all('/(?<=^|>)[^><].*(?=\s-)/', $html, $res_local); //ler nome preg_match_all('/(?<=\s-\s).*(?=<\/b>)/', $html, $res_nome); //ler endereço preg_match_all('/(?<=<br>)\s\s\s.*(?=&\#149;\s[a-zA-Z])/', $html, $res_end); //ler numero preg_match_all('/[0-9]{3}\s[0-9]{4}-[0-9]{4}\s[0-9]{3}\s[0-9]{4}-[0-9]{4}/', $html, $res_numero); //echo $res_local[0][0]."<br>"; //echo $res_nome[0][0]."<br>"; //echo $res_end[0][0]."<br>"; //echo $res_numero[0][0]."<br>"; //mostra dado pra exemplo //foreach ($res_local as $local1) { // foreach ($local1 as $local2) { //echo $local2."<br>"; //} //} O selecionamento e tudo funciona a questao é vo ficar com 4 arrays e agora preciso fazer um INSERT no banco um atras do outro cadastrando tudo tipo //exemplo XD insert $res_local[0][1] $res_nome[0][1] $res_end[0][1] $res_numero[0][1] insert $res_local[0][2] $res_nome[0][2] $res_end[0][2] $res_numero[0][2] e assim por diante agora como faço seila um foreach seila pra ele ficar andando as 4 arrays junto e cadastrando elas ? ou entao seila guardar as 4 numa so tipo Resultado=>local REsultado=>nome Resultado=>end Resultado=>numero so pra minimizar o trabalho seila algo do genero alguem tem uma luz ? um otimo site para aprender ER ja q eu num sabia muito foi esse aqui muito bom http://gskinner.com/RegExr/ muito da hora :P Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Dezembro 6, 2009 Dá um print_r() nos 4 arrays e posta aqui, pra gente tentar te ajudar a criar esta lógica. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
codyzzd 0 Denunciar post Postado Dezembro 6, 2009 http://www.naturemaxx.com.br/teste/ nessa pagina eu fiz ai pra mostrar ela ta dando print_r aqui ta o codigo <? $urlsite= "http://www.sanavita.com.br/loja/pontosSub.aspx?estado=ac&cidade="; $html = implode('', file($urlsite)); // echo $html; //pega local preg_match_all('/(?<=^|>)[^><].*(?=\s-)/', $html, $res_local); //ler nome preg_match_all('/(?<=\s-\s).*(?=<\/b>)/', $html, $res_nome); //ler endereço preg_match_all('/(?<=<br>)\s\s\s.*(?=&\#149;\s[a-zA-Z])/', $html, $res_end); //ler numero preg_match_all('/[0-9]{3}\s[0-9]{4}-[0-9]{4}\s[0-9]{3}\s[0-9]{4}-[0-9]{4}/', $html, $res_numero); //echo $res_local[0][0]."<br>"; //echo $res_nome[0][0]."<br>"; //echo $res_end[0][0]."<br>"; //echo $res_numero[0][0]."<br>"; $arr = array(1, 2, 3, 4); //foreach ($res_local as $local1) { //foreach ($local1 as $local2) { //echo $local2."<br>"; //} //} print_r($res_local[0][0]); echo "<br>"; print_r($res_nome[0][0]); echo "<br>"; print_r($res_end[0][0]); echo "<br>"; print_r($res_numero[0][0]); ?> estado de AC entao so tem 1 registro so pra demontrar Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Dezembro 6, 2009 Não. O print_r no array. Assim. echo 'Local - <br/>'; print_r($res_local[0][0]); echo 'Nome - <br>'; print_r($res_nome[0][0]); echo 'Endereço - <br>'; print_r($res_end[0][0]); echo 'Número - <br>'; print_r($res_numero[0][0]); Poste aqui o que retornar. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
codyzzd 0 Denunciar post Postado Dezembro 7, 2009 $count = count($res_local[0]); for ($i = 0; $i < $count; $i++) { echo "inserir isso ".$res_local[0][$i]."<br>"; echo "inserir isso ".$res_nome[0][$i]."<br>"; echo "inserir isso ".$res_end[0][$i]."<br>"; echo "inserir isso ".$res_numero[0][$i]."<br><hr>"; } exemplo de como eu resolvi esse nao e o codigo final mas era oq eu queria vo fazer isso virar uma query do mysql q vai cadastrar tudo q ele pegar da pagina :P e por no banco Q LINDO XD um mini webcraler *.* Compartilhar este post Link para o post Compartilhar em outros sites
codyzzd 0 Denunciar post Postado Dezembro 7, 2009 for ($i = 0; $i < $count; $i++) { $sql = 'INSERT INTO cad_ptv (estado,cidade,end,telefone,nome,tipo) VALUES ( "'.$estado.'", "'.trim($res_local[0][$i]).'", "'.trim($res_end[0][$i]).'", "'.$res_numero[0][$i].'", "'.trim($res_nome[0][$i]).'", "'.$tipo.'")'; mysql_query($sql); echo $sql."<br>"; echo $i." - Cadastrado !"; Compartilhar este post Link para o post Compartilhar em outros sites