他サイトの利用

  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

今回は、他サイトを利用してみます。

 

自分のサイトで他サイトの画面を表示する方法としては、
フレーム機能を使う場合がほとんどだと思います。

 

ただし、フレーム機能は内容の変更まではできません。

 

今回は、他サイトの内容の流用に加えて、
内容も変更してしまう、というものです。

 

あくまでも実験として楽しんでくださいね。

 

利用するサイトはなんでもよいですが、
デフォルトとしてyahooを利用してみます。

 

そして、文字列の変換もしてみます。

こちらをクリックしてください。

 

フォームの下にヤフーの画面が表示され、
該当の文字列が変換されました。

 

作り方によっては、偽装サイトができてしまうので、
あくまでも個人で実験する範囲でお願いします。

 

今回使用したcfhttpタグは、cfmailタグと同様に衝撃的でした。

このように便利なタグが標準でたくさんあります。

 

他の言語でも別途ライブラリを追加すれば対応可能ですが、
標準で装備されているものは、たぶんほとんどないと思います。

 

個人でいろいろアイデアだしてツールを作ってみるのも
いいかもしれませんね。

index.cfm

<cfset title="他サイトの表示">
<cfparam name="url.sts"         default="">
<cfparam name="form.moto_list"  default="自動車,掲示板,ブログ,ビューティー,ビジネス">
<cfparam name="form.saki_list"  default="car,bbs,blog,beauty,biz">
<cfparam name="form.url1"       default="http://www.yahoo.co.jp/">
<cfparam name="form.url2"       default="http://www.samuraiz.co.jp/coldfusion/">

<cfoutput>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <title>#title#</title>
</head>

<body>
■#title#<br><br>
<form action="index.cfm?sts=1" method="post">
<table>
    <tr>
        <td>URL1</td>
        <td>
            <input type="text" name="url1" size="30" value="#form.url1#">
        </td>
    </tr>
    <tr>
        <td>URL2</td>
        <td>
            <input type="text" name="url2" size="30" value="#form.url2#">
        </td>
    </tr>
    <tr>
        <td>変換元文字列</td>
        <td>
            <input type="text" name="moto_list" size="30" value="#form.moto_list#">
        </td>
    </tr>
    <tr>
        <td>変換先文字列</td>
        <td>
            <input type="text" name="saki_list"  size="30" value="#form.saki_list#">
        </td>
    </tr>
</table>
<input type="submit" value="send">
</form>
</body>
</html>

<cfif url.sts neq "">
<!---解説
    「url.stsがヌルでない場合」
    この条件は、sendボタンを押した場合に
    <form action="index.cfm?sts=1" method="post">
    によって、
    url.sts=1が生成されるので、
    この条件に該当します。
--->

    <cfhttp url="#form.url1#" resolveURL="yes" result="ret1" method="get">
    <!---解説
        注目のcfhttpタグです。
        resolveURL="yes"により、
        リンク部分がヤフーサイトと同様になります。
        noの場合は、リンクは自分のサイト名がついた状態なので
        リンクをクリックしてもエラーが発生します。
    --->

    <cfhttp url="#form.url2#" resolveURL="yes" result="ret2" method="get" charset="shift_jis">
    <!---解説
        「charset="shift_jis"」は呼び出すサイトで同じ指定がされている場合、
        使用すると文字化けしません。
        なにも指定しない場合はutf-8がデフォルトです。
    --->

    <cfset content = ret1.fileContent & ret2.fileContent>
    <!---解説
        2つのサイトのコンテンツを結合します。
        上記のように複数のサイトから情報を取得する場合は、
        「result="ret1"」のように指定します。

        1つの場合は指定しなくてもよいですが、
        その場合は、
        cfhttp.fileContent
        で、コンテンツの中身を取得します。
    --->

    <cfset content = ReplaceList(content, form.moto_list, form.saki_list)>
    <!---解説
        コンテンツの中身の文字列を置換します。
    --->

    <hr>
    #content#
    <!---解説
        コンテンツを表示します。
    --->

</cfif>
</cfoutput>
  • このエントリーをはてなブックマークに追加
  • 人気ブログランキング

この記事に関連する記事一覧

最近の投稿
カテゴリー
タグ
アーカイブ
プロフィール