Как выбрать ограниченное количество слов из текстового поля, используя JavaScript?

Я пытался создать веб-страницу плагиата. Он будет принимать входные данные из текстового поля и искать в Google. если найден он будет отображать результаты. Теперь проблема в том, что он ищет весь текст одновременно, но мне нужно, чтобы он искал 10 слов за раз, и должен искать до конца в циклах из 10 слов.

Вот мой код:

//Google search code
if(isset($_POST['nm'])) {
     $query = $_POST["nm"];
     $string = str_replace(' ', '%20', $_POST["nm"]);
}
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$string;

3 ответа

Примерно так должно это сделать

if(isset($_POST['nm'])) {
    $words = explode(' ', $_POST["nm"]);
    foreach($words as $word) {
        $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=". urlencode($word);
        //make request
    }
}

Это разбивает вашу строку на каждый пробел, а затем генерирует URL с закодированной строкой.

Демо: http://sandbox.onlinephpfunctions.com/code/6118501275d95762ce9238b91261ff435da4e8cf

Функции:
http://php.net/manual/en/function.explode.php
http://php.net/manual/en/function.urlencode.php

Обновление (за каждые 10 слов):

if(isset($_POST['nm'])) {
    $words = explode(' ', $_POST["nm"]);
    foreach($words as $wordcount => $word) {
        if($wordcount % 10 == 0 && !empty($wordcount)) {
             echo 'Hit 10th word, what to do?' . "\n\n";
        }
        $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=". urlencode($word);
        echo $url . "\n";
    }
}

Демоверсия: http://sandbox.onlinephpfunctions.com/code/7a676951da1521a4c769a8ef092227f2aabcebe1

Дополнительная функция:
Оператор модуля: http://php.net/manual/en/language.operators.arithmetic.php

Не уверен, но я думаю, что вы должны использовать + вместо %20

if(isset($_POST['nm'])) {
     $query = implode(' ', array_slice(explode(' ', $_POST['nm']), 0, 10));
     $string = urlencode ($query );
}
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$string;

Один из способов разбить строку на куски с определенным количеством слов может быть:

[РЕДАКТИРОВАТЬ] более короткий путь будет:

$text = "This is some text to demonstrate the splitting of text into chunks with a defined number of words.";
$wordlimit = 10;
$words = preg_split("/\s+/",$text);  

$strings = array_chunk($words,$wordlimit);
foreach($strings AS $string){
    $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=". urlencode(implode(" ", $string));
    echo $url."\n";
}
Другие вопросы по тегам