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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0116nobodyさん2011/07/03(日) 19:45:05.42ID:???
>>115
http://www.php.net/manual/ja/function.is-writable.php
01171152011/07/03(日) 19:47:39.96ID:???
>>116
よくわかりません。
0118nobodyさん2011/07/03(日) 19:53:40.86ID:???
>>117
>>1
0119nobodyさん2011/07/03(日) 19:54:46.32ID:???
次はマニュアル厨か
0120nobodyさん2011/07/03(日) 20:14:43.71ID:GBrymO19
外部鯖の画像ファイルを取得し、自鯖(imageディレクトリ)に保存するという処理をさせたいのですが
下記では画像が保存されませんでした。エラーも出力されません。

$url = array();
$url[] = 'http://www.google.co.jp/images/experiments/nav_logo78.png';
$url[] = 'http://k.yimg.jp/images/top/sp/logo.gif';
$dl_path = './image' ;

foreach ($url as $f) {
 $image = file_get_contents($f) ;
 file_put_contents($dl_path.basename($f), $image) ;
}

imageディレクトリのパーミッションは777です
なぜ画像が保存されないのでしょうか?
お願いします。
0121nobodyさん2011/07/03(日) 20:29:34.11ID:???
echo './image'.basename('http://www.google.co.jp/images/experiments/nav_logo78.png');
0122nobodyさん2011/07/03(日) 20:37:30.55ID:GBrymO19
>>121
すみませんでした;;;;穴掘って埋まってます
0123nobodyさん2011/07/03(日) 20:45:20.24ID:???
>>115
おまえバカじゃねえの
何でも書けばいいもんじゃねえよ
0124nobodyさん2011/07/03(日) 21:04:19.60ID:???
分からないから聞いてんだから答えてやれよ
煽るだけのお前のほうがバカだわ
0125nobodyさん2011/07/03(日) 21:13:33.70ID:???
>>124
煽れば答えてくれると思ってんの?プッ
0126nobodyさん2011/07/03(日) 21:14:03.55ID:???
誰と戦ってるんだ
0127nobodyさん2011/07/03(日) 21:20:30.55ID:gtJqhGeN
<?php

class ClassLoader
{
protected $dirs;

public function register()
{
spl_autoload_register(array($this, 'loadClass'));
}

public function registerDir($dir)
{
$this->dirs[] = $dir;
}

public function loadClass($class)
{
foreach ($this->dirs as $dir) {
$file = $dir . '/' . $class . '.php';
if(is_readable($file)) {
require $file;

return;
}
}
}
}

クラス名.phpを読み込むクラスなのですが
loadClassメソッドの引数$classには何が入っているのでしょうか?
教えて頂きたいです。お願いします。
0128nobodyさん2011/07/03(日) 21:29:37.64ID:???
ふつうにクラス名じゃね?
javaと同じくクラス名とファイル名が同じ、という規約みたいだな。

っつか、そんなに難しいソースじゃないと思うんだが、何かひっかかってる事でもあるんかい?
0129nobodyさん2011/07/03(日) 21:47:11.76ID:???
普通はオートロードでやるんだが
0130nobodyさん2011/07/03(日) 21:53:54.14ID:gtJqhGeN
>>128
loadClassメソッドの引数が具体的なクラス名、
たとえば loadClass(example) なら
example.phpを読み込むんだなとわかるんですが
これが loadClass($class) になったとたん
$classってどこから引っ張ってきてるの?となってしまいます。
0131nobodyさん2011/07/03(日) 22:08:56.08ID:???
はぁ?呼び出した側だろ?
0132nobodyさん2011/07/03(日) 22:10:21.55ID:gtJqhGeN
>>131
呼び出す側は以下の通りです。

<?php

require 'core/ClasLoader.php';

$loader = new ClassLoader;
$loader->registerDir(dirname(__FILE__).'/core');
$loader->registerDir(dirname(__FILE__).'/models');
$loader->register();
0133nobodyさん2011/07/03(日) 22:13:00.31ID:???
>>132
autoloadの項目を100万回読め
0134nobodyさん2011/07/03(日) 22:38:51.36ID:???
わかんねーから聞いてるんだろうがカス
0135nobodyさん2011/07/03(日) 22:45:32.62ID:gtJqhGeN
>>134は自分ではないのであしからず。
autoloadについて一度しっかり勉強してみます。
すみません。
0136nobodyさん2011/07/03(日) 22:49:27.22ID:???
暴言を吐いて鬱憤を晴らしつつ回答はもらいたいという二重人格の計とはおぬしやるな
0137nobodyさん2011/07/03(日) 22:55:51.04ID:???
二重人格とみせかけて>>136で開放する三重人格の計とはなかなかやりますの
0138nobodyさん2011/07/03(日) 23:20:14.57ID:???
激裏で載ってた2ちゃんねるで回答を貰う方法を試してるクズか
0139nobodyさん2011/07/03(日) 23:30:01.70ID:a/8QrSpm
Web系の質問スレでスルーされまくったので多少スレチですがここで質問させてください。

UTF8でPHPを利用していますが、アスキーアートがうまく表示できません。
どうしたらいいでしょうか?どなたか親切な方お助けください。
0140nobodyさん2011/07/03(日) 23:33:10.27ID:???
なんでスルーされるかよく考えてみろ
文字化けしてるわけじゃなければエンコードもPHPも関係ないだろ
01411392011/07/03(日) 23:50:03.05ID:a/8QrSpm
>>140
それは十分承知しておりますがそこをなんとかお願いします。
まず第一の原因はfont-familyだと思いますがこれはどう指定したら良いでしょうか?
先輩方よろしくお願いします。
0142nobodyさん2011/07/04(月) 00:24:58.17ID:???
>>141
font-familyのどこがPHPと関係あるの?
0143nobodyさん2011/07/04(月) 01:09:09.79ID:???
関係あるかどうかわかりませんが、よろしくお願いいたします。
0144nobodyさん2011/07/04(月) 01:18:48.55ID:???
急いでいますので早めに回答をお願いいたします。
0145nobodyさん2011/07/04(月) 01:46:20.00ID:???
早くしないと間に合いません。至急回答をお願いします。
0146nobodyさん2011/07/04(月) 01:55:23.79ID:???
子宮がどうしたって?
0147nobodyさん2011/07/04(月) 02:44:54.85ID:???
UTFとか関係ねーし

.aa {
font-family: 'MS Pゴシック','MSPゴシック','MSPゴシック','MS Pゴシック';
font-size: 16px; line-height: 18px;
}
0148nobodyさん2011/07/04(月) 02:52:01.71ID:???
>>147
やってみたのですがエラーになりました。
どうすればいいでしょうか。

<?php
.aa {
font-family: 'MS Pゴシック','MSPゴシック','MSPゴシック','MS Pゴシック';
font-size: 16px; line-height: 18px;
}
?>
0149nobodyさん2011/07/04(月) 03:15:02.19ID:???
>>147
回答まだですか?
0150nobodyさん2011/07/04(月) 03:40:09.35ID:MkZtY+qy
クラスって複数のファイルに分けて書きたい時どうすればいいですか?
0151nobodyさん2011/07/04(月) 03:46:37.87ID:???
include,require
0152nobodyさん2011/07/04(月) 05:24:07.99ID:MkZtY+qy
> 複数のファイルで分割してクラスを定義することは できません。
ってありますけど関数内でincludeしろってことですか?

0153nobodyさん2011/07/04(月) 05:35:41.65ID:???
C#で言うpartial classはないが
5.4から実装されるtraitでそれっぽい事はできるようになる
0154nobodyさん2011/07/04(月) 06:11:46.81ID:???
Thanks諦めます!
0155nobodyさん2011/07/04(月) 08:43:49.41ID:wcpX+6Nd
高負荷状況での質問なんだが
Webサーバーが複数、DBサーバーが1つで動いているアプリがあって
ロードバランサーの仕様は不明(鯖業者が設定を明かさない、多分やっすいやつ)
1ユーザーがアクセスしてきて
Webサーバー01でページ1閲覧、この時点であるデータAをDBに書き込み
ユーザーがボタン押して次ページ2に遷移、今度はWebサーバー02に繋がりDBから先程のデータAを読み出して処理の続き
という動きをした場合、DBが重くてサーバー01が発行した書き込みに時間がかかり終わらず
先にサーバー02が古いデータを読んでしまい誤動作
となってるぽい現象がしばしば起きる
これを完全に防ぐにはどういう実装をすればいいのだろう
言語はPHPでMySQL5.1、InnoDB使用です

0156nobodyさん2011/07/04(月) 09:22:54.81ID:???
>>139
CSS初心者スレッド=10th=
http://hibari.2ch.net/test/read.cgi/hp/1306489752/
0157nobodyさん2011/07/04(月) 09:24:38.34ID:???
>>150
http://php.net/manual/ja/keyword.extends.php
0158nobodyさん2011/07/04(月) 09:27:35.41ID:???
>>155
普通にトランザクションでしょ
0159nobodyさん2011/07/04(月) 09:37:53.48ID:???
PHPと関係ねーな
MySQL 総合 Part19
http://hibari.2ch.net/test/read.cgi/db/1295436346/
01601392011/07/04(月) 12:12:32.53ID:cs6DUMEB
>>147
ありがとう。でも残念ながらUTFとか関係あります。
それでもAAは崩れました。
ちなみにID出してない人は別人です。
0161nobodyさん2011/07/04(月) 12:14:21.89ID:???
>>160
向こうのスレでもここのスレでも誘導されてんだからさっさと池やゆとり
0162nobodyさん2011/07/04(月) 12:20:44.75ID:???
最近のゆとりはBOMも知らんのか
01631392011/07/04(月) 12:42:03.24ID:cs6DUMEB
>>161
誘導されたスレで聞いても答えが返ってこなかったと最初に説明したはずです。
0164nobodyさん2011/07/04(月) 12:47:57.42ID:???
>>163
UTFとPHPは関係ないと最初に説明したはずです
0165nobodyさん2011/07/04(月) 12:58:11.15ID:???
CSSの質問をここでするな死ね
0166nobodyさん2011/07/04(月) 13:22:29.41ID:kqekfTVE
http://localhost/test.phpで以下のコードを実行するとエラーになるのは何故ですか?
$a=file("/a/b/c.txt");

こう書くとエラーはでません
$a=file("a/b/c.txt");
0167nobodyさん2011/07/04(月) 13:26:52.53ID:???
どういうエラーが出るのか
0168nobodyさん2011/07/04(月) 13:30:58.64ID:???
>>155
行のバージョンを表すカラムをどっかに追加して
ページ1で http://.../ページ2?バージョン=1234 とリダイレクト、
ページ2はバージョンと一致する行が取得できるまで画面更新させときゃいいんでね
0169nobodyさん2011/07/04(月) 13:31:39.97ID:kqekfTVE
PHP Warning: file(/a/b/c.txt): failed to open stream: No such file or directory in C:\homupegi\phpnobenkyou\test.php on line 2
PHP Stack trace:
PHP 1. {main}() C:\homupegi\phpnobenkyou\test.php:0
PHP 2. file(/a/b/c.txt) C:\homupegi\phpnobenkyou\test.php:2
Warning: file(/a/b/c.txt): failed to open stream: No such file or directory in C:\homupegi\phpnobenkyou\test.php on line 2
0170nobodyさん2011/07/04(月) 13:37:44.67ID:???
ファイルが無いんじゃないの?
a/b/c.txtは
C:\homupegi\phpnobenkyou\a\b\c.txt
だし、/a/b/c.txtは
C:\a\b\c.txt
をさしてるんじゃないかね。
0171nobodyさん2011/07/04(月) 13:38:49.34ID:kqekfTVE
/ってドキュメントルートを表しているのではないのでしょうか?
01721392011/07/04(月) 13:43:34.45ID:cs6DUMEB
>>164
あなたの最初がどのレスなのかわからないし
最初にスレチなことは承知の上だと言ったはずです。

>>165
CSSの質問スレで聞いても無駄だったからここにきたと何度言えば(ry
0173nobodyさん2011/07/04(月) 13:44:11.83ID:???
きめえ
0174nobodyさん2011/07/04(月) 13:45:36.12ID:???
お前ID出さないスレで404の質問した偉そうな奴と同一人物だろ
0175nobodyさん2011/07/04(月) 13:49:16.22ID:???
>>171
ブラウザからみたら / はドキュメントのルートだろうが
サーバ上で実行してるプログラムからみたら
/ はファイルシステムのルートになるだろう。

もちろん環境によって変わってくるけれども
0176nobodyさん2011/07/04(月) 13:54:05.61ID:???
/a/b/cにtest.jsをおいてhttp://localhost/test.phpにhtmlを書いてjavascriptを読みこめるか確認したら読み込めました
fileはサーバーサイドで動くから/からのパスっていうのは使えないってことでしょうか?
0177nobodyさん2011/07/04(月) 13:54:25.79ID:kqekfTVE
/a/b/cにtest.jsをおいてhttp://localhost/test.phpにhtmlを書いてjavascriptを読みこめるか確認したら読み込めました
fileはサーバーサイドで動くから/からのパスっていうのは使えないってことでしょうか?
0178nobodyさん2011/07/04(月) 14:09:56.51ID:???
過疎スレに誘導する奴って何なの?死ぬの?
0179nobodyさん2011/07/04(月) 14:12:23.96ID:cs6DUMEB
>>174
知りません。でももうあきらめます。
みんなも知っておいたほうがいいことなのになぁ。もったいない。
0180nobodyさん2011/07/04(月) 14:16:19.48ID:???
>>177
jsを読むのはブラウザだからな。
ルートからが使えないわけでもないが、あまり使わないな。
ドキュメントルートが使いたければ環境変数に入ってるから
phpからでも使えると思うぞ、文字列の連結で。
0181nobodyさん2011/07/04(月) 15:16:14.67ID:bW37tmJX
flockについて質問です。
マニュアルの例には、

if (flock($fp, LOCK_EX)) { // 排他ロックを行います
 ftruncate($fp, 0); // ファイルを切り詰めます
 fwrite($fp, "Write something here\n");
 flock($fp, LOCK_UN); // ロックを解放します
} else {
 echo "ファイルを取得できません!";
}

と書いてますが、
これは多人数のシステムで、他の人がロックしてたら、
elseブロックにいくってことですよね?
他の人のロック解放をまつには、

while (flock($fp, LOCK_EX)) sleep(1);

などの処理を挟めばいいのでしょうか?
ロックが解放されなかったら、延々と待ち続けることになるので、
sleepカウントをして10秒(試行回数10回)でタイムアウトといった感じにすればいいでしょうか?
0182nobodyさん2011/07/04(月) 15:19:12.37ID:???
flockでロック解除はするなっ!!!!!!!!!!!!!!!!!!
01831812011/07/04(月) 15:22:53.18ID:bW37tmJX
>>182
なぜですか?
他にどのような解除方法がありますか?
0184nobodyさん2011/07/04(月) 15:23:18.01ID:WyyByi98
【OS名】CentOS
【PHPのバージョン】5.6
【連携ソフトウェア】MySQL
【質問内容】
ユーザー情報としてメールアドレスとパスワードを保存しています。
パスワードはハッシュで格納していますが、アドレスはそのままとなっています。
アドレスもハッシュなどにしたほうが何かあったさいはいいのでしょうが、登録アドレスなどへのパスワードの再送などが出来なくなってしまいます。
暗号化を行った場合は一旦全てのメールアドレスを復号化する必要があるので処理スピードが落ちてしまいます。
メールアドレスなどは一般的にはどのようにDBに格納しているものなのでしょうか?
0185nobodyさん2011/07/04(月) 15:23:56.69ID:???
単にCloseすりゃいい
01861812011/07/04(月) 15:25:46.12ID:bW37tmJX
>>185
でもマニュアルには5.32以降は明示的に閉じなければならないと書いてるので、
将来のことを考えて明示的に解放したほうがいいのではないでしょうか?

できれば本題のほうの突っ込みをお願いします。
ロック待ちはあんな感じで大丈夫でしょうか?
デッドロックの発生状況がよくわかってないので心配です。
0187nobodyさん2011/07/04(月) 15:26:38.02ID:???
forでcountは使うな
XAMPPは使うな
Terapadは使うな
FFFTPは使うな
printは使うな
eregは使うな
dateは使うな
flockでロックを解除するな
0188nobodyさん2011/07/04(月) 16:40:39.78ID:???
5.32
0189nobodyさん2011/07/04(月) 16:54:08.21ID:???
>>184
漏れた時の被害状況を想定して決めればいい

カードは最も悪用しやすく言わずもがなヤヴァイし(信頼失墜まちがいなしの重大事故)
住所は可能性としては低いが爆発物が届くかもしれない(名前と合わせて命狙われてる人なら重大)
電話番号はイタ電がかかってくるかもしれない(電話番号を最悪変えないといけないから中程度)
メールは迷惑メールが届くかもしれない(がフィルターで防げるし軽微である)
名前はそれだけなら心象被害しかないが住所と組み合わさると配達員に不信がられない(単体ならごく軽微)

まぁそんなことを考えながらやればいいんじゃねえの

メールアドレスは別にそのまんまでいいよ
企業の漏洩事故に最も含まれてるのはそのまんま格納してる証拠
0190nobodyさん2011/07/04(月) 16:55:48.05ID:???
誰か俺の質問に答えられる奴いないのかよ。レベル低いスレだな
0191nobodyさん2011/07/04(月) 17:04:38.65ID:???
だれ?
0192nobodyさん2011/07/04(月) 17:10:00.72ID:???
>>184
個人情報をどこまで厳格に扱うかで決まるが
一つのボーダーラインが漏洩した情報で不正アクセスができるかどうか
大体のオープンソースモノはパスワードだけ不可逆暗号化して
後の漏れちまったもんはしょうがねぇってスタンス

>>186
LOCK_NB付きでない限りロックが取得できるまで flock() で処理は止まる
なのでsleep()は不要
0193nobodyさん2011/07/04(月) 17:18:49.71ID:???
PHPからmysqlのデータベースを作成する方法わかりますか?
0194nobodyさん2011/07/04(月) 17:22:57.45ID:???
普通はそんなことやらんけど、、、デーモンは起動してる前提?
0195nobodyさん2011/07/04(月) 17:24:47.13ID:???
mysql_query('CREATE DATABASE hoge');
ただしルート接続
01961812011/07/04(月) 17:28:33.74ID:bW37tmJX
>>192
どうもありがとうございます。
LOCK待ちしてるとなると、else部分がどういう時に呼ばれるのかが気になりますが、
(もしブラウザのタイムアウトまで待ち続けると結局何も結果が表示されないので)
マニュアルに書いてる通り実装しようと思います。

ところでwhile条件間違ってましたね。
否定にしないとあれじゃ無限ループでした。
0197nobodyさん2011/07/04(月) 19:23:17.63ID:???
>>190
ID出さないスレを荒らした質問者乙
0198nobodyさん2011/07/04(月) 19:30:15.63ID:ktjvWDg2
file_get_contentsに渡したファイル名が存在しない場合
file_get_contentsがfalseを返したらエラー出して停止するように書いたんだけど
file_get_contents内部で勝手にエラー出してそこで止まってしまうんだけど
これはどうしようもないの?
マニュアルには失敗時はfalse返すと書いてあるんだけど
0199nobodyさん2011/07/04(月) 19:53:39.17ID:???
その書いたものをここに書いてもらわないと困るんだけど
0200nobodyさん2011/07/04(月) 20:16:59.62ID:ktjvWDg2
if ( ($file = file_get_contents( $fileName ))){
// 読み込めた処理
}
else{
echo "読み込めませんでした";
// 読み込めなかった処理;
}

これを実行すると、ファイルがなかった場合file_get_contentsがNo Such Fileとか出してそこで止まって
else内が実行されない
0201nobodyさん2011/07/04(月) 20:17:49.18ID:???
>>198
>>200
なんで偉そうな口調なの?
0202nobodyさん2011/07/04(月) 20:45:21.01ID:???
吹いたw
0203nobodyさん2011/07/04(月) 20:52:16.63ID:???
>>200
再現しない
てかfile_get_contentsの前に存在するかチェックしろよ
0204nobodyさん2011/07/04(月) 20:56:49.61ID:???
いいから俺の質問に答えろよ、低能ども
0205nobodyさん2011/07/04(月) 21:43:11.67ID:???
いや俺の質問に先に答えろクズども
0206nobodyさん2011/07/04(月) 21:58:37.04ID:???
答えてやるから質問してみろ高能
0207nobodyさん2011/07/04(月) 22:31:34.60ID:???
ワロスwww
0208nobodyさん2011/07/04(月) 22:56:31.09ID:???
死んだ兄貴の遺言

「弟よ、XAMPPは使うな」
0209nobodyさん2011/07/04(月) 23:26:58.82ID:DllDdKEc
for文の動作で質問させてください。

$count = 0;

いろいろ処理
$count++;
}
for($i = 1; $i < $count; $i++) {
echo "i=".$i
}
0210nobodyさん2011/07/04(月) 23:29:27.66ID:???
最後まで言ってくださいね〜
0211nobodyさん2011/07/04(月) 23:29:38.58ID:DllDdKEc
途中で送信してしまいました・・・
基礎を勉強中なのですが、以下のプログラムを書いて動作を確認しました。

$count = 0;

いろいろ処理{
$count++;
}

for($i = 0; $i < $count; $i++) {
echo "i=".$i
}


そして、上記のプログラムで、for文の部分を以下のように変更すると、メモリオーバーフローを起こしてしまいます。
for($i = 0; $i < $count; $i++) {
↓
for($i = 1; $i <= $count; $i++{

なぜ、上のように変更すると、オーバーフローを起こしてしまうのでしょうか?
0212nobodyさん2011/07/04(月) 23:31:24.88ID:DllDdKEc
うぅ、書きミスだらけですみません・・・

$count = 0;

いろいろ処理ループ処理{
$count++;
}

for($i = 0; $i < $count; $i++) {
echo "i=".$i;
}

変更点
for($i = 0; $i < $count; $i++) {
↓
for($i = 1; $i <= $count; $i++) {
0213nobodyさん2011/07/04(月) 23:37:26.69ID:uhW0inEa
PEAR::Authで困っています。Authはログインページをecho文で生成するよう
にあちこちで紹介されていて、例えば、典型的な方法、

$auth_login = new Auth("DB", $params,"loginFunction");// インスタンス生成

だと、loginFunction()でecho文を使ってログインフォームを作るのですが、
こうではなく、自分でHTMLでオリジナルのログインページを作ってからAuthのphpファイルを
呼び出して操作したい場合、インスタンス生成のときにどうやってPOST
されてきたユーザ名(普通だったら$POST_['username'とか])とパスワード($POST_['password'とか])を
Authに突っ込めば良いのでしょうか?

よろしくお願いします。
0214nobodyさん2011/07/04(月) 23:39:08.70ID:???
>>212
コピペして再現できるコードを張ってくれ
0215nobodyさん2011/07/04(月) 23:41:58.96ID:uhW0inEa
>>212
$countはどこまで増えていくの??有限なの?
■ このスレッドは過去ログ倉庫に格納されています