Trabalho braçal

Até o momento eu sempre fazia os trabalhos braçais sem pensar duas vezes no q eu estava fazendo.
Todas as pessoas, inclusive o meu namorado, sempre falavam para fazer um robozinho para ler os dados de diversas páginas. Sempre deu o braço a torcer e tinha orgulho do q fazia.

Isso acontecia até entrar na empresa aonde eu trabalho. Em meio aos códigos eu fui apresentada de forma pacífica como funciona a expressão regular. Ainda estou penando com o treco mas eu já aprendi muito a respeito.

Ok, já consegui pegar o conteúdo. Primeira parte concluída. Ebaa !!!

A agora vem o desafio: colocar o conteúdo de diversas páginas em diversos posts. Como fazer? Vamos surtar?

Não !!!!!

Uma solução que eu encontrei foi:
1 – Parcear o conteúdo;
2 – Editar/formatar o conteúdo;
3 – Passar o conteúdo por wp_insert_post;
4 – Caso tenha campos personalizados, utilize add_post_meta;

Um exemplo de código:

<?php
	$url = 'http://homologa.ambiente.sp.gov.br/ea/biblioteca/biblioteca_din3.asp?cod_biblioteca=';
	for($i = 1; $i <= 2; $i++){
		$conteudo = file_get_contents($url.$i);
		
		#1 - Parcear o conteúdo
		// Dados da página.
		preg_match('/<br>\s*<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="000080"><b>.*<\/b><br>\s*Autor: .*<br>\s*Editora: .*\s*Local: .*<\/font>/',$conteudo,$dados);					
		
		#2 - Editar/formatar o conteúdo
		$aux_dados = explode("<br>",$dados[0]);
		$limpar = array('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="000080"><b>', '</b>', 'Autor: ', 'Editora: ', 'Local: ',	'</font>'	);
		$limpo = array('','','','','','',);
		
		$titulo = utf8_encode(trim(str_replace($limpar,$limpo,$aux_dados[1])));
		$autor = utf8_encode(trim(str_replace($limpar,$limpo,$aux_dados[2])));
		$editora = utf8_encode(trim(str_replace($limpar,$limpo,$aux_dados[3])));
		$localidade = utf8_encode(trim(str_replace($limpar,$limpo,$aux_dados[4])));
		
		// Conteúdo da página
		#1 - Parcear o conteúdo
		preg_match('/<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="000080">.*<\/font>/',$conteudo,$conteudo_page);
		var_dump($conteudo_page);
		#2 - Editar/formatar o conteúdo
		$limpar = array('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="000080">','</font>');
		$limpo = array('','');		
		$conteudo_pag = utf8_encode(trim(str_replace($limpar,$limpo,$conteudo_page[0])));
		
		#3 - Passar o conteúdo por wp_insert_post
		$post = array(
				'comment_status' => 'open', // 'closed' means no comments. 	
				'post_content' => $conteudo_pag, //The full text of the post.
				'post_status' => 'publish', //Set the status of the new post. 
				'post_title' => $titulo, //The title of your post.
				'post_type' => 'page', //You may want to insert a regular post, page, link, a menu item or some custom post type 
				);  
				
		$id = wp_insert_post( $post);
		
		#4 - Caso tenha campos personalizados, utilize add_post_meta
		add_post_meta($id,"Titulo",$titulo);
		add_post_meta($id,"Autor",$autor);
		add_post_meta($id,"Editora",$editora);
		add_post_meta($id,"Localidade",$localidade);
	}
	?>
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s