2017-10-22 8 views
0

私はいくつかのニュースサイトのインデックスを作成しています。ニュースクリッピングの一種。 私はアマチュアで好奇心が強いです。私はプログラマーではないので、ビジネスの誰かに質問が愚かに見えるかもしれません。しかし誰かが助けることができれば、ありがとう。 私は構文解析をしていたサイトのページングは​​実質的に同じであったと私はこのスキームを使用: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 

しかし、昨日、私は別の何かに出くわしたと私はやりますどのようにページングするかわからない。

-1- 

この部分は可変である:

Political-National-texts 

どれ指導

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

これは、ページング一部です:私はpreg_match_allを通してこのリンク形式を取得しますか?

答えて

0

:-)教育目的のためですでし​​た:

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:第2のマッチド基(ページネーション)
+0

これはこれでしょうか? '<?php \t $ url = $ _GET ['url']; \t if(preg_match( '/^http:\/\/www.example.com \/browse - ([ - a-zA-Z] +) - (\ d +) - 日付\ .html $ /'、$ URL、$ matches)){ var_export($ matches); \t} \t $ link = 'http://www.example.com/browse-' $ matches [1]。 ''。$ s。 '-date.html'; \t $ next_url = $ s + 1; \t $ prev_url = $ s - 1; \t if($ prev_url <= 0){ \t $ prev_url = 1; \t} ?> ' –

+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。それは短く、しかし何をページネーションと可変部分のURLを解析しているために求めている、あなたは、次の正規表現でpreg_matchを使用することができるなら、それは

+0

「警告:array_pop()は、パラメータ1が配列であることが期待します、文字列 " –

+0

ああ...はい...編集されました。 –

関連する問題