トップページphp
1001コメント333KB

【PHP】下らねぇ質問はID出して書き込みやがれ 96

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/05/28(金) 16:33:44ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0302nobodyさん2010/06/08(火) 12:39:01ID:???
>>296
フィーーッチになってるお
0303nobodyさん2010/06/08(火) 12:39:50ID:???
ちゃんと通じていたことを見ておくべきでした
0304nobodyさん2010/06/08(火) 12:52:25ID:lvF7sIjD
PHPで1円の誤差も許さない金額計算などを行うときには
どのような点に気をつければよいでしょうか。

JavaでいうところのBigDecimalを使うとか、
特定のクラスを使用する必要がありますか?
0305nobodyさん2010/06/08(火) 13:08:53ID:???
小数を使わない。誤差が出ない計算を考える。他の言語でもそうじゃないの?
0306nobodyさん2010/06/08(火) 13:10:50ID:o6m5GUPU?2BP(2)
>>210
やってみます
0307nobodyさん2010/06/08(火) 13:17:20ID:???
>>304
例えば、PHPを避ける
0308nobodyさん2010/06/08(火) 14:06:45ID:YOnOVKl0
PHP:5.1.6
OS:Centos
utf-8でmail関数を使ってメールを送るクラスをつくっています
phpスクリプトから送信をしてOutlookで受信した際に本文が正しく表示されません
通常であれば表示されてはいけない This is a MIME encoded message から全て表示されてしまいます
正しくメッセージを表示するようにするにはどうしたらいいでしょうか?

メッセージ部分を生成関数
private function MakeBody()
{
 if(count($this->APPENDFILE) > 0)
 {
  $FILEDATA = '';
  foreach($this->APPENDFILE as $RECORD)
  {
   $FILE = chunk_split(base64_encode($RECORD['DATA']));
   $FILEDATA .= "--{$this->BOUNDARY}\n\n"
    . "Content-Type: text/plain; name=\"{$RECORD['NAME']}\"\n"
    . "Content-Transfer-Encoding: base64\n"
    . "{$FILE}\n";
  };
 };
 $RESULT = mb_convert_encoding("This is a MIME encoded message.\n\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("--{$this->BOUNDARY}\n\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("Content-Type: text/plain; charset=\"iso-2022-jp\"\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("{$this->MESSAGE}\n\n",'iso-2022-jp','utf-8');
 $RESULT .= $FILEDATA;
 $RESULT .= mb_convert_encoding("--{$this->BOUNDARY}--\n",'iso-2022-jp','utf-8');
 return $RESULT;
}
0309nobodyさん2010/06/08(火) 14:07:40ID:???
//メール送信関数
function Send($MODE = true)
{
 $SUBJECT = mb_encode_mimeheader($this->SUBJECT,'iso-2022-jp','utf-8');
 $HEADER = $this->MakeHeader();
 $BODY = $this->MakeBody();
 $FROM = "-f{$this->FROM['NAME']} <{$this->FROM['ADDRESS']}>";
 foreach($this->TO as $RECORD)
 {
  $TO = mb_encode_mimeheader("{$RECORD['NAME']} ",'iso-2022-jp','utf-8')."<{$RECORD['ADDRESS']}>";
  if($MODE === true)
  {
   mail($TO,$SUBJECT,$BODY,$HEADER,$FROM);
  }
  else
  {
   echo "--HEADER--\n{$HEADER}\n--TO--\n{$TO}\n--SUBJECT--\n{$SUBJECT}\n--BODY--\n{$BODY}\n";
  };
 };
}
0310nobodyさん2010/06/08(火) 14:08:41ID:???
送信テスト用スクリプト
$MAIL = new SENDMAIL();

if($MAIL->SetFROM('送信テスト元','hoge@example.com') === true)
{
if($MAIL->AddTO('送信テスト先','hagu@example.com') !== false)
{
$TIME = 'TEST'.strftime('%Y-%m-%d %H:%M:%S',time());
$MAIL->SetMessage("てすとにゃーん {$TIME} ");
$MAIL->SetSubject("サブジェクトテスト");
$MAIL->SEND(true);
}
else
{
echo 'error TO';
};
}
else
{
echo 'error FROM';
};
03113082010/06/08(火) 14:17:04ID:YOnOVKl0
色々設定を変えてテストしていたのですが修正漏れがありました
>>308
違:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
正:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: 7bit\n",'iso-2022-jp','utf-8');
03122002010/06/08(火) 14:23:33ID:KP/ycwH2
>>210
Error: invalid method
そのままではこれがでます。なので、

//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
を削除しました。
するとやはりDBの中身すべてが出てしまいます。
03132822010/06/08(火) 14:41:31ID:IOcc/liv
すみません。遅くなりました。
ファイルは全部で5つあるのでzipにしてアップしました。
http://loda.jp/shm/?id=12

>>292 ぐぐってみたらこれっぽい気がするのですが、なにがなんだか分からない状態です;
もう少しがんばってみようとおもいます。。
03142822010/06/08(火) 14:57:42ID:???
guest_red.phpの13行目の
while ($row = fgetcsv($file, 1024, "\t")){

while ($date = fgets($file, 1024)){
$row = explode("\t", $date);
としたら解決しました。
すみませんでした。
0315nobodyさん2010/06/08(火) 16:39:32ID:???
下のような検索フォームを作りたいです。
phpとセレクトフォームによって呼び出すcgiを選択させるphpを教えてください。
呼び出すcgiについては完成しています。

<form method="post" action="http://aaa.php">
<input type="text" name="keyword" size="20" value="定着率" />
<br />
<select name="search">
<option value="bookmark">あああ</option>
<option value="mobile">いいい</option>
<option value="pc">えええ</option>
</select>
<input type="submit" value="検索" />
</form>
0316nobodyさん2010/06/08(火) 16:57:07ID:???
呼び出すCGIを選択するのではなくて
searchの値によってaaa.phpの中で場合分けして処理するのがセオリーだろうね。

どうしてもってんなら、Javascriptでselectが変更されたら、formのactionを書き換えるか。
でも、このやり方じゃ、アクセシビリティー的にアウトだろう。
0317nobodyさん2010/06/08(火) 17:38:05ID:hMNg2N9l
最近って文字コードどうしてますか?
もうUTF−8に統一されました?
まだEUCだよとかSJISで頑張ってるとか教えて下さい。
0318nobodyさん2010/06/08(火) 17:39:56ID:???
>>316
レスありがとうございます。
すでに検索用のインデックスは作成してしまったので、
それに対応するcgiを選択すればいいだけだったのですが難しそうですね。
0319nobodyさん2010/06/08(火) 19:00:54ID:???
対応するcgiに302でいいんじゃないの?
てか、cgiとphpという言葉の使い分けはなんだろ。perl-cgiとか使ってんのかな。なんでもいいんだけどさ。
0320nobodyさん2010/06/08(火) 21:08:21ID:???
>>169でファイルロックに関して質問した者です。
>>179のやり方を試して数日様子を見たところ、どうやら問題が解消されたようです。
とても困っていたので助かりました。
ありがとうございました。
0321nobodyさん2010/06/09(水) 01:36:39ID:???
appleのhtml5デモサイトでphpが使われてた件
0322nobodyさん2010/06/09(水) 01:41:01ID:???
そんなアップル
0323nobodyさん2010/06/09(水) 03:00:39ID:BsRvxOVf
初歩的で申し訳ありません。
PHPでローカル鯖から送信すると問題なく送れますが
鯖にUPして送ると表示される文字が全部???になってしまいます。

文字コードをいろいろ弄ってみたのですが、全部???で文字化けの変化もしません。
お知恵を貸してください。宜しくお願いします。
0324nobodyさん2010/06/09(水) 03:14:49ID:???
それだけじゃ何とも言えないかな。
文字コードは何なのかとか、表示される文字ってHTMLの文字?
0325nobodyさん2010/06/09(水) 03:26:35ID:???
これは難しい。
2行目を読んだ時点ではメール送信かと思ったが、3行目でどん詰まりだ。
0326nobodyさん2010/06/09(水) 04:34:39ID:???
教えてください!!!
何が分からないのか分かりません!!!(><)
0327nobodyさん2010/06/09(水) 04:40:29ID:???
ああわかった。
鯖とローカルのphp.iniを見比べてみてくれ。
encodで検索した内容を主に見てくれ。encodeではない、encodで、だ。
それから、ローカルはIISで鯖はapacheじゃないか?
0328nobodyさん2010/06/09(水) 04:41:36ID:???
じゃないな、phpinfoの結果を見比べてくれ。

あと、薄い可能性として、鯖にUPするときに改行コードがおかしくなってないかも疑ってみてくれ。
0329nobodyさん2010/06/09(水) 05:00:03ID:BsRvxOVf
回答ありがとうございます。

>>324
POST送信でしょうか・・・
pearでインストールしたPHPを使っているので、
どう送ってるのかわかりません。すいません。

>>327
ローカル鯖はapacheです。UPした鯖は、仕様がわかりませんがPHPは
safe_modeで動いているようです。
phpinfoはエラーを吐いてしまいました。

Warning: phpinfo() has been disabled for security reasons in
0330nobodyさん2010/06/09(水) 09:24:00ID:???
文字が?になっちまうのは、文字コード変換処理で*失敗*してる。
mbstring.encoding_translation が onか、自前の処理が入ってるか分からんけど。
htaccess使えればoffにする。 使えないようなサーバーなら、
文字化けしないエンコードにページのエンコードを変えるしかない・・・
0331nobodyさん2010/06/09(水) 11:14:04ID:W1sVZbXG
http://php.net/manual/ja/session.configuration.php
session.use_trans_sid の項目

「PHP_INI_ALL は PHP <= 4.2.3、PHP_INI_PERDIR は PHP < 5 から。PHP 4.0.3 から利用可能。」

意味がわからん 幼稚園児にもわかる日本語で説明頼む
4.0.3〜4.2.3 は PHP_INI_ALL 
4.2.3〜現行ver まで PHP_INI_PERDIR なのか??
0332nobodyさん2010/06/09(水) 11:26:06ID:???
から。がチョットいまいちだけど分からんほどではないかと。
英語のページ見ればよろし。
5からは INI_ALL
0333nobodyさん2010/06/09(水) 11:38:27ID:BsRvxOVf
>>330
ありがとうございます。ローカル、UP先ともに
;mbstring.encoding_translation = Off
という状態です。

>>327
encodというところはなく、encodingの文字が入るところは
先頭に全て;がついていました。
0334nobodyさん2010/06/09(水) 11:42:59ID:W1sVZbXG
ありがとう いまいちわかってないけどw
4.0.3 〜 PHP_INI_SYSTEM
4.2.3〜 PHP_INI_PERDIR
5〜   PHP_INI_ALL

が正解かな??
「PHP <= 4.2.3」て書かれると 4.3.2以下のバージョンと読んじゃうね
0335nobodyさん2010/06/09(水) 11:51:23ID:???
いや、なんか変だな。ちょっと調べる。
0336nobodyさん2010/06/09(水) 12:47:11ID:W1sVZbXG
>>323

phpinfo(); のmb_string の項目をローカルと鯖両方さらすがよろし
0337nobodyさん2010/06/09(水) 12:54:11ID:???
PHP <= 4.2.3って書いて 4.2.3から (ALL)
PHP < 5 って書いて 5から (PERDIR) なのかねぇ。
0338nobodyさん2010/06/09(水) 13:05:54ID:W1sVZbXG
5.1.6 でプログラム中の
 ini_set('session.use_trans_sid', '1'); 効いたんだべ

0339nobodyさん2010/06/09(水) 13:45:29ID:BsRvxOVf
>>336
ありがとうございます。
phpinfoを実行するとエラーがでてしまいます。
Warning: phpinfo() has been disabled for security reasons in
0340nobodyさん2010/06/09(水) 14:07:58ID:W1sVZbXG
なる 今まさにワシもそのタイプのものと格闘中w

mbstring.detect_order → print mb_detect_order();
mbstring.internal_encoding → print mb_internal_encoding(); 
mbstring.internal_encoding → print mb_internal_encoding();

手な感じで1個1個調べるしか無いっぽいですね

mbstring.encoding_translation はどうやって調べればよかたかな?

情報少ないのであてずぽですが、
internal_encoding = EUC
mbstring.encoding_translation = on
になってんじゃないかなー 笑顔鯖 ならw
0341nobodyさん2010/06/09(水) 17:03:38ID:wh/h1AEj
Livedoor Blog APIのAtomについて質問です。

http://wiki.livedoor.jp/staff/d/API/AtomPub
ここを見ると、本文の投稿には次の二つのやり方があるみたいですが

<content type="text/html" xml:lang="ja" xml:base="http://blog.livedoor.jp/staff/archives/000000.html">
<p>記事本文</p>
</content>

<blogcms:source>
<blogcms:body><![CDATA[<p>記事本文</p>]]></blogcms:body>
<blogcms:more><![CDATA[<p>記事追記部分</p>]]></blogcms:more>
</blogcms:source>

上の例の場合に、記事追記部分を指定するにはどうすればいいのでしょうか。
0342nobodyさん2010/06/09(水) 18:51:55ID:BsRvxOVf
>>340
ありがとうございます

mb_internal_encodingを設定しない場合、
echo mb_internal_encoding();は
ISO-8859-1 でした。

0343nobodyさん2010/06/09(水) 23:02:26ID:kxHltjxi
大抵の通販サイトなどで使用される、画像を表示する処理を作っているのですが
商品がたくさんある場合、「次へ」などのリンクをクリックすると
次の画像群が表示される……という処理を作ろうとしています。

PHP+SQLで画像のパスを保存しておいて、PHPファイル内でHTMLを記述し描画を行う処理はできたのですが
次の画像群を表示するというメッセージはどのようにすればPHPに送ることができるのでしょうか。

すごく初歩的な質問ですがよろしくお願いします。
0344nobodyさん2010/06/09(水) 23:06:28ID:kxHltjxi
曖昧な質問の仕方でした。
知りたいことは、一般的な通販サイトではどのような処理になっているのかということと
前述した、「次へ」というリンクをクリックすることで、
動的にページを更新し、次の画像群を表示するためのメッセージを送る方法についてです。

よろしくお願いします。
0345nobodyさん2010/06/09(水) 23:07:32ID:???
ページング処理のことかな?
0346nobodyさん2010/06/09(水) 23:11:52ID:???
getでページnoを指定する
index.php?page=1みたいに
PHPでpage=1のパラメータを受け取った後
画像の表示件数を1ページに50とした場合
50*page-1から50*pageまでをLIMITで指定したものをSQLから取り出すとか
取り方なんかはDBの構造にもよってもっと効率のいい指定方法ができるけど
まぁこんな感じ
0347nobodyさん2010/06/09(水) 23:11:58ID:kxHltjxi
OKWaveで同様の質問を見つけることが出来ました。
ありがとうございます!
まずそこを見て実装してみます。
0348nobodyさん2010/06/09(水) 23:23:43ID:kxHltjxi
>>346
ありがとうございます!
ページング処理(今知りました)はget送信で送るみたいですね。
概要はわかりましたが、index.php?page=1が解読できないので調べている最中です。
0349nobodyさん2010/06/09(水) 23:28:12ID:???
タッチの差だったな
0350nobodyさん2010/06/09(水) 23:45:16ID:YOGuQm0P
>>342

ということはその値を設定してるのかな??

もちーっと詳しく書かないと
エスパーにしか答えがわからんっぽい

mb関係の実際のPHP動作時の設定
何が文字化けしているのか(POST GETで渡された文字列のみ 全体 etc)
などなど
0351nobodyさん2010/06/10(木) 00:35:45ID:/fuvg3FQ
phpでのページング処理は、再帰構造でカレントページのIDをどんどん受け渡す感じなんですね。

肝心のHTMLの記述方法が分からなくてどうすればいいのか探してたら
>>346さんのindex.php?page=1で直接GET送信するってことか。
やっと作れます。
ありがとうございました。
0352nobodyさん2010/06/10(木) 01:47:48ID:???
多分再帰という用語の使い方を間違えてるだけだろうからそのままがんばってください
0353nobodyさん2010/06/10(木) 14:31:48ID:PM/fSWQl
XMLのURLに色々な指定を加えていると
http://api.com/xml?aaaaa=1&bbbbb=1&ccccc=a&ddddd=0
こんな感じで長くなってしまい見にくいので、整列する方法を教えてください。
要素を一つずつ配列にしてみたんですが、ループしないとすべて表示できないのでうまくいきませんでした。
0354nobodyさん2010/06/10(木) 16:08:19ID:I9t81ujy
スマナイ ニホンゴで頼む
0355nobodyさん2010/06/10(木) 16:12:46ID:???
XMLの話か?URLの話か?
長いから整列ってのも意味分かんないし、
突然でてきた要素ってものの指すものもわからんし、
配列、ループでうまく出来ないって、なにがさ。
0356nobodyさん2010/06/10(木) 16:45:05ID:???
プログラムへたなやつって日本語も苦手なやつ多いよな。
0357nobodyさん2010/06/10(木) 17:58:51ID:???
言っちゃあ要件定義も設計書もコーディングも翻訳作業だもんな
0358nobodyさん2010/06/10(木) 23:37:48ID:/fuvg3FQ
また質問させて頂きます。
PHP 5.3.1
Eclipse php galileo SR2 win32 (PDT)
XDebug 2.1.0 rc1
を使用し、ブレークポイントで処理がとまるようにデバッガの設定を行っていますが出来ませんでした。
デバッガを利用してる方で、安定して動くバージョンを教えてください。
よろしくお願いします。
0359nobodyさん2010/06/11(金) 01:12:25ID:???
xdebug.dll は ts/nts vc6/9 などは合わせてあるか
php.ini での設定内容を晒す
0360nobodyさん2010/06/11(金) 01:53:05ID:8X4/rYMm
dllは、non-thread-safeでない方です。

phpInfoで確認したところ、
Compiler MSVC6 (Visual C++ 6.0)となっていますので、
使用しているdllは、php_xdebug-2.1.0RC1-5.3-vc6.dllです。

iniファイルの設定内容は、ファイルの最後に

zend_extension_ts = "C:\xampp\php\ext\php_xdebug-2.1.0RC1-5.3-vc6.dll"
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_log="C:\xampp\apache\logs\xdebug.log"
xdebug.manual_url = http://jp2.php.net
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *

を追加しました。
0361nobodyさん2010/06/11(金) 02:43:41ID:???
見た感じ問題なさそうだなぁ
なんとなくeclipse側の気がする
ポート9000 で通信してるかとか確認してみるのがいいかも

可能ならphp/xdebug vc9ビルドを試してみるとか
xdebug は結構不安定だったりするからver変えてみるのもいいかも
0362nobodyさん2010/06/11(金) 03:23:14ID:8X4/rYMm
>>361
ほとんどのバージョンを試してみましたがダメのようです。
ありがとうございました。

もし正常にデバッグできている方がおられたら、PHPやEclipseのバージョンを教えてください。
0363nobodyさん2010/06/11(金) 03:26:13ID:/BtEfgaD
XAMPPは標準装備
追加いらず
php.ini書き換えだけ
0364nobodyさん2010/06/11(金) 03:28:28ID:???
xdebug.idekey はどうなってる?
eclipse と php.ini 両方で合わせる必要があったはず
0365nobodyさん2010/06/11(金) 03:30:56ID:???
ふと自分の php.ini 見て思った。
zend_extension_ts の ts が要らんかも
zend_extension="/path/to/xdebug.dll"
にしてみて
0366nobodyさん2010/06/11(金) 03:36:51ID:8X4/rYMm
>>365
tsが無いと、終了せずにどこかでループを起こしてるみたいです。
進捗が途中で動かなくなります。

xdebug.idekey について今調べているところです。
0367nobodyさん2010/06/11(金) 04:52:38ID:8X4/rYMm
ttp://www.php-seed.net/blog/archives/95

によると、私の環境であればzend_extension_tsでないとダメみたいなのですが
phpInfo()をみると、XDebugの記述が出てきません。
しかし、zend_extensionとすると、phpInfo()にXDebugの情報が出てくるようです。
0368nobodyさん2010/06/11(金) 09:43:31ID:S65wpJHf
皆さんの会社はLinuxを使っていると思いますが、どのディストリビューションを使っていますか?
またサーバ機とAMP開発用ではOSを使い分けてたりしますか?
0369nobodyさん2010/06/11(金) 12:24:55ID:E6U8qQpk
AND(絞り込み)検索を簡単にする方法、あるいは関数などないでしょうか?

http://q.hatena.ne.jp/1160731894

ここを読んだ限り、"いちご AND バナナ" などのキーワードに整形すると
AND検索をしてくれる関数があるように思えるのですが。。

それとも、Keywordをスペースで分割して、一つ一つif文でつなげて
mb_strposしていくしかないのでしょうか?
0370nobodyさん2010/06/11(金) 12:31:26ID:???
まあ、SQLのことですね。
データベースでないなら、ちまちまやるしかないです。

#LINQ PHPなんてものもあるんだな。
0371nobodyさん2010/06/11(金) 12:32:55ID:/BtEfgaD
データベース
0372nobodyさん2010/06/11(金) 12:34:59ID:E6U8qQpk
>>370

レスありがとうございます。
やはりSQL限定ということですね。

自分の用途としては、
HP上にある文字列をscrapで取り出して、 保存していたキーワードを使って検索というものです。

例えば、 "りんご バナナ" というキーワードをデーターベースに登録。
HP上で ”りんご ぶどう バナナ” などのように絞り込み検索に適合するものがアップされたらマッチするといったものです。
0373nobodyさん2010/06/11(金) 14:39:35ID:1mHG41R+
ファイルの読み込み速度のことで困っています。

現在、外部サーバにあるファイルを取得したいと考えているのですが、
どうも取得に5秒近くかかってしまいます。

また、ローカルのファイルであれば100ms程度で取得が完了します。

この開きをなるべく縮めたいのですが、何か解決策はありますでしょうか?
アドバイスよろしくお願いします。

環境:Win7/Apache2/PHP5
0374nobodyさん2010/06/11(金) 14:43:31ID:???
>>373
PHPでどうこうなる問題じゃない
レスポンスの速い外部サーバにかえてください
03753732010/06/11(金) 14:48:12ID:1mHG41R+
>>374
ありがとうございます。

説明不足でしたが、いかなる外部サーバであっても結果は同じなんです。
違いはローカルかそうでないかという点のみです。

ブラウザのように高速にファイルを取得することはできないのでしょうか?
0376nobodyさん2010/06/11(金) 14:50:17ID:???
ファイルを取得してる部分のソースは?
03773732010/06/11(金) 14:56:15ID:1mHG41R+
>>376
今は簡単に file_get_contents で取得しています。

file_get_contents("http://www.google.com/"); //遅い
file_get_contents("http://66.249.89.99/"); //IP指定するも変化なし
file_get_contents("./index.html"); //ローカルであれば高速

先ほどローカル内で他サーバのファイルを取得してみましたが、
やはりこちらも時間がかかってしまいました。

file_get_contents("http://192.168.1.25/index.html");
0378nobodyさん2010/06/11(金) 15:03:44ID:???
外部サーバから外部サーバのファイル取得ではなく、
ローカルから外部サーバのファイル取得?
そのスクリプト自体はサーバのレスポンス次第ですぐ返ってくる
www.google.comだと一瞬
ファイアーウォールとかが邪魔してるんだろうか
03793732010/06/11(金) 15:10:07ID:1mHG41R+
>>378
今はローカルサーバから外部サーバへの接続という形ですが、
将来的には外部サーへ移行させる予定です。(完成次第)

先ほどファイアーウォールをすべて無効にした上でテストしてみましたが、
結果に変わりはありませんでした;
0380nobodyさん2010/06/11(金) 15:18:06ID:???
サーバーで wgetってやっても遅いんじゃない?サーバーの設定の問題かも。
0381nobodyさん2010/06/11(金) 15:20:09ID:???
>>379
サーバ(かPHP?)のipv6をdisabると良い


らしい↓
http://www.directadmin.com/forum/showthread.php?t=35549
03823732010/06/11(金) 15:32:53ID:1mHG41R+
>>380
サーバ機にインストールされているブラウザでは通常のスピードで
ページの読み込みができました。

>>381
どうやらこちらが怪しいみたいなので、もう少し時間を置いて設定を
見直してみたいと思います。

下らない質問にお付き合い頂きありがとうございました。
0383nobodyさん2010/06/11(金) 16:53:35ID:bRlHND6j
質問です。
Cache_Liteを使ってキャッシュを保存しているんですが
新着があった場合(キャッシュがない場合)に、
キャッシュとの差分のみ(新着部分のみ)を取得することってできませんか?
0384nobodyさん2010/06/11(金) 20:34:14ID:???
http://pc11.2ch.net/test/read.cgi/php/1188789351/
0385nobodyさん2010/06/11(金) 20:44:10ID:???
http://pc11.2ch.net/test/read.cgi/php/1166232514/931
これって終わってない?海外は情報も多いので兎も角、国内www
0386nobodyさん2010/06/11(金) 20:44:11ID:/BtEfgaD
1.htmlと2.htmlの差分抽出を求めることでキャッシュは必然ではない。
0387nobodyさん2010/06/11(金) 22:08:35ID:???
>368
開発環境はWindows or Macだが、動作させる開発サーバーはLinux(仮想マシン)で、本番環境と同じもの。
ディストリは某日本語サポートのあるものを使っている。
0388nobodyさん2010/06/12(土) 05:44:24ID:???
>>382
自分の環境でもfile_get_contentsはすっごい遅かった、cURLの1、5倍ぐらい遅い
<?php
function curl_get($url) {
  $ch = curl_init();
  $option = array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true, //結果を出力させない
    CURLOPT_BINARYTRANSFER => true, //結果を加工しない
    CURLOPT_FORBID_REUSE => true, //処理が終了した際に接続を切断
  );
  curl_setopt_array($ch,$option);
  return curl_exec($ch);
}
echo "file_get_contents<br />";
for($i = 1 ; $i <= 10 ; $i++) {
  $time_begin = microtime(true);
  file_get_contents("http://www.google.com/");
  echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}
echo "curl<br />";
for($i = 1 ; $i <= 10 ; $i++) {
  $time_begin = microtime(true);
  curl_get("http://www.google.com/");
  echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}
0389nobodyさん2010/06/12(土) 05:57:57ID:???
1.5倍なら大したことないじゃん
0390nobodyさん2010/06/12(土) 06:00:00ID:???
1.5倍どころじゃないわ、3-4倍ぐらい違う
file_get_contents
1 : 0.282200098038s
2 : 0.286005020142s
3 : 0.289804935455s
4 : 0.285599946976s
5 : 0.285084962845s
curl
1 : 0.110718011856s
2 : 0.0746190547943s
3 : 0.0745959281921s
4 : 0.0765240192413s
5 : 0.0723419189453s
0391nobodyさん2010/06/12(土) 06:06:46ID:???
1/10秒でそこまでするのもな・・・
5秒ってのが明らかに異常なわけで
0392nobodyさん2010/06/12(土) 14:05:51ID:CAUo94F7
最近PHPを始めたものです。とても初歩的な事を聞くようで申し訳ないのですが…

PHPを書いたファイルをWEBサーバで開いたところ何も表示されず、真っ白いままです。
おそらく、コーディングに誤りがあるのだと思うのですが、式が膨大な量なためどこにミスがあるのか見つけるのが大変です><
エラーメッセージを出して誤りのヒントを探りたいのですがどうやったらいいのでしょうか?
できれば、何行目にミスがあると指定してくれるものがあれば最高です。。ご教授くださいませ…
0393nobodyさん2010/06/12(土) 16:52:59ID:???
デバッガ使う
0394nobodyさん2010/06/12(土) 19:06:06ID:???
>>392
とりあえず、Webサーバの方のエラーログを覗いてみたら何か出てるかもよ。
0395nobodyさん2010/06/12(土) 20:29:04ID:???
>>392
ローカルでエラー表示するような実行環境作るといいよ
0396nobodyさん2010/06/12(土) 21:18:33ID:???
<?php
$domain = "127.0.0.1";
$fp = fsockopen ( $domain , 80 );
fwrite($fp, "Referer: http://www.google.co.jp/\r\n");
fclose($fp);
?>
<a href=http://www.kojikoji.net/>;確認</a>



こう書いても送られるリファラがhttp://www.google.co.jp/になりません
原因はなんでしょうか
03973962010/06/12(土) 21:19:17ID:7hIU3RqJ
すいません、ID出すのを忘れていました
0398nobodyさん2010/06/12(土) 22:10:26ID:???
えっ・・・?
0399nobodyさん2010/06/13(日) 00:36:25ID:???
リファラを設定するのは誰だろうね
0400nobodyさん2010/06/13(日) 00:47:14ID:???
ぐぐって、ちゃんとできてるやつ真似たらどうでしょう。
http://d.hatena.ne.jp/mgng/20090430/1241059100
2種類入ってるので、どっちかでテストしてみては

0401nobodyさん2010/06/13(日) 03:03:14ID:???
php でおもしれえサイトハケーン

ttp://2chtocsv.zzg.jp/

2ちゃんのスレをCSVにするらしい
今まで無かったのが不思議だな
0402nobodyさん2010/06/13(日) 03:58:04ID:???
宣伝乙
こんなのこのスレにいるやつなら誰でも作れますから
■ このスレッドは過去ログ倉庫に格納されています