preg_replace внезапно перестает делать различия - PullRequest
0 голосов
/ 16 апреля 2011

посрамлены. Я использовал приведенный ниже IF PREG_MATCH, чтобы различать слова, которые являются целыми словами и словами, которые являются частями других слов. Он внезапно перестал функционировать в этом сценарии и любом другом используемом мной сценарии, которые зависят от этой команды.

В результате он находит части слов, хотя вы можете видеть, что ему явно сказано найти только слова целиком.

$word = preg_replace("/[^a-zA-Z 0-9]+/", " ", $word);                                        

if (preg_match('#\b'.$word.'\b#',$goodfile) && (trim($word) != ""))  { 

        $fate = strpos($goodfile,$word);
        print $word ."  ";
        print $fate ."</br>";

Ответы [ 2 ]

0 голосов
/ 16 апреля 2011

Это будет быстрее и чище, чем взорваться, и вы не будете создавать массив

$first_word = stristr($lines, ' ', true); 
0 голосов
/ 16 апреля 2011

Если вы хотите прочитать только первое слово в строке текстового файла, как подсказывает ваш заголовок, попробуйте другой метод:

// Get the file as an array, each element being a line
$lines = file("/path/to/file"); 

// Break up the first line by spaces
$words = explode(" ", $lines[0]); 

// Get the first word
$firstWord = $words[0]; 
...