ASPをPHPに移植したいですが、よい方法があるでしょうか?
Set httpObj = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
If Err.Number <> 0 Then 'error check for http
Response.Write("エラー:" & Err.Description)
response.redirect("/ga-ko/error.asp?error=999")
response.end
End If
どうぞ、よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ApacheのモジュールとしてPHPが動作するだけですので、Apache標準のライブラリというものはありません。
PHP標準のライブラリとしても、オブジェクト指向のライブラリなどはありません。
一応PEARがPHPの標準ライブラリ(PerlでいうところのCPAN)になります。
pearコマンドなどでインストール擦る必要があります。
それ以外だと、それこそ標準でない、いわゆる「野良ライブラリ」といったものになってしまいます。
または、標準関数であるところの「fsockopen」関数などを使ってやる必要があります。
No.3
- 回答日時:
ASPは、触ったこと無いのでわかりませんが、
少なくとも下記は、
If Err.Number <> 0 Then 'error check for http
Response.Write("エラー:" & Err.Description)
response.redirect("/ga-ko/error.asp?error=999")
response.end
End If
If httpObj.Status = "400" Then
response.redirect("/ga-ko/error.asp?guid=ON&error=001")
response.end
End If
If httpObj.Status = "401" Then
response.redirect("/ga-ko/error.asp?guid=ON&error=002")
response.end
End If
エラーナンバーが0以外の何かだったら、/ga-ko/error.asp?error=999にリダイレクト
HTTPのステータスが400だったら、/ga-ko/error.asp?guid=ON&error=001にリダイレクト
HTTPのステータスが401だったら、/ga-ko/error.asp?guid=ON&error=002にリダイレクト
というように読めますが、それでいいんですよね。
同じようなことをPHPで書くとしたら
<?php
//何らかのライブラリを使って同じような挙動をするHTTPリクエスト用のライブラリがあって
//それが値を返してきたと仮定します。
//ちなみにPHPにはVBのようなエラートラップははれないので、try/catch構文を使います。
//ついでに、ライブラリがきちんとExceptionを吐かない場合はどうにもなりません。
try{
$http = new HttpHoge("http://example.com"); //ここらへんは
$response = $http->send(); //適当です。そういうライブラリがあると仮定してください。
if($response->status == 400){
header("Location: /ga-ko/error.asp?error=001");
exit();
}elseif($response->status == 401){
header("Location: /ga-ko/error.asp?error=002");
exit();
}
}catch(Exception $e){
header("Location: /ga-ko/error.asp?error=999");
exit();
}
?>
記述としてはこんな感じになるのではないでしょうか。
この回答への補足
大変参考になりました。Exceptionのキャッチが大事です。PEARはApacheが標準搭載ではないようですので、他に進めるライブラリがありますか?
補足日時:2010/08/07 20:54No.2
- 回答日時:
質問者さんは、PEARをご存知ですか。
PEARライブラリに、「HTTP_Request(またはHTTP_Request2)」といったものがあります。
それを使えば少なくともソケット通信で外部データを取得出来ます。
また、「response.redirect」の部分に該当するものは、標準ではないので、header関数で直接渡してしまうのが簡単です。
<?php
header("Location: /ga-ko/error.asp?error=999");
?>
また、#1の回答者さんが言っているようにPHPには標準関数で通信をする機能があります。
オブジェクト指向にとくにこだわっていないなら、fsockopen関数を調べてみてください。(最初にご案内したHTTP_Requestもfsockopen関数のラッパーです。)
この回答への補足
回答をありがとうございました。
「response.redirect」の部分をheader関数で直接渡すことですが、
下記のように複数の場合も可能でしょうか?
If Err.Number <> 0 Then 'error check for http
Response.Write("エラー:" & Err.Description)
response.redirect("/ga-ko/error.asp?error=999")
response.end
End If
If httpObj.Status = "400" Then
response.redirect("/ga-ko/error.asp?guid=ON&error=001")
response.end
End If
If httpObj.Status = "401" Then
response.redirect("/ga-ko/error.asp?guid=ON&error=002")
response.end
End If
どうぞ、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- PHP php エラー 2 2022/10/23 16:43
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/02/02 09:25
- MySQL php テーブルを作れない 2 2022/11/17 18:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
PHPで、エラーがない場合のみ画...
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
PHPでfatal errorが出ても無視...
-
fsockopenの例外について
-
phpでget_headers()が使えない?
-
php pear mdb2に質問です。
-
PHP8を使うと、大量のWarningが...
-
file_get_contents使用時のエラ...
-
PHPページの中に「結構」という...
-
502 Bad Gatewayの解決方法
-
ASPをPHPに移植したいですが、...
-
IIS/PHPのサイトでたまにCGIエ...
-
PHP、unpack関数でのエラー
-
require_once で読み込まれたか?
-
メールアドレスが存在するか確...
-
iframeからのアクセスか、ブラ...
-
openssl_pkcs7_encryptについて
-
bindValueエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
[php初心者]サイトを見てデータ...
-
「@$変数」の「@の意味は?」
-
トランザクションが原因?DBに...
-
パースエラーとは?
-
PHP8を使うと、大量のWarningが...
-
error_reporting(0);にも関わら...
-
PHPでfatal errorが出ても無視...
-
PHPでネットワークドライブのop...
-
ある条件に当てはまったときに...
-
PHPにて外部サイト内容が取得不...
-
ワードプレスサイト PHP8.0.25...
-
PHPで、エラーがない場合のみ画...
-
bindValueエラー
-
SELECTの値を保持する
-
これは例外処理でしょうか?
-
phpでクラスのメソッドで同名の...
-
phpのエラー(T_LNUMBER)について
-
phpのrenameでエラーが出ます
-
クラスの中でincludeするとき、...
おすすめ情報