Essa dica é muito boa para pegar referências nativas automaticamente sem precisar ficar dando Ctrl+C, Ctrl+V.

Primeiro, vamos escolher um página da wikipedia para obtermos o conteúdo.

Por exemplo: Tropa de Elite 2

Vamos ver o código fonte da página a fim de encontrar algum padrão:

Hum… note que encontramos o seguinte. Todo artigo está envolvido nas tags de comentário <!– content –> e <!– /content –>

<!-- content -->
		<div id="content">
			<a id="top"></a> 

............CONTEUDO SUPRIMIDO ...........
	<!-- /bodyContent -->
		</div>
		<!-- /content -->
		<!-- header -->

Ótimo. Então vamos trabalhar em cima disso.

A dica para pegar o conteúdo ENTRE essas tags é usando expressões regulares.

Nós precisamos pegar: TAG DE ENTRADAS + CONTEÚDO + TAG DE SAÍDA.

Assim, podemos usar a própria tag literalmente e o operador qualquer coisa (.) repetido infinitas vezes.

Assim, teremos:

<!-- content -->.*<!-- /content -->

Para integrar no nosso sistema, vamos usar a função PHP chamada preg_match_all que vai casar a expressão regular com o conteúdo inserido. O conteúdo será provido pela variável $informação que  foi carregada com a string do código fonte da página. O código foi capturado com a função file_get_contents().

Veja como ficou o código

<?php
$informacao = file_get_contents('http://pt.wikipedia.org/wiki/Tropa_de_Elite_2:_O_Inimigo_agora_%C3%89_Outro');
preg_match_all('%<!-- content -->.*<!-- /content -->%s', $informacao, $resultado, PREG_PATTERN_ORDER);
$resultado = $resultado[0][0];

echo $resultado;
?>

Pronto, agora podemos usar o conteúdo da variável para salvar no banco de dados, ou fazer um carregamento em Ajax.

Use a imaginação.

Post feito com base na dúvida de MSS.

Pois é. Hoje meu servidor ficou fora do ar. O motivo foi o servidor de banco de dados que caiu, assim nenhum site que usasse banco de dados, estava travado. Não abria. Retomando essa discussão, e se o servidor tivesse crashado geral e tivesse perdido tudo? Já era, né? Não é bem assim.
Abaixo estou compartilhando o meu código de backup que criei há um tempo atrás.
Nele é possível montar o backup do banco de dados e mandar por e-mail.
No meu caso, o mesmo executa 1 vez por dia. Mas fica a seu critério ao rodar o cron.
Dependências: phpmailer. Baixe aqui.
<?php
// aumenta a memoria e importa o mailer
ini_set("memory_limit","64M");
require 'class.phpmailer.php';
// gera backup
$nome = '/tmp/' . date('Ymd-Hi') . '.sql';
exec("mysqldump -u usuario --password='senha' --all-databases > {$nome}");
exec("gzip $nome");
$nome .= ".gz";
$tamanho = number_format(filesize($nome) / 1048576, 0);
$data = date('d/m/Y');
$m = new PHPMailer();
$m->SetFrom('emaildofrom@dominio.com', 'Backup do BD');
$m->AddAddress('destinatario@dominio.com', 'Nome do Destinatario');
$m->AddAttachment($nome);
$m->Subject = 'Backup de Banco de Dados Diario '.$data;
$m->MsgHTML(nl2br("Backup dos Bancos de Dados. \n Dia: {$data} \n Tipo: ANEXO \n Tamanho: {$tamanho}MB."));
// envio backup
if ($m->Send()) {
unlink($filename);
}
?>

Então é isso.
Fica a dica e até mais. Qualquer dúvida, podem comentar aqui abaixo.

Tags: , , ,