Jump to content


Photo

[Resolvido] Como Mudar O Valor De Uma String Html?


  • Faça o login para participar
9 replies to this topic

#1 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 07/11/2009, 23:13

Galera, quero saber se tem alguma forma de mudar o valor de uma string html?
Tipo.. quero alterar o caminho de todos os links que estiver no site, sendo que eles estao tudo em html, ou seja, quero dx o valor da url e adicionar mais uma variavel php a ela.
Ja tentei fazer str_replace e outras formas, mas nao deu certo, pq os links estao tudo em html e ai nao substitui.

Se alguem tiver alguma ideia de como fazer isso me diga.
Vlw!

PS:
Aos administradores, favor mover o topico para PHP.
Acabei criando no lugar errado, só agora fui ver.

Edição feita por: kurt_rp, 07/11/2009, 23:05.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#2 FelipeGabriel

FelipeGabriel

    Normal

  • Usuários
  • 66 posts
  • Sexo:Masculino
  • Localidade:Patrocínio - MG

Posted 08/11/2009, 17:38

Tente utilizar essa função:

function CapturaLinks ($URL){

$dom = new DOMDocument();

@$dom->loadHTMLFile($URL);

foreach ($dom->getElementsByTagName('a') as $link) {

if ($link->hasAttribute('href')) {

CapturaLinksCapturaLinks($link->getAttribute('href'));

}

}

}


Forte Abraço.

#3 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 08/11/2009, 19:59

Tente utilizar essa função: [...]

Mas no caso ele não quer apenas capturar os links, ele quer modificá-los também! :blink:

Acho que isso resolve:

<?php

$dom = new DOMDocument();
@$dom->loadHTMLFile('http://forum.wmonline.com.br'); // @ para suprimir os erros de sintaxe do código da página

foreach ($dom->getElementsByTagName('a') as $link) {
	if ($link->hasAttribute('href')) {
		$new_value	 = 'my_string'; // valor adicional
		$current_value = $link->getAttribute('href');
		$sep		   = (strpos($current_value, '?') !== false) ? '&' : '?';

		$link->setAttribute('href', $current_value . $sep . $new_value);
	}
}
print $dom->saveHTML();

?>
[]’sAté mais

#4 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 09/11/2009, 10:45

Obrigado Felipe Gabriel pelo codigo!

Mas o exemplo do Paulo Ricardo ficou melhor ta bem explicado, valeu pela força.
De qualuquer forma obrigado ai pelos 2 ja me ajudaram bastante.

Vou agora testar esse script no meu codigo aqui e ver se vai funciona.

Obrigado tb ao pessoal que moveram o topico!!

-----------------------------------------------------------------------------------------------------

Testei agora aqui mas nao funcionou.
Seguinte Paulo Ricardo vamos por partes:

@$dom->loadHTMLFile('http://forum.wmonline.com.br');
Aqui eh onde eu coloco o endereço que eu quero mudar os links.. certo?

$new_value	 = 'my_string';
Aqui eu coloco o valor que eu quero adicionar junto ao link aos links.. certo?

print $dom->saveHTML();
Agora como ele vai fazer par mudar todos os links????
Eu nao quero printa isso na tela... o que eu quero é substituir todos os links pelo valor q eu adicionei antes..
Ou seja, os links estao todos em HTML e eu quero mudar o valore deles em todas as paginas entende?
Tanto que eu estou colocando esse codigo no arquivo "topo" que aparece em todas as paginas para que possa fazer o processo automaticamente, sem precisar ir mudar um a um dos links em cada uma das paginas, compreende.

Eu so fiquei agora com duvida nessa ultima parte, em como ele ira mudar o valor em todos os "links HTML".

Edição feita por: kurt_rp, 09/11/2009, 10:47.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#5 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 14/11/2009, 10:05

A minha solução poderia funcionar, mas seria de outra forma, e não por include. Mas deixemos isso de lado um pouco.

Você quer modificar que tipo de arquivo? Uma solução melhor seria modificá-los em lote com uma expressão regular. Os arquivos estão num servidor externo ou servidor local? Tu pode usar funções como exec(), system(), etc.? Qual o sistema em uso?

[]’s Até mais

#6 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 15/11/2009, 18:32

Opa.. blz Paulo Ricardo?!

Entao.. eu tenho um portal onde tem varias paginas, maior parte são em php, onde tem include como topo.php.. menu.php.. rodape.php.. etc..
O que eu quero fazer é substituir todos os links, ou seja, adicionar mais uma string neles, colocando assim algum script no arquivo topo.php, pq ele fico no inicio de todas as paginas.
Por exemplo:
plugbalada.com.br/pagina.php?pg=agenda_completa

Substituindo ficaria:
plugbalada.com.br/pagina.php?pg=agenda_completa&cidade=variavel

No caso como o portal ja esta pronto, e para nao dar muito trabalho mudando pagina por pagina todos os links que tiver, que quero achar uma forma de so acrecentar mais uma variavel nos links para assim nao dar erro qdo for passsar a url para alguem, assim ja vai a cidade junto com a url, entende?

Bem, espero que agora eu tenha sido mais claro no que eu quero.

Edição feita por: kurt_rp, 15/11/2009, 18:47.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#7 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 16/11/2009, 14:12

O que eu quero fazer é substituir todos os links, ou seja, adicionar mais uma string neles, colocando assim algum script no arquivo topo.php, pq ele fico no inicio de todas as paginas.
Por exemplo:
plugbalada.com.br/pagina.php?pg=agenda_completa

Substituindo ficaria:
plugbalada.com.br/pagina.php?pg=agenda_completa&cidade=variavel

Essa de incluir algum script no topo.php pode esquecer, não tem nada que faça isso. Pode esquecer a outra idéia que tive também, o comando que eu tinha não funcionou num teste que fiz. Que tal usar o mod_rewrite? :)

RewriteEngine On
RewriteRule (.*) $1?cidade=campinas [QSA,L]
Isso vai adicionar o cidade=campinas em todos as requisições. Não vai aparecer nas URLs, mas se você der um var_dump($_GET['cidade']); você vai ver que a informação existe. :)

Acredito eu que tenha como fazer exibir a cidade nas URLs, só não encontrei uma maneira de fazer isto.

[]’sAté mais

#8 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 18/11/2009, 08:28

Ok Paulo, obrigado!
Mas não entendi esse teu codigo.
Isso é php ou que??

Pq coloquei isso aqui dentro do topo.php e deu erro.

Outra coisa, eu preciso que mude todos os URL, preciso que ao clicar em qualquer link no site acrescente mais essa variavel junto no link.
Só que claro, so onde for links do proprio site, ou seja, link de site externos nao podera modificar.
Por exemplo, todos os links que forem assim:
http://www.plugbalad...m.br/pagina.php?

Devera acrescentar mais aquele variavel da "cidade" junto, para que assim, qdo se mandar a url para alguem ja saber de que cidade é, e assim o site poder exigir as informações certas.. saca?
Pq eu nao achei ainda outra forma de se fazer isso.
Senao vou acaba tendo q mudar link por link no site



/\ups!
|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br

#9 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 18/11/2009, 12:44

Este é o código que deve estar em seu arquivo .htaccess para que o mod_rewrite entre em ação. (y)

Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#10 kurt_rp

kurt_rp

    12 Horas

  • Usuários
  • 140 posts
  • Sexo:Masculino
  • Localidade:Rio Grande do Sul
  • Interesses:Programação web e designer.

Posted 20/11/2009, 15:20

Ok Paulo André.
Valeu pela ajuda!

Eu ja consegui resolver de outra forma.
Coloquei uma variavel em todos os links que eu quis alterar no site.
Deu um pouquinho de trabalho.. mas usando o netbeans ou o eclipse se revolve isso rapidinho, colocando para substituir todos as strings em todos os arquivos que tiverem aquele link.

Valeu pela ajuda ai pessoal. so queria mais saber era para mim aprender e ver se teria outra maneira de se fazer isso.

Abraços!

Edição feita por: kurt_rp, 20/11/2009, 15:22.

|| PLUG CIDADE || - O portal turistico do vale do Rio Pardo
http://www.plugcidade.com.br

|| PLUG BALADA || - O portal de festas do vale do Rio Pardo
http://www.plugbalada.com.br




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq