naofuieu 0 Denunciar post Postado Junho 2, 2007 Galera, qual seria a função em PHP equivalente à InStr em ASP? Tipo, a InStr procura um a string informada dentro de outra e retorna sua posição, caso encontrada (começando do 0), ou -1 caso não a encontre? Eu encontrei uma em PHP, a strpos, mas ela sempre dá trabalho pra mim qdo a string tá no começo da outra, pq encontrando aí ou não encontrando, ela retorna 0! Não teria outra não? PHP tem tantas funções... pq n poderia ter essa? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 2, 2007 Talvez strstr() resolva seu problema. ;) :D Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Junho 2, 2007 Galera, qual seria a função em PHP equivalente à InStr em ASP? Tipo, a InStr procura um a string informada dentro de outra e retorna sua posição, caso encontrada (começando do 0), ou -1 caso não a encontre? Eu encontrei uma em PHP, a strpos, mas ela sempre dá trabalho pra mim qdo a string tá no começo da outra, pq encontrando aí ou não encontrando, ela retorna 0! Não teria outra não? PHP tem tantas funções... pq n poderia ter essa? strpos (PHP 4, PHP 5) strpos — Encontra a posição da primeira ocorrência de uma string Descrição int strpos (string $haystack, string $needle [, int $offset] ) Retorna a posição numérica da primeira ocorrência de needle dentro de haystack. Esta função pode ter uma string inteira como o parâmetro needle e toda a string será usada. Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Junho 2, 2007 strpos (PHP 4, PHP 5) strpos — Encontra a posição da primeira ocorrência de uma string Descrição int strpos (string $haystack, string $needle [, int $offset] ) Retorna a posição numérica da primeira ocorrência de needle dentro de haystack. Esta função pode ter uma string inteira como o parâmetro needle e toda a string será usada. Ei, tio, tu prestou atenção no que eu disse?Qdo a strpos encontra a string procurada no início da outra, ela retorna "0" também! tipo: <?phpecho strpos("Caramba, onde está?","Caramba");echo strpos("Caramba, onde está?","Uou!");?>Ambas retornam "0"!Além do mais, strpos é case-sensitive. Não tem como deixá-la insensitive ou arranjar outra função que faça o que eu quero não? Talvez strstr() resolva seu problema. Abraços, Beraldo Eu também tinha pensado nessa, mas não serve pra mim, pois eu gostaria somente de determinar se uma string está dentro de outra...Mas valeu a intenção. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Junho 3, 2007 Qdo a strpos encontra a string procurada no início da outra, ela retorna "0" também! tipo: <?php echo strpos("Caramba, onde está?","Caramba"); echo strpos("Caramba, onde está?","Uou!"); ?>Ambas retornam "0"![/code] Justamente por isso o Manual nos orienta a utilizar o operador idêntico (===): Atenção Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função. Fonte: http://www.php.net/strpos Além do mais, strpos é case-sensitive. Não tem como deixá-la insensitive ou arranjar outra função que faça o que eu quero não?Uma solução é converter a string para minúsculas ou maiúsculas antes de usar strpos(), já que o tipo da caixa (caixa alta ou baixa) não interfere na posição dos caracteres. Talvez strstr() resolva seu problema. Abraços, Beraldo Eu também tinha pensado nessa, mas não serve pra mim, pois eu gostaria somente de determinar se uma string está dentro de outra...Mas valeu a intenção. Não entendi... primeiro você disse que precisava da posição da substring; agora disse que só precisa saber se ela consta na string. Se precisar da posição, use strpos() mesmo. Se quiser apenas saber se uma substring consta numa string, use strstr() ou stristr(). Veja a Dica do Manual: Dica Do not use preg_match() if you only want to check if one string is contained in another string. Use strpos() or strstr() instead as they will be faster. Fonte: http://www.php.net/preg_match ;) Abraços, Beraldo Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Junho 3, 2007 NO caso, usando strstr() eu devo verificar o que? Tipo: se retornar alguma coisa, é pq existe, se não, é pq n existe? O que ela retorna se não achar nada? seria null? Compartilhar este post Link para o post Compartilhar em outros sites
Hamilcar 1 Denunciar post Postado Junho 3, 2007 Ei, tio, tu prestou atenção no que eu disse? Qdo a strpos encontra a string procurada no início da outra, ela retorna "0" também! tipo: <?phpecho strpos("Caramba, onde está?","Caramba");echo strpos("Caramba, onde está?","Uou!");?>Ambas retornam "0"!Além do mais, strpos é case-sensitive. Não tem como deixá-la insensitive ou arranjar outra função que faça o que eu quero não? ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Caro naofuieu, procure ler o manual que está sendo passado(link na palavra strpos), no manual diz assim: Esta função pode retornar o booleano FALSE, mas também pode retornar um valor não-booleano que pode ser avaliado como FALSE, como 0 ou "". Leia a seção em Booleanos para maiores informações. Utilize o operador === para testar o valor retornado por esta função. Quanto a case-sensitive, pode usar a função stripos observe que nesta função é colocada a mesma observação da função strpos. veja o exemplo postado no manual: <?php $findme = 'a'; $mystring1 = 'xyz'; $mystring2 = 'ABC'; $pos1 = stripos($mystring1, $findme); $pos2 = stripos($mystring2, $findme); // 'a' certamente não esta em 'xyz' if ($pos1 === false) { echo "A string '$findme' não foi encontrada na string '$mystring1'"; } // Note o nosso uso de ===. Simples == não funcionaria como o esperado // porque a posição de 'a' é 0 (primeiro) caractere. if ($pos2 !== false) { echo "Nós encontramos '$findme' em '$mystring2' na posição $pos2"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Junho 4, 2007 Caramba, meu povo.Tá bom, eu me rendo. Eu vou usar a strpos mesmo!!! Compartilhar este post Link para o post Compartilhar em outros sites
Thran 0 Denunciar post Postado Fevereiro 27, 2008 strpos funciona sim cara mais tem q usar === // Note o uso de ===. Simples == não funcionaria como esperado // por causa da posição de 'a' é 0 (primeiro) caractere. retirado do php.net http://www.php.net/manual/pt_BR/function.strpos.php Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 27, 2008 Deus uhahuauham, reviveu o tópico hein Thran? Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Fevereiro 28, 2008 wow. Eu nem me lembrava mais que eu tinha aberto esse tópico. hauheuhauhau Ei, moderador, pode fechar, viu? Eu usei a strpos msm. XD Compartilhar este post Link para o post Compartilhar em outros sites