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

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に飛んで行きたいのですが。

いろいろ調べたのですが私の頭ではどうしようもありません、どうかお力をお貸しくださいお願い致します。
reply: 4306 返信 編集 削除

[4306] Re. phpでリンクする・・

user: ゆうじ | created: 2009-06-06 23:20
こんばんわ
こういうことだと読めましたが間違いないですか?

▼仕様?
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は実在してたので
勝手ながら直させて頂きました。
Parent: 4305  reply: 4307 返信 編集 削除

[4307] Re.Re. phpでリンクする・・

user: wes | created: 2009-06-07 12:01
ゆうじさん たいへん詳細にご教示いただきとてもありがたいです。
早速返信していますので試していませんが、拝見するかぎり即解決するような気がします。

注意点なども教えていただきありがとうございます、なにかとミスが多いようです勉強しなければ・・・。

また、URLの件ご迷惑をおかけしました、無いだろうと思い適当に書いたんですが実在してたんですね、これからは教えていただいたように気を付けて書きます。

この後早速試したいと思います、先ずは本当にありがとうございました。

また分からないことが出てくると思いますがその節はどうぞ宜しくお願いいたします。
Parent: 4306  reply: 4308 返信 編集 削除

[4308] Re.Re.Re phpでリンクする。

user: wes | created: 2009-06-08 21:45
先日のプログラムを試して見ました。

リンクするんですが、やりたいことと少し違ってました(笑

私がやりたいことは、datファイルにデータがあるか、無いか、を判定して、ある、無しに応じたHPにクリックしないで自動的に飛んでいくものが作りたいのです。

つまり、kkk や jjj をクリックする方法ではなく、プログラム上で判断、実行する方法なんです。

で、現在の状況は自動的にリンクするところだけが上手くできません。 <a href= .... ではだめなようなので他の方法がしりたいのです。

ご面倒をおかけします、宜しくお願い致します。
Parent: 4307  reply: 4309 返信 編集 削除

[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();
Parent: 4308  reply: 4310 返信 編集 削除

[4310] 感謝いたします。

user: wes | created: 2009-06-09 06:02
ゆうじさん ありがとうございます。

今、やって見たところスンナリと分岐しましたこれでやっと先に進む事が出来ます、書いていただいたものをコピーして保存しておきます、またこれがどういう意味かを確認してみたいと思います。

本当にご親切にありがとうございます、一度に勉強できませんがぼちぼちやって行きたいと思います、これからも宜しくお願いいたします。
Parent: 4309  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 24 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

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