Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Queria saber, porque o meu código não funciona...
Eu criei um array, e dentro dele setei a posição e o nome...
E usei a função strpos para percorrer a string e encontrar a palavra desejada, porém não estou tendo sucesso.
function descobre_url($hospedeiros) {
$hospedeiros = array(0 => "teste", 1 => "teste2");
if (strpos($hospedeiros[0], "teste")) {
echo "encontrou";
} else {
echo "não encontrou nada relacionado dentro do array";
}
O if mesmo digitando a palavra teste, cai no else, printando a mensagem "não encontrou nada relacionado dentro do array".
No aguardo,
Abraços!
Grato amigo,
Porém, o que queria é por exemplo:
Uma url assim:
Fazer a função achar a palavra imasters, e achando ela, eliminar tudo o que tem anteriormente.
Acho que me expressei mal,
Talvez teria que usar o in_array juntamente com o strpos né ?
Abração, obrigado.
<?php
$URL = 'http://forum.imasters.com.br';
if( preg_match( '/\bimasters/' , $URL , $Match ) ) {
echo 'Encontrei' , '<br />';
print_r( $Match );
} else {
echo 'Não encontrei';
}Grato amigo,
E por exemplo:
Agora que encontrei a palavra imasters, qual função posso usar para cortar tudo o que está antes dela e exibir somente: "imasters.com.br".
Abraço!
função substr
<?php
$v = 'http://forum.imasters.com.br';
echo substr($v, 7); // mostra forum.imaster.com.br
echo substr($v, 13); // mostra imaster.com.br
?>
Fácil, essa é a maneira mais correta:
<?php
$URL = 'http://forum.imasters.com.br';
echo substr( $URL , strpos( $URL , 'imasters' ) );
Independente da posição que 'imasters' tiver, ele vai pegar dali pra frente.
Exemplo:
<?php
$URL = 'http://forum.testando.algumacoisa.imasters.com.br';
echo substr( $URL , strpos( $URL , 'algumacoisa' ) );
Saída:
algumacoisa.imasters.com.br
Olá,
Grato amigos, me ajudaram muito!
Valeu mesmo!
A dica do Andrey foi perfeita para o que precisava.
EDIT:
Agora, descobrir se uma string está ao contrária (strrev) é impossível né ?
Teria que mecher com $_SESSION para pegar o estado inicial da mesma e ver se sofreu alterações ?
Abraço!
function descobre_url($hospedeiro) {
$array = array(0=>"teste",1=>"teste2);
if (preg_match('/\bteste/', $hospedeiro, $resultado)) {
echo "http://www." . substr($hospedeiro, strpos($hospedeiro, 'teste'));
}
}
Queria saber se consigo usar esse array dentro do preg_match, porque ficar fazendo um if para cada palavra é complicado.
Não é necessário o preg_match nesse caso, você pode fazer assim:
<?php
function findURL( $URL ) {
$Array = Array( 'teste' , 'teste2' ) ;
foreach( $Array as $Word ) {
if( strpos( $URL , $Word ) ) {
echo substr( $URL , strpos( $URL , $Word ) ) ;
}
}
}
findURL( 'http://www.teste.com.br' );
Saída:
teste.com.br
Amigo,
Agora ele não cai no if, não sei porque...
Ficou assim:
function descobre_url($hospedeiro) {
$Array = Array('teste', 'teste2');
foreach ($Array as $Word) {
if (strpos($hospedeiro, $Word)) {
echo substr($hospedeiro, strpos($hospedeiro, $Word));
}
}
}
Página receptora:
$Funcao->descobre_url($descobre_url);
Lembrando, descobre url vem do form digitado pela pessoa que está pegando o valor pelo $_REQUEST.Aqui funcionou normalmente, tenta executar minha função separadamente.
PHP :seta: in_array
{descobre_url( 'teste2' ); // encontrou
echo '<br/>';
descobre_url( 'teste44' ); // não encontrou nada relacionado dentro do array