いつまで続くのか、何を書くのか、それもまた流れのままに 頭の中にまとまらないものがあるから そんなのがふと出た時に書いていく
僕のネット帳
スポンサーサイト
-----------  CATEGORY: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ページトップへ
PHP 文字列を取得 ランダムにページ表示
2007-12-23-Sun  CATEGORY: php
PHPで文字列を取得しランダムにページを表示させてみたい。

ある文字とある文字の間にある文字を取得したい場合の処理。
ただし、取り出したい文字列の前後は決まっているとする。


http://www/aaa/bbb/ccc.html
aaaを取得したい場合。

$str = "http://www/aaa/bbb/ccc.html";

"http://www/"で分割。
分割指定した文字の部分は空の配列。

$str_get = explode("http://www/", $str);

print_r ($str_get);

$str_result = explode("/", $str_get[1]);

print_r ($str_result);

表示結果
Array ( [0] => [1] => aaa/bbb/ccc.html ) ※$str_getの配列
Array ( [0] => aaa [1] => bbb [2] => ccc.html ) ※$str_resultの配列

$_SERVER['HTTP_REFERER']でリンク元のURL読み取って、それと関係あるリンク先をランダムで飛ばすとか。
サイト構成を関連あるフォルダ単位で作らないとだめだけど。
以下PHPでランダム表示させる簡単な例を作ってみた。

<構成>
http://www/game/game_main.html

├http://www/game/game_1.html
├http://www/game/game_2.html
           :
├http://www/game/game_99.html
├http://www/game/game_100.html


http://www/anime/anime_main.html
├http://www/anime/anime_1.html
├http://www/anime/anime_2.html
           :
├http://www/anime/anime_99.html
├http://www/anime/anime_100.html

①リンク元がgameかanimeの判別

※$_SERVER['HTTP_REFERER']はリンク元のURLを返すサーバー環境変数
※この場合は、
※http://www/game/game_main.html
※http://www/anime/anime_main.html
※のどちらかとする。

$str = htmlspecialchars($_SERVER['HTTP_REFERER']);

※分割指定した文字の部分は空の配列。

$str_get = explode("http://www/", $str);

※game or animeをゲット
$str_result = explode("/", $str_get[1]);

②ランダム数字生成して付加して飛ばす

※ここではgame、anime共に100ファイルなのでrandは1~100
※異なる場合はログファイルなどで作成ファイルのログを取っておいて数を判別
※ログファイルを使う場合は、file()で読み取ってcount()で配列の数をゲットしてrandに入れるとか色々方法ありそう

srand((double)microtime()*1000000);
$number=round(rand(1,100));

$randam_url = "http://www/".$str_result[0]."/".$str_result[0]."_".$number.".html";
header("Location:$randam_url");

※PHPで指定したURLにジャンプ
※header("Location:​http://www.*****");​

$_SERVER['HTTP_REFERER']は、ブラウザによっては設定しない場合や'Hidden-Referrer'などと設定する場合があり、必ずしも取得できるとは限らない、らしいので注意。

ファイルは作らずにやってるのでエラーがあるかも。
文字列間の取得ももっといい方法ある可能性大なので、知ってる人は教えて下さい^^;
ページトップへ  トラックバック0 コメント0
コメント

管理者にだけ表示を許可する
 
トラックバック
TB*URL
<< 2017/05 >>
S M T W T F S
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -


余白 Copyright © 2005 僕のネット帳. all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。