ホームページ > バックエンド開発 > PHPチュートリアル > HTTP で始まる JPG 画像を正規化するにはどうすればよいですか?

HTTP で始まる JPG 画像を正規化するにはどうすればよいですか?

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

simple_html_dom.php を使用していますが、これは HTTP で始まる画像のみを検索します。JPG の末尾を追加するにはどうすればよいですか?

foreach ($html->find('img[src^="http"]') as $element) 
ログイン後にコピー


または
HTTP で始まるすべての JPG 画像に対して preg_match_all を作成できるのは誰ですか?ありがとう。


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

これは、Web ページの画像を取得するための規則を学習していたときに書いたものです。

<?php/* * @param string $url 采集url * @param int $isinsite 是否为站内的 默认1为站内0为站外站内 * @return string  */function getallimg($url,$isinsite=1){    $urlstr=parse_url($url);    $url=$urlstr[scheme]?$url:"http://".$urlstr[path];//判断用户输入的网址有没有包含http://再进行补全    $urlstr=parse_url($url);    $site="http://".$urlstr[host];//取本站地址    $subject =file_get_contents($url);    $pattern = '/.*<img .*src=[\'|\"](.*[.jpg|.gif|.png])[\'|\"].*\/??>.*/U';//其中的//为分隔符    preg_match_all($pattern,$subject,$result);//查找所有的匹配项    if($isinsite==0)    {       foreach ($result as $key => $value) //二维数组$result[n][m];               {	             if($key==1)	               {   		            foreach ( $value as $key => $value )//取$result[m]		                    {			                   $isownsite=parse_url($value);			                   $url=$isownsite[host]?$value:$site.$isownsite[path];//获取该网页的所有图片还其他网址的			                   $imgcontent.="<img  src=".$url.">|";		                    }		           }               }    }    if($isinsite==1)    {       foreach ($result as $key => $value) //二维数组$result[n][m];               {	             if($key==1)	               {   		            foreach ( $value as $key => $value )//取$result[m]		                    {			                   $isownsite=parse_url($value);			                   $url=$isownsite[host]?NULL:$site.$isownsite[path];//只获取该site的不含外部网址			                   if($url!=NULL)			                   $imgcontent.="<img  src=".$url.">|";		                    }		           }               }    }    return $imgcontent;}?><form action="getimg.php" method="post"><input type="radio" name="onlysite" value="1" />找全站内图片<br/><input type="radio" name="onlysite" value="0" />找全站内站外图片<br/><input type="text"name="site" size="70"/>多个网址请用&#64;隔开如:www.baidu.com@www.h2ero.cn<br/><input type="submit"  name="name" value="找图" /></form><?php$url=$_POST[site];$url=explode("@",$url);$isinsite=$_POST[onlysite];for ( $i = 0;$i <2; $i++ ) {	    if($url[$i]!=NULL)	echo getallimg($url[$i],$isinsite);}?>
ログイン後にコピー

.*.*/U'
この場合、「../images」も/1.jpg」も釣れました。
必要なのは http:// "http://domain.com/images/1.jpg" で始まるすべての画像です

http の先頭を正規表現で一致させるだけです

http の先頭を正規表現で一致させるだけです式
さて、遷移は simple_html_dom に依存しますが、正規表現を変更するにはどうすればよいでしょうか?

通常のルールを追加するだけです

foreach ($html->find('img[src^="http"]') as $element) {
if(preg_match('/.jpg/i', $element) - &gt; src)){
$ element-&gt; src。

離婚後のグループ家族の状況について話しに来てください


phpinfo();
ログイン後にコピー

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