我需要帮助了解如何在Ruby中实现这部分PHP代码。 在思考之前,“天啊!这是很多代码”,我只是想让你知道下面的小部分是问题的相关代码,但我在下面列出了更多,因为我倾向于不在我的重要事实中包含问题(我是一个菜鸟。)这个脚本是一个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?
的数组中我在想,而不是让我的代码搜索字体颜色,让它在SERP中搜索标签,因为它似乎是Google使用引用的唯一地方......因为字体标签类型搜索似乎对我不赞成。
我希望你们中的任何一个人都可以告诉我我是否正确理解了这个PHP代码,并且可以给我一些关于如何在Ruby中实现它的提示。我的主要问题是真正知道PHP的哪些元素不能使用,因为整个输出缓冲区让我感到困惑。任何指向正确方向的东西都非常感激。
此外,在最初的PHP代码中,它使Google的网址像这样(伪代码):
"http://www.google.com/search?num=50&q=" +keyword+ "&btnG=Search"
但在我的Ruby中,我只是这样做了:
"http://www.google.com/search?num=50&q=" +keyword
不在网址末尾添加“&amp; btnG = Search”会有所作为吗?当我手动将任何一个url输入到我的浏览器中时,它会将我带到同一个地方,但我不确定它是否会以编程方式产生影响。
答案 0 :(得分:2)
它将页面拉入变量,剥离所有粗体标签,然后将页面中的所有绿色文本(没有着色)放入$matches
数组中。