【PHP】下らねぇ質問はここに書き込みやがれpart14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0712nobodyさん
2006/01/07(土) 10:58:29ID:???どういう風にデータをいじるのか分からないからなんとも言えないけど、
統一しておいた方が何かと楽でしょ。いちいち変換するオーバーヘッドが
惜しいってほどパフォーマンス要求がシビアなら別だけど。
0714nobodyさん
2006/01/07(土) 11:10:19ID:???685 じゃないが、意味がわかんね
$link にマッチ結果が配列で入るのが当然であって、
$line[1] になんか何も代入されないだろ?
0715nobodyさん
2006/01/07(土) 11:29:22ID:???当方今までずっと
サーバサイドでEmacs直接編集→Apacheの公開用ディレクトリにコピー→直接WEBから参照
でやってたんですが、
さすがになにかしらマトモなデバッガや開発環境使った方がいいかなと思い始めまして…
Eclipse+dbg辺りかなぁと思っているのですが使用されてる方のコメント等聞けたらな、と
0718nobodyさん
2006/01/07(土) 11:42:13ID:???0719nobodyさん
2006/01/07(土) 12:21:51ID:jsajv2SXテスト環境ではうまく動いたのに本番環境では動きませんでした。
[テスト環境]
Fedora Core 3
Apache 1.3.33
PHP 4.3.11/Apacheモジュールとして組込
[本番環境]
Redhat Enterprise Linux 3
Apache 2.0.46
PHP 4.3.2/Apache2Filterとして組込
レスポンスヘッダを見てみると、なぜか本番環境ではConnectionヘッダが常にcloseだったので、
これが原因かと思ってhttpd.confでKeepAliveディレクティブをOnにしました。
それでもConnection: closeになってしまうので、
PHP側でheader("Connection: Keep-Alive/r/n");と書いたんですが、
それでも後からcloseが追加されてConnection: Keep-Alive, closeみたいになってしまいます。
他のhtmlやcssファイルなどの静的コンテンツも常にConnection: closeで返ってきます。
httpd.confのHeaderディレクティブで書き換えても同様なので、
何かが後から強制的に書き換えているように思えます。
何か対応策をご存知の方、ご教示頂ければと思います。
0720nobodyさん
2006/01/07(土) 13:49:10ID:???ブラウザ側で Persistent Connection が無効になっていると
当然 Apache は Keep-Alive をしようとしない。
ブラウザ側の設定はどうなってるのか確かめた?
0721nobodyさん
2006/01/07(土) 14:03:57ID:TbKqhVyiというデータを入れたい場合どうしたらよいのでしょうか?
array_pushだと値だけなら格納できますがキーまで入れることできないみたいなので・・。
0722nobodyさん
2006/01/07(土) 14:22:54ID:???0723nobodyさん
2006/01/07(土) 14:35:18ID:TbKqhVyi配列の認識自体間違っていたら教えてください。
例えば上の値を最初に入れたら
配列の中は 0 => hello,hoge=>hello でこれはあくまで1つの箱に入っているんですよね?
0724nobodyさん
2006/01/07(土) 14:42:21ID:???0 => helloなんてどっからでてきたんだ。
つーかふつうに$array["hoge"] = "hello"ってやれば「最後」に入るし。
0725nobodyさん
2006/01/07(土) 14:46:45ID:???意味なので、「上の値を最初に入れる」という段階でおかしい。
あと >>724 の言う「最後」は PHP 独自のことなので気をつけておくこと。
他の言語では、ハッシュ(連想配列)に順番なんてものはない。
0726nobodyさん
2006/01/07(土) 16:31:59ID:???filemtime()で取得出来るのは、自分のサーバーにある物だけらしいし・・・
教えて下さい。
0727nobodyさん
2006/01/07(土) 16:41:36ID:???実際に箱を開けて見なきゃ猫が生きているかどうか分からないわけで。。
簡易チェックであれば、HTTPヘッダを調べればよいかと。
0728nobodyさん
2006/01/07(土) 16:56:59ID:???返事トンクス
そのHTTPヘッダを調べる簡易チェックでも更新日とか分かりますか?
また、どのようにすればいいのでしょうか?
ググってるのですが、なかなかページが見つからなくて・・・
0729nobodyさん
2006/01/07(土) 16:59:32ID:???$req .= "Host: ".$host."\r\n";
$fp = @fsockopen($host, "80", $errno, $errstr, "30");
if(!$fp) {
$res .= "Error: ".$errstr." (".$errno.")";
} else {
fputs($fp, $req);
while (!feof($fp)) {
$res .= fgets($fp, 164000);
}
fclose($fp);
}
ヒントみたいなもの。
0730nobodyさん
2006/01/07(土) 17:00:54ID:???(CGI/PHPの類は無理です、と。)
0731nobodyさん
2006/01/07(土) 17:01:47ID:???参考にして頑張ってみます!
0732nobodyさん
2006/01/07(土) 18:03:24ID:???2つのサーバーでセッションの共有がしたいのですが
何かいい方法ありませんでしょうか?
0734719
2006/01/07(土) 18:41:48ID:jsajv2SX有効になっているので、サーバ側に問題があるんじゃないかと考えています。
テストサーバでは問題なくKeep-Aliveを返すので、
PHPがhandler型じゃなくてfilter型なのも一因となっている可能性ってあるんでしょうか?
0735nobodyさん
2006/01/07(土) 18:44:13ID:???0736719
2006/01/07(土) 19:02:51ID:jsajv2SX確かにそうすれば良かったんですが、
工数が少なかったため既存のテスト環境を利用しました。
本番と同一環境であれば今更困ることはなかったと承知しています。
0737nobodyさん
2006/01/07(土) 19:39:47ID:???関係ないと思うけど。
0738nobodyさん
2006/01/07(土) 19:46:33ID:???ブラウザを通すことなく、
Windows用のプログラムを作ったりすることは可能なのでしょうか?
0741nobodyさん
2006/01/07(土) 19:57:49ID:???curlとか使って通信するのも便利
0743nobodyさん
2006/01/07(土) 20:32:34ID:???php-gtkとかWinBinderとかがあるよ。
>>742
外部鯖とセッション共有って、、、なんて恐ろしい子!
0747nobodyさん
2006/01/07(土) 23:01:43ID:???0748nobodyさん
2006/01/07(土) 23:29:15ID:???0749nobodyさん
2006/01/08(日) 00:52:50ID:Gpu+sfrFPHPでメールフォームを作成予定です。
mb_send_mailなどで以前メールフォームを作成した経験があります。
ただ今回作成予定のレンタルサーバのサポートに下記のような記述がありました。
>PHPはCGIモードでインストールされている為、モジュール特化の機能は利用出来ません。
これってどのような意味なのでしょうか?
以前作成したレンタルサーバでは拡張子は.phpで実行できました。
>CGIモード
とは拡張子を.cgiで実行する場合のことなのでしょうか?
また「モジュール特化の機能」とはどのような機能なのでしょうか?
0750nobodyさん
2006/01/08(日) 01:08:45ID:???>>PHPはCGIモードでインストールされている為、モジュール特化の機能は利用出来ません。
>これってどのような意味なのでしょうか?
主にこんな機能
http://www.php.net/manual/ja/ref.apache.php
あとCGI版にsuEXECなんかを組み合わせてると
また別に違いが出てくるけど、それは機能の違いというより機構による差異。
>CGIモード
とは拡張子を.cgiで実行する場合のことなのでしょうか?
これは関係ない。拡張子による動作の割り当てはWebサーバの設定の話であって
PHPがApacheモジュールか、CGI版かには関わらない。
0751nobodyさん
2006/01/08(日) 01:31:01ID:Gpu+sfrFありがとうございます。
mb_send_mailなどは使えるようですね。
またいろいろ調べてみたら、ソースの頭に
#! /usr/local/bin/php
などのパスが必要な場合などあるなどを見ました。
以前のレンタルサーバではサンプルソースなど色々
情報が載っていたので初心者の私でもなんとかなったんですが
今回のレンタルサーバにはPHPは使用可能。
とはあるですが、上記のようなパスの設定が必要なのか?パーミッションの設定は?
などは特に説明がありません。
基本を勉強しないとダメですね・・
とにかく>>750さん
ありがとうございます。
0752nobodyさん
2006/01/08(日) 01:44:03ID:???0754nobodyさん
2006/01/08(日) 05:03:26ID:???指定したサイズより大きい画像をリサイズする処理は完成しているのですが、
それ以下のサイズの画像もimagejpeg()の段階で画像が劣化してしまいます。
何かうまく回避する方法はないでしょうか?
0757754
2006/01/08(日) 05:20:48ID:???ありがとうございます。
サイズ判定はやっています。
ブラウザにjpgを出力するにはimagejpeg()使う以外に無いですよね?
私の勘違いでしょうか?
>そのまま出力する
とは画像ファイルにリダイレクトするということでしょうか?
なるべくなら、それは避けたいのです。
0758nobodyさん
2006/01/08(日) 05:40:18ID:???バイナリで出力できるやつならなんだって構わないと思うんだけど。
0759754
2006/01/08(日) 05:48:57ID:???画像処理にばかり気を取られて頭が固くなってました。
0761nobodyさん
2006/01/08(日) 15:05:00ID:???<html>
<head>
<title>SaveCookie</title>
<?php
mb_language('Japanese');
mb_detect_order('sjis-win,eucjp-win');
mb_internal_encoding("UTF-8");
?>
</head>
<body>
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
SAVED COOKIE "email"
</body>
</html>
を表示してみたところ下のようなメッセージが返ってきたなり。
Warning: Cannot modify header information - headers already sent by
(output started at /home/happylife/public/www/cookie_rec.php:4)
in /home/happylife/public/www/cookie_rec.php on line 13
SAVED COOKIE "email"
セキュリティの設定をすべてのクッキーを有効にしても、
ファイヤーウオールを無効にしてもこのメッセージが出続けます。
どうしたら良いのでしょう?
0762nobodyさん
2006/01/08(日) 15:10:32ID:???警告: (HTTP)ヘッダー情報を修正することができません
- だって、ヘッダーは既に送信されていたんだもん。
0763nobodyさん
2006/01/08(日) 15:16:20ID:???setcookieは、"<?php"の前に何かがあっては送信できませんし、
setcookieより前にecho等があっても送信できません。
"<?php"の前は、たとえ空行でも、入れちゃだめよ。
0764nobodyさん
2006/01/08(日) 21:57:56ID:???ありがとうございます。
動きました♪
0765nobodyさん
2006/01/08(日) 22:37:56ID:???flock($fp, LOCK_EX);
こんな感じでファイルロックを行うと、ファイルをオープンしてからロックするまでの間に他のプロセスがファイルをオープンすることはないのでしょうか?
0768nobodyさん
2006/01/08(日) 23:12:10ID:???0769nobodyさん
2006/01/08(日) 23:15:37ID:???というか、意外とまともに説明されてることって少なくね? < flock
0770765
2006/01/08(日) 23:30:43ID:???ロック用のファイルを作っておいてそれをロックするようにすればいいでしょうか?
0771nobodyさん
2006/01/08(日) 23:34:36ID:???0772nobodyさん
2006/01/08(日) 23:48:15ID:???↓よろ
0773nobodyさん
2006/01/08(日) 23:51:54ID:???パターン的には2通り。
1つは複数のプロセスでopenはできることを前提に、flockが解除されて
順番が回ってきたプロセスは「まずrewindして中身を読み直す」ことから始める。
ファイルのオープンモードがw系以外であることが条件。
もう1つは対象ファイル以外にロック専用のファイルを用意しといて
それがロック中は以降の処理全体を止める。いわゆるプロセスロック。
ファイルをいきなり消しちゃう場合や、複数のファイルを扱う場合などはこれ。
この種の「ロックの粒度」の話はRDBMSの試験にも出ますよw
0774nobodyさん
2006/01/09(月) 00:01:04ID:???するのがいちばんやね。ファイルが増えて邪魔くさいって欠点はあるけど
0776nobodyさん
2006/01/09(月) 00:08:18ID:???0777nobodyさん
2006/01/09(月) 00:15:19ID:???rewind が何をするものなのか考えてみよう
0778nobodyさん
2006/01/09(月) 00:20:19ID:???0780php developer teams
2006/01/09(月) 13:07:16ID:r4dXJ2hkどうすれば改行できるようになるのでしょうか?
0782nobodyさん
2006/01/09(月) 18:06:26ID:???[0]にfile()で読み込んだソース全部を入れることは出来ないんでしょうか?
0784nobodyさん
2006/01/09(月) 18:15:21ID:???>>783のでいいと思うがPHPのバージョンが古くて(4.2.x以前)使えない場合は
join("",file(〜))で同じことができる。(が、file_get_contents()の方が速い)
0787nobodyさん
2006/01/09(月) 18:46:35ID:???fopen して fread( filehandle, filesize( filename ) )
って手もあるな
0788nobodyさん
2006/01/09(月) 20:03:42ID:???は1バイトですが、
あ
は3バイトですか?
0789nobodyさん
2006/01/09(月) 20:13:30ID:???は
あ
は
0792nobodyさん
2006/01/09(月) 22:34:46ID:+5WHmeqfどなたか簡単なプログラムを作成してください。お願いします。
0793nobodyさん
2006/01/09(月) 23:12:01ID:???preg_replaceで正規表現を使うのが筋だが、嫌なら
$str = stripslashes($str); とか
つか少し頭使うなり調べるなりせんと上達しないよ?
0794nobodyさん
2006/01/09(月) 23:26:06ID:???HTML_QuickFormを利用していますが、なんか面倒で。
0795723
2006/01/10(火) 12:55:21ID:s2ru7jHC遅くなってすいません、ありがとうございました。
0796nobodyさん
2006/01/10(火) 13:11:23ID:???一つのディレクトリに納まっている複数のファイルをまとめ、一つのファイルにし、
これを圧縮するにはどうしたら良いのでしょうか。
圧縮はさておきまとめるというとtarを使うと思うのですが、
$aaa = system('tar -cf ./after.tar ./before', $bbb);
なんてことをしてもできないようなのです。
system関数が使えないとなると、他に手はないでしょうか。
0797nobodyさん
2006/01/10(火) 13:55:20ID:???特にさくらの鯖とか、CGI版だって知らないで聞いてるアホも多いんだから。
「system関数が使えない」ってのは、「関数が」使えないの?
それとも、`ls`なんかは出来るわけ?
パスが通ってない可能性も踏まえ、which tarしたフルパスにするとかしてみれ。
tarが使えないようになっている以外なら多分出来るはずだ。
0799nobodyさん
2006/01/10(火) 15:34:18ID:???var $str1 なんだから本来 $str1 と比較してマッチするはずがない
ereg に日本語を突っ込んでも信用できない
スクリプトを sjis で書いてると他にもおかしなこと起きやすい
以上から、たぶん晒した以外のところもかなりおかしなことになってるはず
結論としてはもっと勉強してくれ
0800nobodyさん
2006/01/10(火) 16:04:59ID:hzjvsGhO\が1つ以上ある場合はすべて消去したいのですがエラーが表示され機能してくれません。
0801nobodyさん
2006/01/10(火) 16:08:12ID:???判断に迷う質問だから放置してた。
ふつーに考えたら$str1と$this->str1を入れ替えるなんてこと自体がありえないので、
一体何をやろうとして何に引っかかってしまったんだか想像がつかない感じ。
結論:かなり大ボケかましてない?
というか多分、$this->str1は中身が空っぽになってて、
それで何にでもマッチしちゃうだけじゃないの?という気がする。
0802nobodyさん
2006/01/10(火) 16:09:17ID:???"/\\\\+\/" は "/\\\\+/" の間違いじゃないのか。
最後の \ は何に対しての \ なんだよ。
0803nobodyさん
2006/01/10(火) 16:24:04ID:???ありえないというか意味不明でレスのつけようがない
<?php
class test {
var $str1 = "テスト";
function view($str1) {
echo "\$this->str1=".$this->str1;
echo "<br>\n";
echo "\$str1=".$str1;
}
}
$a = new test;
$a->view("ホゲ");
?>
0804nobodyさん
2006/01/10(火) 16:55:37ID:Gn5rV4CT\と入力すると\\になったりして入力と異なるのでそれを直したいです。
0805nobodyさん
2006/01/10(火) 17:29:27ID:???申し訳ございません。XREAにてmod_phpで動かしています。
仰るとおり $aaa = system('which tar', $bbb); を試みましたが、
>>796のコード同様、$bbbには127という値が入っているのみでした。
0806nobodyさん
2006/01/10(火) 17:55:04ID:???入力元をコピーして残しとけば?
普通、mysql_escape_stringなんてDBに書き込む直前以外には実行しないだろー
0807nobodyさん
2006/01/10(火) 17:55:41ID:???0808nobodyさん
2006/01/10(火) 18:38:31ID:???さくっとPEAR使ったら?
http://pear.php.net/package/PHP_Archive/
http://pear.php.net/package/Archive_Tar/
圧縮は要lib
0811nobodyさん
2006/01/10(火) 21:57:13ID:Gn5rV4CT■ このスレッドは過去ログ倉庫に格納されています