开发者

preg_replace suddenly stops making distinctions

Confounded. I've been using the below IF PREG_MATCH to distinguish between words which entire words and words which are parts of other words. It has suddenly ceased to function in this script, and any other script I use, which depend on this command.

The result is it finds parts of words, although you can see it is explicitly told to find only entire words.

$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>";


If you only want to read the first word of a line of a text file, like your title suggests, try another method:

// 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]; 


This would be faster and cleaner than explode and you won't be making any array

$first_word = stristr($lines, ' ', true); 
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜