Array
(
)

Susbistituir texto por links - PHP

PHP
Cleyton Caetano
   - 18 set 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

Cleyton Caetano
   - 19 set 2014

alguém???

Wander :)
   - 19 set 2014

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

Cleyton Caetano
   - 20 set 2014


Citação:
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??

Ronaldo Lanhellas
   - 20 set 2014

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.

Cleyton Caetano
   - 20 set 2014


Citação:
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...

Ronaldo Lanhellas
   - 20 set 2014

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;

Cleyton Caetano
   - 11 out 2014

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
#Código

<?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!
#Código
<?php echo $conteudo; ?>


single atual!
#Código
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!

Ronaldo Lanhellas
   - 11 out 2014


Citação:
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
#Código

<?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!
#Código
<?php echo $conteudo; ?>


single atual!
#Código
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.

Cleyton Caetano
   - 12 out 2014


Citação:

Citação:
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
#Código

<?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!
#Código
<?php echo $conteudo; ?>


single atual!
#Código
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 ^_^