ホームページ >バックエンド開発 >PHPチュートリアル >正規表現を使用してレベル4とレベル6の修正された合計スコアを取得する方法を教えてください(古いバージョンを入手します)

正規表現を使用してレベル4とレベル6の修正された合計スコアを取得する方法を教えてください(古いバージョンを入手します)

WBOY
WBOYオリジナル
2016-06-23 13:58:201152ブラウズ

これはレベル4または6のWebサイトです

<table border="0" align="center" cellpadding="0" cellspacing="6" class="cetTable">	<tr>		<th>姓名:</th>		<td>赵阳</td>	</tr>	<tr>		<th>学校:</th>		<td>长春中医药大学</td>	</tr>	<tr>		<th>考试类别:</th>		<td>英语四级</td>	</tr>	<tr>		<th>准考证号:</th>		<td>220090132112529</td>	</tr>	<tr>		<th>考试时间:</th>		<td>2013年12月</td>	</tr>	<tr>		<th valign="top">总分:</th>		<td valign="top" class="fontBold">        <span class="colorRed">					0		        </span>		        	<br /><span class="color666">听力:</span>							000			            <br /><span class="color666">阅读:</span>						000						            <br /><span class="color666">写作与翻译:</span>						000					</td>	</tr></table>

これは私のコードです​​
$a = curl_exec($ch);			$match="#<td>(.*)</td>#";			//$match="#<span>(.*)</span>#";preg_match_all($match,$a,$b);$yourname= $b[1][0];$school= $b[1][1];$cet= $b[1][2];$c= $b[1][5];//分数$score=strip_tags($c);$score=str_replace(" ","",$score);  		return array('school'=>$school,'name'=>$yourname,'cet'=>$cet,'score'=>$score);

その他は合計スコアのみ取得できます


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

$a =<<< TXT<table border="0" align="center" cellpadding="0" cellspacing="6" class="cetTable">    <tr>        <th>姓名:</th>        <td>赵阳</td>    </tr>    <tr>        <th>学校:</th>        <td>长春中医药大学</td>    </tr>    <tr>        <th>考试类别:</th>        <td>英语四级</td>    </tr>    <tr>        <th>准考证号:</th>        <td>220090132112529</td>    </tr>    <tr>        <th>考试时间:</th>        <td>2013年12月</td>    </tr>    <tr>        <th valign="top">总分:</th>        <td valign="top" class="fontBold">        <span class="colorRed">                     0                 </span>                     <br /><span class="color666">听力:</span>                             000                         <br /><span class="color666">阅读:</span>                         000                                      <br /><span class="color666">写作与翻译:</span>                         000                     </td>    </tr></table>TXT;$match="#<t[hd].*?>(.*?)</t[hd]>#is";preg_match_all($match,$a,$b);$b[1][11] = preg_replace('/\s/', '', strip_tags($b[1][11]));print_r($b[1]);
Ar光線
(
[0] => 名前:
[1] => 趙陽
[2] => 学校:
[3] => 長春中医薬大学
[4] => 試験カテゴリ:
[5] => 英語レベル 4
[6] => 受験番号:
[7] => 220090132112529
[9] =>
[10] => 合計スコア:
[11] => 0リスニング: 000 リーディング: 000 ライティングと翻訳: 000
)

$a =<<< TXT<table border="0" align="center" cellpadding="0" cellspacing="6" class="cetTable">    <tr>        <th>姓名:</th>        <td>赵阳</td>    </tr>    <tr>        <th>学校:</th>        <td>长春中医药大学</td>    </tr>    <tr>        <th>考试类别:</th>        <td>英语四级</td>    </tr>    <tr>        <th>准考证号:</th>        <td>220090132112529</td>    </tr>    <tr>        <th>考试时间:</th>        <td>2013年12月</td>    </tr>    <tr>        <th valign="top">总分:</th>        <td valign="top" class="fontBold">        <span class="colorRed">                     0                 </span>                     <br /><span class="color666">听力:</span>                             000                         <br /><span class="color666">阅读:</span>                         000                                      <br /><span class="color666">写作与翻译:</span>                         000                     </td>    </tr></table>TXT;$match="#<t[hd].*?>(.*?)</t[hd]>#is";preg_match_all($match,$a,$b);$b[1][11] = preg_replace('/\s/', '', strip_tags($b[1][11]));print_r($b[1]);
Array

(

[0] => 名前:
[1] =>趙陽
[2] =>長春中医薬大学
[4] =>英語レベル4
] = > 入場券番号:
[7] => 220090132112529
[9] => 2013 年 12 月
[11] = > 0 リスニング: 000 リーディング: 000 ライティングと翻訳: 000
)

ただし、$a の内容は変更されるはずです

内容は変更されますが、形式は固定されています
それ以外の場合は、「収集」する必要はありません


内容は変わりますが、形式は固定です それ以外の場合は、「収集」する意味がありません


最後の行について質問がありますか? > これをあげます

$match="#78710c1a16f2d6181527a1b36de36c3d(.*?)1dd588b93d3990e84567abb5db816d24#is";

エスケープされていますか? それともエラーが報告されていますか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。