Susbistituir texto por links - PHP

18/09/2014

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

PHP

Cleyton Caetano

Respostas

19/09/2014

Cleyton Caetano

alguém???
Responder Citar

19/09/2014

Wander :)

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 Citar

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 Citar

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 Citar

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 Citar

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 Citar

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 Citar

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 Citar

12/10/2014

Cleyton Caetano

[quote]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.[/quote]

Obrigada ^_^
Responder Citar