Kaip patikrinti, ar eilutėje yra konkretus žodis?

Apsvarstykite:

 $a = 'How are you?'; if ($a contains 'are') echo 'true'; 

Tarkime, kad turiu aukščiau esantį kodą, koks yra teisingas būdas parašyti, if ($a contains 'are') ?

2667
06 дек. paprašė Charles Yeung 06 Dec 2010-12-06 16:14 '10, 16:14, 2010-12-06 16:14
@ 39 atsakymų
  • 1
  • 2

Galite naudoti strpos() funkciją, kuri naudojama norint rasti vienos eilutės atsiradimą kitoje:

 $a = 'How are you?'; if (strpos($a, 'are') !== false) { echo 'true'; } 

Atkreipkite dėmesį, kad naudojant !== false yra tyčia; strpos() grąžina nuokrypį, iš kurio adatos eilutė prasideda šieno strpos() , arba loginę vertę false jei adata nerasta. Kadangi 0 yra galiojantis nuokrypis, o 0 yra „klaidingas“, negalime naudoti paprastesnių konstrukcijų, tokių kaip !strpos($a, 'are') .

5841
06 дек. Atsakymą pateikė codaddict Dec 06 2010-12-06 16:15 '10, 16:15 PM 2010-12-06 16:15

Galite naudoti reguliarias išraiškas, geriau suderinti žodžius, lyginant su strpos, kaip minėjo kiti naudotojai, jis taip pat bus teisingas eilutėms, tokioms kaip kaina, priežiūra, išvaizda ir tt Tai gali būti vengiama reguliariai išreiškiant žodžių ribas.

Paprasta atitiktis gali atrodyti taip:

border=0
 $a = 'How are you?'; if (preg_match('/\bare\b/',$a)) echo 'true'; 

Veikimo požiūriu strpos yra maždaug tris kartus greičiau ir reiškia, kad tuo pačiu metu, kai padariau milijoną palyginimų, preg_match užtruko 1,5 sekundės, o strpos - 0,5 sekundės.

496
06 дек. Atsakymą pateikė Breezer 06 dec. 2010-12-06 16:15 '10, 16:15 PM 2010-12-06 16:15

Naudokite strpos :

 if (strpos($a, 'are') !== false) echo 'true'; 
245
06 дек. Atsakymas, kurį pateikė Milan Babuškov 06 gruodis 2010-12-06 16:15 '10, 16:15 PM 2010-12-06 16:15

Čia yra maža naudinga funkcija, kuri yra naudinga šiose situacijose.

 // returns true if $needle is a substring of $haystack function contains($needle, $haystack) { return strpos($haystack, $needle) !== false; } 
216
18 авг. Atsakymą pateikia ejunker 18 rug . 2011-08-18 21:54 '11, 21:54, 2011-08-18 21:54

Nors dauguma šių atsakymų parodys, ar antraštė bus rodoma jūsų eilutėje, kuri paprastai nėra tai, ko norite, jei ieškote konkretaus žodžio, o ne antraštės.

Koks skirtumas? Subtitrai gali būti rodomi kitais žodžiais:

  • „yra“ „srities“ pradžioje
  • "yra" pabaigoje "kiškis"
  • „yra“ „tarifų“ viduryje

Vienas iš būdų jį sumažinti yra naudoti reguliarią išraišką kartu su žodžio ribomis ( \b ):

 function containsWord($str, $word) { return !!preg_match('#\\b' . preg_quote($word, '#') . '\\b#i', $str); } 

Šis metodas neturi tų pačių klaidingų teiginių, kaip aprašyta aukščiau, tačiau jame yra keletas ribinių atvejų. Žodžių ribos sutampa su simboliais be žodžių ( \W ), kurie nebus tokie patys kaip az , az , 0-9 arba _ . Tai reiškia, kad skaičiai ir pabraukimai bus laikomi žodžių simboliais, o tokie scenarijai nebus rodomi:

  • „Kas“ yra „Ką manote?“
  • "yra" "lol u dunno wut that are4?"

Jei jums reikia kažko tikslesnio, jums reikės pradėti sintaksės analizę anglų kalba, ir tai yra gana didelis kirminas (ir prisiima teisingą sintaksės naudojimą, bet kuriuo atveju ne visada).

122
03 сент. atsakymas pateikiamas FtDRbwLXw6 03 sep . 2014-09-03 02:23 '14 at 2:23 2014-09-03 02:23

Norėdami nustatyti, ar eilutėje yra kita eilutė, galite naudoti PHP funkciją strpos () .

int strpos ( string $haystack, mixed $needle [, int $offset = 0 ] )

 <?php $haystack = 'how are you'; $needle = 'are'; if (strpos($haystack,$needle) !== false) { echo "$haystack contains $needle"; } ?> 

DĖMESIO:

Jei adata, kurią ieškote, yra šieno pradžioje, ji grąžins 0 poziciją, jei atliksite == palyginimą, kuris neveiks, jums reikės padaryti ===

Ženklas A == yra palyginimas ir patikrinimas, ar kintamasis / išraiška / konstanta kairėje turi tokią pačią reikšmę kaip kintamasis / išraiška / konstanta dešinėje.

Ženklas === yra palyginimas, kad būtų galima pamatyti, ar du kintamieji / išraiškos / konstantos AND yra to paties tipo, t.y. Abu yra stygos arba abu yra sveikieji skaičiai.

103
06 дек. Atsakymą pateikė Jose Vega 06 Dec 2010-12-06 17:06 '10, 17:06, 2010-12-06 17:06

Žr. strpos() :

 <?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."; } ?> 
57
06 дек. Haim Evgi atsakymas gruodis 06 2010-12-06 16:16 '10, 16:16, 2010-12-06 16:16

Naudojant strstr() arba stristr() , jei jūsų paieška turėtų būti nejautrus, tai būtų dar viena galimybė.

56
06 дек. atsakymas pateikiamas glutorange 06 dec. 2010-12-06 17:16 '10, 17:16, 2010-12-06 17:16

Jei norite išvengti „melagingos“ ir „teisingos“ problemos, galite naudoti „substr_count“:

 if (substr_count($a, 'are') > 0) { echo "at least one 'are' is present!"; } 

Tai šiek tiek lėčiau nei strpos, tačiau vengiama su suderinimu susijusių problemų.

38
09 июля '13 в 11:38 2013-07-09 11:38 atsakymą pateikė Alan Piralla, liepos 9 d. 13, 11:38 2013-07-09 11:38

Naudokite stripos() argumentą naudojant stripos() :

 if (stripos($string,$stringToSearch) !== false) { echo 'true'; } 
38
24 окт. spalio 24 d. Shankar Damodaran atsakymas . 2013-10-24 10:30 '13, 10:30, 2013-10-24 10:30

Atsakykite į SamGoody ir Lego Stormtroopr komentarus.

Jei ieškote PHP algoritmo, kad paieškos rezultatai būtų vertinami pagal keleto žodžių artumą / aktualumą , čia pateikiamas greitas ir paprastas būdas gauti paieškos rezultatus tik su PHP:

Problemos, susijusios su kitais loginio paieškos metodais, pvz., strpos() , preg_match() , strstr() arba stristr()

  1. negali ieškoti kelių žodžių
  2. nepagrįstų rezultatų

PHP metodas, pagrįstas vektoriaus erdvės modeliu ir tf-idf (atvirkštinių dokumentų dažnis):

Tai skamba sudėtinga, bet stebėtinai lengva.

Jei norime rasti keletą žodžių eilutėje, pagrindinė problema yra tai, kaip priskiriame kiekvieno iš jų svorį?

Jei galėtume pasverti linijos terminus, atsižvelgiant į tai, kaip jie atstovauja visai linijai, galėtume užsisakyti savo rezultatus tiems, kurie geriausiai atitinka užklausą.

Tai yra vektorinės erdvės modelio idėja, toli nuo to, kaip veikia SQL pilno teksto paieškos:

 function get_corpus_index($corpus = array(), $separator=' ') { $dictionary = array(); $doc_count = array(); foreach($corpus as $doc_id => $doc) { $terms = explode($separator, $doc); $doc_count[$doc_id] = count($terms); // tf–idf, short for term frequency–inverse document frequency, // according to wikipedia is a numerical statistic that is intended to reflect // how important a word is to a document in a corpus foreach($terms as $term) { if(!isset($dictionary[$term])) { $dictionary[$term] = array('document_frequency' => 0, 'postings' => array()); } if(!isset($dictionary[$term]['postings'][$doc_id])) { $dictionary[$term]['document_frequency']++; $dictionary[$term]['postings'][$doc_id] = array('term_frequency' => 0); } $dictionary[$term]['postings'][$doc_id]['term_frequency']++; } //from http://phpir.com/simple-search-the-vector-space-model/ } return array('doc_count' => $doc_count, 'dictionary' => $dictionary); } function get_similar_documents($query='', $corpus=array(), $separator=' '){ $similar_documents=array(); if($query!='' $words=explode($separator,$query); $corpus=get_corpus_index($corpus, $separator); $doc_count=count($corpus['doc_count']); foreach($words as $word) { if(isset($corpus['dictionary'][$word])){ $entry = $corpus['dictionary'][$word]; foreach($entry['postings'] as $doc_id => $posting) { //get term frequency–inverse document frequency $score=$posting['term_frequency'] * log($doc_count + 1 / $entry['document_frequency'] + 1, 2); if(isset($similar_documents[$doc_id])){ $similar_documents[$doc_id]+=$score; } else{ $similar_documents[$doc_id]=$score; } } } } // length normalise foreach($similar_documents as $doc_id => $score) { $similar_documents[$doc_id] = $score/$corpus['doc_count'][$doc_id]; } // sort from high to low arsort($similar_documents); } return $similar_documents; } 

1 atvejis

 $query = 'are'; $corpus = array( 1 => 'How are you?', ); $match_results=get_similar_documents($query,$corpus); echo '<pre>'; print_r($match_results); echo '</pre>'; 

REZULTATAS

 Array ( [1] => 0.52832083357372 ) 

2 atvejis

 $query = 'are'; $corpus = array( 1 => 'how are you today?', 2 => 'how do you do', 3 => 'here you are! how are you? Are we done yet?' ); $match_results=get_similar_documents($query,$corpus); echo '<pre>'; print_r($match_results); echo '</pre>'; 

REZULTATAI

 Array ( [1] => 0.54248125036058 [3] => 0.21699250014423 ) 

3 atvejis

 $query = 'we are done'; $corpus = array( 1 => 'how are you today?', 2 => 'how do you do', 3 => 'here you are! how are you? Are we done yet?' ); $match_results=get_similar_documents($query,$corpus); echo '<pre>'; print_r($match_results); echo '</pre>'; 

REZULTATAI

 Array ( [3] => 0.6813781191217 [1] => 0.54248125036058 ) 

Yra daug patobulinimų, tačiau modelis leidžia gauti gerų rezultatų iš natūralių užklausų, neturinčių loginių operatorių, pvz., strpos() , preg_match() , strstr() arba stristr() .

NOTA BENE

Pasirinktinai pašalinkite atleidimą iš darbo prieš ieškodami žodžių

  • taip sumažinant indekso dydį ir sumažinus saugojimo reikalavimą

  • mažiau diskų I / O

  • greitesnis indeksavimas ir todėl greitesnė paieška.

1. Normalizavimas

  • Konvertuoti visą tekstą į mažąsias

2. Stabdymo nurodymo pašalinimas

  • Išbraukti žodžius iš teksto, kurie neturi realios reikšmės (pvz., „Ir“, „arba“, „,“, „už“ ir tt),

3. Žodyno keitimas

  • Pakeiskite žodžius kitais, kurie turi tą pačią ar panašią reikšmę. (pvz .: pakeiskite „alkanas“ ir „alkanas“ atvejus su „badu“)

  • Tolimesnės algoritminės priemonės (sniego gniūžtės) gali būti atliekamos siekiant dar labiau sumažinti žodžius į jų esminę reikšmę.

  • Spalvų pavadinimų pakeitimas šešioliktainiais ekvivalentais

  • Skaitmeninių reikšmių mažinimas mažinant tikslumą yra dar vienas būdas normalizuoti tekstą.

IŠTEKLIAI

38
15 окт. atsakymas, kurį pateikė RafaSashi 15 okt. 2014-10-15 22:21 '14, 10:21 val. 2014-10-15 22:21

Kita galimybė yra naudoti strstr () funkciją. Kažkas panašaus:

 if (strlen(strstr($haystack,$needle))>0) { // Needle Found } 

Pastaba: strstr () funkcija yra didžiosios ir mažosios raidės. Jei norite ieškoti nejautros , naudokite stristr () funkciją.

30
20 авг. atsakymas suteiktas YashG99 20 rug . 2012-08-20 19:20 '12, 19:20, 2012-08-20 19:20

Buvau šiek tiek sužavėtas, kad nė vienas čia pateiktas atsakymas, kuriame buvo naudojamos strpos , strstr ir panašios funkcijos, paminėtos daugialypės eilutės funkcijos (2015-05-08).

Iš esmės, jei kyla problemų ieškant žodžių su tam tikrų kalbų simboliais , pvz., Vokiečių, prancūzų, portugalų, ispanų ir kt. (Pavyzdžiui: ä, é, ô, ç, º, ñ) prieš jus gali būti funkcija mb_ . Todėl gautas atsakymas bus naudojamas „ mb_strpos arba „ mb_stripos (atvejo nejautrumui):

 if (mb_strpos($a,'are') !== false) { echo 'true'; } 

Jei negalite garantuoti, kad visi duomenys yra 100% UTF-8 , galite naudoti mb_ funkcijas.

Geras straipsnis, kad pamatytumėte, kodėl Absoliutus minimalus Kiekvienas programinės įrangos kūrėjas yra visiškai tikras, kad jis turėtų žinoti apie Unicode ir simbolių rinkinius (be pasiteisinimų!) Joel Spolsky .

28
08 мая '15 в 19:18 2015-05-08 19:18 Atsakymas pateikiamas Armfoot May 08, '15 , 19:18 2015-05-08 19:18
 if (preg_match('/(are)/', $a)) { echo 'true'; } 
25
10 окт. atsakymas duotas joan16v 10 spalis. 2013-10-10 14:22 '13, 14:22 pm 2013-10-10 14:22

PHP, geriausias būdas patikrinti, ar eilutėje yra tam tikras antraštės, yra paprasta pagalbinė funkcija, pavyzdžiui:

 function contains($haystack, $needle, $caseSensitive = false) { return $caseSensitive ? (strpos($haystack, $needle) === FALSE ? FALSE : TRUE): (stripos($haystack, $needle) === FALSE ? FALSE : TRUE); } 

Paaiškinimas:

  • strpos suranda pirmojo atvejo, kai seka yra didžiosios ir mažosios raidės, poziciją.
  • stripos nustato pirmos padėties atsiradimo vietą ir nėra stripos .
  • myFunction($haystack, $needle) === FALSE ? FALSE : TRUE myFunction($haystack, $needle) === FALSE ? FALSE : TRUE užtikrina, kad myFunction visada grąžina loginę vertę ir užfiksuoja netikėtą elgesį, kai myFunction indeksas yra 0.
  • $caseSensitive ? A : B $caseSensitive ? A : B pasirenka strpos arba stripos kad atliktumėte darbą, priklausomai nuo $caseSensitive vertės.

Išvada:

 var_dump(contains('bare','are')); // Outputs: bool(true) var_dump(contains('stare', 'are')); // Outputs: bool(true) var_dump(contains('stare', 'Are')); // Outputs: bool(true) var_dump(contains('stare', 'Are', true)); // Outputs: bool(false) var_dump(contains('hair', 'are')); // Outputs: bool(false) var_dump(contains('aren\'t', 'are')); // Outputs: bool(true) var_dump(contains('Aren\'t', 'are')); // Outputs: bool(true) var_dump(contains('Aren\'t', 'are', true)); // Outputs: bool(false) var_dump(contains('aren\'t', 'Are')); // Outputs: bool(true) var_dump(contains('aren\'t', 'Are', true)); // Outputs: bool(false) var_dump(contains('broad', 'are')); // Outputs: bool(false) var_dump(contains('border', 'are')); // Outputs: bool(false) 
22
21 февр. John Slegers atsakymas 21 vasaris 2016-02-21 21:39 '16 at 21:39 pm 2016-02-21 21:39

Toliau nurodyta funkcija taip pat veikia ir nepriklauso nuo kitų funkcijų; ji naudoja tik inline manipuliacijas su PHP. Asmeniškai tai nerekomenduoju, bet jūs galite pamatyti, kaip jis veikia:

 <?php if (!function_exists('is_str_contain')) { function is_str_contain($string, $keyword) { if (empty($string) || empty($keyword)) return false; $keyword_first_char = $keyword[0]; $keyword_length = strlen($keyword); $string_length = strlen($string); // case 1 if ($string_length < $keyword_length) return false; // case 2 if ($string_length == $keyword_length) { if ($string == $keyword) return true; else return false; } // case 3 if ($keyword_length == 1) { for ($i = 0; $i < $string_length; $i++) { // Check if keyword first char == string first char if ($keyword_first_char == $string[$i]) { return true; } } } // case 4 if ($keyword_length > 1) { for ($i = 0; $i < $string_length; $i++) {  if (($string_length + 1 - $i) >= $keyword_length) { // Check if keyword first char == string first char if ($keyword_first_char == $string[$i]) { $match = 1; for ($j = 1; $j < $keyword_length; $j++) { if (($i + $j < $string_length)  $keyword[$j] == $string[$i + $j]) { $match++; } else { return false; } } if ($match == $keyword_length) { return true; } // end if first match found } // end if remaining part } else { return false; } // end for loop } // end case4 } return false; } } 

Bandymas:

 var_dump(is_str_contain("test", "t")); //true var_dump(is_str_contain("test", "")); //false var_dump(is_str_contain("test", "test")); //true var_dump(is_str_contain("test", "testa")); //flase var_dump(is_str_contain("a----z", "a")); //true var_dump(is_str_contain("a----z", "z")); //true var_dump(is_str_contain("mystringss", "strings")); //true 
22
19 сент. Atsakymą pateikė Jason OOO 19 Sep. 2013-09-19 17:00 '13, 17:00, 2013-09-19 17:00

Galite naudoti strstr funkciją:

 $haystack = "I know programming"; $needle = "know"; $flag = strstr($haystack, $needle); if ($flag){ echo "true"; } 

Nenaudojant integruotos funkcijos:

 $haystack = "hello world"; $needle = "llo"; $i = $j = 0; while (isset($needle[$i])) { while (isset($haystack[$j])  ($needle[$i] != $haystack[$j])) { $j++; $i = 0; } if (!isset($haystack[$j])) { break; } $i++; $j++; } if (!isset($needle[$i])) { echo "YES"; } else{ echo "NO "; } 
20
27 авг. atsakymą pateikė „ Arshid KV 27“. 2015-08-27 19:59 '15, 19:59, 2015-08-27 19:59

Turėjau problemų, ir galiausiai nusprendžiau sukurti savo sprendimą. Nenaudojant įprastos išraiškos mechanizmo:

 function contains($text, $word) { $found = false; $spaceArray = explode(' ', $text); $nonBreakingSpaceArray = explode(chr(160), $text); if (in_array($word, $spaceArray) || in_array($word, $nonBreakingSpaceArray) ) { $found = true; } return $found; } 

Jūs galite pastebėti, kad ankstesni sprendimai nėra atsakymas į tai, kad žodis naudojamas kaip priešdėlis kitam. Jei norite naudoti savo pavyzdį:

 $a = 'How are you?'; $b = "a skirt that flares from the waist"; $c = "are"; 

Naudojant aukščiau pateiktus pavyzdžius, $a ir $b yra $c , tačiau galbūt norėsite, kad jūsų funkcija pasakytų, kad tik $a yra $c .

19
18 марта '14 в 18:49 2014-03-18 18:49 atsakymas pateikiamas Decebal, kovo 18, 14, 18:49, 2014-03-18 18:49

Trumpalaikė versija

 $result = false!==strpos($a, 'are'); 
14
13 марта '15 в 11:29 2015-03-13 11:29 atsakymas pateikiamas Somwang Souksavatd kovo 13, 15 d. 11:29 2015-03-13 11:29

Geras sprendimas būtų rasti žodį, o ne raidžių, kurios galėtų būti kito žodžio dalis, išvaizdą.

 $string = 'How are you?'; $array = explode(" ", $string); if (in_array('are', $array) ) { echo 'Found the word'; } 
14
17 апр. atsakymą pateikė DJC balandžio 17 d. 2015-04-17 09:31 '15 ne 9:31 2015-04-17 09:31

Kitas būdas rasti žodžio iš eilės iš strstr () ir stristr () būdus yra toks:

 <?php $a = 'How are you?'; if (strstr($a,'are')) // Case sensitive echo 'true'; if (stristr($a,'are')) // Case insensitive echo 'true'; ?> 
14
13 марта '14 в 8:48 2014-03-13 08:48 atsakymą pateikė Sadikhasanas kovo 13 d. 14 d., 8:48 2014-03-13 08:48

Atsakymų rinkinys, naudojamas naudojant pagrindinį patikrinimą, jei rezultatas yra >0 . Bet kadangi, if mano, kad nulis yra toks pat kaip klaidingas , galite išvengti šio patikrinimo ir rašyti tiesiogiai:

 if (substr_count($a, 'are')) { 

Norėdami patikrinti, ar yra, pridėkite ! operatorius:

 if (!substr_count($a, 'are')) { 
13
21 марта '16 в 15:39 2016-03-21 15:39 atsakymas pateikiamas T30, kovo 16 d., 16 d., 15:39, 2016-03-21 15:39

Turite naudoti nejautrą, todėl, jei įvesta vertė yra small arba caps , tai nėra svarbu.

 <?php $grass = "This is pratik joshi"; $needle = "pratik"; if (stripos($grass,$needle) !== false) {  echo 'Contains word'; }else{ echo "does NOT contain word"; } ?> 

Čia stripos suranda adatos į heystacką, neatsižvelgiant į atvejį (mažos / kepurės).

PHPCode pavyzdys su išėjimu

13
03 марта '15 в 22:02 2015-03-03 22:02 atsakymą pateikė Pratik C Joshi kovo 03 '15, 22:02 2015-03-03 22:02

Tai galima padaryti trimis būdais:

  $a = 'How are you?'; 

1 stristr ()

  if (strlen(stristr($a,"are"))>0) { echo "true"; // are Found } 

2- strpos ()

  if (strpos($a, "are") !== false) { echo "true"; // are Found } 

3- preg_match ()

  if( preg_match("are",$a) === 1) { echo "true"; // are Found } 
13
19 дек. Atsakymą pateikė Shashank Singh gruodžio 19 d. 2015-12-19 13:57 '15, 13:57 2015-12-19 13:57
 $a = 'how are you'; if (strpos($a,'are')) { echo 'true'; } 
11
09 окт. atsakymas duotas Dávid 09 Oct. 2012-10-09 19:17 '12, 07:17 pm 2012-10-09 19:17

Galbūt galėtumėte naudoti kažką panašaus:

 <?php findWord('Test all OK'); function findWord($text) { if (strstr($text, 'ok')) { echo 'Found a word'; } else { echo 'Did not find a word'; } } ?> 
11
07 апр. Mathias Stavrou atsakymas 07 Bal 2015-04-07 15:51 '15, 15:51 2015-04-07 15:51

Nenaudokite preg_match() jei norite tik patikrinti, ar viena eilutė yra kitoje eilutėje. strpos() naudokite strpos() arba strstr() , nes jie bus greičiau. ( http://in2.php.net/preg_match )

 if (strpos($text, 'string_name') !== false){ echo 'get the string'; } 
10
05 апр. atsakymą pateikė Vinod Joshi 05 Bal 2014-04-05 14:17 '14, 14:17, 2014-04-05 14:17

Jei norite patikrinti, ar eilutėje yra keletas specialių žodžių, galite:

 $badWords = array("dette", "capitale", "rembourser", "ivoire", "mandat"); $string = "a string with the word ivoire"; $matchFound = preg_match_all("/\b(" . implode($badWords,"|") . ")\b/i", $string, $matches); if ($matchFound) { echo "a bad word has been found"; } else { echo "your string is okay"; } 

Tai naudinga, kad, pvz., El. Laiškus, būtų išvengta šlamšto.

10
14 окт. Julien atsakė spalio 14 d 2015-10-14 17:40 '15, 17:40 pm 2015-10-14 17:40

Strpos funkcija veikia gerai, bet, jei norite atlikti neatitikimą nuo žodžio patikrinimo pastraipoje, tada galite naudoti PHP stripos funkciją.

Pavyzdžiui

 $result = stripos("I love PHP, I love PHP too!", "php"); if ($result === false) { // Word does not exist } else { // Word exists } 

Raskite pirmos padėties nejautros padėties vietą.

Jei žodyje eilutėje nėra žodžio, jis grįš klaidingu, kitaip jis grąžins žodžio padėtį.

9
31 мая '15 в 8:52 2015-05-31 08:52 atsakymą pateikė Akshay Khale gegužės 15 d. 15 val. 15:52 2015-05-31 08:52

Turite naudoti identiškus / ne identiškus operatorius, nes strpos gali grąžinti 0 kaip indekso vertę. Jei jums patinka triviečiai operatoriai, apsvarstykite galimybę naudoti šiuos veiksmus (atrodo šiek tiek atgal, sutinku):

 echo FALSE === strpos($a,'are') ? 'false': 'true'; 
9
15 окт. Atsakymas pateikiamas Shapeshifter 15 okt. 2014-10-15 22:47 '14, 22:47 2014-10-15 22:47
  • 1
  • 2

Kiti klausimai apie žymių arba Užduoti klausimą