Susbistituir texto por links - PHP

18/09/2014

0

PHP

Bom, digamos que eu tenha uma página e nela eu tenha o nome DevMedia 500 vezes e em todas elas eu queria linkar a url do fórum http://www.devmidia.com.br isso daria muito trabalho, mas crio que existe uma função PHP que faça isso só não sei por onde começar, fiz algumas pesquisas aqui mas não consegui chegar a lugar algum, alguém tem ideia de como posso estar fazendo essa função?

Bom, a ideia é que a função PHP faça uma busca na página e toda vez que achar o nome DevMedia quero que a função adicione o link de forma automática , assim não vou precisar linkar nome por nome! não sei se é exatamente PHP de que preciso mais tenho quase certeza, se alguém sabe como fazer nos dê uma luz :D
Cleyton Caetano

Cleyton Caetano

Responder

Posts

19/09/2014

Cleyton Caetano

alguém???
Responder

19/09/2014

Wander Santos

Olha um exemplo basico

$texto = "Este é o teste";

strpos($texto, 'Este'); // Devolve true

O conteudo q vc falou q tem a palavra Devmedia escrita precisa ser "printada" com php.


Outra forma seria usar javascript. Procurar na div se existe tal palavra e cria uma funcao q troca a palavra pelo link
Responder

20/09/2014

Cleyton Caetano

Olha um exemplo basico

$texto = "Este é o teste";

strpos($texto, 'Este'); // Devolve true

O conteudo q vc falou q tem a palavra Devmedia escrita precisa ser "printada" com php.


Outra forma seria usar javascript. Procurar na div se existe tal palavra e cria uma funcao q troca a palavra pelo link


Então no caso eu preciso criar alguma condição? algum if??
Responder

20/09/2014

Ronaldo Lanhellas

Bom, partindo do principio que esses textos estão salvos em alguma tabela no banco de dados vamos trabalhar com os passos abaixo, apenas com banco de dados sem mexer com o PHP.

Você pode criar uma trigger no BEFORE INSERT da sua tabela que tem o conteúdo desejado (Vamos chamar de POST). Toda vez que um novo registro for inserido a sua trigger deverá buscar na coluna que possui o conteúdo a palavra que você deseja acrescentar um link, e então substituir o conteúdo por algo como: "<a href='link'>palavra</a>'. Assim, quando o registro for salvo no banco o link automaticamente já foi criado.

Você pode melhorar mais ainda, criar uma tabela chamada "LINK" com as colunas "palavra" e "link", então toda vez que o BEFORE INSERT for acionado na tabela POST você irá buscar se existe algum link da tabela LINK no conteúdo da tabela POST.

Deu pra entender ou ficou complexo ? A lógica é essa, é um pouco trabalhosa mais depois fica tudo automatizado.
Responder

20/09/2014

Cleyton Caetano

Bom, partindo do principio que esses textos estão salvos em alguma tabela no banco de dados vamos trabalhar com os passos abaixo, apenas com banco de dados sem mexer com o PHP.

Você pode criar uma trigger no BEFORE INSERT da sua tabela que tem o conteúdo desejado (Vamos chamar de POST). Toda vez que um novo registro for inserido a sua trigger deverá buscar na coluna que possui o conteúdo a palavra que você deseja acrescentar um link, e então substituir o conteúdo por algo como: "<a href='link'>palavra</a>'. Assim, quando o registro for salvo no banco o link automaticamente já foi criado.

Você pode melhorar mais ainda, criar uma tabela chamada "LINK" com as colunas "palavra" e "link", então toda vez que o BEFORE INSERT for acionado na tabela POST você irá buscar se existe algum link da tabela LINK no conteúdo da tabela POST.

Deu pra entender ou ficou complexo ? A lógica é essa, é um pouco trabalhosa mais depois fica tudo automatizado.


Deu pra entender um pouco, mas uma dúvida, digamos que eu faça isso hoje e eu já tenha alguns posts cadastrados no meu banco de dados, os nomes que eu indiquei serão modificados ou só dos novos registros que virão? e caso eu precise atualizar o link? todos serão alterados? da pra explicar com mais detalhes sobre essa trigger e BEFORE INSERT...
Responder

20/09/2014

Ronaldo Lanhellas

Bom, a solução que coloquei pra você só irá funcionar para novos POSTS. Mas você pode criar uma função que funciona independente da trigger, que você pode rodar quando precisar. Essa função pode consultar a tabela LINK e o conteudo de cada POST e ver se o link foi alterado ou se não há LINK para uma palavra antiga. Então temos 2 vertentes:

1 - Criar a trigger com BEFORE INSERT;
2 - Criar uma função para ser executada a qualquer momento;
3 - Criar a tabela LINK;
Responder

11/10/2014

Cleyton Caetano

Bom, agora eu consegui fazer o que eu tanto queria :D
Tão simples de fazer e me deu essa dor de cabeça :/
primeiro passo, criei um arquivo links.php e criei uma array!

links.php
<?php	
			$texto_link = array(
			'php' => '<a href="http://www.php.net" title="PHP" target="new">php</a>',
			'Google' => '<a href="http://www.google.com.br" title="Google" target="new">Google</a>',
			'Moto 360' => '<a href="http://www.marratecnologia.net/moto_360" title=" Moto 360" target="new"> Moto 360</a>',
			'PHP' => '<a href="http://www.php.net" title="PHP" target="new">PHP</a>'
			);
?>


e no single.php fiz algumas alterações!

single antigo!
<?php echo $conteudo; ?>


single atual!
include 'links.php';


<?php echo strtr($conteudo, $texto_link); ?>



ele procura a palavra que especifiquei antes de mostrar o conteúdo e subistitui ela pelo link :D muito simples, quando mais estudo PHP mais gosto, é muito bom!
Responder

11/10/2014

Ronaldo Lanhellas

Bom, agora eu consegui fazer o que eu tanto queria :D
Tão simples de fazer e me deu essa dor de cabeça :/
primeiro passo, criei um arquivo links.php e criei uma array!

links.php
<?php	
			$texto_link = array(
			'php' => '<a href="http://www.php.net" title="PHP" target="new">php</a>',
			'Google' => '<a href="http://www.google.com.br" title="Google" target="new">Google</a>',
			'Moto 360' => '<a href="http://www.marratecnologia.net/moto_360" title=" Moto 360" target="new"> Moto 360</a>',
			'PHP' => '<a href="http://www.php.net" title="PHP" target="new">PHP</a>'
			);
?>


e no single.php fiz algumas alterações!

single antigo!
<?php echo $conteudo; ?>


single atual!
include 'links.php';


<?php echo strtr($conteudo, $texto_link); ?>



ele procura a palavra que especifiquei antes de mostrar o conteúdo e subistitui ela pelo link :D muito simples, quando mais estudo PHP mais gosto, é muito bom!



ótimo que conseguiu. Boa sorte.
Responder

12/10/2014

Cleyton Caetano

Bom, agora eu consegui fazer o que eu tanto queria :D
Tão simples de fazer e me deu essa dor de cabeça :/
primeiro passo, criei um arquivo links.php e criei uma array!

links.php
<?php	
			$texto_link = array(
			'php' => '<a href="http://www.php.net" title="PHP" target="new">php</a>',
			'Google' => '<a href="http://www.google.com.br" title="Google" target="new">Google</a>',
			'Moto 360' => '<a href="http://www.marratecnologia.net/moto_360" title=" Moto 360" target="new"> Moto 360</a>',
			'PHP' => '<a href="http://www.php.net" title="PHP" target="new">PHP</a>'
			);
?>


e no single.php fiz algumas alterações!

single antigo!
<?php echo $conteudo; ?>


single atual!
include 'links.php';


<?php echo strtr($conteudo, $texto_link); ?>



ele procura a palavra que especifiquei antes de mostrar o conteúdo e subistitui ela pelo link :D muito simples, quando mais estudo PHP mais gosto, é muito bom!



ótimo que conseguiu. Boa sorte.


Obrigada ^_^
Responder

06/03/2020

Bruno Bindi

Muito bom o post. Agora como fazer isso puxando de um banco de dados mysqli


// CONSULTA PRINCIPAL
$sql2="SELECT * FROM tags order by -id";
$query2=$conecta->query($sql2);
while($colunas=$query2->fetch_assoc()) {
extract($colunas);
// A coluna se chama nomes


}

Responder

08/03/2020

Elena Cruz

Eu acho que essa é a função
vamos com a função function
auto_link ($ text) {
   $ pattern = "/(((http[s[?:\\/\\/)|(www\\.))(((az[[-a-z0-9[+\\.)?[az[[-a -z0-9] + \\. [az] + (\\. [az] {2,2})?) \\ /? [a-z0-9., _ \\ / ~ # & =:;% +? - ] + [a-z0-9 \\ / # =?] {1,1}) / é ";
   $ text = preg_replace ($ padrão, "<a href='$1'> $ 1 </a>", $ text);
   // corrige URLs sem protocolos
   $ text = preg_replace ("/ href = 'www /", "href =' http: // www", $ text);
   retornar $ text;
}


Para mais informações, visite https://y2mate.guru/pt/
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar