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

【PHP】下らねぇ質問はここに書き込みやがれ 59

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/11/16(金) 18:09:05ID:kurqBmt1
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1194084457/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0720nobodyさん2007/11/28(水) 14:31:38ID:???
一応きくけどセーフモードかかってないよね?
07217172007/11/28(水) 14:33:15ID:1+zqVeOG
>>720
ごめんなさい、セーフモードってなんですか?
osはwindowsXPです
0722nobodyさん2007/11/28(水) 14:37:54ID:???
http://jp.php.net/features.safe-mode

phpinfoでsafe_modeがonか確認してみ

もしセーフモードかかってんならmkdirは使えない
セーフモードをきるかCGIとして動作させるかで使えるようになるが
07237172007/11/28(水) 14:45:00ID:1+zqVeOG
>>722
本当にありがとうございます (windowsのセーフモードかと思って調べてました)
しかし、phpinfoの結果ではsafe_modeオフになってます
safe_mode - Off - Off
safe_mode_exec_di - no value - no value
safe_mode_gid - Off - Off
safe_mode_include_dir - no value - no value
根本的に>>719のコーディングに問題があるんでしょうか
0724nobodyさん2007/11/28(水) 15:08:50ID:???
>>723
そのディレクトリはhttpdの動作してるユーザーで書き込み可能なのか?
07257172007/11/28(水) 15:33:34ID:1+zqVeOG
>>724
返事遅れてすみません
書き込み可能かどうかはわかりません。どうしたら確認できるんでしょうか?
自分のマシンの中で動かしてるサーバなら大丈夫って問題じゃないのですね
0726nobodyさん2007/11/28(水) 16:00:10ID:???
windowsのセーフモードかと
0727nobodyさん2007/11/28(水) 16:04:01ID:???
>>725
ためしに、適当なとこにフォルダ作って、プロパティのセキュリティで
Everyone が書き込みできる許可があるか確認して
そこをフルパス指定してみては?
0728nobodyさん2007/11/28(水) 16:19:21ID:???
エラーのトラップコードを書こうとしているのですが、
異常が発生した時に、エラーの呼び出し元のクラス名を知る方法はないでしょうか?
あるクラスのあるメソッドを1000箇所を超える箇所から呼び出されているのですが、
そのメソッドで不具合が発生した際に、どこから呼び出されているか分からずに苦労しています。

宜しくお願いします。
0729nobodyさん2007/11/28(水) 16:20:43ID:KISMRzgZ
728です。すみません。ID出すの忘れてました。
07307172007/11/28(水) 16:27:30ID:1+zqVeOG
>>726
windowsのセーフモードかなぁと思って、 msconfigでBOOT.INIを見てみたら、
セーフモードにチェックははいってませんでした。(確認の仕方が間違ってるかもしれないですが)
あと、rmdirを試してみたら、これもうまくいきません

…ですが、今マシン何度か再起動してみたら、さっき出来てなかったディレクトリが
出来てました。さっきは何度も最新の状態に更新しても出来てなかったのに
それに今別名のディレクトリを新しく作ったら、今度はすぐに出来ました。
何も設定変えてないんですが。今度はうまくいった原因が不明です
一番ツマランオチになってしまってすみません いろいろ勉強になりました 皆さんありがとう
0731nobodyさん2007/11/28(水) 16:36:13ID:ECuSXzPA
ファイルをコピーするphpを作成しているんですけど、うまくいきません。以下のように作りました。
<html>
<head>
</head>
<body>
<?php
exec('/bin/cp /var/www/html/aaa.txt /var/www/html/bbb.txt');
?>
</body>
</html>
なぜかbbb.txtが作成されません。
よろしくお願いします。
0732nobodyさん2007/11/28(水) 16:42:15ID:???
copyでやれ
0733nobodyさん2007/11/28(水) 16:42:49ID:???
>>731
環境は?
0734nobodyさん2007/11/28(水) 16:57:18ID:???
/var/www/html/ のパーミッションは?
07357312007/11/28(水) 16:59:06ID:jgnr6sNp
>>733 fedora core 6です。
copy関数使用すれば作成できました。続けて質問で申し訳ないが、
spamassassin(メールフィルタリングソフト)を起動させるphpの作成も行っていて、
端末で/etc/rc.d/init.d/spamassassin startと打てば起動するので、
<html>
<head>
</head>
<body>
<?php
exec('/etc/rc.d/init.d/spamassassin start');
?>
</body>
</html>
と作成したのですが、起動できませんでした。 よろしくお願いします。
07367312007/11/28(水) 17:16:10ID:jgnr6sNp
>>734 777です。
0737nobodyさん2007/11/28(水) 17:26:16ID:???
>>735
ログとかにエラーでてないの?
0738nobodyさん2007/11/28(水) 17:29:26ID:???
spamassassin はrootで起動する必要があったりしない?
spamassassin のオーナーとパーミッションは?
あとセーフモードとか
07397312007/11/28(水) 17:53:55ID:ECuSXzPA
rootで起動する必要があります。 
spamassassinのオーナーはrootでした。
safemodeはoffでした。

sudoを使えばいいのかなとは素人ながら思いますが・・・。

よろしくお願いします。
0740nobodyさん2007/11/28(水) 18:47:34ID:???
んー、、、まあsudoでいけると思うが。
実行ユーザーがapacheとして、visudoで
apache ALL=NOPASSWD: /etc/rc.d/init.d/spamassassin start
とかいれて、
exec('/usr/bin/sudo /etc/rc.d/init.d/spamassassin start');
とかか?
まあいろいろやってみて
0741IT土方 ◆5m1CB.BcLA 2007/11/28(水) 22:51:48ID:???
>>711
だね。流石にもうスレ違いだろう。
続きコメントくれるならスレ立てるけど?
>>672
>>681
0742nobodyさん2007/11/29(木) 00:24:05ID:QqrQD8Do
02<>かきくけこ
03<>さしすせそ
01<>あいうえお
---------------------
↑と書かれているファイルを「file関数」で開いてソートしてまたファイルに書き直す、
といった処理をしたいのですが、どうしても挙動がおかしくなってしまいます・・・
理想としては↓
---------------------
01<>あいうえお
02<>かきくけこ
03<>さしすせそ
---------------------
と、いう風にファイルに書き直されていたらいいのですが、なぜか↓のようになってしまう時があります。
---------------------
01<>あいうえお
02<>かきくけこ03<>さしすせそ
---------------------

$sort_ary = file("data.cgi");
sort($sort_ary);

$file=fopen("data.cgi","w");

foreach($sort_ary as $data){
fputs($file,$data);
}
fclose($file);

そのソースの一部なのですが、何か突っ込みどころがあったらお願いします。
0743nobodyさん2007/11/29(木) 00:26:56ID:???
>>742
まずは風呂入れ
話はそれからだ
0744nobodyさん2007/11/29(木) 00:36:27ID:???
>>742
02<>かきくけこ03<>さしすせそ
みたいになる行の、この例で言うと02<>かきくけこ ってさ、
ファイルの一番最後に書かれてる行だったりしない?
そしたら改行がなくてそうなっちゃう場合はおおいに考えられると思うんだが。
0745nobodyさん2007/11/29(木) 00:40:09ID:NeePXSbk
PHPでdaemon作りたいんですが
作り方を教えてください
0746nobodyさん2007/11/29(木) 00:45:22ID:???
>>745
死んでください
0747nobodyさん2007/11/29(木) 00:47:21ID:???
>>742
データの1行ごとに改行コードはちゃんと入ってるんだろうな?
最終行だけ改行いれてないおちとかないよな
0748nobodyさん2007/11/29(木) 00:51:53ID:???
>>742
よく見たら、forearchで回す回数だけファイル操作してんじゃねえよバカ
0749nobodyさん2007/11/29(木) 00:54:07ID:???
inetdと、/hoge/hage/bin/php を使えば出来そうですね。
元々デーモンじゃないやつをデーモンとして動作させるのが
inetdの仕事みたいですから。
inetd.confに必要な記述をして試してみたらどうでしょう。

http://x68000.q-e-d.net/~68user/net/inetd-2.html

ここらへんが参考になると思います。
0750nobodyさん2007/11/29(木) 00:54:23ID:???
>>746
お前がな
0751nobodyさん2007/11/29(木) 00:57:15ID:???
>>749
こんな簡単にできるんですね
ありがとうございました
0752nobodyさん2007/11/29(木) 01:21:13ID:???
文字列の反復を禁じるいい関数ありますか?
例えば

 1,1,1,1,1,1,2,2,2,2,3

を 1,2,3 のように整形したいのですが。
0753nobodyさん2007/11/29(木) 01:23:11ID:5Kv1f9ef
includeファイルで計算した結果を表示するときに、一番上にスペース(改行されてるっぽい)が開いてしまうのですが、何故でしょうか?

また、対策はありますか?
0754nobodyさん2007/11/29(木) 01:26:34ID:???
>>753

<? php
なにか
?>
  //<--ここ
<? php
なにか
?>

みたいな状態になってんじゃね?
0755nobodyさん2007/11/29(木) 01:31:21ID:???
>>754
ごめんなさい、ちょっとよく分かりません…

<body>

<?php
if($hyouzi == 1){
include_once(test.php);
echo "$data";
}
?>

</body>

test.phpは最終的に$dataには<table>データが入るのですが、実際に表示されたソースをみると

?
<table>ほにゃらら</table>

となって、ブラウザ上では<table>ほにゃらら</table>を直接書いたときに比べ1行分の隙間があります。
0756nobodyさん2007/11/29(木) 01:37:04ID:???
>>755

ブラウザのバグってことないよな?
いろんなブラウザで試してみ
0757nobodyさん2007/11/29(木) 01:40:23ID:???
>>742
$sort_ary = array_map('trim', file("data.cgi"));
sort($sort_ary);
if($file=fopen("data.cgi","w")) {
fputs($file, implode("\n", $sort_ary));
fclose($file);
}
0758nobodyさん2007/11/29(木) 01:45:03ID:???
>>752
echo implode(",", array_unique(explode(",", "1,1,1,1,1,1,2,2,2,2,3")));
0759nobodyさん2007/11/29(木) 01:47:10ID:???
?  <--これ
<table>ほにゃらら</table>

「これ」が出てるんなら、エスパーするとUTF-8のBOM。
BOMなしで保存するとでなくなる。
BOMだったら、ブラウザによって表示されたりされなかったりする。
0760nobodyさん2007/11/29(木) 01:49:44ID:???
BOMはテンプラに入れとくべきだな
0761nobodyさん2007/11/29(木) 01:53:47ID:???
>>759
utfじゃりません。
UTFサインはもちろんBOMなしで保存してます。
0762nobodyさん2007/11/29(木) 01:54:24ID:QqrQD8Do
>>757
本当、ありがとうございます。
助かりました・・・
0763nobodyさん2007/11/29(木) 01:56:53ID:???
>>761
んじゃtest.phpのソース晒さんことにはわからんな
0764nobodyさん2007/11/29(木) 02:03:07ID:???



    レベル ひっくw

0765nobodyさん2007/11/29(木) 02:04:33ID:???
>>764
お前がな
0766nobodyさん2007/11/29(木) 02:09:19ID:???
>>765
きょうは一段と反応早いなおまえw
はりこみ乙w 腹イテーーーーーーーーーーーwww

0767nobodyさん2007/11/29(木) 02:12:21ID:???
意味不明
妄想乙
0768nobodyさん2007/11/29(木) 02:15:44ID:???
>>741 IT土方氏

ここでやるのはどう?

依頼されたツールを誰かが作るスレ
http://pc11.2ch.net/test/read.cgi/php/1078997682/
0769nobodyさん2007/11/29(木) 02:25:49ID:???
さっさと作るなり移動するなりしろってな。やってもらわないと何もできんのね。
0770nobodyさん2007/11/29(木) 03:02:49ID:???
すいませんfp = fopen('data.txt', 'r+');
の一番最後の文字列をピックアップしたいのですが、どうしたらいいでしょうか?
arrayならarray_pop($fp)でうまくいくとおもいますが。。
0771nobodyさん2007/11/29(木) 03:09:59ID:???
>>770
http://php.net/fopen
0772nobodyさん2007/11/29(木) 03:45:03ID:???
>>766
お前らもう結婚しとけよwww
07737552007/11/29(木) 04:19:37ID:5Kv1f9ef
>>756
バグかどうかは分かりませんが、win98+flash9なのでfoxが使えず、あまり検証できません。
ところで、それはIE6全てで発生するバグと言う意味なのか、それとも自分のIE6のみで起こるのか?という意味なのでしょうか?

>>759
そうです。ブラウザの表示では「?」はありませんが、ソースを見るとそうなってます。

>>761
あの…えと…どなたでしょうか?汗


という訳で再度ID表示。意識失ってましたので、明日BOMとやらを調べてみます!
0774nobodyさん2007/11/29(木) 04:33:31ID:???
>>773

BOM = バカだろオマエ

 調べなくていいよw

0775nobodyさん2007/11/29(木) 04:40:09ID:???
>>758
ありがとうございました。参考になりました。
ただ、array_uniqueだと重複文字列が全部整理されてしまいますが、
1,1,1,1,1,1,2,2,2,2,3,1,1,1,1,1,1,2,2,2,2,3,1,1,1,1,1,1,2,2,2,2,3
だと 1,2,3に整理されると思うのですが、

これを 1,2,3,1,2,3,1,2,3という風に横同士で並んでるのだけ整理したいのですが、
どうしたものかと悩んでいます。
0776nobodyさん2007/11/29(木) 04:46:53ID:???
>>775
自分で関数作れや
0777nobodyさん2007/11/29(木) 04:52:06ID:???
>>776
すいません。今から横で寝てる彼女とおマンコするので作れません。
終わるまでに作っといてもらえますか? 10分もかかりませんからw
0778nobodyさん2007/11/29(木) 04:53:25ID:???
うわぁ・・・人間として最低だこいつ・・・
0779nobodyさん2007/11/29(木) 04:55:58ID:???
>>773
http://ja.wikipedia.org/wiki/UTF-8#.E3.83.90.E3.82.A4.E3.83.88.E3.82.AA.E3.83.BC.E3.83.80.E3.83.BC.E3.83.9E.E3.83.BC.E3.82.AF.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6

>>775
echo preg_replace('/(.,)\\1*/', '$1', '1,1,1,1,1,1,2,2,2,2,3,1,1,1,1,1,1,2,2,2,2,3,1,1,1,1,1,1,2,2,2,2,3' . ',');
0780nobodyさん2007/11/29(木) 05:02:19ID:???
>>778
釣られんなよ
07817752007/11/29(木) 06:30:02ID:???
>>779
ありがとうございます。正規表現は思いつきませんでした。
0782nobodyさん2007/11/29(木) 07:38:33ID:4PzhnTZW
dbのテーブルに何か情報を新規登録したとき、(テーブルが一行増えたとき)
その増えた行のidを取得する方法ってないですか?
登録→登録したパラメータを使ってwhereとlimitでSQL文再発行して取得
というやり方なら確実でしょうが、なんか頭悪いというか、もっとやりようないかなって
気がします
0783nobodyさん2007/11/29(木) 07:44:10ID:???
その方法じゃパラメータが重複したときにidが2つ3つ戻ってくるから駄目。
auto_increment属性を持ってるだろうから、mysql_insert_id()を呼ぶことで最後に生成されたIDを取得できる。
0784nobodyさん2007/11/29(木) 09:01:47ID:???
>>782
DB何使ってるかくらいは書けよ
0785nobodyさん2007/11/29(木) 09:04:53ID:???
DBは、ここではMySQLしか認めないみたいですよw
0786nobodyさん2007/11/29(木) 09:08:07ID:???
当然だろ?
AMPがこのスレのデフォだぜ
0787nobodyさん2007/11/29(木) 09:46:12ID:3vJQn9oy
最近、PCスクールに通い始めたばかりの初心者です。
個人の力量次第ですが「普通」は下記のサイトでしたら
どの程度の時間で作れるものですか?
また、運営費にどの程度かかるのですか?

ttp://www.yakuzaishi-kyujin.com/
0788nobodyさん2007/11/29(木) 09:48:32ID:???
一ヶ月あれば余裕。余裕あり過ぎか。
鯖借りて5000円/一年くらい
0789nobodyさん2007/11/29(木) 10:07:54ID:???
>>786
Windows厨発見
LAMPなら聞いたことがあるけどなw
0790nobodyさん2007/11/29(木) 10:08:23ID:???
> Windows厨発見
> LAMPなら聞いたことがあるけどなw
0791nobodyさん2007/11/29(木) 10:09:51ID:???
>>788とか言っているやつに限って
実際にやらせたらなんだかんだ文句をつけて
一ヶ月では終わらない法則
0792nobodyさん2007/11/29(木) 10:10:33ID:???
>>790
0793nobodyさん2007/11/29(木) 10:13:51ID:???
>>790
Windows厨涙目
0794nobodyさん2007/11/29(木) 10:29:46ID:???
デバッグのためにわざわざLinuxインスコするのはバカ
0795nobodyさん2007/11/29(木) 10:31:10ID:???
Linuxが使えないバカがキター
0796nobodyさん2007/11/29(木) 10:31:19ID:???
linuxを使う気持ちはよく分かるが、至上主義な人ってキチガイだな。
0797nobodyさん2007/11/29(木) 10:33:11ID:UweWnTq0
くだらない質問すぎて申し訳ないのですが、UNIX秒から西暦の日付に
表記をフォーマットするにはどうしたらよいのでしょうか。
西暦→UNIX秒なら簡単に見つかるのに、なぜか逆が見つからなくて・・・。
0798nobodyさん2007/11/29(木) 10:34:50ID:???
使えないとかアホか
いまどきのLinuxなんてインストールからシステムのアップデートもWindowsと一緒だろうが
0799nobodyさん2007/11/29(木) 10:35:47ID:???
mktime
0800nobodyさん2007/11/29(木) 10:38:45ID:???
>>798はたぶんLinuxを使ったことがないな
0801nobodyさん2007/11/29(木) 10:43:43ID:???
ブラウザ上で表示中のページに同サイト内で関連する
ページをリスト表示するにはどうしたら良いのでしょ
うか?

Google Ajax Search API を使えばできますか?
0802nobodyさん2007/11/29(木) 10:51:20ID:HTBoD0WS
strtotime
0803nobodyさん2007/11/29(木) 11:02:53ID:???
>>755
<body>

<?php


釣りですか?
0804nobodyさん2007/11/29(木) 11:13:28ID:UweWnTq0
$kekka=date( 'Y年m月d日', $unixtime );

こうですか!わかりません!
0805nobodyさん2007/11/29(木) 11:14:06ID:???
>>798
インストールは出来るがその後が使いこなせない
0806nobodyさん2007/11/29(木) 11:23:50ID:???
うそつけ
パーソナルデスクトップとしてLinux導入してるとこも多いのに
Windowsが使えてLinuxが使いこなせないなんてことはない
デバッグ環境作るだけなのに自己満足のCUIで構築するバカもいないだろう
0807nobodyさん2007/11/29(木) 11:27:02ID:???
いまどきlinuxをCUIでインストールするのは鯖屋ぐらいにしかメリットないな
0808nobodyさん2007/11/29(木) 11:27:40ID:???
WebProgを動かすのは鯖が多いんじゃ?
0809nobodyさん2007/11/29(木) 11:28:56ID:???
>>806
そりゃ極論すぎ。間違ってないけど。
0810nobodyさん2007/11/29(木) 11:59:01ID:???
>>806みたいな必死な人は放置の方向で
0811nobodyさん2007/11/29(木) 12:00:13ID:???
>>806
そういう使い方は考えていなかった
LAN内でLinux鯖たてるってことじゃないのね
0812nobodyさん2007/11/29(木) 12:14:03ID:???
>>790=>>793=>>795=>>810
どうみてもお前が必死
っていうかいらんレスするから悪いんだろうが
0813nobodyさん2007/11/29(木) 12:14:30ID:???
NGワード:Linux
08147822007/11/29(木) 12:21:03ID:???
>>783
ありがとうございます 試してみますね
>>784
DBの種類ごとに動作が変わるような問題だと思いませんでした すみません
0815nobodyさん2007/11/29(木) 13:02:23ID:???
NGワード:Win
0816nobodyさん2007/11/29(木) 13:03:54ID:???
NGワード推奨
>>1-1000
0817nobodyさん2007/11/29(木) 13:10:35ID:???
例えば
$hoge = a;
$output = `ls -$hoge`;
みたいなことをしたいのですが、変数が展開されません。
何か良い方法はないのでしょうか?
0818nobodyさん2007/11/29(木) 13:11:17ID:???
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)

これ読めないやつ多いな
0819nobodyさん2007/11/29(木) 13:13:33ID:???
>>818
まともに回答したいやつもID表示させたほうがいいな
そうすれば、ID:???をNGにできる
0820nobodyさん2007/11/29(木) 13:17:21ID:???
強制ID表示の仕様にならないかな
■ このスレッドは過去ログ倉庫に格納されています