Soru PHP - Bir dizgenin herhangi bir metin içerip içermediğini kontrol etme [duplicate]


Bu sorunun zaten bir cevabı var:

<?php
$a = '';

if($a exist 'some text')
    echo 'text';
?>

Yukarıdaki kodu aldığımı varsayalım, "if ($ a available 'some text')” ifadesini nasıl yazacağımı varsayalım?


44
2018-03-08 23:47


Menşei


Bunu demek istiyorsun: if($a == 'some text') . Burada operatörler hakkında daha fazla bilgi: php.net/manual/en/language.operators.comparison.php - stUrb
Dizenin boyutu 0'dan büyükse, dizenin içinde bir metin var. - Mohammed Abrar Ahmed
Eğer herhangi bir metin varsa dizgiyi kontrol ediyorsanız, bu işe yarayacaktır. if(strlen($a) > 0) echo 'text'; veya endişeniz belirli bir kelimeyi kontrol etmekse, @Dai cevabını takip edin. - Mohammed Abrar Ahmed


Cevaplar:


Kullan strpos fonksiyon: http://php.net/manual/en/function.strpos.php

$haystack = "foo bar baz";
$needle   = "bar";

if( strpos( $haystack, $needle ) !== false) {
    echo "\"bar\" exists in the haystack variable";
}

Senin durumunda:

if( strpos( $a, 'some text' ) !== false ) echo 'text';

Kullanmamı unutmayın !== operatör (yerine != false veya == true ya da sadece if( strpos( ... ) ) {) nedeniyle "Truthy" / "falsy" PHP'nin dönüş değeri strpos.


107
2018-03-08 23:50



Eşleşmeyen bir dönüş 0 olmaz mı? - Leeish
false >= 0. Yazmak zorundasın !== false, gibi 0 == false. - Blender
@Blender üzgünüm, haklısın. .NET'i düşünüyordum String.IndexOf hangi döndürür -1 eşleşme olmaması durumunda. Cevabımı düzelttim. - Dai
Ve stripos() için duyarsız dizi karşılaştırması ... - Pathros
Aynı şey: eğer (! Strpos ($ haystack, $ iğne) == false) {echo "\" bar \ ", samanlık değişkeni var"; Daha basit ve objektif ... - Padronização S A


Boş dizeler falsey, bu yüzden sadece yazabilirsiniz:

if ($a) {
    echo 'text';
}

Bu dizede belirli bir alt dizenin var olup olmadığını soruyor olsanız da kullanabilirsiniz strpos() bunu yapmak için:

if (strpos($a, 'some text') !== false) {
    echo 'text';
}

10
2018-03-08 23:49



Ayrıca "Bazı Metin", "BAZI METİN", vb. Bulmak istiyorsanız stripos (büyük / küçük harf duyarsız) - Dave


http://php.net/manual/en/function.strpos.php  Sence dize doğru 'bazı metinler' var mı?

if(strpos( $a , 'some text' ) !== false)

3
2018-03-08 23:50





Kullanabilirsiniz strpos() veya stripos() dizenin verilen iğneyi içerip içermediğini kontrol etmek için Bulunduğu konumu döndürür, aksi takdirde FALSE döner.

Operatörleri kullanın === ya da `! == PHP'de 0'dan FALSE değerini değiştirmek için.


2
2018-03-08 23:52





Kullanabilirsiniz ==  karşılaştırma operatörü değişkenin metne eşit olup olmadığını kontrol etmek için:

if( $a == 'some text') {
    ...

Ayrıca kullanabilirsiniz strpos Bir dizenin ilk oluşumunu döndürme işlevi:

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Note our use of ===.  Simply == would not work as expected
// because the position of 'a' was the 0th (first) character.
if ($pos === false) {
    echo "The string '$findme' was not found in the string '$mystring'";
} else {
    echo "The string '$findme' was found in the string '$mystring'";
    echo " and exists at position $pos";
}

Belgelere bakın


1
2018-03-08 23:50





bu kodu kullanabilirsiniz

$a = '';

if(!empty($a))
  echo 'text';

1
2018-03-08 23:52





Bir dizede bir sözcüğün var olup olmadığını bilmeniz gerekiyorsa bunu kullanabilirsiniz. Eğer değişkenin bir dizgenin olup olmadığını bilmek istiyorsanız, sorunuzdan net değil. Burada 'kelime', dizede aradığınız kelimedir.

if (strpos($a,'word') !== false) {
echo 'true';
}

veya is_string yöntemini kullanın. Verilen değişkende hangisi doğru veya yanlış döner.

<?php
$a = '';
is_string($a);
?>

1
2018-03-08 23:54





$ A'nın boş olmayan bir dize olup olmadığını kontrol etmek mi istiyorsunuz? Yani sadece herhangi bir metni içeriyor mu? Daha sonra aşağıdakiler çalışacaktır.

$ A bir dize içeriyorsa, aşağıdakileri kullanabilirsiniz:

if (!empty($a)) {      // Means: if not empty
    ...
}

Ayrıca, $ a'nın aslında bir dize olduğunu doğrulamanız gerekirse, şunu kullanın:

if (is_string($a) && !empty($a)) {      // Means: if $a is a string and not empty
    ...
}

0
2018-03-08 23:55