• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列からタグを探す)

文字列からタグを探す

このQ&Aのポイント
  • 「文字列からタグを探す」とは、指定したURLが設置されているか、特定のタグが含まれているかを調べるスクリプトの作成方法についての質問です。
  • 現在、指定したURLがソースコード内に含まれているかを調べるスクリプトは正常に動作していますが、aタグ内に記述されているかまで調べたい場合、どのような方法を取れば良いのでしょうか。
  • 現在のスクリプトは正常にURLの有無を判定できていますが、aタグ内に記述されているかまでチェックするためには、コードを変更する必要があります。アドバイスをいただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • mpx
  • ベストアンサー率71% (149/209)
回答No.1

正規表現で確認しては如何でしょう <?php $sagasu_site = "http://www.​○○○.com/"; $mokuteki_url = "http://△△△.biz/"; $patern='|<a +href *= *"('.$mokuteki_url.'[^\"]*)".*?>([^<]*)</a>|'; $addstr = file_get_contents($sagasu_site); if (preg_match($patern,$addstr,$match)){ echo "リンク有り\n"; print_r($match); } else { echo "リンク無し"; } ?>

mayu_chap
質問者

お礼

mpxさんへ こんばんは。早速のアドバイスをありがとう御座います! お陰様で願っている結果を得ることが出来ました。 正規表現って奥が深いです。また質問することも多々有るかと思いますが、今後とも宜しくお願い足します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 特定の文字列をHTMLタグに変換・urlについて

    #------------------------------------------------- # BBCode(特定の文字列をHTMLタグに変換) #------------------------------------------------- の中の、文字列なんですけれども $str =~ s/\[url=((?:htt|ft)ps?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\,]+)\](.*?)\[\/url\]/<a href=\"$jumpcgi?$1\" target=\"$target\" rel=\"nofollow\">$2<\/a>/ig; urlのものが、変になります。 http://www28.atpages.jp/wrsend1/patio/read.cgi?no=4 ↑みたいになってしまいます。 http://www.gemani.org/titi4/read.cgi?no=1391 ↑のように文字でリンクさせるにはどうしたらいいでしょうか。

    • ベストアンサー
    • Perl
  • ファイルから文字を読み込んで文字列を変換する

    ファイルから文字を読み込んで文字列を変換したいのですが 読み込み元が改行されていた場合がうまく変換できません。 読み込み元が改行されている事を教えればうまく行くと思うのですがどのようにすれば出来ますか? 出来ればソースの書き込みお願いします。 ---以下ソース--- #include <stdio.h> #include <stdlib.h> #include <string.h> int hen(char *buf, char *mae, char *ato); void main(void){ FILE *fp; char *f1="赤<br>と<br>白<br>"; char *h1="黄と黒"; char buf[200]; char set[200]; fp = fopen("ren2.html", "r+"); while( fgets( set, 200, fp ) != NULL ){ strcpy(buf,set); while(hen(buf, f1, h1)); printf("%s", buf); } fclose(fp); } int hen(char *buf, char *mae, char *ato){ char *nw; size_t zen,go; zen = strlen(mae); go = strlen(ato); if(zen == 0 || (nw = strstr(buf, mae)) == NULL){ return 0; } memmove(nw + go, nw + zen, strlen(buf) - (nw + zen - buf ) + 1); memcpy(nw, ato, go); return 1; } ---ソースここまで--- ---ren2.htmlの内容--- <html> <head> <title>練習</title> </head> <body> 赤<br> と<br> 白<br> </body> </html> ---ren2.htmlここまで---

  • PHPでHTMLファイルを解析して配列へ・・・

    phpを使用して、下記のhtmlファイルを外部から取得して、解析してMySQLに格納したいと考えています。 問題となったのは、全部の記述が一行で書かれているので、strstrで探してstr_replaceで書き換えて・・・ といった作業をどのようにしていいかわかりません。 結果的には、出現順に多次元配列に$hairetu[] = array(categ => 【カテゴリ】, url => 'http://xxxxxxx.xx' , title => 【タイトル】);という形で収めていきたいです。 以下、解析元ファイルの記述例ですが、このような形式で1000件以上はあります。 <font color="#000000">【カテゴリ】</font><br><a href="http://xxxxxxx.xx">【タイトル】</a><br>【リンク先説明・・・】<br><font color="#000000">【カテゴリ2】</font><br><a href="http://xxxxxxx2.xx">【タイトル2】</a><br>【リンク先説明・・・2】<br>...

    • ベストアンサー
    • PHP
  • 文字列を順番に置換

    以下の様な文字列があった時、それぞれのaタグにidをa1、a2、a3、…と順番につけていくにはどのような正規表現を行えばいいのでしょうか。 <ul> <li><a href="url1" title="title1">link1</a></li> <li><a href="url2" title="title2">link2</a></li> <li><a href="url3" title="title3">link3</a></li> <li><a href="url4" title="title4">link4</a></li> <li><a href="url5" title="title5">link5</a></li> <li><a href="url6" title="title6">link6</a></li> </ul> aタグの数がいくつでも対応できるようなものが望ましいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • Preタグ内URLからリンクは張れるか。

    HTMLのPreタグについてご質問です。 Preタグ内に記述したURLからリンクを張ることは可能でしょうか。教えてください。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • リンク文字変化のタグについて

    リンクを文字にマウスをあてた時のリンク文字変化のタグについて教えてください。 色々な文字変化があると思いますが上下にプルっと動くタイプのタグを探しています。 ↓これは[head]~[/head]の間に注入するタグのようなのですが <STYLE type="text/css"> <!-- A:HOVER{ position : relative; top:3px; left:3px;} A{text-decoration : none; } --> </STYLE> このように[head]~[/head]の間に挿入するタイプのものではなく 個別で指定するにはどのように記述すればいいでしょうか? ↓例えばコレは[head]~[/head]に入れて下線を消すタグですが <style type="text/css"> A{text-decoration:none;} </style> ↓こっちは個別に消す下線を消すタグです <a href="ページのアドレス" style="text-decoration:none"> リンクする文字</a> このようなに先ほどのタグの場合に個別に記述するやり方を教えてください。ヨロシクお願い致します。

  • <BASE>タグを特定の部分のみ使用したい。

    ホームページ上のデータファイルをまとめて1つのフォルダに入れているのですが、<BASE>タグでベースとなるURLをデータフォルダのパスにしてリンクはデータ名だけにしたいと思います。 こうすることでぱっと見でも多少リンク先がわかりにくくなるのと、相対リンクの..などをなくすことができ軽量化をしたいです。 ただ<BASE>タグを使うとその他のリンクも全てベースからのURL記述になるので不便です。特定部分だけ<BASE>タグを反映させることはできるでしょうか? データというのは動画なのでobjectやembedタグで指定しています。このタグだけ<BASE>タグが有効になればいいです。

    • ベストアンサー
    • HTML
  • リンクのタグの事で

    今晩は、質問させていただきます。 パソコンのサイトで、ページをリンクさせたいのですが、 私が使用しているタグを使うと、必ず下線がでて紫色になってしまいます。 下線を無くして色も指定したいのですが、どうすればいいのでしょうか。 教えてください。 説明が不十分でしたら、すみません。 使用タグはこれです→<a href="URL">リンクしたい所の名前</a>

  • 画像にクリックすると、飛んでいけるタグを探してるのですが。。。

    画像にクリックすると、飛んでいけるようなタグを探してるのですが。。。 <A HREF="リンク先のURL">リンク先の説明</A>←このようなタグで、画像のURLを入れてみたのですが、これでは画像の周りに四角い囲いができてしまうのです。。。 その四角い囲いをとりのぞけるのでしょうか?もし、取り除けるなら、そのようなタグを教えて下さい。。

  • ファイルからのタグの検出、文字埋め込みについて

    初めて投稿致します、Perl初心者です。 ※最初は他掲示板に投稿したのですが、回答者に対する補足が付けられ なかったので、改めてこちらに投稿させて頂きます。 元の投稿は今日中に閉めたいと思います。 Perlの正規表現を勉強中の初心者です。 どう書けば良いのか、分からないので教えてください。 あるHTMLファイルがあってその中に、他ページへ遷移するアンカータグ (リンク)があるとします。 そのファイルを読み込み、リンクのパスの最後に"&cnt=1111" (もしくは"?cnt=1111")というパラメータを付加したいと思っています。 例1 <A href="../aaa/bbb/ccc.html">リンク</A> →<A href="../aaa/bbb/ccc.html?cnt=1111">リンク</A> 例2 <A href="../aaa/bbb/ ←途中で改行されているケース ccc.html?xxx=222">リンク</A> →<A href="../aaa/bbb/ ccc.html?xxx=222&cnt=1111">リンク</A> 条件 1.既にcntパラメータが設定されている場合は付加しない。 2.cnt以外に他のパラメータが設定されていることがある。 3.アンカータグ内(丁度パス記述の部分やそれ以外の)ところで改行されているケースがある。 4.同じファイルには複数のアンカータグがあるとする。 5.1行で複数のアンカータグの記述も考慮 自分としては正規表現を使用すれば簡潔に出来るのではと思っている のですが、まだ初心者で恥ずかしながら応用力がありません。 上記4に関しては、ファイルから1行づつ取得してループさせれば良しとして、 1と2に関しては冗長ですが、以下にコードを記述します。 3や5を考慮する場合はどうすれば・・・・。 宜しくお願いします。 #ファイルの内容を配列に保存 my @list = <FILE>; # 1行毎に確認 foreach my $line (@list){  if($line =~ /href=/){ $smpl = $'; if( $smpl =~ /cnt=/ ){ #既に設定済みの場合、ファイルから次行を読み込む next; } else{ print "含まれてません\n"; #「html」をKEYとして左辺と右辺に分解。 if($smpl =~ /html?/ ){ $path = $`; #ファイルパス~.htmlまで $param = $'; #ファイルパス以降 $exp = $&; #引数が設定されているかどうか if($param =~ /\\?"|\\?'/){ $l_str = $`; #引数 $r_str = $'; #それ以外 $match = $&; print "$l_str\n"; print "$r_str\n"; print "$match\n"; if($l_str){ $add = "&cnt=1111"; } else{ $add = "?cnt=1111"; } $param = $l_str.$add.$match.$r_str; print "変更後:$path$param\n"; } #アンカーの途中で改行されている場合 else{ #ファイルから次行を読み込む next; } } #<A>タグ記述途中での改行時 else{ #ファイルから次行を読み込む next; } } } }

    • ベストアンサー
    • Perl