PHP Количество слов Позиция совпадения в строке - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь выяснить, где позиция строки встречается в другой строке.

Я могу использовать strpos, но это возвращает позицию символа, и я ищу количество слов. Например:

$haystack = 'The letters PHP stand for PHP: Hypertext Preprocessor. PHP originally stood for. Personal Home Page Tools.';
$needle = 'PHP: Hypertext Preprocessor';
magic_function($haystack, $needle); // This should return 6

1 Ответ

2 голосов
/ 27 мая 2020

Вы можете сделать это очень просто, например:

<?php

function magic_function($haystack, $needle){

    $strBeforeNeedle = substr($haystack, 0, strpos($haystack, $needle));
    $wordCount = str_word_count($strBeforeNeedle);

    return $wordCount;

}

$haystack = 'The letters PHP stand for PHP: Hypertext Preprocessor. PHP originally stood for. Personal Home Page Tools.';
$needle = 'PHP: Hypertext Preprocessor';
echo magic_function($haystack, $needle); // This should return 6

Просто извлеките строку перед $needle и посчитайте слова. Добавьте +1, если вы хотите номер первого слова из $needle, или оставьте как есть, чтобы получить количество всех слов перед ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...