Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eai galera!
Como eu poderia editar um código HTML automaticamente utilizando o php?
Eu gostaria de poder remover o favicon que está sendo gerado automaticamente no template.
Em fim, para podermos remover o favicon automatico, teríamos que ver primeiramente o código php que eu estou utilizando para fazer uma cópia do site para a minha hospedagem.
Códigos:
Código 1#
<?php
$ch = curl_init();
?>
<?php
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "http://www.johnmoviesstudio.wix.com/joaopauloramos");
?>
<?php
// Acessar a URL e enviá-la ao browser
curl_exec($ch);
?>
<?php
// liberar o sistema
curl_close($ch);
?>
<style type="text/css"> #WIX_ADS { display:none; } </style>?
O código do icone gerado automaticamente é esse:
Código 2#
<link rel="shortcut icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
<link rel="apple-touch-icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
Bem, o primeiro código, eu utilizo para ser a index.php do meu Host, sendo assim, ele atualiza automaticamente meu site Wix para o meu domínio. Mas o Favicon automatico do wix vai junto! Eu gostaria de poder editar a linha de programação que fica o favicon do Wix, ou talvez simplesmente Remover o favicon do wix. Seria possível uma mãozinha galera? O código 2 é o código que fica lá no template automaticamente com a favicon.
Obrigado.
Informações úteis:
Favicon que eu desejo colocar:
Opa amigo, obrigado por responder!
Eu teria entao que adicionar o código Mais ou menos assim?:
<?php
$ch = curl_init();
?>
<?php
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "johnmoviesstudio.wix.com/joaopauloramos");
?>
<?php
// Acessar a URL e enviá-la ao browser
curl_exec($ch);
?>
$dom->getElementsByTagName("favicon.ico");
<?php
// liberar o sistema
curl_close($ch);
?>
<style type="text/css"> #WIX_ADS { display:none; } </style>?
Eu estou usando o dominio [http://joaopaulo.pe.hu/](http://joaopaulo.pe.hu/) caso queira entrar pra ver como está fique a vontade [;
Eu tentei mas não está dando. :/
Sou leigo em programação. mas estou me arriscando aqui hahaha'
Desculpe a ignorancia :[
Eu teria entao que adicionar o código Mais ou menos assim?:
Não, o que você precisa fazer é estudar a fundo sobre DOMDocument
Entre no Google e pesquise escrevendo, por exemplo: "Get elements with PHP DOMDocument", sem aspas, vai encontrar muitos artigos.
Escrevi esse termo acima no Google e vi este artigo que pode lhe ajudar
http://www.binarytides.com/php-tutorial-parsing-html-with-domdocument/
Está em inglês, mas mesmo se não ler nesse idioma, poderá entender.
Po valeu mesmo mano! Tmj
Ainda não consegui :/
Tem muito tempo desde que trabalhei com DOMDocument, mas vou tentar mostrar um exemplo
<?php
$html = '<!doctype html>
<html>
<head>
<link rel="shortcut icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
<link rel="apple-touch-icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
</head>
<body></body>
</html>';
$dom = new DOMDocument();
// Carrega o conteúdo HTML
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
$xpath = new DOMXPath($dom);
$links = $xpath->query("//link[@type='image/x-icon']");
if ($links->length) {
foreach ($links as $link) {
// Aqui removemos
$link->parentNode->removeChild($link);
}
}
// Aqui temos o HTML já sem as tags link
$html = $dom->saveHTML();
echo $html;Eu colocaria esse código html aqui?
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/pfCLL/e1159dcd6a.png&key=b8260de5e94e18b44cb1438e88f3bb1a429b470504b2b25d512e6b4541ed39ad" alt="e1159dcd6a.png" />
Tipo eu coloquei, mas deu erro... ai ali aonde termina com " } "
eu coloquei coloquei ?> pra fechar o código igual os outros elementos...
Porém com essa minha modificação no finalzinho, o site abriu, mas acho que o código nao funfou...
Acho que foi alguma coisa que eu fiz ou não fiz hahaha
Oq poderia ser?
Obrigado mano Ta salvando minha vida. hahah
Up
Tenta outra abordagem.
Utilize a função:
http://php.net/manual/pt_BR/function.file-get-contents.php
+
Simplehtmldom
http://simplehtmldom.sourceforge.net/
Tem a aba 'How to modify HTML elements?'
// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
$html->find('div', 1)->class = 'bar';
$html->find('div[id=hello]', 0)->innertext = 'foo';
echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>
Um exemplo passo a passo talvez ajude:
Opa amigo! Obrigado por me ajudar.
Poderia me adicionar no Facebook? Tenho medo de não conseguir mais falar com vocês! rsrs
Apenas uma dúvida: ali em
$html->find('div', 1)->class = 'bar';
E em:
$html->find('div[id=hello]', 0)->innertext = 'foo';
Em 'div' eu deveria colocar 'link' ?
Outra dúvida, eu percebi que no seu código foram feitas apenas uma alteração, pois o texto do id 'hello' (Hello) passou a ser 'foo'...
Como eu faria se precisasse alterar duas ids?
As Id's que eu quero alterar são respectivamente
Antes da mudança:
<div id="shortcut icon" href="http://www.wix.com/favicon.ico" type="image/x-icon"/>
Após a mudança:
<link rel="shortcut icon" href="http://puu.sh/ooTW2/4be444bd27.png" type="image/x-icon"/>
E por ultimo essa:
Antes da mudança
<div id="apple-touch-icon" href="http://www.wix.com/favicon.ico" type="image/x-icon"/>
Que ficaria:
<link rel="apple-touch-icon" href="http://puu.sh/ooTW2/4be444bd27.png" type="image/x-icon"/>
Como eu faria?
Obrigado broo!!
Cara abre a documentação e lé.
http://simplehtmldom.sourceforge.net/manual.htm
'How to access the HTML element's attributes?'
// Get a attribute ( If the attribute is non-value attribute (eg. checked, selected...), it will returns true or false)
$value = $e->href;
// Set a attribute(If the attribute is non-value attribute (eg. checked, selected...), set it's value as true or false)
$e->href = 'my link';
// Remove a attribute, set it's value as null!
$e->href = null;
// Determine whether a attribute exist?
if(isset($e->href))
echo 'href exist!';
>
percebi que no seu código foram feitas
Meu código não haha só peguei o exemplo da documentação e colei aqui.
Um exemplo pra ti...
'pagina.html' tem o seguinte conteúdo:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<link id="shortcut icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
<link id="apple-touch-icon" href="[http://www.wix.com/favicon.ico](http://www.wix.com/favicon.ico)" type="image/x-icon"/>
</head>
<body>
</body>
</html>
'teste.php':
<?php
require_once 'simple_html_dom.php';
$html = file_get_contents('pagina.html');
$html = str_get_html($html);
$html->find('link', 0)->href = 'test';
$html->find('link', 1)->href = '123';
echo $html;
Repare que no método find tem 2 parâmetros ('link' + 0).
Ou seja o primeiro eu passo o elemento do DOM e no segundo qual a ocorrência, No exemplo acima tem 2x o elemento (link) logo para acessar a primeira se passa o 0 e para acessar a segunda se passa o 1 (isto é uma convenção em programação)
Mais sobre DOM:
http://tableless.com.br/tenha-o-dom/
Agora sim... MEU exemplo ...
Resultado/Saída do teste.php no browser:
<!DOCTYPE HTML> <html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
<link id="shortcut icon" href="test" type="image/x-icon"/>
<link id="apple-touch-icon" href="123" type="image/x-icon"/>
</head>
<body>
</body>
</html>
Sei lá achei meio ~preguiça~ da sua parte tentar, fazer simples testes.
Ficaria melhor na proxima mostrar quais foram os testes.
Sobre add no Facebook, está na minha Bio, pode adicionar sem problemas, porem só respondo duvida técnica pelo fórum.
Então amigo,Obrigado por me ajudar!
É o seguinte...
eu agora por último criei dentro da pasta 'public' do meu site o seguinte arquivo:
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/piZ6r/7c1c8babe6.JPG&key=e427b0cacfe7346ab41b4b353cfca9c9ddae9166391ec3f4d7173d8921964e47" alt="7c1c8babe6.JPG" />
Pagina.php
Com o conteúdo:
<?php
$ch = curl_init();
?>
<?php
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "johnmoviesstudio.wix.com/joaopauloramos");
?>
<?php
// Acessar a URL e enviá-la ao browser
curl_exec($ch);
?>
<?php
// liberar o sistema
curl_close($ch);
?>
<style type="text/css"> #WIX_ADS { display:none; } </style>?
E um arquivo :
teste.php
Com o conteúdo:
<?php
require_once 'simple_html_dom.php';
$html = file_get_contents('pagina.php');
$html = str_get_html($html);
$html->find('link', 0)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
$html->find('link', 1)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
echo $html;
Mas da o seguinte erro:
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/piZMU/98dc121d55.JPG&key=3ad4bd9e5689371666a4e59efc6fa2b171168cc4fe83693e814b2d1fee08c135" alt="98dc121d55.JPG" />
eu não entendo, pois estou fazendo tudo certinho, o que eu estou fazendo de errado agora?
Basta ler o erro, você está tentando dar require no arquivo simple_html_dom.php, só que ele não existe...
>
Basta ler o erro, você está tentando dar require no arquivo simple_html_dom.php, só que ele não existe...
Eu cometi um pequeno erro, agora sim está tudo ok
Porém as linhas não foram substituidas, não sei porque...
Tipo, eu mudei poucas coisas,
aonde tava "pagina.php" eu mudei pra "index2.php"
Ai eu esqueci de atualizar o código....
Porém agora que eu atualizei, ele apenas entra no site, mas o favicon não é substituido...
Oq eu faço? Já tentei de tudo, e já li inumeros foruns e blogs sobre o assunto, mas acho que só falando diretamente com quem entende eu poderia resolver.
ó código do arquivo teste.php está assim:
<?php
require_once 'index2.php';
$html = file_get_contents('index2.php');
$html = str_get_html($html);
$html->find('link', 0)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
$html->find('link', 1)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
echo $html;
?>
Obrigado por enquanto galera :rolleyes:Minha duvida é....
Você está acessando o 'index2.php'? Pois não é ele que você deve acessar e sim o arquivo 'teste.php'
Ficando assim o fluxo:
-A O php chama via file_get_contents o HTML a ser alterado
-Altera e apresenta a saída (echo $html)
Não sei se ficou claro pra ti mas a pagina que você precisa acessar/chamar via URL é a mesma do seu script.
Ps1: Cade o require_once do seu 'simple_html_dom.php' dentro do teste.php???
Ps2: Pra que esse require_once dentro do index2.php?
Reveja meu exemplo no #14
Ele está 100% funcional (desde que você baixe e coloque na mesma pasta o 'simple_html_dom.php')
Basicamente ele faz oq você pediu.
sim amigo! Estou acessando o teste.php
Vou tentar novamente os passos e mando noticias em breve...
Você está acessando o 'index2.php'? Poi
Eu vou ter que criar outro arquivo simple_html_dom.php ?
eu não entendo!
eu fiz exatamente do modo que você descreveu, porém coloquei somente o meu código cURL que eu uso na pagina.php pra fazer os testes, porém da erro!
Eu FIZ EXATAMENTE do jeito que você colocou, mas eu preciso saber, eu preciso editar alguma coisa nas linhas dos códigos e dos arquivos que você me deu? Se sim, oque eu preciso modificar exatamente?
Por que eu nao entendo porque ta dando erros e mais erros...
Está exatamente assim:
pagina.php (o meu código pra imprimir a página)
teste.php (vou usar esse arquivo pra acessar o site e ver as mudanças, porém, ele da sempre erro)
supomos que eu tenha que criar o arquivo "simple_html_dom.php" ,ficaria exatamente assim:
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/pk0eB/91e7c27daf.PNG&key=219b3a1d7b1da229cec29d27afc14026aad1a75950f544463e4ba650657cc06f" alt="91e7c27daf.PNG" />
Só pra esclarecer, a situação atual é, eu estou tentando descobrir o que que é o require_once 'simple_html_dom.php'; no arquivo teste.php
pois você pediu pra criar um arquivo dentro da pasta do site, mas o que eu vou modificar no arquivo?
Dúvidas:
Dentro do servidor terá os seguintes arquivos com o seguintes códigos, exatamente do jeito que estou escrevendo.
simple_html_dom.php
// Get a attribute ( If the attribute is non-value attribute (eg. checked, selected...), it will returns true or false)
$value = $e->href;
// Set a attribute(If the attribute is non-value attribute (eg. checked, selected...), set it's value as true or false)
$e->href = 'my link';
// Remove a attribute, set it's value as null!
$e->href = null;
// Determine whether a attribute exist?
if(isset($e->href))
echo 'href exist!';
Dúvida: eu preciso modificar o que neste código? Exatamente aonde?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pagina.php
<?php
$ch = curl_init();
?>
<?php
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "johnmoviesstudio.wix.com/joaopauloramos");
?>
<?php
// Acessar a URL e enviá-la ao browser
curl_exec($ch);
?>
<?php
// liberar o sistema
curl_close($ch);
?>
<style type="text/css"> #WIX_ADS { display:none; } </style>?
Dúvida: Está tudo ok até aqui?
Bem, só pra explicar o que esse código que eu estou usando faz, os elementos 'http://www.wix.com/favicon.ico' que eu quero modificar será resultado desse código. ou seja, esse código vai imprimir a pagina e colocar no ar, na saida curl_close($ch);
Após essa saída vai sair o código html do site, É AÍ que eu tenho problemas, eu preciso remover as linhas bem quando ela sair!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Teste.php
<?php
require_once 'simple_html_dom.php';
$html = file_get_contents('pagina.php');
$html = str_get_html($html);
$html->find('link', 0)->href = 'test';
$html->find('link', 1)->href = '123';
echo $html;
Código exatamente assim, vou tentar mudar as linhas para 'test' e '123' mesmo só pra teste. Se der certo, eu mudo o favicon pro que eu realmente quero mudar.
Com todos esses códigos, e exatamente do jeito que está, quando eu acesso o arquivo teste.php
sai isso:
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/pk0Dj/9e06d60d72.PNG&key=0cacb56f486f20ab78068454bc3b2342c497a3cfeba794296c53af71597d745f" alt="9e06d60d72.PNG" />
O seu codigo da #19 ta certo
/applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/piZMU/98dc121d55.JPG&key=3ad4bd9e5689371666a4e59efc6fa2b171168cc4fe83693e814b2d1fee08c135" alt="98dc121d55.JPG" />
o Erro acima é que você não baixou o simple_html_dom (ela é uma lib a parte do php)
O link para baixar é
https://sourceforge.net/projects/simplehtmldom/files/
Ai por exemplo você tem sua pasta la (public_html)
nela precisa ter os seguintes arquivos:
simple_html_dom.php
teste.php
O teste.php precisa ter o seguinte conteúdo:
<?php
require_once 'simple_html_dom.php';
$html = file_get_contents('http://johnmoviesstudio.wix.com/joaopauloramos');
$html = str_get_html($html);
$html->find('link', 0)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
$html->find('link', 1)->href = 'http://puu.sh/ooTW2/4be444bd27.png';
echo $html;Então bro, acho que não está dando certo não é por culpa nossa, mas acho que o wix que muda automaticamente o favicon,
se liga bro
ele Quando entra no site ele está com o favicon /applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/ooTW2/4be444bd27.png&key=0760a3dccb1d213925602bd02898c6d36072d3e88cc5b0abb0fc70e7c782524e" alt="4be444bd27.png" />, mas quando ele carrega, e quando eu clico em "Ir para Site" ele muda pro favicon /applications/core/interface/imageproxy/imageproxy.php?img=http://puu.sh/pk1Ee/19901db32e.PNG&key=4d285d781f07408ca62007449bde46025739bac9b5aee2064e3cd92eedfeeb12" alt="19901db32e.PNG" />' aaaaaaa favicon maldito.
Já sei mano!
Como que eu faço pra colocar todo esse conteúdo da pagina teste.php dentro de um iframe, com os tamanhos 100% 100%
?
Resolvi criando uma
adicionando outros códigos dentro do meu código, ai mei oque resolveu!
Obrigado por me aguentarem amiguinhos
hahahaha serio B) :lol: :lol:
>
Tenta outra abordagem.
Utilize a função:
http://php.net/manual/pt_BR/function.file-get-contents.php
+
Simplehtmldom
http://simplehtmldom.sourceforge.net/
Tem a aba 'How to modify HTML elements?'
// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
$html->find('div', 1)->class = 'bar';
$html->find('div[id=hello]', 0)->innertext = 'foo';
echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>
Um exemplo passo a passo talvez ajude:
Opa amigo, tudo certo?
Bem eu gostaria de modificar o seguinte trecho, mas não sei como localiza-lo!
<!-- META DATA -->
<script type="text/javascript">
var serviceTopology = {"serverName":"app08.tam","cacheKillerVersion":"1","staticServerUrl":"http://static.parastorage.com/ var santaModels = true; .........
var rendererModel = {"metaSiteId":"f04faabc-bd30-4618-8e71-7ada6936008d","siteInfo":{"documentType":"UGC","applicationType":"HtmlWeb","siteId":" var publicModel = {"domain":"wix.com","externalBaseUrl":"http:\/\/johnmoviesstudio.wix.com\/joaopauloramos","unicodeExternalBaseUrl":"http:\/\/johnmoviesstudio.wix.com\/joaopauloramos","pageList":{"masterPage":["https:\/\/static.wixstatic.com\/sites\/5303c9_ .....
var googleAnalytics = "UA-2117194-61"
;
eRemarketing = "";
var facebookRemarketing = "";
var yandexMetrika = "";
</script>
Só pra ter certeza, eu gostaria de modificar "http:\/johnmoviesstudio.wix.com\/joaopauloramos" Por "http:\/\/joaopauloramos.com.br" nos dois trechos.
Como eu faria?
Utilize http://php.net/DOMDocument
Poderá em seguida pegar todas as tags link e fazer verificação do atributo rel e remover o elemento ao encontrar o tipo esperado.
$dom->getElementsByTagName("link");