首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只刮x数量的字符-如何?

只刮x数量的字符-如何?
EN

Stack Overflow用户
提问于 2014-02-17 17:27:09
回答 2查看 68关注 0票数 3

背景

我拥有一个为丹麦所有心理学家提供索引的网站。我的网站提供所有诊所的联系信息以及用户评级。

我目前列出了12.000名心理学家,其中约有6.000名有网站。大约有1000名心理学家访问了我的网站,他们用额外的“描述性”信息(如开放时间、价格等)填写了他们的个人资料。

我试图(用PHP和RegEx)自动抓取那些没有向我的社区提供详细信息的人的站点,原因很丰富。

我随机浏览了大约150个网站,得出的结论是,超过85 %的网站都有有价值的文本继续使用“Velkommen”(欢迎,在Denish中)。宝贝!

问题

#1

我如何在我的脚本中详细说明,我只想获得大约。360字,仅此而已。Ofc。这应该是前面(包括)的词Velkommen。此外,脚本不应该区分大小写(虽然Velkommen通常用大写V拼写,但它可以在另一个句子中弹出)。

而且,它应该是整个页面上最后出现的'velkommen‘,因为它有时会作为菜单/导航选项出现,这会很糟糕,因为我会抓取导航选项。

#2

当前-我的脚本将信息保存在数组中,然后保存在数据库中。

不知道我该怎么做。什么将是最优的SEO;

  1. 将刮过的文本保存在MySQL中,并每次显示。
  2. 渲染相同的360个字符-每次文本后面的'Velkommen‘
  3. 呈现随机360字符-文本从网站,每次有人查看一个特定的心理学家在我的网站。

一个示例站点:

代码语言:javascript
运行
复制
$web = "http://www.psykologdorthelau.dk/";
$website = file_get_contents ($web);

preg_match_all("/velkommen.+?/sim", $website, $information);

//THIS SHOULD SPECIFICY THE VERY LAST 'VELKOMMEN' - it doesn't, I know :(
for($i = 0; $i < count($information[0]); $i++){

preg_match_all("/Velkommen (.+?)\"/sim", $information[0][$i], $text, PREG_SET_ORDER);

$psychologist[$i]['text'] = mysql_real_escape_string($text[0][1]);
}

感谢任何能解决这个难题的人,他们来自丹麦这个美丽的国家。

EN

回答 2

Stack Overflow用户

发布于 2014-02-17 18:14:29

当您只想获取一定数量的数据时,可以使用filestream。

看起来会是这样的:

代码语言:javascript
运行
复制
$handle = fopen("http://www.example.com/", "r"); // open a filestream
// Fetch for example only 10 bytes each time we check
$chunkSize = 10;
$contents = "";
while ( !feof( $handle ) && strlen($contents) < 360) { 
    $buffer = fread( $handle, $chunkSize ); 

    $contents .= $buffer;

} 
$status = fclose( $handle ); 

//your data is stored in $contents
票数 1
EN

Stack Overflow用户

发布于 2014-02-17 19:38:03

“刮过的数据应该放在‘velkommen’这个词的前面”:

代码语言:javascript
运行
复制
preg_replace_callback('/velkommen(.*){360}/i',
  function($matched) {
    // Use $matched[1] to perform further testing
  },
  $contents
);

这很烦人,但它会让你开始。我相信需要PHP 5.4。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21835513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档