phpでリンクする・・
created: 2009-06-06 20:37 | modified: 2009-06-09 06:02 | reply: 5
[4305] phpでリンクする・・
user: wes | created: 2009-06-06 20:37
お世話になります。
phpで kiroku.dat というファイルの内容を読み込みその内容によって違うHPに自動的にリンクしたいのですが、上手くいきません。
どうかご教示ください。
簡単なプログラムだと思いカウンターのプログラムを流用したのですが
<?php
//simplecounter1.php
$filename = "topics.dat";
$file = fopen($filename, "r");
$count = fread($file, filesize($filename));
fclose($file);
//$count = $count + 1;
//print "$count";
$datano = substr($count,0,1);
print "$datano";
if ($datano = "0") {
$link1 = 'http://localhost/test/test.cgi';
echo "<a href=$link1>kkk</a>";
}
if ($datano = "A") {
}
if ($datano = "B") {
}
$file = fopen($filename, "r");
//fwrite($file, $count);
fclose($file);
?>
上の状態では $datano が 0 の時 kkk をクリックしてURLにリンクされるのですが、これを $datano が 0 の時 クリックしないで自動的にURLに飛んで行きたいのですが。
いろいろ調べたのですが私の頭ではどうしようもありません、どうかお力をお貸しくださいお願い致します。
phpで kiroku.dat というファイルの内容を読み込みその内容によって違うHPに自動的にリンクしたいのですが、上手くいきません。
どうかご教示ください。
簡単なプログラムだと思いカウンターのプログラムを流用したのですが
<?php
//simplecounter1.php
$filename = "topics.dat";
$file = fopen($filename, "r");
$count = fread($file, filesize($filename));
fclose($file);
//$count = $count + 1;
//print "$count";
$datano = substr($count,0,1);
print "$datano";
if ($datano = "0") {
$link1 = 'http://localhost/test/test.cgi';
echo "<a href=$link1>kkk</a>";
}
if ($datano = "A") {
}
if ($datano = "B") {
}
$file = fopen($filename, "r");
//fwrite($file, $count);
fclose($file);
?>
上の状態では $datano が 0 の時 kkk をクリックしてURLにリンクされるのですが、これを $datano が 0 の時 クリックしないで自動的にURLに飛んで行きたいのですが。
いろいろ調べたのですが私の頭ではどうしようもありません、どうかお力をお貸しくださいお願い致します。
[4306] Re. phpでリンクする・・
user: ゆうじ | created: 2009-06-06 23:20
こんばんわ
こういうことだと読めましたが間違いないですか?
▼仕様?
kiroku.dat を読み込み、その内容に応じて
それぞれ異なるURLへのリンクを表示する。
但し、内容が空の時は特定のページに自動的に移管する。
まず、この中に登場する値を洗い出しましょう。
データファイル名、ファイルの内容、リンク先のURL。
ファイルの中身が空ならページ移管するので
はじめにこの処理をやってしまいましょう。
ページ移管されなければリンクの表示処理に続きます。
$contents の1文字目だけで判断するようなのでこんな感じ?
最後のfopenは何のためなのかとか、
kiroku.dat の中身はどこでどう更新するかとか
情報が無いのでわかりませんが
希望の処理はこんなところでしょうか。
# 本編と外れますが3点補足。
わからない処理にはコメントをつけましょう。
そこが今足りないスキルです。
調べて理解したらコメントを削除していき
コメントが全て消えたときには自分のものになってるって事です。
$datano が "0" に等しいことを確かめようとしてると思いますが、
これだと、「$datano を "0" で初期化した結果」が評価されます。
比較するなら == または === です。
▼比較演算子
http://jp2.php.net/manual/ja/language.operators.comparison.php
また、サンプルコードでURLを表記する時は、
実際に存在するURLだとそちらに迷惑になる可能性があるので
実在しないURLを使いましょう。こんなのとか。
http://localhost/
http://hogehoge/
http://example/
記載されてたURLは実在してたので
勝手ながら直させて頂きました。
こういうことだと読めましたが間違いないですか?
▼仕様?
kiroku.dat を読み込み、その内容に応じて
それぞれ異なるURLへのリンクを表示する。
但し、内容が空の時は特定のページに自動的に移管する。
まず、この中に登場する値を洗い出しましょう。
データファイル名、ファイルの内容、リンク先のURL。
// データファイル
$finename = 'kiroku.dat';
// 空の時の移管先URL
$url0 = 'http://localhost/0.php';
// その他のリンク先URL
$url_k = 'http://localhost/kkk.php';
$url_j = 'http://localhost/jjj.php';
// ファイルを丸読み
$contents = file_get_contents($finename);
ファイルの中身が空ならページ移管するので
はじめにこの処理をやってしまいましょう。
if ('' === $contents) {
header('Location: '.$url0);
exit();
}ページ移管されなければリンクの表示処理に続きます。
$contents の1文字目だけで判断するようなのでこんな感じ?
// $contents の1文字目だけ取り出す
$initial = substr($contents,0,1);
// リンク表示
if ('A' === $initial) {
echo '<a href="'. $url_k. '">kkk</a>';
} elseif ('B' === $initial) {
echo '<a href="'. $url_j. '">jjj</a>';
} else {
// どれにも該当が無い時はどうするの?
}最後のfopenは何のためなのかとか、
kiroku.dat の中身はどこでどう更新するかとか
情報が無いのでわかりませんが
希望の処理はこんなところでしょうか。
# 本編と外れますが3点補足。
わからない処理にはコメントをつけましょう。
そこが今足りないスキルです。
調べて理解したらコメントを削除していき
コメントが全て消えたときには自分のものになってるって事です。
if ($datano = "0")$datano が "0" に等しいことを確かめようとしてると思いますが、
これだと、「$datano を "0" で初期化した結果」が評価されます。
比較するなら == または === です。
▼比較演算子
http://jp2.php.net/manual/ja/language.operators.comparison.php
また、サンプルコードでURLを表記する時は、
実際に存在するURLだとそちらに迷惑になる可能性があるので
実在しないURLを使いましょう。こんなのとか。
http://localhost/
http://hogehoge/
http://example/
記載されてたURLは実在してたので
勝手ながら直させて頂きました。
[4307] Re.Re. phpでリンクする・・
user: wes | created: 2009-06-07 12:01
ゆうじさん たいへん詳細にご教示いただきとてもありがたいです。
早速返信していますので試していませんが、拝見するかぎり即解決するような気がします。
注意点なども教えていただきありがとうございます、なにかとミスが多いようです勉強しなければ・・・。
また、URLの件ご迷惑をおかけしました、無いだろうと思い適当に書いたんですが実在してたんですね、これからは教えていただいたように気を付けて書きます。
この後早速試したいと思います、先ずは本当にありがとうございました。
また分からないことが出てくると思いますがその節はどうぞ宜しくお願いいたします。
早速返信していますので試していませんが、拝見するかぎり即解決するような気がします。
注意点なども教えていただきありがとうございます、なにかとミスが多いようです勉強しなければ・・・。
また、URLの件ご迷惑をおかけしました、無いだろうと思い適当に書いたんですが実在してたんですね、これからは教えていただいたように気を付けて書きます。
この後早速試したいと思います、先ずは本当にありがとうございました。
また分からないことが出てくると思いますがその節はどうぞ宜しくお願いいたします。
[4308] Re.Re.Re phpでリンクする。
user: wes | created: 2009-06-08 21:45
先日のプログラムを試して見ました。
リンクするんですが、やりたいことと少し違ってました(笑
私がやりたいことは、datファイルにデータがあるか、無いか、を判定して、ある、無しに応じたHPにクリックしないで自動的に飛んでいくものが作りたいのです。
つまり、kkk や jjj をクリックする方法ではなく、プログラム上で判断、実行する方法なんです。
で、現在の状況は自動的にリンクするところだけが上手くできません。 <a href= .... ではだめなようなので他の方法がしりたいのです。
ご面倒をおかけします、宜しくお願い致します。
リンクするんですが、やりたいことと少し違ってました(笑
私がやりたいことは、datファイルにデータがあるか、無いか、を判定して、ある、無しに応じたHPにクリックしないで自動的に飛んでいくものが作りたいのです。
つまり、kkk や jjj をクリックする方法ではなく、プログラム上で判断、実行する方法なんです。
で、現在の状況は自動的にリンクするところだけが上手くできません。 <a href= .... ではだめなようなので他の方法がしりたいのです。
ご面倒をおかけします、宜しくお願い致します。
[4309] Re phpでリンクする。
user: ゆうじ | created: 2009-06-08 22:08
ここまでで出てる情報だけで出来そうですが
こう変えてみるのとは違うのでしょうか。
こう変えてみるのとは違うのでしょうか。
// データファイル
$finemame = 'kiroku.dat';
// 空の時の移管先URL
$url0 = 'http://localhost/0.php';
// 空で無い時の移管先URL
$url1 = 'http://localhost/1.php';
// ファイルを丸読み
$contents = file_get_contents($finemame);
// $contents が空かそうでないかで処理分岐
if ('' === $contents) {
header('Location: '.$url0);
} else {
header('Location: '.$url1);
}
exit();[4310] 感謝いたします。
user: wes | created: 2009-06-09 06:02
ゆうじさん ありがとうございます。
今、やって見たところスンナリと分岐しましたこれでやっと先に進む事が出来ます、書いていただいたものをコピーして保存しておきます、またこれがどういう意味かを確認してみたいと思います。
本当にご親切にありがとうございます、一度に勉強できませんがぼちぼちやって行きたいと思います、これからも宜しくお願いいたします。
今、やって見たところスンナリと分岐しましたこれでやっと先に進む事が出来ます、書いていただいたものをコピーして保存しておきます、またこれがどういう意味かを確認してみたいと思います。
本当にご親切にありがとうございます、一度に勉強できませんがぼちぼちやって行きたいと思います、これからも宜しくお願いいたします。
