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

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

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

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0611nobodyさん2009/11/28(土) 00:41:06ID:???
コード補完程度でいいなら辞書つくって優秀なエディタつかえばいいんでないの
デバッガはなしで本番環境で実行して動作確認みたいな
原始的だがPHPではよくあること
0612nobodyさん2009/11/28(土) 01:07:27ID:???
入力補完機能のついたエディターてなにがあったっけ?
0613nobodyさん2009/11/28(土) 01:56:23ID:???
emacs vim
Unixで発展してきたエディタはメモ帳とは違うんです
0614nobodyさん2009/11/28(土) 19:04:59ID:???
やっぱりvim
0615nobodyさん2009/11/28(土) 19:40:56ID:/BKpNybq
【OS名】fedora11
【PHPのバージョン】php5.25
【質問内容】
phpを用いたredirectに対しての質問なのですが、

http://ho.example.com/にアクセスしてきた場合は、
http://ho.example.com/index.htmlに、
http://ho.example.com/index.php?id=******(数字)
でアクセスしてきたURLには、
http://ho.example.com/geru/index.php?id=******(数字)で返したいのですが、
これならどうしたらいいでしょうか

http://ho.example.com/index.php?id=987678でのアクセスには、
http://ho.example.com/geru/index.php?id=987678で返したいんです。

Apacheのredirectだと、DirectoryIndexを、 index.php index.htmlの設定がじゃまをしているのか、
ループを起こしてしまうので、どうにもなりませんでした。
どうぞよろしくお願いします<m(__)m>
0616nobodyさん2009/11/28(土) 19:52:06ID:???
5.25ってバージョンはいつでたのかな^^
0617nobodyさん2009/11/28(土) 19:54:22ID:???
>>615
DirectoryIndexをindex.html index.php にしておけば、
http://ho.example.com/ のアクセスは http://ho.example.com/index.html になる
そのうえで、
http://ho.example.com/index.php の最初の方で
http://ho.example.com/geru/index.php にheaderで飛ばせばいい
0618nobodyさん2009/11/28(土) 19:55:48ID:???
>>615
DirectoryIndex を index.html index.php

にすりゃいいんじゃないかなぁ。
0619nobodyさん2009/11/28(土) 19:55:57ID:???
ってカブってたw
06206152009/11/28(土) 20:12:40ID:PfdzqFPX
>>617 >>618 レスありがとうございます。

しかし、下記のように設定しても、ループしてしまうのです

DirectoryIndex index.html iindex.php ndex.htm

<VirtualHost *>
DocumentRoot /home/pap/geru/
ServerName ho.example.com
Redirect /index.php http://ho.example.com/geru/index.php
Redirect / http://ho.example.com/index.html
</VirtualHost>

なのでどうにか、http://ho.example.com/index.phpで同じことができないかと思い
ここに相談させてもらいました
06216152009/11/28(土) 20:19:09ID:PfdzqFPX
>>620の設定で、
firefoxでhttp://ho.example.com/にアクセスすると
http://ho.example.com/index.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.htmlindex.html

こんなことになってしまいます
0622nobodyさん2009/11/28(土) 20:33:34ID:???
Redirect / http://ho.example.com/index.html

これいらなくね?
06236152009/11/28(土) 20:52:38ID:???
>>622
あ・・・・
それ外したらできました・・・・
とても恥ずかしいです・・・・

でも解決できて本当によかったです!!!
皆さんありがとうございました!!!
0624nobodyさん2009/11/28(土) 20:55:24ID:???
phpの質問ですらなかった件について
0625nobodyさん2009/11/28(土) 23:13:14ID:GFmYlKP+
ログ保存させるディレクトリに書込権を付けて〜という説明がよくありますが、
自分で試したところ、fopenでテキストファイルなどを作成する場合、
作成先のディレクトリのパーミッションが、755のままでも作成されました。

簡単なファイル作成の場合、777とか707とか666とかにしなくても良いのでしょうか?



0626nobodyさん2009/11/28(土) 23:25:24ID:???
CGIあるいはコマンドラインで実行したとかじゃないだろうな。
0627nobodyさん2009/11/28(土) 23:25:58ID:???
755だから書き込みできる件
少しはパーミッションを勉強することをすすめる
0628nobodyさん2009/11/28(土) 23:31:45ID:???
ちなみにジオシティーズのファイルマネージャとかで
ディレクトリを作成して755と777に交互に変更してそのディレクトリにファイルを移動とかしてみろ
0629nobodyさん2009/11/28(土) 23:45:56ID:???
755だから書けるってのもちょとおかしい。
そのディレクトリのユーザーが誰かってのが問題なわけで。
0630nobodyさん2009/11/28(土) 23:52:04ID:???
おかしいと思ってるのはちゃんと理解してないから
いろんな鯖借りて100回パーミッションをいじれ
0631nobodyさん2009/11/28(土) 23:55:26ID:???
>>630
何回いじったところでhoge所有の755ディレクトリにnobodyは書き込めませんが何か?
0632nobodyさん2009/11/28(土) 23:57:02ID:???
>>630
755ってrwxr-xr-xだから所有者じゃない限り書き込めないのだが
お前こそパーミッション理解できてるか?
0633nobodyさん2009/11/28(土) 23:59:42ID:???
755も705もそりゃ所有者で書き込んでるんだから書き込めてるでしょ
何を言ってるんだ
0634nobodyさん2009/11/29(日) 00:05:06ID:???
mod_php実行が前提ならapache以外の所有者の0755ディレクトリには書き込めない
>>626の前提なら>>633の通り。で、>>625はどっちなんだ?
0635nobodyさん2009/11/29(日) 00:08:58ID:???
phpってsuexecできるの?
0636nobodyさん2009/11/29(日) 00:10:48ID:???
>>625
CGIで実行すれば可能。phpの優位性は失うが。
0637nobodyさん2009/11/29(日) 00:11:10ID:???
わり、>>636>>635だった。
0638nobodyさん2009/11/29(日) 01:09:13ID:???
>>635
無理
06394132009/11/29(日) 07:26:12ID:Yzy3uLLn
レスして下さった方ありがとうございました。
ローカル環境では>>413のやり方でいけたのですがレン鯖だとなぜかNGだったので
WHERE句を書き直して無事実装できました。
0640nobodyさん2009/11/29(日) 11:09:26ID:Q44vnMJC
ttp://www.php.net/manual/ja/function.date.php
このページのdate関数の引数「string date ( string $format [, int $timestamp ] )」という部分を取得したいのですが
標準関数でこういうのを取得できませんか?
0641nobodyさん2009/11/29(日) 11:30:43ID:???
$function = "date";
file_get_contents("http://jp2.php.net/manual-lookup.php?pattern=".$function);
0642nobodyさん2009/11/29(日) 11:42:07ID:???
>>641
ブラクラ乙
0643nobodyさん2009/11/29(日) 14:47:44ID:???
もうさ、XAMPPでいい気がしてきたんだけど、PHP、MySQL、Apacheを自分でインストールして使う事と何が違うのですか?
やっぱ汎用性などで独自でインストールした方がいいのでしょうか?
06446432009/11/29(日) 14:51:22ID:???
追記
大きな会社などでPHPで開発するときに、独自でインストールしたりするとフォルダ先とか変わったりでわずらわしい気がしますが、
やっぱそういう環境ではXAMPPのように一元化を図った方が効率は良くなるのでしょうか?
0645nobodyさん2009/11/29(日) 14:52:37ID:???
君みたいな自分が扱う技術の勉強を放棄する人間が増えるのが一番の問題
0646nobodyさん2009/11/29(日) 14:54:46ID:???
テスト環境なんてどんな方法でも入ればいいよ
0647nobodyさん2009/11/29(日) 14:55:29ID:???
XAMPPで全て対応できるもんならそれでいいんじゃね?というしかない
0648nobodyさん2009/11/29(日) 15:00:27ID:???
>>646
できるかぎり本番に近いほうがいいだろ
064982009/11/29(日) 15:15:11ID:???
Linux on VMが最強
0650nobodyさん2009/11/29(日) 15:16:46ID:???
Perlがいらないのにインストールされたり
各ソフトが最新じゃなかったり

っていう程度かな
0651nobodyさん2009/11/29(日) 15:28:01ID:???
うちの場合は、ローカル環境はxamppも考えたけど、PostgreSQLも使うので
apache/php/mysql/postgresqlを個別にc:\dev\以下にインストールして
c:\dev\をzipでかためて配布する事でローカル環境の統一を行ってる。

元々subversion使ってて、その時はローカルに環境つくらず
コミットしてサーバ上で確認してたが、gitに乗り換えたので
ローカルで簡単に確認してからコミット(git push)するようになった。
0652nobodyさん2009/11/29(日) 15:37:11ID:???
>>651
gitでコミットしたやつそのまま公開してるの?
0653nobodyさん2009/11/29(日) 15:37:43ID:???
>>651
なんでwindows鯖なの?
0654nobodyさん2009/11/29(日) 15:55:51ID:???
>>652
公開してないよ。
gitのサーバは本番機とは別に用意してあり、他のプロジェクトと共用。
pushするとフックスクリプトで本番機の開発用ディレクトリに転送される。
転送されるディレクトリは社内からしかアクセスできない

>>653
ローカル環境と言ってるのは、個人の作業用PCの事。
作業用PCはwindowsで、サーバはLinux。
それぞれの作業用PC上で簡単に確認してからgit pushする。
0655nobodyさん2009/11/29(日) 16:09:13ID:X6l6A2G2
$str='\a\i\u\e\o';
をaiueoという風に出力したくて、
一個の\だけだとメタ文字?のような気がしたので
もう一個\をつけて普通の文字\として、
echo preg_replace("/\\/i","",$str);
としたらできるのかなと思ったらできませんでした。
しかし、
echo preg_replace("/\\\/","",$str);
のようにしたらできたのですがこれはなぜなんでしょうか?
0656nobodyさん2009/11/29(日) 16:17:58ID:???
外部xml読んできて集計する、よくあるプログラム作ってるんだけど、
なんか重いな〜と思って、xDebugでボトルネック調べたら
simplexml_load_file が全体の99%も時間かけてた。

予想通りネットワークのボトルネックでフイたけど、
ブロードバンドなのに改善できそうなことってほとんどないよな?
0657nobodyさん2009/11/29(日) 16:18:45ID:s4Mu180M
すまんID消えてた。
0658nobodyさん2009/11/29(日) 16:25:48ID:???
>>657
ローカルでやってみた?
simplexml_load_fileはパースもするから、案外パースと
PHPのオブジェクトの生成に時間かかってたり。
0659nobodyさん2009/11/29(日) 16:28:13ID:???
ISPを変える
06606572009/11/29(日) 16:34:44ID:s4Mu180M
>>658
ローカルでやってます。
一応環境を書いておきます…
【OS名】MacOS 10.5.6
【CPU、メモリ】CoreDuo 2GHz、2GB
【PHPのバージョン】php5.25
【連携ソフトウェア】MAMP 1.7.1(MySQL 5.0.41など)

アクセス対象のサーバの問題ですかね。

>>659
そんな手が…。
0661nobodyさん2009/11/29(日) 16:36:15ID:???
preg_match_allを使うとか
0662nobodyさん2009/11/29(日) 16:41:59ID:???
つかどこのネットワークが遅いのかしらんけど
一回ファイルだけローカルになりスクリプトのある鯖にもってきてそこで処理すればよくない?
0663nobodyさん2009/11/29(日) 16:42:15ID:ZEhApNdv
現在のサーバにインストールされたPHPで使用できる標準関数を取得できる関数があったと思うのですが
どの関数かご教示お願いします
0664nobodyさん2009/11/29(日) 16:44:37ID:???
マニュアル見れ
06656572009/11/29(日) 16:47:32ID:s4Mu180M
>>661
>>662
あーなるほど、外部から読みながらパースしてるから、
パースする前に生データをローカルに落としてから、
ローカルでパースしたらどうか、ってことですね。
やってみます、ありがとう。
0666nobodyさん2009/11/29(日) 17:29:33ID:hZFEF+gf
みなさんバージョン管理システムは何を使ってますか
0667nobodyさん2009/11/29(日) 17:35:28ID:???
svn

ドキュメント類はGoogleDocs
0668nobodyさん2009/11/29(日) 17:55:24ID:7vifCWX5
GDを使ってテキストを縦書きに出力したいんですが、どうしたらいいでしょうか?
一文字一文字改行するようにすると、()や、などが横書きのまま表示されてしまいます。
0669nobodyさん2009/11/29(日) 18:02:40ID:???
縦書き用フォントを使う
0670nobodyさん2009/11/29(日) 18:27:43ID:???
>>663

phpinfo();
0671nobodyさん2009/11/29(日) 18:33:43ID:???
そりゃねーだろ
0672nobodyさん2009/11/29(日) 19:28:16ID:???
$y = 100;
$x = (function($y){return $y*$y})();
動かない・・・
0673nobodyさん2009/11/29(日) 19:37:36ID:???
そりゃねーだろ
0674nobodyさん2009/11/29(日) 19:41:31ID:???
function test(){};
$x = test();
は動くのに何で
$x = (function(){})();
は動かないの
0675nobodyさん2009/11/29(日) 19:44:31ID:???
だってPHPだもの
06766682009/11/29(日) 19:46:55ID:7vifCWX5
>>669
レスありがとうございます。

縦書き用として配布されているフォントをImageTTFTextで回転させてみたんですが、横書きのまま回転されてしまいました。
なにか特別な指定がいるんでしょうか?
0677nobodyさん2009/11/29(日) 19:48:03ID:???
まぁ動いてほしい気持ちは分かる
0678nobodyさん2009/11/29(日) 19:51:44ID:???
回答まだ?
0679nobodyさん2009/11/29(日) 19:54:22ID:???
>>678
誰お前?
0680nobodyさん2009/11/29(日) 20:07:16ID:???
>>678

メール欄を空にしてID出せ。
0681nobodyさん2009/11/29(日) 21:28:44ID:pv1VwVRH
PHPは特に権限変更不要というけど
権限変更しなきゃいけないケースというのは
何か書き込みを行うファイルを666あたりに
セーフモードがかかっていて使えない一部の関数を使うために
親ディレクトリを777あたりに
こんな感じであってますか?
0682nobodyさん2009/11/29(日) 22:25:49ID:???
>PHPは特に権限変更不要というけど

誰だそんなバカなこと言ってる奴は
0683nobodyさん2009/11/29(日) 23:04:52ID:???
やはりここで聞いてもわかる人はいなかったか・・
0684nobodyさん2009/11/29(日) 23:15:16ID:???
うん、いないよ。
0685nobodyさん2009/11/29(日) 23:21:14ID:???
早く回答ください待ってます
0686nobodyさん2009/11/30(月) 13:51:39ID:85q7Lxtd
phpMyadminって皆さん使われていますか?
自分使った事はないのですが、ココ(http://www.atmarkit.co.jp/fsecurity/column/kawaguchi/019.html)等を見ると
セキュリティの問題が無いとも言い切れないようなのでどうしようかなと思っております
データベース等狙われたら大変ですし

もし使っていないのであれば、この手のソフトで何かいいのがありましたら教えていただきたいと思います
0687nobodyさん2009/11/30(月) 14:08:01ID:???
>>686
ローカルでたまに使ったり使わなかったり
少なくとも公開はしてない
使うとしてもセキュリティ設定ちゃんとしてれば問題ないともうけど
0688nobodyさん2009/11/30(月) 14:25:47ID:???
>>686
ソフトウェアに絶えずバグや脆弱性が存在するのは当たり前のことです。
使いたいソフトウェアのコミュニティがどれほど発達してるかを見極めた上で、
十分なセキュリティパッチが提供されると判断したのなら積極的に利用していいと思います。
目安としてオープンソースで人気のプロジェクトなんかは信用していいと思います。
ただソフトの管理はソフト自体が勝手にやってくれるのと、そうでないのがあるので、
後者の場合は定期的にセキュリティパッチがないか自分で情報を集める自信がないのなら使わないほうが賢明です。
0689nobodyさん2009/11/30(月) 14:27:55ID:8SHOe8r+
質問

sqlite_query()なんかで取得した結果を、
sqlite_fetch_all()でまとめて取得して、そいつをforeach()とかでグリグリやるのと、
while()の条件でsqlite_fetch_array()を使ってグリグリするのでは、
どっちがベターでしょう?


0690nobodyさん2009/11/30(月) 14:28:22ID:???
ベターってどういう基準で?
0691nobodyさん2009/11/30(月) 14:39:30ID:???
好きなとり方ができるようになってるんだから
好きなほう得意なやりかたでやれっていう指示と考えておk
0692nobodyさん2009/11/30(月) 16:40:31ID:???
>>690-691
分からないなら出てくるなよ文盲ヲタ
0693nobodyさん2009/11/30(月) 16:48:41ID:???
PEAR::DBのDSN宣言での事なのですが、phptypeでMySQL4.1以降はmysqli で、MySQL4.0以前はmysqlと学習したのですが、
自分のMySQL5.1ではmysqliでは接続エラーになり、mysqlでは接続成功になりました
これで正しいのでしょうか?
またMySQL5.0とかからmysqlに変わったのでしょうか?
06946932009/11/30(月) 16:49:42ID:???
DSN宣言とは DB::connect 時です
0695nobodyさん2009/11/30(月) 16:55:02ID:???
スレタイ
0696nobodyさん2009/11/30(月) 16:56:38ID:???
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/l50
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1257701535/l50
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/l50

マルチ乙
0697nobodyさん2009/11/30(月) 17:01:50ID:???
マルチはシネよ
0698nobodyさん2009/11/30(月) 19:17:48ID:OqzSho9e
【OS名】windows XP
【PHPのバージョン】php5.3.1
【連携ソフトウェア】MySQL
【質問内容】
アクセスログをDBに残していくのが目的であるphp文を埋め込んだファイルを作ったのですが、
ローカルからのアクセスではクエリが実行されているのですが
外部のコンピュータからのアクセスではクエリが実行されていない?ようです。
これを実行する方法はありませんか?

$com = "INSERT INTO `log`(`id`,`date`,`time`) VALUES('{$id}','{$d}','{$t}')";
mysql_query($com);
0699nobodyさん2009/11/30(月) 19:23:06ID:???
なんか質問内容がずっと近いな
同じやつがずーーーーっと聞いてる予感。
しね
0700nobodyさん2009/11/30(月) 19:34:32ID:???
>>698
ローカルで動くんなら、プログラムはいいんじゃないの。
外部のコンピュータからのアクセスとはどうやったんでしょうか。
07016982009/11/30(月) 19:42:41ID:OqzSho9e
>>700
レスありがとうございます。

>>外部のコンピュータからのアクセス

ブラウザから【http://ipアドレス/index.php】を覗いてもらいました。
0702nobodyさん2009/11/30(月) 19:46:02ID:???
>>701
クエリが実行されていないってどうやって確認したんでしょうか
07037022009/11/30(月) 19:53:39ID:OqzSho9e
>>702
友達に頼んでスカイプしながら、自分「今アクセスしてみて」、友人「したよ。カウンターは増えてるね」
という具合に、確認しながらやっていきました。
mysql_query($com);
このあとさらに

print($com);
でINSERT文を明示し、表示された内容を送ってもらったりしましたが、何のエラーも出ておらず、
ローカルからのアクセスにのみMySQLが反映されます。
また、そのとき随時MySQL画面でSELECT文を発行しDB確認しておりました。

実際にurl載せてみてもらったほうが早いんでしょうか(;´Д`)
07046982009/11/30(月) 20:08:24ID:OqzSho9e
すいません、自己解決しました。
保存されるカラムの一つに`ip`があったのですが
その`ip`、ローカルだと127.0.0.1ってすごく短いのですが
他のコンピュータだと15文字と長いのでvarchar(10)をオーバーしていました。
お騒がせしました(´Д`)

ALTER TABLE `log` MODIFY `id` VARCHAR(20);
0705nobodyさん2009/11/30(月) 20:22:21ID:???
あほまるだしやな
0706nobodyさん2009/11/30(月) 20:28:33ID:???
切捨てだったような気がするけど気のせいか。
0707nobodyさん2009/11/30(月) 21:17:19ID:???
俺は和んだ
切捨てしてくれるのもあったなそれに任せてしまうかは置いとくけど
0708nobodyさん2009/11/30(月) 23:43:16ID:Vf7i1FvX
httpd.confでmb_internal_encoding EUC-JPと設定されているため、
HTMLソースの文字コードがUTF-8でも$_REQUESTの中身がEUC-JP
で入ってくるのですが、スクリプト側の設定で$_REQUESTの中身を
UTF-8にすることはできないでしょうか?

最初に
mb_internal_encoding("UTF-8");
と書いてももう遅いようですし、
.htaccessは使えない状態です。

よろしくお願いします。
0709nobodyさん2009/12/01(火) 00:06:15ID:???
mb_こんヴぇrt_えんこぢんgでええやん
0710nobodyさん2009/12/01(火) 00:09:44ID:???
>>708
eucで入ってくるリクエストをphpの中でutfに変換すりゃいいだけじゃないの?
phpに入る前に変換かけようったってそりゃ無理な話でさ。
0711nobodyさん2009/12/01(火) 15:33:58ID:???
a
■ このスレッドは過去ログ倉庫に格納されています