在php中解析分页

时间:2017-10-22 23:54:24

标签: php

我正在处理一些新闻网站的索引。一种新闻剪报。 我是一个业余和好奇的人。我不是程序员,所以这个问题对业务中的任何人来说都是愚蠢的。但如果有人可以提供帮助,谢谢。 我正在解析的网站的分页实际上是相同的,我使用了这个方案:

$url = $ url. '/page/'. $s;

$next_url = $s + 1;
$prev_url = $s - 1;
if ($prev_url <= 0) {
$prev_url = 1;
}

格式基本上是这样的:

http://example.com/politics/page/2

但昨天我遇到了一些不同的东西,我不知道如何翻页。我通过preg_match_all获得此链接格式:

http://www.example.com/browse-Politics-National-texts-1-date.html

这是分页部分:

-1-

这部分是可变的:

Political-National-texts

任何指导?

2 个答案:

答案 0 :(得分:0)

<?php
   $url = 'http://www.example.com/browse-Politics-National-texts-1-date.html'
   $url_basename = basename($url); // extract `browse-Politics-National-texts-1-date.html`
   $url_exploded = explode('-',$url_basename); // make an array delimited by `-`
   array_pop($url_exploded);
   $url_page_number = array_pop($url_exploded); // get the 2nd element from back 
 ?>

结果:

$ url_page_number = 1

PS。可以缩短它,但这是出于教育目的: - )

答案 1 :(得分:0)

如果你要求的是分析分页和变量部分的url,你可以使用preg_match和以下regexp:

if (preg_match('/^http:\/\/www.example.com\/browse-([-a-zA-Z]+)-(\d+)-date\.html$/', $url, $matches)) {
    var_export($matches);
}

然后你会得到结果:

array (
  0 => 'http://www.example.com/browse-Politics-National-texts-1-date.html',
  1 => 'Politics-National-texts',
  2 => '1',
)

$matches中的键将是:

  • 0:整场比赛
  • 1:第一个匹配的组(变量)
  • 2:第二个匹配组(分页)