【PHP】下らねぇ質問はここに書き込みやがれ 37
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2007/01/24(水) 22:10:29ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 36
http://pc10.2ch.net/test/read.cgi/php/1168395610/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0809nobodyさん
2007/02/02(金) 12:55:29ID:???php.iniのmbstring.internal_encodingなどはEUC-JPへ
ソースを書いてあるphpもEUCで保存してヘッダーにEUC-JP記載
mysqlのSHOW VARIABLES LIKE 'character\_set\_%';をすると
character_set_client ujis
character_set_connection ujis
character_set_database ujis
character_set_filesystem binary
character_set_results ujis
character_set_server ujis
character_set_system utf8
これ以外に何か変更するところはありますでしょうか?
使用しているmysqlのバージョンは5.0.27phpは5.1.6です
0810807
2007/02/02(金) 13:17:52ID:???ご回答ありがとうございました
それらの変数をechoするスクリプトを作って http:〜〜test.phpとhttps:〜〜test.php
でアクセスしてみたのですが どちらも全く同じ文字列になりました
で 他の$_SERVER変数を見たところ $_SERVER['SERVER_PORT']がhttpとhttpsで異なる
みたいなので これでやってみようと思います
なんかあまりスマートじゃないですが……
ありがとうございました!
0811nobodyさん
2007/02/02(金) 13:24:20ID:???あれ? SERVER_PROTOCOL も違うはずだけど…。
通常なら HTTP 、SSL なら HTTPS になってるはず。
まあ、Port も当然違ってくるから、それでも大丈夫ならいいと思うけど。
0812807
2007/02/02(金) 13:37:47ID:???なぜかどちらも「HTTP/1.1」でした
通常httpsは別ディレクトリなんですが 設定で同じディレクトリにhttpsで
アクセス可能になるよう変更したからかもしれません(自信ありませんが)
ポートで条件分岐が無難みたいですね
ご丁寧にありがとうございました
0813797
2007/02/02(金) 14:30:57ID:???ご説明ありがとうございます。おっしゃるようにかなりはやくなりました。
5万桁で8秒10万桁で15秒です。PCスペックは同じようなものです。
ただ、よくある
「会員のデータを読み込んでそのメールアドレス宛にメールを送信する」
などの用途の場合、やはりループ内で読み込みをしなければいけませんよね?
そしたらfopen&mb_send_mailの繰り返しになるわけで、やっぱり処理パフォーマンス
は格段に落ちますよね。(怖いのでテストしてませんが。。)
それとも799さんのように書き方を変えれば処理が変わると言うことはあるのでしょうか?
0814797
2007/02/02(金) 14:34:45ID:???連続ですみません。。あと「処理を分散する」というのは
どういうことなのでしょうか?件数によって読み込むファイルを
変えるとか、sleepを使って時間の間隔をずらすのでしょうか?
0815nobodyさん
2007/02/02(金) 14:38:50ID:???>>799じゃないけど、1ファイル1ユーザってこと?
例えばだけど、毎晩バッチを動かして、ユーザ一覧は別に作っておくとか、
逃げ道はあるよ。
もしどうしても1ファイル1ユーザから毎回読み込まなくちゃいけないなら、
せめてx件ごとにまとめて一旦送信して、複数回にわけたほうが若干マシかな。
何万件もあるやつを、個別に一個一個っていう設計が問題あると思うから、
直せるなら直したほうがいいと思う。
0816nobodyさん
2007/02/02(金) 14:44:27ID:???メールをいっぺんに送るのはやめれ
1000件ずつをcronで1時間おきに送るとか
それとデータはファイルじゃなくデータベースへ
0817797
2007/02/02(金) 15:06:47ID:???厳密に言うとMySQLを使っているのですが、
テスト時の想定としては、「万件のユーザに対する対応」でして
用途は主にお知らせやメルマガ発行になると思うので、
そういう用途にPHPでも向くのかどうか試していました。
816さんもおっしゃっていますが、やはり分散した方が良さそうですね。
ソース自体は上のようにforじゃなくてwhileを使うと思うのですが、
それでもやっぱり時間がかかりそうですし。負荷もかかるでしょう。
レンタルサーバなどでは迷惑がかかるのでcronのテストは出来ないのですが、
メールのテストは自分のアドレスを使って出来そうなので、また試してみます。
色々とありがとうございました。
0818nobodyさん
2007/02/02(金) 16:56:51ID:???YYYY-MM-DDとなっているものをYYYY MM/DDに変換したいのですが
preg_replaceとかで変換するしかないのでしょうか?
0819nobodyさん
2007/02/02(金) 17:00:55ID:???そういうのはSQLのお仕事です。
例はこんな感じ。
DATE_FORMAT(CurDate(),'%y-%m-%d')
0820nobodyさん
2007/02/02(金) 17:21:00ID:???なぜかGET後のページを見ると、空白になっています。
0822nobodyさん
2007/02/02(金) 17:40:00ID:???0823nobodyさん
2007/02/02(金) 18:10:17ID:???> そういうのはSQLのお仕事です。
それって、SQLの仕事なのか?
おれは、固有のDBに依存させないために、
その処理は、date()とstrtotime()でphp内でフォーマットしているけど。
0824nobodyさん
2007/02/02(金) 18:41:47ID:hTY0E9St$name = 'ぽち';
としたとき、 $str の文章内の $name を展開するには eval() を用いるしかないのでしょうか?
他にあればその方法をご教示願います。
0826nobodyさん
2007/02/02(金) 18:44:59ID:???0827nobodyさん
2007/02/02(金) 18:45:00ID:???そうではなく、$strには展開されていない文字列が入っているものとします。
文章力不足で申し訳ありません。
0829nobodyさん
2007/02/02(金) 18:51:19ID:hTY0E9St$name = 'ぽち';
$str = '私のペットの名前は $name です。';
・ダブルクォーテーションで展開する
・ eval() で評価する
この方法以外に $str 内の $name を展開することはできるのでしょうか?
できるとしたらその方法をご教示ください。
0830nobodyさん
2007/02/02(金) 18:55:19ID:???0832nobodyさん
2007/02/02(金) 19:03:05ID:hTY0E9St0833nobodyさん
2007/02/02(金) 19:05:09ID:???0834nobodyさん
2007/02/02(金) 19:17:46ID:k4AGASEW'.$name.'
にしてみたら?
0836nobodyさん
2007/02/02(金) 19:27:41ID:???一文字ずつ読んで$が出てきたら後に続く変数名に使える文字列を抜き出して
ってアホじゃんw
0838nobodyさん
2007/02/02(金) 19:43:19ID:???そこまでする意味がないって事じゃね?
>>829なんかは、あきらかに変な仕様だから。
そんな変な事をする理由がわからない。
0839nobodyさん
2007/02/02(金) 19:49:49ID:???0840nobodyさん
2007/02/02(金) 19:54:09ID:???0841nobodyさん
2007/02/02(金) 20:01:07ID:j0u5nq/Zいま、ディレクトリ内のファイルを表示するスクリプトを書いていて、
実際動いてるんですが良くわからないことがあります。
<?php
$dirname="./";//このディレクトリ
//ディレクトリの展開表示
function dir_view($dirname){
$dh = opendir($dirname);
echo $dirname."内にあるファイルを一覧表示します。";
while($file=readdir($dh)){
echo $file."<br>\n";
}
closedir($dh);
echo "<br><br>";
}
dir_view($dirname);
?>
上のプログラムですが、本のまま書いたんですが、$dhというのが良くわかりません。
ディレクトリハンドルというのを格納してる変数らしいですが、ディレクトリハンドルって
なんなんでしょう?
自分はフラッシュのアクションスクリプトがそれなりに得意なんですが、
ソッチにはない概念で戸惑っています。
readdir() でディレクトリを読み取る前に、ディレクトリの状況?を返してると考えて
いいのでしょうか?
0843nobodyさん
2007/02/02(金) 20:15:13ID:j0u5nq/Zありがとうございます。
opendir(); っていうのはディレクトリを開くというより、
今からこのディレクトリを操作しますよ、という宣言なんですかね?
なんだか、、良くわからないなぁ。
while($file=readdir($dh)){ というのは
$fileにディレクトリ内のファイルを無事に代入できる間は… って意味ですよね
while(($file=readdir($dh)) != false){ ってことですかね?
0844nobodyさん
2007/02/02(金) 20:17:21ID:???readdir($dh)は、$dh内にある、ファイルを一ずつ返し、全て返したら、FALSEを送る関数。
よって、最後の一行は正確ではない。
0845nobodyさん
2007/02/02(金) 20:34:03ID:B4ANfZw9$rssreader = array();
$fp = fopen("rsslist.dat","r");
$lsize = max_line_size ;
while(filesize("rsslist.dat") > 0 and $line = rtrim(fgets($fp))){
$rss = fetch_rss($line);
while ((list($t,$item) = each($rss->items)) and $lsize) {
$rssr = new RSSReader();
$rssr->channel = $rss->channel;
$rssr->item = $item;
$rssreader[] = $rssr;
$lsize--;
}
}
$rss = fetch_rss("http://dagda.grd.cc/dagda/rss/");
while ((list($t,$item) = each($rss->items)) and $lsize) {
$rssr = new RSSReader();
$rssr->channel = $rss->channel;
$rssr->item = $item;
$rssreader[] = $rssr;
$lsize--;
}
fclose($fp);
usort($rssreader,"date_sort");
return $rssreader;
}
0846nobodyさん
2007/02/02(金) 20:37:48ID:B4ANfZw9<?php
require_once 'phplib/main.inc';
$rss = sox_fetch_rss();
while (list($k,$v) = each($rss)) {
$url = $v->getURL();
$title = $v->getTitle();
$p_title = $v->getMainTitle();
$mainurl = $v->getMainURL();
echo ("<td><a href=\"$url\" \" target=\"_blank\">$title</a></td>");
echo ("<td><a href=\"$mainurl\" \" target=\"_blank\">$p_title</a></td></tr>");
}
?>
記事を新しいものから20件だけ取り出したいんですがどうすれば
0847nobodyさん
2007/02/02(金) 20:45:21ID:???<?php
require_once 'phplib/main.inc';
$rss = sox_fetch_rss();
$i=0;
while (list($k,$v) = each($rss)) {
$i++;
$url = $v->getURL();
$title = $v->getTitle();
$p_title = $v->getMainTitle();
$mainurl = $v->getMainURL();
echo ("<td><a href=\"$url\" \" target=\"_blank\">$title</a></td>");
echo ("<td><a href=\"$mainurl\" \" target=\"_blank\">$p_title</a></td></tr>");
if($i<20) break;
}
?>
0848nobodyさん
2007/02/02(金) 20:50:40ID:B4ANfZw9>>874
本当にありがとうです><
0849nobodyさん
2007/02/02(金) 21:24:20ID:???あ・・・ゴメンまちがえてた。
if($i>20)だと、最新21件がとれちゃうよ。
if($i>19)にするか、$iの初期値を1にするとか・・・・
0850nobodyさん
2007/02/02(金) 21:26:43ID:B4ANfZw9<?php
require_once 'phplib/main.inc';
$rss = sox_fetch_rss();
$today= date('m-d');
$i=0;
while (list($k,$v) = each($rss)) {
$i++;
$url = $v->getURL();
$title = $v->getTitle();
$p_title = $v->getMainTitle();
$mainurl = $v->getMainURL();
$days = $v->getDate();
$dateb = substr($days, 5, 5);
if($today=$dateb)
echo ("<tr><td>$date</td>");
echo ("<td><a href=\"$url\" \" target=\"_blank\">$title</a></td>");
echo ("<td><img src=\"http://b.hatena.ne.jp/entry/image/small/$url\" alt=\"hatena\"></td>");
echo ("<td><a href=\"$mainurl\" \" target=\"_blank\">$p_title</a></td></tr>");
if($i>100) break;
}
?>
「記事の日付が今日のものだけ表示する」はこれじゃだめですか?
0851nobodyさん
2007/02/02(金) 21:28:52ID:B4ANfZw9$today= date('m-d');
0855nobodyさん
2007/02/02(金) 23:10:51ID:DvefISwY探しても見つかりません
0858nobodyさん
2007/02/03(土) 00:25:30ID:???0859nobodyさん
2007/02/03(土) 00:30:39ID:???0860nobodyさん
2007/02/03(土) 00:36:46ID:vKXnHtGH1、0
2、+○○○
3、-○○○
というように3種類になります。(ゼロ、プラス符号付数字、マイナス符号付数字)←数字の桁数は不定で少数もあります。
でプラスとかマイナスという文字を消したいんだけど、方法ある?
0862860
2007/02/03(土) 00:52:03ID:vKXnHtGHすまん、質問間違えた。
+の時だけ+という文字を消したいです。
マイナスの時はそのままでいいです。
0863nobodyさん
2007/02/03(土) 00:52:26ID:???POST形式のデータがPHPファイルに送られます。
そのPHPファイルにはswfファイルが読み込まれるように記述してあるのですが
PHPファイルが受け取ったPOST形式データをswfで読み込ませることはできるでしょうか?
<流れ>
「input.htmlのフォーム」-POSTデータ→「receive.php(receive.phpによって作られたページにdisp.swfが表示される)」
←このdisp.swfにPOSTデータを受け取らせたい。
OSはXPでFLASH8を使っていてPHP5です。よろしくお願いします。
0865nobodyさん
2007/02/03(土) 01:10:03ID:???どの時点で文字化けしたと判断してるのかわからんからデータベースに突っ込んでるところとデータベースから引っ張り出してるところと出力してるところを小さくまとめたテストコードみたいのを出せば解決がはえーんじゃねーかって言ってるんだと思うよ後ID出せ。
0866nobodyさん
2007/02/03(土) 01:24:09ID:???何のコードでしょうって何のコードを想像したんだ?
その返答から想像力足りない君には解決無理なんじゃないかと思ってしまったよ
0867nobodyさん
2007/02/03(土) 01:57:28ID:???PHP、MySQL経験者優遇
インターネット幹部登用あり
0869nobodyさん
2007/02/03(土) 02:01:49ID:???0870nobodyさん
2007/02/03(土) 02:30:59ID:C9ZviOFK携帯絵文字変換クラスなんですが…
作成途中の為、一部バグありですが。
DLKEY => emoji
ttp://up2.viploader.net/mini/src/viploader106473.zip.html
0871nobodyさん
2007/02/03(土) 02:41:52ID:???0873nobodyさん
2007/02/03(土) 03:01:49ID:???0874nobodyさん
2007/02/03(土) 03:03:23ID:???俺あんまこういうの詳しくないからコメントはエロい人にまかせる
0875nobodyさん
2007/02/03(土) 03:10:45ID:???0876nobodyさん
2007/02/03(土) 03:30:57ID:???0877nobodyさん
2007/02/03(土) 04:49:17ID:???0878809
2007/02/03(土) 05:11:02ID:???すいません読解力が足りませんでした
調べていたらデーモン起動時に
skip-character-set-client-handshake
を加えると直りました
お騒がせしてすいませんでした
0879nobodyさん
2007/02/03(土) 05:21:35ID:???.htaccessにphpのタイプを追加したあとに、
認証タブを書いて、外だしにパスワードファイルを置けばok。
パスワードは、コンソールからコマンドをたたくか、
phpからシステム関数をたたいても出来ると思う。
0880nobodyさん
2007/02/03(土) 05:27:39ID:ms+TjTsb再び、質問です。
POST形式のデータがPHPファイルに送られます。
そのPHPファイルにはswfファイルが読み込まれるように記述してあるのですが
PHPファイルが受け取ったPOST形式データをswfで読み込ませることはできるでしょうか?
<流れ>
「input.htmlのフォーム」-POSTデータ→「receive.php(receive.phpによって作られたページにdisp.swfが表示される)」
←このdisp.swfにPOSTデータを受け取らせたい。
OSはXPでFLASH8を使っていてPHP5です。よろしくお願いします。
0882nobodyさん
2007/02/03(土) 06:04:07ID:???なんでクライアントなのに .htaccess をおかなくちゃいけないの?
http リクエスト投げるのよ。
0883nobodyさん
2007/02/03(土) 06:11:58ID:???(自分で位置を指定する必要があるのでしょうか?)
また、GDを使ったことがある方、改行にどのような方法を使っているか教えてください。
0884nobodyさん
2007/02/03(土) 08:20:31ID:???phpでグラフィックのプログラミングするなら、
改行の処理は独自に実装する必要がある。
文字の横幅を取得して改行すればいいだけ、独自関数でも作れ。
0887nobodyさん
2007/02/03(土) 10:17:30ID:uvg5VOB3858じゃないけど、今日現在を基準だと可読性の点でもそれが最高にいいね
カレンダー等で、ある日付の前次リンクとか作る時は、GETクエリからmktimeが最適かな?
0888nobodyさん
2007/02/03(土) 10:28:34ID:???ttp://hima.chu.jp/flash/tips/flash_with_arg.htm
$_POST["abc"]
0889nobodyさん
2007/02/03(土) 11:23:15ID:???だからそれはサーバ側でしょ?
ベーシック認証がかかっているサーバにログインする php のクライアントプログラム(ダウンローダのようなもの)を作りたいと言っているの。
0890nobodyさん
2007/02/03(土) 11:24:32ID:???ttp://perltips.twinkle.cc/perl/basic_authentication.php
こんなんらしい。同じようなことをやるモジュールってどれ?と。
0891nobodyさん
2007/02/03(土) 11:27:06ID:???クライアントになるべ?そうだべ?疑いの余地はないべ?
0892nobodyさん
2007/02/03(土) 11:30:17ID:???ふーん。そう。
自分で考えれば?
っでなんで人に質問するときに、自分の質問の仕方が悪いのに、
思ったとおりの回答が来ないからって逆ギレしてんの?
0893nobodyさん
2007/02/03(土) 11:41:09ID:BGo+xvxsやりたいことはわかった。
しかし、そんな単純な事になぜそんなに悩んでいるかが理解できない。
ベーシック認証する普通のHTTPリクエストだろ。
はい。では、以降は自分で考えましょうね。
0894nobodyさん
2007/02/03(土) 11:57:04ID:???0896nobodyさん
2007/02/03(土) 12:22:28ID:???検索するとサーバ側のしかでてこなくてめんどくさかったから。
0898nobodyさん
2007/02/03(土) 13:22:49ID:I7XwHPiWWindowsでも使えるようにするにはどうすればいいでしょうか?
0899nobodyさん
2007/02/03(土) 13:28:47ID:yuo9x96Aver1.1とかver0.1とかあると思うんですけど、どのようにつければいいのでしょうか?
0901nobodyさん
2007/02/03(土) 13:48:06ID:???0902nobodyさん
2007/02/03(土) 13:49:37ID:???クライアントってことはIDとパスワードをどうやって自動入力できますか?っていう意味なのか?
0904nobodyさん
2007/02/03(土) 13:53:01ID:???0906nobodyさん
2007/02/03(土) 13:56:44ID:???0907nobodyさん
2007/02/03(土) 13:59:46ID:yuo9x96A0.1 ・・・ バグとり、機能更新・修正
1.0 ・・・ 複数の機能追加
でやってみたいと思います。
PHPスクリプト配布しようかと思っています。
0908nobodyさん
2007/02/03(土) 14:00:29ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。