ホームページ > バックエンド開発 > PHPチュートリアル > このように書かれた通常の質問をしたいのですが、間違った一致は何ですか?

このように書かれた通常の質問をしたいのですが、間違った一致は何ですか?

WBOY
リリース: 2016-06-23 14:18:39
オリジナル
986 人が閲覧しました

<?php    $str = file_get_contents("http://mil.news.sina.com.cn");	// 军情热点    $reg = '#【军情热点】.*<a.*href="(.*).*>(.*)</a>"#iUs';	preg_match_all($reg,$str,$m);	echo "<pre class="brush:php;toolbar:false">";	print_r($m);?>
ログイン後にコピー


リンクとタイトルを一致させるのが間違っている理由を教えてください


ディスカッションに返信 (解決策)

ソースコードをチェックして、どこが違うのか確認してください

彼のエンコードは gb2312 ですが、あなたのエンコードはどうですか?

彼のエンコーディングは gb2312 ですが、あなたのエンコーディングは何ですか? また、PHPエンコードをGB2312マッチング結果アレイに変更しました(
[0] =&gt;配列


[1] =&gt; array ;/font> )

[1] => 配列
(

Array
(
[0] => 配列
( . )

)

トラブル中バージョン 先生、私が合わせたいのは、軍事ホットスポットの始まりから始まる 10 以上のニュース項目ですが、どうやらこのように書くと、一致するニュースは 1 つだけです。私の元の正規表現が間違っている可能性があります。

$str = file_get_contents("http://mil.news.sina.com.cn");// 军情热点$reg = '#【军情热点】.+?href=(\S+)#is';preg_match_all($reg,$str,$m);print_r($m);
ログイン後にコピー
ログイン後にコピー

このように書いてみました。一見すると正しくありません

<?php$str = file_get_contents("http://mil.news.sina.com.cn"); $reg = '#(?<=【军情热点】).*<a.+href="(.+)".+>(.+)</a>(?=名家专栏)#isU'; preg_match_all($reg,$str,$m); echo "<pre class="brush:php;toolbar:false">";print_r($m); ?>
ログイン後にコピー
ログイン後にコピー


このように書こうとしましたが、正しくありません。リンクには引用符が含まれていません。 (.+)
(?=有名人コラム)#isU';

<?php$str = file_get_contents("http://mil.news.sina.com.cn"); $reg = '#(?<=【军情热点】).*<a.+href="(.+)".+>(.+)</a>(?=名家专栏)#isU'; preg_match_all($reg,$str,$m); echo "<pre class="brush:php;toolbar:false">";print_r($m); ?>
ログイン後にコピー
ログイン後にコピー


比較する愚かな方法を使用しました。 。

ご協力ありがとうございます

正規表現を一度書いてすべてのニュースに一致させる方法はありますか?

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート