Нужна помощь в понимании кода PHP, чтобы я мог переписать в Ruby - PullRequest
0 голосов
/ 14 мая 2011

Мне нужна помощь в понимании того, как реализовать эту часть кода PHP в Ruby. Прежде чем подумать: «О Боже! ЭТО МНОГО КОДА», я просто хочу, чтобы вы знали, что крошечный раздел ниже - это соответствующий код вопроса, но я включил ниже, поскольку у меня есть тенденция не включать важные факты в мой вопросы (я нуб.) Этот скрипт предназначен для проверки SERP с целью научить меня программировать:

        ob_start();
        include_once($fetch_url);
        $page = ob_get_contents();
        ob_end_clean();  

        $page = str_replace('<b>','',$page);
        $page = str_replace('</b>','',$page);
        //preg_match('/008000\">(.+)<\/font><nobr>/i', $page, $match);
        preg_match_all('/<font color=#008000>(.*)<\/font>/', $page, $match);
        $r = 0;
        $position = '0';

Мой код Ruby выглядит следующим образом:

def clean_up_keywords(str)
  str.gsub("\n", ",").delete("\r").split(',')
end

def clean_up_list(arr)
  arr.reject(&:empty?).each(&:lstrip!)
end

def make_strings_url_friendly(arr)
  arr.each do |e|
    e.gsub!(" ", "+")
  end
end

def make_urls(arr)
  arr.map {|e| "http://www.google.com/search?num=100&q=" + e}
end

post '/ranked' do
  dirty_list = clean_up_keywords(params[:keyword])
  clean_list = clean_up_list(dirty_list)
  url_ready_list = make_strings_url_friendly(clean_list)
  url_list = make_urls(url_ready_list)
end

Весь скрипт PHP можно найти здесь: http://pastie.org/1899806

Весь скрипт Ruby можно найти здесь: https://github.com/MelanieS/RankyPanky/blob/master/lib/rankypanky.rb

Моя сделка заключается в том, что мне сказали, что мне не нужно реализовывать часть выходного буфера, потому что это Ruby, и это здорово для меня, потому что я не могу понять, что это такое, даже после того, как несколько человек объяснили это мне. (Когда-нибудь)

Однако в секции выходного буфера создается переменная $ page. Затем он используется в следующем разделе, где кажется, что он удаляет жирный шрифт. Мой скрипт Ruby уже позаботился об этом?

Затем средство проверки SERP, похоже, ищет результаты с этим цветом шрифта - и что тогда? положить их в массив с именем $ match?

Я думал вместо того, чтобы искать в моем коде цвет шрифта, чтобы он выполнял поиск тега в поисковой выдаче, поскольку это, кажется, единственное место, где Google использует ссылку, потому что тип тега шрифта поиска кажется отчасти устаревшим для меня.

Я надеюсь, что любой из вас скажет мне, правильно ли я понимаю этот код PHP и может дать мне подсказку или два о том, как реализовать его в Ruby. Моя главная проблема в том, чтобы знать, какие элементы PHP НЕ использовать, так как весь этот буфер вывода меня озадачил. Все, что указывает мне правильное направление, очень ценится.

Кроме того, в исходном коде PHP это делает URL-адреса Google такими (псевдокод):

"http://www.google.com/search?num=50&q=" +keyword+ "&btnG=Search"

Но в моем Ruby я просто сделал это так:

"http://www.google.com/search?num=50&q=" +keyword

Разве добавление "& btnG = Search" в конце URL не имеет значения? Когда я вручную ввожу любой URL-адрес в свой браузер, он переносит меня в то же место, но я не уверен, программно ли это имеет значение.

1 Ответ

2 голосов
/ 14 мая 2011

Она перетягивает страницу в переменную, убирает все жирные метки, а затем помещает весь зеленый текст со страницы (без раскраски) в массив $matches.

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