Функция preg_match не работает с оператором if? - PullRequest
0 голосов
/ 15 января 2020

Я пытаюсь использовать функцию pre_match для строки, сохраненной в элементе массива $lines[$i].

Строка выглядит так: «Ключевые слова: Антарктида; Landsat-8; АСТЕР; региональное геологическое картирование; северный Земля Виктории ".

Хотя строка содержит / Keywords /, все время программа go переходит к остальной части и показывает мне «не здесь».

Любая помощь, почему это?

Заранее спасибо

$lines = file('C:\Tamer\Open Polar\New Keywords\Original citations files\combined.txt');
// Loop through our array

$length = count($lines);
for ($i = 0; $i <= $length; $i++) {

    settype($lines[$i], "string");              // Be sure that everything is string

    if(preg_match("/Keywords:/",$lines[$i]))
        {
            echo "we got it" . "<br />\n";
            }
        else
            {
            echo "not here" . "<br />\n";
            }
        }

1 Ответ

1 голос
/ 15 января 2020

Используйте strpos / stripos php. net, поскольку в любом случае он быстрее.

Settype не нужен, поскольку файл будет проанализирован как строка.

$lines = file('C:\Tamer\Open Polar\New Keywords\Original citations files\combined.txt');

$length = count($lines);
for ($i = 0; $i < $length; $i++) 
{
    if(strpos($lines[$i], 'Keywords:') !== false)
    {
         echo "we got it" . "<br />\n";
    }
    else
    {
        echo "not here" . "<br />\n";
    }
}
...