2015-07-17 5 views
-2

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

Вот мой код:

//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; 
+0

Какой вопрос? – martynasma

+0

$ query - это ввод из текстового поля. он будет искать запрос в google и результаты поиска отображаются. Что мне действительно нужно: он должен искать в 10-словном цикле, а не просто искать весь запрос сразу. –

+0

Итак, взорвемся на пробелы, затем прокрутите массив по каждому «слову». Также почему у вас есть 'str_replace', почему бы не использовать' urlencode'? – chris85

ответ

1

Что-то, как это должно сделать это

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

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

0

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

[EDIT] короткий путь будет:

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

Не уверен, но я думаю, вы должны использовать + вместо %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; 
+0

'+' и '% 20' оба работают. http://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 – chris85

 Смежные вопросы

  • Нет связанных вопросов^_^