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

【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2

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

姉妹スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0067nobodyさん2009/09/15(火) 20:09:58ID:???
>>66
query →基本 初心者はこれを使え

prepare/excute → 上級者用
SQLインジェクション対策でこれを使う
はじめのウチは無視してOK
0068nobodyさん2009/09/15(火) 20:37:26ID:???
つうかなんで同じスレで聞かないの?
マルチと言うかは微妙だけどさ
0069nobodyさん2009/09/16(水) 10:48:49ID:???
>>67
そうやって脆弱性のあるプログラムが量産されるわけだな
0070nobodyさん2009/09/16(水) 11:04:34ID:???
と言うか、SELECT以外は全部prepare/execute使えばいいんじゃないの?
俺は良く分かっていないからそうしてるんだけどw
0071nobodyさん2009/09/16(水) 11:29:53ID:???
selectには何で使わないの?
sqlインジェクションの危険は同様にあるぞ
0072nobodyさん2009/09/16(水) 12:18:18ID:???
変なデータ入れられることはないが見られちゃまずいものを見られる危険性があるからな
0073nobodyさん2009/09/16(水) 12:20:02ID:???
>>71
じゃぁもう全部にprepare/execute89を使えばいいの?
0074nobodyさん2009/09/16(水) 12:37:36ID:???
>>72
> 変なデータ入れられることはない
いや、あるだろ。
0075nobodyさん2009/09/16(水) 12:37:40ID:???
>>72
>変なデータ入れられることはないが

「;」をエスケープしなきゃupdateでもdrop tableでもし放題だよ
0076nobodyさん2009/09/16(水) 12:41:30ID:???
>>73
使っときな
0077nobodyさん2009/09/16(水) 12:47:21ID:???
DBを絡めたコードを書いたことない奴が多いスレだな
0078nobodyさん2009/09/16(水) 12:50:19ID:???
初心者歓迎だから当然だな
0079nobodyさん2009/09/16(水) 12:57:15ID:???
select文にどうやってupdateやdropを組み込むの?
0080nobodyさん2009/09/16(水) 13:05:30ID:???
>>79
http://www.thinkit.co.jp/cert/tech/7/5/2.htm
このあたりが参考になる
0081nobodyさん2009/09/16(水) 13:42:34ID:???
ん?SQLインジェクションへの対抗手段としてquoteってあるんだよね?
「'」を無効化できるから
で、それだとコードが冗長になるって言うんでprepare/executeメソッドを使うんだよね?
でもそれでも「;」をエスケープしなきゃ駄目だって事?
じゃぁ対策はどうすればいいの?
他にメソッドとかあるの?
0082nobodyさん2009/09/16(水) 13:57:05ID:???
>>81
レスを順によく読め
;を使ったマルチプルステートメントのリスクは、prepare/executeを使わなかった場合の話だ
0083nobodyさん2009/09/16(水) 14:01:53ID:???
>>81
プリペアドステートメント使っていれば「;」も平気だよ。

SQLインジェクションへの対策はmysql_real_escape_stringなどを使う
これは\n\rや'";等をエスケープする。

プリペアドステートメントはそもそもインジェクション対策ではなく
クエリのパースの回数を減らしDB側の負担を軽く(リソース消費量を少なく)させるのが目的。
プレースホルダを使うのでインジェクション対策にも有効というだけ。
冗長だから使うというモノではない。
0084nobodyさん2009/09/16(水) 15:07:06ID:72D7UAj5
phpでテキストを作成してログを出力してるんですが、ログファイルが増えるのはよくないので
出来ればmessagesとかに一緒に出力出来ればと思ってるんですが
権限の問題かmessagesには出すことが出来ませんでした。
ログを出すさいにmessagesなどに出す方法があれば教えてください。
0085nobodyさん2009/09/16(水) 15:20:48ID:???
>>84
1.独自のログに出力させ、そのログをlogrotateでローテートさせる
2.loggerを使う
 例)exec("logger -i -t TEST -p kern.warning 'TEST message from php'");
3.messagesの権限を変える。

好きなの選んで。
俺なら1を選ぶが。
0086nobodyさん2009/09/16(水) 15:21:07ID:???
>>84
messagesだとOKなのは、ローテーションされるから?
だったら、自前のログファイルもlogrotate等でローテーションすれば良いのでは

> 権限の問題かmessagesには出すことが出来ませんでした。
syslog()を使ってもダメだったってことかな
0087842009/09/16(水) 16:23:03ID:72D7UAj5
>>85
ログ関係いままで触ったことがなかったからloggerなんてものがあったの知らなかったです
ちょっと調べてみます。

>>86
logger同様にsyslogも知りませんでした。
使い方は調べてみて良さそうなほうを使ってみようと思います。

messagesだとOKっていうわけじゃないんですが、ログをフォルダ単位(/var/log)でとっているので
散らばるのはよくないかな〜という漠然とした考えでした。
0088nobodyさん2009/09/16(水) 16:24:59ID:???
php.iniのinclude_path= の設定で、
include_path=".;c:/php/includes;C:/php/Pear;"と参考書やネットを見て設定したのですが、
自分のc:/phpフォルダを見ると、includesというフォルダやファイルが見当たりません
コレで大丈夫なのでしょうか?
殆どがこのような設定になっていますが、皆さんのphpフォルダの中にはincludesというファイルやフォルダが入っているのでしょうか?
0089852009/09/16(水) 17:02:10ID:???
>>87
syslog()なんてあったのか。
ならexecでloggerなんて呼ばないでsyslog()を使った方が良い。

ただ、syslog()は/etc/syslog.confに書かれたログにしか出力しないので注意
/etc/syslog.confの設定はスレ違いなので調べて。

で、そこまでやるならやっぱりlogrotateの方が良いと思うぞ
0090nobodyさん2009/09/16(水) 18:31:51ID:???
PHPから別のMySQLサーバーへの接続ができません。原因は何でしょうか。

試したこと:
・「localhost」で自分のサーバーのMySQLに接続できる。
・「127.0.0.1」で自分のサーバーのMySQLに接続できない。
・別のサーバーのIPアドレスでそのMySQLに接続できない。
・別のサーバーのホストアドレスでそのMySQLに接続できない。

接続できないとき、mysql_connect、mysqli_connectともに、エラー2003、
「Can't connect to MySQL server on 'サーバー' (13)」のエラーが出ます。

また、mysqlコマンドで上記いずれも接続できることは確認しています。
なのでサーバーが起動していないとか、ポートが空いてない、
ユーザー権限・パスワードの設定ミスではありません。

宜しくお願いします。
0091nobodyさん2009/09/16(水) 19:26:33ID:???
MySQLが外から接続できない設定になってる
0092902009/09/16(水) 19:35:53ID:KVXgimyy
90です。解決しました。
SELinuxが有効になっていて、それがmysqlの接続をブロックしていたためでした。
参考:ttp://www.media.t-kougei.ac.jp/~nagae/?p=2350

ありがとうございました。
0093nobodyさん2009/09/16(水) 19:46:58ID:???
selinuxは無効にするのがデフォって教えてもらわなかったのか?w
0094nobodyさん2009/09/17(木) 00:51:33ID:GtJThGz3
質問させてください。
コンストラクタがいまいちどのタイミングで使うのか理解出来ない
のですが、誰か教えてください。
0095nobodyさん2009/09/17(木) 00:59:58ID:???
>>94
使うも何も、オブジェクトを生成するときに呼び出されるメゾットだよ
主にオブジェクトの初期化を行うことが多い
0096nobodyさん2009/09/17(木) 01:05:29ID:???
>>94
Hogeクラスがあるとする。
このクラスのオブジェクトを作成する場合、

$obj = new Hoge(引数);

と記述する。
このとき、function __construct(引数)が定義されてると、自動的に実行される。

どのタイミングで使うかを気にしているみたいだが、
コンストラクタを関数として直接呼ぶ必要は無い。
0097942009/09/17(木) 01:29:07ID:GtJThGz3
>>95
>>96
えと・・・クラスを書いた後、オブジェクトを関数の中に書かなくても
最初に実行されるメソッドって事でいいんですかね?
0098nobodyさん2009/09/17(木) 01:46:08ID:???
>>97
日本語でおk
http://jp2.php.net/manual/ja/language.oop5.decon.php
0099nobodyさん2009/09/17(木) 09:11:08ID:???
PHPってPEARやPDOとかを含めたリファレンスって無いんですか?
もういい加減ネット調べるのもめんどくさくなってきた・・・
本でバッと見た方が早いし
IT後進国の我が県で一番大きな本屋に売ってなかったんですけど、何かいい本ないですか?
アマゾンで買います
0100nobodyさん2009/09/17(木) 09:14:33ID:???
http://jp.php.net/manual/ja/book.pdo.php
http://pear.php.net/manual/ja/package.database.db.php
0101nobodyさん2009/09/17(木) 10:54:41ID:aZjknirC
PHPのリファレンス本とPearのリファレンス本とPDOのリファレンスの3冊買えば解決というより
ネットでサクっと見るほうが効率よさそうな気もするけどな。
0102nobodyさん2009/09/17(木) 11:25:54ID:???
リファレンス程度の事をいちいちブラウザで調べてたら面倒と思うかもしれんな。
IDEならHELP内包してるし、PHPエディタだって関数位ならF1一発で検索できる。

まぁ紙媒体で持っておきたいというのもわかるけどね。
0103nobodyさん2009/09/17(木) 11:29:02ID:???
>>102
してないんじゃね
ネットへのリンクがほとんどだろ
0104nobodyさん2009/09/17(木) 11:48:42ID:???
マニュアル(php_manual_ja.chmとか)をダウンロードしておけば
それを表示っていうのはあるな
0105nobodyさん2009/09/17(木) 12:24:55ID:???
http://itpro.nikkeibp.co.jp/members/ITPro/oss/20050311/157352/?P=3
の、次にコマンドライン版PHPを用いて以下のように実行する。
# php /usr/lib/php/DB/DataObject/createTables.php example.ini
という部分とか、

http://hikatu.sblo.jp/article/2916423.html
のphp C:\server\php\PEAR\DB\DataObject\createTables.php example.ini
という部分をWindowsのコマンドプロンプトで実行したいのですが、
どのようにすればいいのでしょうか?

そのまま打つだけではコマンドプロンプトが受け付けませんし、
> php /usr/lib/php/DB/DataObject/createTables.php example.ini
とかいう記述方をとる場合、先頭の「>」の前にはいったい何を書けばいいのでしょうか?

コマンドプロンプト実行時はC:\Documents and Settings\メイン>となっていますが、この後に上記の
php /usr/lib/php/DB/DataObject/createTables.php example.ini
など記載しても受け付けられません

ただ単にC:\>の後に記述しても受け付けられず、混乱しています
0106nobodyさん2009/09/17(木) 12:54:59ID:???
>>105
phpにパスが通って無いだけじゃないの?

とりあえず、受け付けませんじゃなくて画面に表示されるエラーを記述しなよ
あと「>」の前は書くモノじゃなくて、今いるパスが表示されているだけ。
0107nobodyさん2009/09/17(木) 13:25:03ID:???
>>106
すみません、受け付けないじゃなかったです
今実行したら、別ウィンドウで、
「このファイルは開けません:ファイル createTables.php このプログラムを開くには作成元のプログラム名が必要です。
インターネットで自動的にプログラムを検索するか、又はコンピュータにあるうろグラム一覧から手動で選択してください」
とまぁ、よくあるエラーが出てきました

本当ならばココでpear.iniとかテーブルベース上のテーブルに対応したデータアクセスクラスが作成されるはずなのですが・・・
何か表記方法をまちがっているのでしょうか?
01081072009/09/17(木) 13:29:19ID:???
ちなみに自分は良く分からないので、
cd c:\を書いて、C:\>という風にいつもしています
0109nobodyさん2009/09/17(木) 13:38:59ID:???
>>107-108
実行したコマンドも”全て”コピペして。
createTables.phpを直接実行したら、.phpという拡張子が関連づけされていなければそうなる

ってこれはphp関係無くwindowsの初歩的な事だよ
0110nobodyさん2009/09/17(木) 13:51:03ID:???
>>109さん
C:\>C:\php\PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"
と入力しました
.phpの後の「"」の記号は付けたり外したりしました

ごめんなさい、構文の方はまぁ分かるのですが、こういうコマンドプロンプトのようなコンピューターの中の方はからっきしで駄目でして
コマンドプロンプトの弄り方の載ってるサイトを4つほど見たのですが、良く分からなくて・・・
0111nobodyさん2009/09/17(木) 14:49:41ID:???
>>110

>>105でitproのサイトのってるけど、そこには↓↓こう書いてあるでしょ?
# php /usr/lib/php/DB/DataObject/createTables.php example.ini

>>110 では先頭の「php」が抜けているよね?

C:\>php C:\php\PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"

↑こんな感じで先頭にphpをつけて実行して。
0112nobodyさん2009/09/17(木) 21:11:33ID:???
>>111さん
確かに・・・
phpって付いていました

で、
C:\>php C:\php\PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"
としたら、「'php'は、内部コマンド又は外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」と出て、

C:\>C:\PHP\php PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"
としたら、「Could not open input file:PEAR\DB\DataObject\createTables.php」と出てしまいました

確かにエラーにはなりましたが、コマンドプロンプトが動作しただけでも進展で嬉しかったです

しかし、createTable.phpが動作してくれないと、PEAR::DB_DataObjectは作動しないようで困りものです
もうココに10時間程かけてしまいました(苦笑)
0113nobodyさん2009/09/17(木) 21:15:13ID:???
>>112
最初の部分よく見て!createTables.phpへのパスが
「C:\php\PEAR\DB\〜」じゃなくて「PEAR\DB\〜」になってるよ!

C:\PHP\php C:\PHP\PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"

↑これでいけると思う
0114nobodyさん2009/09/17(木) 21:19:28ID:???
>>113

うわぁぁぁぁぁぁぁぁぁ!!!!!
行った!!
動いた、動きました・・・涙
感激です。

>>113さん、あなたへの感謝の気持ちは一生忘れません。
また、こんな質問にずっと付き合っていただき、まことにありがとうございました
本当に嬉しいし、感謝しています
ありがとうございました!!
0115nobodyさん2009/09/18(金) 00:33:31ID:???
コンストラクタを分かりやすく何かで例えてください
マニュアル読んでもしっくりこない
どなたかお願いします><
0116nobodyさん2009/09/18(金) 01:02:03ID:???
どの辺が分からんの?
0117nobodyさん2009/09/18(金) 01:04:31ID:???
たとえるからわかりにくくなる
インスタンス化(new)したときに一番はじめに呼び出されるメソッド(≒関数)
0118nobodyさん2009/09/18(金) 01:12:05ID:???
そんなのはマニュアルに書いてあるんだからいらないですこの無能><
0119nobodyさん2009/09/18(金) 01:22:05ID:???
言葉の意味がわからないのなら理解するのは無理
あきらめてください
0120nobodyさん2009/09/18(金) 09:41:00ID:???
>>115
う〜ん、基本中の基本だからなぁ・・・
逆に説明するのが難しい
自分はJavaScriptから始めたんだけど、JavaScriptの方がいい説明があったような気がする
0121nobodyさん2009/09/18(金) 10:04:25ID:???
今まで自分で初期化用の関数を用意してたのが最初から用意してくれたのがコンストラクタだよ!
これ以上に簡単にどう説明しろと
0122nobodyさん2009/09/18(金) 10:41:10ID:???
>>121
>>118
0123nobodyさん2009/09/18(金) 10:58:11ID:???
よくわからんから、ガンダムにたとえてくれ
0124nobodyさん2009/09/18(金) 11:02:37ID:???
阿呆はスルーしとけ
0125nobodyさん2009/09/18(金) 11:08:07ID:???
ここまでの池沼は初めて見たな

ガンダムとドムが合体して子供が産まれた、こういう事だよ
0126nobodyさん2009/09/18(金) 11:13:39ID:???
アムロがイッたんだな
0127nobodyさん2009/09/18(金) 11:13:45ID:???
いや違うだろ
アムロがハンバーガーを食べて痛風になったって話だろ?
0128nobodyさん2009/09/18(金) 11:17:30ID:???

機動戦士ガンダム 第22話
【女性を襲う恐怖!赤い彗星のお触りテクニック】

じゃなかった?
0129nobodyさん2009/09/18(金) 11:18:40ID:???
ガンダムじゃわかりにくいだろ

JoJoでたとえてくれ
0130nobodyさん2009/09/18(金) 11:21:26ID:???
ストーンオーシャンのジョリーンのオナニーシーンで3回抜いた
0131nobodyさん2009/09/18(金) 11:23:15ID:???
>>129
「ブッ殺す」と心の中で思ったならッ!その時スデに行動は終わっているんだッ!
0132nobodyさん2009/09/18(金) 11:23:52ID:???
  |l、{   j} /,,ィ//|     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  i|:!ヾ、_ノ/ u {:}//ヘ     | あ…ありのまま 今 起こった事を話すぜ!
  |リ u' }  ,ノ _,!V,ハ |     < 『おれはクラスからインスタンスを作成したと
  fト、_{ル{,ィ'eラ , タ人.    |  思ったらいつのまにか初期化されていた』
 ヾ|宀| {´,)⌒`/ |<ヽトiゝ   | 催眠術だとか超スピードだとか
  ヽ iLレ  u' | | ヾlトハ〉.   | そんなチャチなもんじゃあ 断じてねえ
   ハ !ニ⊇ '/:}  V:::::ヽ. │ もっと恐ろしいものの片鱗を味わったぜ…
  /:::丶'T'' /u' __ /:::::::/`ヽ \____________________
0133nobodyさん2009/09/18(金) 11:25:15ID:N3PcKfh3
PHPからrpmコマンドを叩きたくてrpm.phpを作成して下記を作りました。

 exec('rpm -ivh ./ntp-4.2.2p1-9.el5.centos.i386.rpm');

rpmファイルの権限と所有は
-rwxrwxrwx 1 apache apache
としrpmとphpは同じフォルダに置きました。ブラウザからアクセスして実行してみましたが、rpm -qa | grep ntpで見ても入っていないようです。
上記のコマンドを入力して実行するとちゃんとインストールされるのでコマンドはあっていると思います。
うまくいかない原因があれば教えてもらえないでしょうか。
0134nobodyさん2009/09/18(金) 11:25:43ID:???
>>131-132
なんとなくニュアンスは伝わった。なんとなくだが。
0135nobodyさん2009/09/18(金) 11:28:30ID:???
>>132
ワラタw
お前面白いなw
0136nobodyさん2009/09/18(金) 11:29:56ID:???
アンパンマンで説明してやった方が分かりやすくないか?
0137nobodyさん2009/09/18(金) 11:30:24ID:???
>>133
たぶんパスが通って無いと思う。「rpm -ivh」の部分を「/bin/rpm -ivh」にしてみて

あとexecじゃなくてsystemにして出力と戻り値を拾ったほうがいい

$last_line = system('rpm -ivh ./ntp-4.2.2p1-9.el5.centos.i386.rpm 2>&1',$retval);
var_dump($last_line);
var_dump($retval);
0138nobodyさん2009/09/18(金) 11:31:17ID:???
>>133
echo exec('whoami'); のユーザーで rpm使える?

しかし、こんなスレでよく質問する気になるね。
0139nobodyさん2009/09/18(金) 11:32:26ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
何このスレwwwwwwwwwwwwwwwwwwwwwwwwwwwww
01401372009/09/18(金) 11:33:56ID:???
確かにrpm -ivhは一般ユーザじゃ普通無理だな
0141nobodyさん2009/09/18(金) 11:36:29ID:???
アンパンマンで例えるならば簡単だ

カビルンルンそのままじゃねぇか!!
01421332009/09/18(金) 11:39:36ID:N3PcKfh3
>>137
パスが通ってなかったみたいです。でも
error: can't create transaction lock on /var/lib/rpm/__db.000
と出てきましたので一般ユーザーでは無理みたいです。
でも原因がわかりましたので助かりました。
ありがとうございます。

sudoあたりで権限あげれば出来るのかな。
01431422009/09/18(金) 14:46:04ID:N3PcKfh3
sudoで
apache ALL=(ALL) ALL
とかやってもダメでした
試しにsudoに
%wheel ALL=(ALL) ALL
を追加して
/etc/groupに
wheel:x:10:root,apache
してみましたがダメでした。
PHPでrpmコマンド叩く事って無理なんでしょうか。

実は商用のものでブラウザ上からrpmファイルを指定して実行するものがあったので
便利だと思いちょっと似たようなの作ってみたかったのですが。
0144nobodyさん2009/09/18(金) 14:51:18ID:???
>>143
シェルから実行できるか確認した?
0145nobodyさん2009/09/18(金) 14:54:43ID:???
googleで php sudo  ってやって出てくるページを10個ぐらい眺めるといいかも。
0146nobodyさん2009/09/18(金) 14:56:33ID:???
>>143
ソースは?
ちゃんとsudoのパスワード渡してる?
0147nobodyさん2009/09/18(金) 15:05:27ID:???
どうも須藤です
01481432009/09/18(金) 15:38:45ID:N3PcKfh3
>>144
シェルからはまだ試しておりません。

>>145
ちょっと見てみます。
申し訳ない。

>>146
当初は
apache ALL=(ALL) ALL
としてましたが、その後に
apache ALL=(ALL) NOPASSWD:ALL
と変えております。
rpm.phpは
$last_line = system("sudo /bin/rpm -ivh ./ntp-4.2.2p1-9.el5.centos.i386.rpm 2>&1" ,$retval);
と変更して
ブラウザ上で実行すると
string(9) "Password:"
int(1)
という感じで表示されます。
NOPASSWDにしているのでパスは聞かれないような気もしますが。
0149nobodyさん2009/09/18(金) 16:32:23ID:???
ふと思ったのですが、IPv6のクライアントから繋いできた時
$_SERVER['REMOTE_ADDR']の値ってどんな風になりますか?
0150nobodyさん2009/09/19(土) 06:59:45ID:???
http://bugs.php.net/bug.php?id=33170

$client_ip = $_SERVER["REMOTE_ADDR"];
$client_hostname = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$client_hostname2ip =
gethostbyname(gethostbyaddr($_SERVER["REMOTE_ADDR"]));

echo $client_ip."->".$client_hostname."->".$client_hostname2ip;

実行結果
IPv4: 10.11.12.13->server.domain.de->10.11.12.13
IPv6: 3ffe:1::1->server.ipv6.domain.de->server.ipv6.domain.de

gethostbynameはipv4にしか対応していないからipv6の3つ目の結果が想定してたものと違うというのが
このバグレポートでのお話
0151nobodyさん2009/09/19(土) 16:30:15ID:???
失礼致します。

あるウェブサービスAPIを取得して、XSLT処理をしたあと、XML出力するという
PHPのコードを書いています。

このコード自体問題なく動いているのですが、問題はこのXMLのある文字列を
置換したいのですが、その場合のstr_replaceの書き方がわかりません。

XSLT処理後XMLが格納されている変数 = $result
置き換えたい文字列 = hiropon
置き換え後の文字列 = <iframe src="xxxx" border="0"></iframe>
xxxにはURLが入ります。

そのまんま、str_replace('hiropon',置き換え後の文字列,$result)でやっても
うまくいかんのです。

変数にHTMLのタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?
0152nobodyさん2009/09/19(土) 16:55:34ID:???
>>151
お前何カ所に書き込んでいるんだよ?
webサービス作ってて、マルチポストが嫌われる事も知らんとはね
0153nobodyさん2009/09/21(月) 18:54:50ID:???
get って大文字で書かないとダメなんだね。
0154nobodyさん2009/09/21(月) 21:38:33ID:???
今、SQLite3を使っていますが、MySQLを使おうと思っています
この場合、SQLiteはアンインストールしたり、php.iniにてsqlite部をコメントアウトしたりした方がいいのでしょうか?
0155nobodyさん2009/09/21(月) 21:41:27ID:???
少しでも余計なリソースを削除したいなら、消してもいいけど
普通はそんな事しなくて平気
0156nobodyさん2009/09/22(火) 15:23:45ID:kzOpjiPM
1分のload averageの数値を取得するものを作ってみました。

exec('top -i -n1 -b | grep "load average"', $ret);
$ave = substr($ret[0], strrpos($ret[0], ":")+1, 5);
$ave;

echo $ave とすると *.** " と表示されて"が入ってきます。
これはどこから入ってくるんでしょうか?
0157nobodyさん2009/09/22(火) 18:34:19ID:???
一応PHPの学習は終わったのですが、まだ全然使いこなせていません
基礎を習得したくらいなので、今後実践的な事を書いていきたいのですが、学習に役立つサンプルのあるいいサイトありませんでしょうか?
自分でも探しているのですが、例えばクライアントサイドの場合はFireBug等で勉強出来ましたが、流石にサーバサイドは無理だと思いまして
0158nobodyさん2009/09/22(火) 19:04:03ID:???
フリースクリプトが星の数ほど公開されてるじゃん
掲示板なりアクセス解析なりショッピングカーとなり好きなの見てみればいいんじゃない
0159nobodyさん2009/09/22(火) 19:46:01ID:rnxaS1Zp
大角本やいろんなPHPの本を読むのがいいと思うよ。
むろんサイトも参考になると思うが、ソースがきたないのもあるし
0160nobodyさん2009/09/22(火) 22:57:28ID:???
require_once('DB/DataObject.php');
$config=parse_ini_file(dirname(__FILE__).'/myConfig.ini',TRUE);
$options=&PEAR::getStaticProperty('DB_DataObject','options');
$options=$config['DB_DataObject'];

ごめんなさい、この$optionsは上書きされないのでしょうか?
自分にはちょっと分かりませんでしたので質問させていただきました
0161nobodyさん2009/09/23(水) 00:27:15ID:???
されるでしょ
01621602009/09/23(水) 00:55:25ID:???
ですよね?
では、上書きされるのであれば、下から2行は何の為に記述しているのでしょうか?
DB_DataObjectクラスの変数$optionsの部分だけを$config['DB_DataObject']で書き換えているという意味なのでしょうか?
ちなみに、PEAR::DB_DataObjectのサンプルコードの一部です
0163nobodyさん2009/09/23(水) 01:00:05ID:???
どこに書いてあるの?
01641602009/09/23(水) 01:07:20ID:???
独習PHPのP254です(苦笑
サンプルコード全部書いておきますが、何かDB_DataObjectを利用する場合、この4行は定型的な記述だと思っておけば良いと書かれています

<?php
require_once('DB/DataObject.php');
$config=parse_ini_file(dirname(__FILE__).'/myConfig.ini',TRUE);
$options=&PEAR::getStaticProperty('DB_DataObject','options');
$options=$config['DB_DataObject'];
$book=DB_DataObject::factory('book');
$book->selectAdd();
$book->selectAdd('title');
$book->published='翔泳社';
$book->orderBy('isbn ASC');
print($book->find().'件が検索されました。<br />');
while($book->fetch()) {
print($book->title.'<br />');
}
?>
0165nobodyさん2009/09/23(水) 01:18:24ID:???
試しに省いてみたら?
0166nobodyさん2009/09/23(水) 01:48:40ID:???
まず試してみるのは大切だよね
■ このスレッドは過去ログ倉庫に格納されています