【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0213nobodyさん
2006/07/11(火) 00:15:35ID:???array_rand($arr); // return $key
array_rand($arr, 1); // return $key
array_rand($arr, 2); // return array($key, $key);
っておかしくね?
1はarray($key)になってほしくね?
欲を言えばarray_rand($arr, 0)もエラーじゃなくてarray()が返ってくれなきゃ使いづらくね?
0214nobodyさん
2006/07/11(火) 00:38:13ID:???0215nobodyさん
2006/07/11(火) 01:31:09ID:???前スレ900後半で思いっきり誰の目にも触れられずあぼーんしたので
再度書かせてください。
サーバからFTPにログインして、指定のファイルをブラウザに出力、
訪問者にダウンロードダイアログが出るようにしたいんですが、
どんな方法があるでしょうか?
content typeのlocationで直接ftp://指定すれば、とレスをいただきましたが、
ftp://をブラウザ経由でしてしまうとパスワードが流れてしまいますし、
ブラウザの履歴にも残るので、
サーバーからlocalhostにftpに接続して、それをブラウザに出力、
という流れを取りたいと考えています。
この関数使え、とかのヒントでもいいので
教えて下さいませ
0216nobodyさん
2006/07/11(火) 02:29:18ID:???そんな奇怪な方法をどういう経緯で選んだのか前スレ読み返しても分からなかった。
無駄なことしてるというのは十分伝わって来るんだけど…
0217nobodyさん
2006/07/11(火) 02:32:35ID:???何がやりたいのかよくわからんからスルーされるんじゃね?
>この関数使え、とかのヒントでもいいので
1.ftp_*()でファイルを取得
2.header()で適切なヘッダを出し
3.readfile()でもして出力
サーバのFTPDにアクセスするのかね?
ファイルがファイルシステムで直接読めるなら
header();
readfile();
でオワリ
どんなヘッダを送るのかとかはphpの問題じゃないので省略。
0218nobodyさん
2006/07/11(火) 02:43:03ID:???なぁ、お前ら「良いプログラム」って何だ?
PHPは確かにC言語チックな見た目でPerlなんかより全然見やすいコードが書けるけど
それでも俺のコードは醜い気がする・・・
0219nobodyさん
2006/07/11(火) 02:59:24ID:???「良い」てーのはそれを見る相手や状況によって違うんじゃないか
xxが良いとかなんか無いの?
それにしても誰に何を言われたんだかw
0220nobodyさん
2006/07/11(火) 03:56:32ID:???・理解しやすい
・再利用しやすい
えーとそれから・・・なにがあったっけ?
0221nobodyさん
2006/07/11(火) 04:39:51ID:???人が理解しにくいとか?
0222nobodyさん
2006/07/11(火) 07:15:25ID:???mbstring.encoding_translation 「On」「 Off 」
これが原因じゃないかと思うけどね
0223135
2006/07/11(火) 08:59:10ID:BuTz0b5N>>222
自動でエンコーディングされるんですよね。
自分のローカルサーバーは両方Onになっています。
これは.htaccessで指定可能なのでしょうか?
0224135
2006/07/11(火) 09:06:23ID:BuTz0b5N全て自分の環境と同じにしようと思ったのですが、それは可能なのでしょうか?
0225nobodyさん
2006/07/11(火) 09:27:24ID:???つ ttp://www.php.net/manual/ja/configuration.changes.php
対象フォルダに"AllowOverride Options" もしくは "AllowOverride All" 権限があって、
PHPのマニュアルにおいて変更の可否がPHP_INI_ALL, PHP_INI_PERDIR, または PHP_INI_SYSTEM と
指定されているもののみ可能。
0226225
2006/07/11(火) 09:28:40ID:???0227135
2006/07/11(火) 09:34:49ID:BuTz0b5N$_SESSIONにはちゃんと変数が格納されている。
$_SESSIONを出力する時に文字化けが起きる。
.htaccessが使える。
エンコーディングはSJIS
phpinfo()⇒>>145
サーバー管理者に問い合わせたところ、
「phpの場合は、内部エンコーディングがUTF-8になっているので、明示的指定がなければ文字化けすることはあります。
エンコーディングを指定してください。」と返ってきた。
0230135
2006/07/11(火) 12:06:43ID:BuTz0b5Nphpinfo()で見てみたところ
mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS EUC-JP
mbstring.internal_encoding SJIS EUC-JP
mbstring.language Japanese Japanese
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value
でした。
.htaccessでこっちと同じ設定にすればいいのかと思ったんですけど、
設定の仕方がわからず、挑戦しても500エラーが出るばかりです・・・。
0232nobodyさん
2006/07/11(火) 12:22:18ID:???何か参考になる書籍やサイトはありませんか?
それともperlを勉強しなければ難しいんでしょうか?
0233nobodyさん
2006/07/11(火) 12:32:24ID:???「スパイダ」ってこれのことかな?
http://www.oreilly.co.jp/books/4873111870/
詳しくは amazon なりで見てみて。
0235nobodyさん
2006/07/11(火) 14:30:40ID:???<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib"
php_admin_flag mbstring.http_output SJIS
</IfModule>
とやっていれたら500エラーになりました。
0236nobodyさん
2006/07/11(火) 14:32:27ID:???亀レスすみません。
開発者のみなさんは、デバッグコードは不要になったら
コメントアウトするなどしているのでしょうか。
0237nobodyさん
2006/07/11(火) 14:35:45ID:???「.htaccess 500」なりのキーワードでぐぐれ。
それと、>>231 のぐぐった結果をもう一度ちゃんと読め。
0238nobodyさん
2006/07/11(火) 14:37:32ID:???コメントアウトしてソースに残ってもいいというレベルなら、
スクリプト先頭で、
define("CONSTANT", "1");
これをコメントアウトさせる。
あとは
IF (defined('DEBUG')){
// こにデバッグコードを書く
}
0239nobodyさん
2006/07/11(火) 14:38:09ID:???0240nobodyさん
2006/07/11(火) 14:44:45ID:???php_value mbstring.http_output SJIS
とだけ1行入れてもエラーでした。
もちろん行末に改行は入れてます。
0242nobodyさん
2006/07/11(火) 15:05:15ID:???・検索キーワードなどを教えられても検索しない
・参考URLを教えられても見ない
・質問する前に自分で試さない
こういった質問者は完全にスルーしましょう
煽りや叩きも不要です
完全に存在を無視して下さい
不必要にレスすると永久ループに陥ります
0243nobodyさん
2006/07/11(火) 15:10:24ID:???の正規表現を教えてください。
preg_match使うみたいだけどよくわかりません。。。
0244nobodyさん
2006/07/11(火) 15:14:44ID:???・検索キーワードなどを教えられても検索しない →検索した >>231 >>237
・参考URLを教えられても見ない → 見た
・質問する前に自分で試さない → 試した >>235 >>240
0245243
2006/07/11(火) 15:16:58ID:???0247nobodyさん
2006/07/11(火) 15:26:53ID:???ttp://yellow.ribbon.to/~gama/sine/testing/xp-ap-ph4-sq.html
てきせんというのはどういういみですか?
0248nobodyさん
2006/07/11(火) 15:30:17ID:???0249軟式PHP
2006/07/11(火) 15:30:45ID:???もしかしたら、文字コードの設定がおかしいのかも。
ちょっと下のコードを実行して表示されたものをレスしてくれ。
<?php
$strBuff = 'Pj4yNDSky6SipOuk6KSmpMuhoqSzpOykwKSxpOSkw6TGpOKk76SrpOmkzKGjDQqkxKTepOqhorvkpM/Hz7yvpMekoqTroaM=';
$strDec = base64_decode( $strBuff );
header( 'Content-Type: text/html; charset=EUC-JP' );
var_dump( $strDec );
?>
0250236
2006/07/11(火) 15:31:10ID:???0253244
2006/07/11(火) 16:07:38ID:???.htaccess では設定できないみたいです。
0254nobodyさん
2006/07/11(火) 16:18:05ID:???> $_SESSIONにはちゃんと変数が格納されている。
嘘を吐くな。
アホの子の>>135は>>205とか>>209を死ぬまで読み直すべきだ。
0255nobodyさん
2006/07/11(火) 16:26:50ID:???mb_send_mail使えなくなっちまったけど、これはもうどうしょうもない?
0256244
2006/07/11(火) 16:27:42ID:???内部エンコーディングとhttp_outputはソース上から設定できるけど、
http_inputは設定できないので、
postやget等から得られたデータを、
てきせんoutputから内部エンコードにmb_convert_encodingする
というので解決です。
0257nobodyさん
2006/07/11(火) 17:10:33ID:???> 1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
を守らないのはわざとですか?
貴方をあぼーんしたいのですが、IDがないと登録しづらいのです。
自己弁護でも何でもこれ以上続けるなら、IDを表示させてください。
0259257
2006/07/11(火) 17:29:42ID:???私も最初はそう思いましたが、今までの流れから考えると、
「煽られる→自己弁護」の繰り返しもあり得るかなと。
ですので、「これ以上続けるなら」と前置きを置いています。
135氏がこれ以上書かないのなら、それに越したことはないんですけどね。
0260nobodyさん
2006/07/11(火) 17:48:50ID:???本人がこれで解決だと言ってるんだからもういいんだろう。
これでやっとスレに平和が戻る…。
0262135
2006/07/11(火) 18:14:40ID:BuTz0b5N遅レスすみません。
ググって文字コードをSJISにしたのですが、代わりはなかったです。
>>249
自分も試してみたところ
string(71) ">>244、ヒ、「、・隍ヲ、ヒ。「、ウ、・タ、ア、荀テ、ニ、筅・ォ、鬢フ。」、ト、゙、遙「サ荀マヌマシッ、ヌ、「、・」"
と表示されました。
0263nobodyさん
2006/07/11(火) 18:35:40ID:???$_135->teach(); // 失敗するのは分かっているが・・・
}
catch (Exception $e) {
// $_135->teachAgain(); // 永久ループになるのでやってはいけない
throw $e;
}
0267nobodyさん
2006/07/11(火) 18:47:17ID:???おいおい。PHP のサンプルもあるって書いてあったしょ?
まぁ、そうは言うけど、自分も Perl の方が良いと思う。こういう用途には。
0268135
2006/07/11(火) 18:58:19ID:BuTz0b5Nブラウザの文字化けなのですか。
IEでもチェックしてみます
>>266
はい、別人です、
mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS EUC-JP
mbstring.internal_encoding SJIS EUC-JP
mbstring.language Japanese Japanese
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value
上記の環境でちゃんと動作したので
.htaccessで
php_value mbstring.detect_order auto
php_value mbstring.http_input auto
php_value mbstring.http_output sjis
と指定したのですが、全く変わりません・・・。
サーバー側の問題の可能性はあるのでしょうか。。。
php_value mbstring.internal_encoding sjis
0269135
2006/07/11(火) 19:00:31ID:BuTz0b5NIEでアクセスしたところ、同じ文字化けが発生しました。
0270nobodyさん
2006/07/11(火) 19:12:09ID:???どこのサーバー使ってるんだ?
0271135
2006/07/11(火) 19:16:00ID:BuTz0b5Nここです。
ttp://nsf.jp/
0272135
2006/07/11(火) 19:22:45ID:BuTz0b5Nphp_value mbstring.detect_order auto
php_value mbstring.http_input auto
php_value mbstring.http_output EUC-JP
php_value mbstring.internal_encoding EUC-JP
と設定したら
string(71) ">>244にあるように、これだけやってもわからぬ。つまり、私は馬鹿である。"
と表示されました。
しかし、他のページが全て文字化けしてしまいました。
全てのページをEUC-JPで統一してみます。
0273135
2006/07/11(火) 19:30:36ID:BuTz0b5Nこれはもうダメかもわかんね
0274nobodyさん
2006/07/11(火) 19:34:20ID:???勉強し直して来た方が良いと思うよ。
0275135
2006/07/11(火) 19:46:20ID:BuTz0b5N今までお付き合いいただいてありがとうございました。
0279nobodyさん
2006/07/11(火) 20:12:16ID:6Oy0SlMxこれって「ユニックスタイム」みたいな名称あるの?
0280nobodyさん
2006/07/11(火) 20:30:49ID:???0281nobodyさん
2006/07/11(火) 21:24:28ID:MzBGXnqGあるfunctionを書きまして、その中にはDB接続する処理が含まれています。
DB接続するためのfunctionは事前に書いていたので、そのfunctionの中で使ったら、うまく動きません。
function hogehoge {
db();←別に定義されてるDBに接続するfunction
以下続く
}
こんな感じです。
functionの中でfunctionを使うにはどうすればいいでしょうか?
functionは全てスクリプトとは別のファイルに書かれています。
順番的にはdb()を先に書いています。
よろしくお願いします。
0283nobodyさん
2006/07/11(火) 21:39:17ID:htholvFi"always_populate_raw_post_data"をOnにしたいのですが
falseが返されてしまい設定できません。
ini_set('always_populate_raw_post_data' , ’On');
PHPマニュアルでは可能だと書かれているのですが…。
PHPマニュアルが間違ってるんでしょうか?
0284281
2006/07/11(火) 21:42:52ID:MzBGXnqGDB接続のfunctionはdbの名前とかが引数になっているんですが、
これらも全部function hogehogeに渡したら通ったんですが、
これで合っていますか?一応動くのですが、無駄なことしてそうで自信がないです...。
0286281
2006/07/11(火) 21:48:41ID:MzBGXnqGレスありがとうございます。
DB()はDBサーバのアドレスとかの接続に必要な情報と、SQL文を一つを引数で渡して、その結果セットをreturnするというものなのです。
引数は全部で5個あるのですが、それを全部function hogehogeの引数に加えたら一応動作しました
挙動としては普通というか当たり前なのかもしれませんが、実装方法としてはあまり効率良くないでしょうか?
0287nobodyさん
2006/07/11(火) 21:57:18ID:???Invalid method in request exam=COMPUTERSYSTEM&num=50GET /~hoge/end.html HTTP/1.1
とエラーコードがでます。
COMPUTERSYSTEMという文字列をポストして、それに合致するデータがDBに
無い場合は、end.htmlにheader("Location end.html")により
飛ばすようにしているのですが。
headerはpostのときのヘッダが残っていてLocationがくっついて、そんなヘッダ変だよとなって
しまうのでしょうか。
0288nobodyさん
2006/07/11(火) 22:00:29ID:???マニュアルのどこさ?
>>286
変数のスコープについて勉強した方が良いですね。
http://jp.php.net/manual/ja/language.variables.scope.php
実装の良し悪しは何とも。それが駄目となるとグローバル変数になっちゃうし
そっちの方が一般的に言えば悪いでしょう。あとはクラスを作るかだね。
0291nobodyさん
2006/07/11(火) 22:22:00ID:s/pPSXDEっていうの禁止にしません?
つまんないしうざいだけ。
的を射たのはあるけどほとんどはずしてるし
0292nobodyさん
2006/07/11(火) 22:32:11ID:???0293nobodyさん
2006/07/11(火) 22:42:07ID:???0294nobodyさん
2006/07/11(火) 22:44:34ID:???お前が代わりに正しく導いてやれば良いだけのことじゃないか。
勝手に変なルールを作られてもつまんないしうざいだけ。
0295nobodyさん
2006/07/11(火) 23:24:03ID:???uniqid()
http://jp2.php.net/manual/ja/function.uniqid.php
は接頭辞無しで13文字のユニークな値を返す、とありますが
もっと短い文字数でユニークを保証する方法、または関数はありますでしょうか?
使用可能な文字はできれば半角英数字(大文字小文字)がいいのですが。
0296nobodyさん
2006/07/11(火) 23:41:41ID:???同じものが出る確率なんて0みたいなもんだ
0297nobodyさん
2006/07/12(水) 00:12:05ID:67ROEMVu変数名を渡して値を取得する関数を作成しようとしていますが
方法がわかりません。。。
つぎのような感じの関数を作ろうとしています。
function getValue($variable)
{
$hoge_data = simplexml_load_file('hoge.xml');
return $article->$variable;
}
0298nobodyさん
2006/07/12(水) 00:23:04ID:???PHPでは変数を使って変数を指定することができるのです。
$a = "hage";
$b = "a";
print ($$b);
0300nobodyさん
2006/07/12(水) 01:01:27ID:IbIRSqg8テキストは送信できても画像がアップできません
socketで送信するときのContent-Typeなどのかき方が悪いと思うんですが
画像はどうやって送ればいいんですか?
0302nobodyさん
2006/07/12(水) 01:11:36ID:???とかやるくらいなら
$a = $article->aaa;
ってやりゃいいじゃん。
0303nobodyさん
2006/07/12(水) 01:22:40ID:IbIRSqg8画像は$upfileにパスが入ってます
こんな感じで送ってます
$length = "Content-type: application/x-www-form-urlencoded\n";
$length .= "Content-Length: ".strlen($buffer)."\n";
$gazou = "Content-Type: image/jpeg\n";
$gazou .= "Content-Length: ".filesize($upfile)."\n";
//socketで送るデータ
$dat = "$method $path HTTP/1.0\n";
$dat .= "User-Agent: $agent\n";
$dat .= "Referer: $d_ref\n";
$dat .= "Host: $host\n";
$dat .= "Connection: close\n";
$dat .= "$length\n";
$dat .= "$buffer\n\n";
$dat .= "$gazou\n";
$dat .= "$upfile\n\n";
0306nobodyさん
2006/07/12(水) 01:36:39ID:???0307nobodyさん
2006/07/12(水) 01:49:45ID:???0308nobodyさん
2006/07/12(水) 02:01:41ID:???0309nobodyさん
2006/07/12(水) 02:22:34ID:???これはunsetできなかったってことですよね?
なぜunsetできないのですか?
0310nobodyさん
2006/07/12(水) 03:55:24ID:IbIRSqg8独学なのでさっぱりでした
調べてみましたが
Content-Disposition: form-data; name="message"
こんな感じで送ればいいのでしょうか?
0311nobodyさん
2006/07/12(水) 06:10:47ID:???エラーだけ示されてもわかる訳ないでしょ?
昨日テストで答えが間違ってますって言われたんですが、どこがおかしいのでしょうか?
って言われて何と答えるよ?
0312nobodyさん
2006/07/12(水) 06:48:05ID:???フォームから受け取り、プレビューを表示した後の処理で、
プレビューのフォームにhiddenで内容を埋め込むか、セッションを使おうと
思ってますが他になんか良い方法ありますか?
■ このスレッドは過去ログ倉庫に格納されています