人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPにて渡されたアドレスを圧縮するプログラムを作成しましたがうまくいきません問題点を指摘してください。
<?php
$adress = $_POST["adress"];
$siyomoji = 'abcdefghijklmnopqrstuvwxyz0123456789!#$%&()=~{`}+_';
$mazemaze = (str_shuffle($siyomoji)) ;
$a = mb_strimwidth($mazemaze,0,5);
$file = fopen("http://×××.com/".$a,"w+");
fwrite($file,"<meta http-equiv=\"refresh\" content=\"0; url=".$adress."\">");
print("http://×××.com/".$a);
?>
というのを実行すると
Warning: fopen(http://×××.com/tez}7) [function.fopen]: failed to open stream: HTTP wrapper does not support writeable connections in /home/???/public/www/×××/a.php on line 6
Warning: fwrite(): supplied argument is not a valid stream resource in /home/???/public/www/×××/???/a.php on line 7
というエラーが出てきました

●質問者: takanii
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:c/w DOES HOME HTTP http://
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● tdoi
●100ポイント ベストアンサー

エラーメッセージそのままだと思いますが、やりたいことは何ですか?

http://example.com/compress.php

のようにアクセスできるプログラムを用意し、このプログラムに、http://too.long.example.com/too/long/hogehogeのように長いURLをPOSTすると、

http://example.com/abcdef

というような出力を出し、ユーザが、

http://example.com/abcdef

にアクセスした際は、http://too.long.example.com/too/long/hogehogeにリダイレクトするようなことをやりたいのでしょうか?


もしこれを希望なのであれば、compress.phpがやらなければいけない処理として、http://example.com/abcdefとしてアクセスされるファイルを作成することになります。

このファイルを作成するのに、ファイル入出力関すのHTTPアクセスのラッパーでは書き込みはできないので、

<ドキュメントルート>/abcdefというファイルを書き出さなければいけませんん。


例えばですが、上記のような構造、つまり、compress.phpと出力ファイルが同一ディレクトリであれば、

$file = fopen(dirname(__FILE__) . '/' . $a, "w+");

とでもしてやれば、いいでしょう。


ただ、実際に使うのであれば、上書きされないことなど、そのほかにも考慮する必要はあるとは思います。


何かの参考になれば。

◎質問者からの返答

大変ありがとうございました

まるで数学の模範解答のような筋の通った流れのある解答 あなたの言いたいことがスルリと頭の中に入ってきました

自分もこのくらいの文章を書けたらなと思います

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ