This is an error 404
There are `0` results
preferences:
1556.4 ms | 1390 KiB | 21 Q<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Engine_ extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('engine_model','objEngine');
//$this->load->library('verificausuario',array('tipo'=>'sistema'));
}
public function index()
{
if($_SERVER['REQUEST_METHOD']=='POST')
{
$opcoes = array(
'edicao'=>true,
'artista'=>true,
'raridade'=>true,
'tipo'=>true,
'subtipo'=>true,
'carta'=>true
);
$url = $this->input->post('url');
$idioma = explode('/',$url);
$idioma = explode('.',$idioma[4]);
$idioma = $idioma[0];
$dados = array(
'resultado' => $this->getLinks($url,$opcoes,$idioma)
);
}
$this->load->view('head');
$this->load->view('header');
$this->load->view('sidebar');
$this->load->view('page',@$dados);
$this->load->view('footer');
}
function getLinks($url,$opcoes,$idioma){
$html = file_get_html($url);
$rows = $html->find('tr');
$dados = array();
foreach ($rows as $row) {
$cells = $row->find('td');
$cellData = array();
foreach ($cells as $cell) {
$cellData[] = $cell->outertext;
}
$dados[] = $cellData;
}
unset ($dados[count($dados)-1]);//elimina contagem das paginas e lista e...
for ($i=0;$i < 4;$i++){
unset ($dados[$i]);//elimina menu, lista etc...
}
//for ($i=5;$i < 300;$i++){
// unset ($dados[$i]);//elimina menu, lista etc...
//}
$html->clear();
unset($html);
$idioma = $idioma;
//echo '<meta charset="utf-8">';
foreach($dados as $d){
$info = $this->getInfo($d,$idioma);
$json['nome'] = $info['edicao'];
$json['idioma'] = $info['idioma'];
$json['sigla_edicao'] = $info['sigla_edicao'];
$json['cards'][] = $this->getInfo($d,$idioma);
$json_criado = json_encode($json);
if($opcoes['edicao']){
//cadastra Edicao///////////////////////////
$this->objEngine->nome = $info['edicao'];
$this->objEngine->idioma = $info['idioma'];
$this->objEngine->sigla = $info['sigla_edicao'];
$this->objEngine->cadastraEdicao();
unset($this->objEngine->idioma);
unset($this->objEngine->sigla);
unset($this->objEngine->nome);
/////////////////////////////////////////////
}
if($opcoes['artista']){
///////CADASTRA ARTISTA//////////////////////
$this->objEngine->nome = $info['artista'];
$this->objEngine->cadastraArtista();
unset($this->objEngine->nome);
}
/////////////////////////////////////////////
if($opcoes['tipo']){
//cadastrando tipo se nao existir////////////
$this->objEngine->nome = $info['tipo'];
$this->objEngine->cadastraTipo();
unset($this->objEngine->nome);
}
/////////////////////////////////////////////
if($opcoes['subtipo']){
//cadastraSubTipo se nao existir/////////////
$this->objEngine->nome = $info['subtipo'];
$this->objEngine->cadastraSubTipo();
unset($this->objEngine->nome);
}
/////////////////////////////////////////////
if($opcoes['raridade']){
//CADASTRA RARIDADE se nao existir///////////
$this->objEngine->nome = $info['raridade'];
$this->objEngine->cadastraRaridade();
unset($this->objEngine->nome);
/////////////////////////////////////////////
}
//recupera o ID do tipo///////////////////////
$this->objEngine->nome = $info['tipo'];
$id_tipo = $this->objEngine->pegaTipo();
unset($this->objEngine->nome);
$id_tipo = $id_tipo[0]->id_tipo;
//////////////////////////////////////////////
if($opcoes['carta']){
//recupera o ID do subtipo///////////////////////
$this->objEngine->nome = $info['subtipo'];
$id_subtipo = $this->objEngine->pegaSubTipo();
unset($this->objEngine->nome);
@$id_subtipo = $id_subtipo[0]->id_subtipo;
if ($id_subtipo == '' || $id_subtipo == null) $id_subtipo = 2;
//////////////////////////////////////////////
//recupera o ID do subtipo///////////////////////
$this->objEngine->nome = $info['edicao'];
$this->objEngine->idioma = $info['idioma'];
$id_edicao = $this->objEngine->pegaEdicao();
unset($this->objEngine->nome);
unset($this->objEngine->idioma);
$id_edicao = $id_edicao[0]->id_edicao;
//////////////////////////////////////////////
//recupera o ID do artista///////////////////////
$this->objEngine->nome = $info['artista'];
$id_artista = $this->objEngine->pegaArtista();
unset($this->objEngine->nome);
$id_artista = $id_artista[0]->id_artista;
//////////////////////////////////////////////
//recupera o ID do raridade///////////////////////
$this->objEngine->nome = $info['raridade'];
$id_raridade = $this->objEngine->pegaRaridade();
unset($this->objEngine->nome);
$id_raridade = $id_raridade[0]->id_raridade;
//////////////////////////////////////////////
$this->objEngine->artista_id_artista = $id_artista;
$this->objEngine->raridade_id_raridade = $id_raridade;
$this->objEngine->subtipo_id_subtipo = $id_subtipo;
$this->objEngine->edicao_id_edicao = $id_edicao;
$this->objEngine->tipo_id_tipo = $id_tipo;
$this->objEngine->nome = $info['nome'];
$this->objEngine->idioma = $info['idioma'];
$this->objEngine->ataque = $info['ataque'];
$this->objEngine->resistencia = $info['resistencia'];
$this->objEngine->descricao = $info['descricao'];
$this->objEngine->descricao_en = @$info['descricao_en'];
$this->objEngine->texto = $info['texto'];
$this->objEngine->regras = $info['regras'];
if (isset($info['mana_c'])) $this->objEngine->mana_c = $info['mana_c'];
if (isset($info['mana'])) $this->objEngine->mana = trim(@$info['mana']);
$this->objEngine->imagem = $info['cod_imagem'];
$this->objEngine->imagem_src = $info['imagem_src'];
$this->objEngine->cadastraCarta();
unset($this->objEngine->nome);
unset($this->objEngine->idioma);
unset($this->objEngine->artista_id_artista);
unset($this->objEngine->raridade_id_raridade);
unset($this->objEngine->subtipo_id_subtipo);
unset($this->objEngine->edicao_id_edicao);
unset($this->objEngine->tipo_id_tipo);
unset($this->objEngine->ataque);
unset($this->objEngine->resistencia);
unset($this->objEngine->descricao);
unset($this->objEngine->descricao_en);
unset($this->objEngine->texto);
unset($this->objEngine->regras);
unset($this->objEngine->mana_c);
unset($this->objEngine->custo);
unset($this->objEngine->mana);
unset($this->objEngine->imagem);
unset($this->objEngine->imagem_src);
unset($id_edicao);
unset($id_artista);
unset($id_subtipo);
unset($id_tipo);
unset($id_raridade);
$resultado[$info['nome']]['nome'] = $info['nome'];
$resultado[$info['nome']]['descricao'] = substr($info['descricao'],0,200);
}
}
$fp = fopen('jsons/'.trim($json['nome']).$json['idioma'].".json", "a");
fwrite($fp, $json_criado);
fclose($fp);
return $resultado;
}
function getInfo($cont,$idioma){
$html = str_get_html($cont[1]);
$resul['cod_imagem'] = strip_tags($cont[0]);//COD IMAGEM
$resul['raridade'] = strip_tags($cont[4]);//RARIDADE
$resul['edicao'] = strip_tags($cont[6]);//edicao
$conn[] = $html->find('a');
$nome = $html->find('a');
$nome = strip_tags($nome[0]);
$url = 'http://magiccards.info'.$conn[0][0]->href;
$html = file_get_html($url);
$descricao[] = $html->find('p');
foreach ($descricao as $carta) {
//pega tipo
if(strpos($carta[0], '—')){
$tipo = explode('—',$carta[0]);
$e = explode(',',$tipo[1]);
$e = explode(' ',$e[0]);
$res = explode('/', $e[count($e)-1]);
if (count($res) >= 2){
$resul['ataque'] = strip_tags($res[0]);//ATAQUE
$resul['resistencia'] = strip_tags($res[1]);//RESISTENCIA
}else{
$resul['ataque'] = '';//ATAQUE
$resul['resistencia'] = '';//RESISTENCIA
}
for($i = 0;$i < count($e) -1;$i++){
@$subtipo .= $e[$i].' ';
}
}else{
$tipo = explode(',',$carta[0]);
@$subtipo = '';
$resul['ataque'] = '';
$resul['resistencia'] ='';
}
$tipo = $tipo[0];
$resul['tipo'] = strip_tags($tipo);//TIPO
$resul['subtipo'] = strip_tags($subtipo);//SUBTIPO
$resul['nome'] = $nome;
//NOME
//captura a parte que tem a mana convertida
if(!strpos($resul['tipo'] , 'Mágica') &&
!strpos($resul['tipo'] , 'Artefato') &&
!strpos($resul['tipo'] , 'Planeswalker') &&
!strpos($resul['tipo'] , 'Feitiço') &&
!strpos($resul['tipo'] , 'Terreno') &&
!strpos($resul['tipo'] , 'Sorcery') &&
!strpos($resul['tipo'] , 'Instant') &&
!strpos($resul['tipo'] , 'Enchantment') &&
!strpos($resul['tipo'] , 'Artifact') &&
!strpos($resul['tipo'] , 'Land') &&
!strpos($resul['tipo'] , 'Encantamento') ){
$mana_c = explode('(',$carta[0]);
if(strpos($mana_c[0],'Planeswalker')){
$mana = explode(',',$mana_c[1]);
if($mana_c[1]) $resul['mana_c'] = substr($mana_c[2],0,1);//MANA_C
if($mana[1]) $resul['mana'] = trim($mana[1]); //MANA SEM CONVERTER
}else{
$mana = explode(',',$mana_c[0]);
if(@$mana[1]) @$resul['mana'] = trim(@$mana[1]); //MANA SEM CONVERTER
//remove o ) do final
if(@$mana_c[1]) @$mana_c = substr(@$mana_c[1],0,1);
@$resul['mana_c'] = strip_tags(@$mana_c);//MANA_C
}
}
$htmldesc = str_get_html($carta[1]);//gera um array com o html do texto
$desc = $htmldesc->find('b');//pega dentro do array somente a tag b que é a que tem a descricao
$resul['descricao'] = $desc[0]->innertext;//gera a descricao
$htmldesc = str_get_html($carta[2]);
$desc = $htmldesc->find('b');
if(@$desc[0]->innertext != null) @$resul['descricao_en'] = @$desc[0]->innertext;//DESCRICAO_EN
//SALVAR IMAGEM////////////////////////////////
$imagem[] = $html->find('table');//pega tabela que tem a imagem
$htmlimg = str_get_html($imagem[0][3]); //gera o html
$img = $htmlimg->find('img');//recupera todos os possiveis IMG
$url_q = explode('/',$img[0]->src);//pega o primeiro IMG encontrado que eh a foto da carta
$resul['imagem_src'] = $img[0]->src;
if($this->criar_pasta('../cartas/'.$url_q[5].'/'.$url_q[4], 0777 )){ //criar pasta no servidor
$destino='../cartas/'.$url_q[5].'/'.$url_q[4].'/'.$url_q[6];//gera o endereço de destino (pasta criada a cima junto com o nome da imagem ex: 1.jpg)
$resul['sigla_edicao'] = $url_q[5];
$resul['idioma'] = $idioma;//$url_q[4];
if (copy($img[0]->src,$destino)) {
$resul['imagem'] = 'OK'; //copia a imagem pro servidor
}else{
$resul['imagem'] = 'ERRO AO COPIAR IMAGEM';
}
}else{
$resul['imagem'] = 'ERRO AO CRIAR PASTA';
}
//FIM SALVAR IMAGEM////////////////////////////
if($resul['idioma'] != 'en'){
$resul['texto'] = strip_tags($carta[3]);//TEXTO
$resul['artista'] = strip_tags($carta[4]);//ARTISTA
}else{
$resul['texto'] = strip_tags($carta[2]);//TEXTO
$resul['artista'] = strip_tags($carta[3]);//ARTISTA
}
}
//DESCRICAO DAS REGRAS
$descricao[] = $html->find('ul');// como algumas cartas nao possuem as mudanças de regras aki ele pega as duas possiveis
foreach ($descricao as $carta) {
$resul['regras'] = @$carta[1];
$resul['regras'] .= @$carta[0];
}
$htmlimg->clear();
$htmldesc->clear();
$html->clear();
unset($nome);
unset($mana);
unset($mana_c);
unset($e);
unset($res);
unset($subtipo);
unset($tipo);
unset($desc);
unset($imagem);
unset($img);
unset($url_q);
unset($descricao);
unset($cont);
unset($destino);
unset($htmlimg);
unset($htmldesc);
unset($html);
unset($conn);
return $resul;
}
private function criar_pasta($path, $mode = 0777){
$dirs = explode(DIRECTORY_SEPARATOR , $path);
$count = count($dirs);
$path = '.';
for ($i = 0; $i < $count; ++$i) {
$path .= DIRECTORY_SEPARATOR . $dirs[$i];
if (!is_dir($path) && !mkdir($path, $mode)) {
return false;
}
}
return true;
}
}