スレッド表示 | フラット表示〕 全トピック 920 件中 471 番目 次≫ ≪前

リンク元のソースの内容の取得

created: 2005-02-18 17:23 | modified: 2005-02-25 12:40 | reply: 4

[2132] リンク元のソースの内容の取得

user: ももか | created: 2005-02-18 17:23
こんにちは、ももかです。

リンク元のソースの内容を取得するプログラムを構築しています。

例えば、リンク元のソースが以下のようだったとします。
<a href="test.html">あいうえお</a>
<a href="test.html">かきくけこ</a>

「かきくけこ」の所をクリックすると、test.htmlに飛びますが、test.htmlに「かきくけこ」を表示させたいのです。

上記の<a href="test.html">○○</a>
はたくさんあります。
少なければ、<a href="test.html?data=aiueo">
などとして、test.htmlでif($data=="aiueo")などの条件文でaiueoを取得できますが、量が多いと、このやり方は効率的だとは思いません。

環境変数を使うやり方を考えたのですが、途中でつまづいてしまいました。

環境変数のHTTP_REFERERでリンク元のURLを調べ、そのURLをfopenでファイルオープンするところまではできました。
しかし、クリックした場所を特定する仕組みがわかりません。

どなたか、教えてくださいませんか?
reply: 2133 返信 編集 削除

[2133] リンク元から送るしかないかも

user: | created: 2005-02-21 08:52
こんにちは。
ももかさんの初期案はあまり効率的ではない、とお考えのようですが、
結局その方法が一番無難かもしれません。

リンク元の記述を、

<?
function linkText($text,$URL){
return '<a href="' . $URL . '?refText=' . urlencode($text) . '">' .
$text . "</a>";
}
?>

・・・・html文・・・・・

<? echo linkText("あいうえお","test.cgi") ?><BR>
<? echo linkText("かきくけこ","test.cgi") ?><BR>
<? echo linkText("さしすせそ","test.cgi") ?><BR>


のようにして、リンク先には、

クリックしたのは、<b><? echo $_GET['refText'] ?></b>ですね。<BR>


と書く、というようなやり方であればそれほど手間ではないような
気もしますが、どうでしょう?

--------------------

ご存じかもしれませんが、環境変数でのリンク元取得は、100%確実に
参照出来るとは限らない(ブラウザの設定などによっては、refererは
参照出来ません)ので、リンク元調べの方法は場合によってはうまく
動作しません。

「どのページから来たのか」「何をクリックして来たのか」といった
情報は、元のページから情報を送ってやる以外には(確実に)知る
方法は無いかと思われます。

また、リンク元を調べて、ファイルオープンして……の方がかえって
手間(とサーバ負荷)がかかっているようにも思えます。

--------------------

…と、これは一応私の意見なのですが、もしかしたらもっと良い方法が
あるのかもしれません。(ずばり、単純に「クリックされたテキストを
調べる関数!みたいなのがあったり?)
ご存じの方がいらしたら追加レスお願いします。
Parent: 2132  reply: 2138 返信 編集 削除

[2138] リンク元の内容

user: ももか | created: 2005-02-22 12:30
お返事ありがとうございます。

箱さんのやり方を参考にしました。

ところで、リンク元でurlencode関数を使われていますが、
リンク先では、urldecode関数は使わなくていいのですか?
テストしてみた結果、urldecode関数を使わなくても使っても同じ結果でした。
Parent: 2133  reply: 2139 返信 編集 削除

[2139] urlencodeは特殊記号がコード表記になる

user: ごいんきょ。 | created: 2005-02-24 01:59
2週間ぶりくらいにこちらのBBSを見にこさせていただいたので、でしゃばって返信してみます。

英数字以外の特殊記号([]とか*とか)を使ったら、違う結果になるはずですよ。
ただ、最近はブラウザが自然にエンコードを変換してくれるので、あまり意識されませんが。

urlencodeを使った方が、親切ということです。
「親切」といっても、強い意味ですが。

リンク先では、$_GETでとったとき、特別な場合でなければ、必要ないはずです。

丁寧な解説ではないままで失礼。
Parent: 2138  reply: 2140 返信 編集 削除

[2140] ブラウザが変換してくれる

user: ももか | created: 2005-02-25 12:40
ブラウザが変換してくれるのですね。
ブラウザーかしこいなー。

では、これからもPHPの修行がんばります。
Parent: 2139  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 471 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑