2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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


2 :nobodyさん:2009/09/10(木) 22:53:48 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/

3 :nobodyさん:2009/09/10(木) 22:55:01 ID:???
立てるなら過去スレ張れよ出来損ない

4 :nobodyさん:2009/09/10(木) 22:55:06 ID:???
前スレ → 【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1233590976/l50

5 :nobodyさん:2009/09/10(木) 22:56:39 ID:???
姉妹スレDAT落ちしてるぞ

6 :nobodyさん:2009/09/10(木) 22:59:15 ID:???
ほんと使えねえクズな>>1だな
立てられないなら無理して立ててんじゃねえぞボケ!

7 :nobodyさん:2009/09/10(木) 23:00:23 ID:???
やっぱマイケル・ジャクソンの曲はいいなぁ♪


8 :nobodyさん:2009/09/10(木) 23:02:21 ID:???
そもそももう統合していいんじゃね
ID出したくない理由ってなんだろうな
単にめんどいというならそういうやつには向いてないし門前払い審査には最適なんだがな
どうせテンプレもよんじゃいねえよ

9 :nobodyさん:2009/09/10(木) 23:07:20 ID:???
削除依頼よろ

10 :前スレ 970:2009/09/10(木) 23:12:36 ID:???
駄目だぁ、出来ない・・・パトラッシュもう疲れたよ・・・・・・

11 :nobodyさん:2009/09/10(木) 23:13:32 ID:???
できないっつーかやることやってないからだろ

12 :前スレ 970:2009/09/10(木) 23:14:54 ID:???
>>11
じゃぁ何をすれば出来ますか?

13 :nobodyさん:2009/09/10(木) 23:16:05 ID:???
じゃ逆に聞くけど前スレ999は何故シカトなの?

14 :nobodyさん:2009/09/10(木) 23:20:13 ID:???
phpinfo()の出力結果のLoaded Configuration Fileにパス書かれてあるとオモ

15 :前スレ 970:2009/09/10(木) 23:23:45 ID:???
>>13
すみません、別のことしているうちに次のスレが立っていたもので・・・

>>14
Loaded Configuration Fileの欄には(none)と書かれています
コレがまずいのでしょうか?

16 :nobodyさん:2009/09/10(木) 23:34:00 ID:???
Configuration Fileがロードされてないってことだと思いますが。
apacheのhttpd.confのPHPInDirで指定したパスに置かれたphp.iniが読み込まれます。
もう一度確認したほうが良いと思います。

以下回答者の愚痴です。
スレが立っていたから回答を無視するって何様?
999以前にも2回ほどphp.iniがロードされてないって言われてなかった?何を確認したの?
やることやってないってのは、「正しい修正をやってない」ということではなく「回答されたことをやってない」という意味だよ?
いい加減にしてほしい。

17 :nobodyさん:2009/09/10(木) 23:36:03 ID:???
根に持ち杉きめえ

18 :前スレ 970:2009/09/10(木) 23:41:46 ID:???
>>16
すみませんでした
わざわざ答えてもらってるのに
もう一度自分で色々試してみます

19 :前スレ 970:2009/09/10(木) 23:47:34 ID:???
>>16さん

ありがとうございました
無事に解決しました!!
3時半から8時間かかりましたが、理由は>>16さんの教えてくれた、
>apacheのhttpd.confのPHPInDirで指定したパスに置かれたphp.iniが読み込まれます
この部分でした

『PHPを伝授する』スレの設定をそのまましていたもので、PHPIniDir "c:/php"が自分の設定では、PHPIniDir "c:/WINDOWS"でした
いやぁ、ほんと良かったです

>>16さんを含め、その他教えてくれた方々皆さんに本当に感謝します
ありがとうございました
今日中にはどうしても終わらせたくて、もし今日出来なかったら暫くふてくされてPHPから離れようと思っていたところでした
本当に皆さんありがとうございました

20 :nobodyさん:2009/09/10(木) 23:50:31 ID:???
良かったね。
次からは改善してくれよ。

設定コピペとかは最高に馬鹿な行為だからね。身をもって実感できたかと。


21 :前スレ 970:2009/09/10(木) 23:54:43 ID:???
>>20

いやぁ、マジでありがとうございました
自分の使ってる参考書にはPHPIniDirの記述が無くて、コレが何なのか分からないまま『PHPを伝授する』スレの通り設定していました
ほんと助かりました
非常に疲れましたが、良かったです


22 :nobodyさん:2009/09/11(金) 09:00:57 ID:???
PHPとSQLiteで会社の簡単な車両予約を作っております。
同じ日付の予約が出来ないように、予約フォームからPOSTされたときに
同じ日に予約が既にある場合は、新たな予約を受け付けないように処理していますが、
予約後にブラウザの戻るボタンでフォームに戻り、同じ日付で再度予約を入れると受け付けてしまいます。

こういう場合はどのように対処すればいいんでしょうか?

23 :nobodyさん:2009/09/11(金) 09:03:29 ID:???
日付の判定処理がちゃんとできてないように見えますが

24 :nobodyさん:2009/09/11(金) 10:02:25 ID:???
>同じ日に予約が既にある場合は、新たな予約を受け付けないように処理していますが、

これがうまくいってない。
実行されるSQL文をvar_dumpなりで表示させて確認したほうがいい

25 :22:2009/09/11(金) 10:06:20 ID:???
>>23-24
ご指摘のとおりでした。SQLの判定文が間違っておりました。
スレ汚しをお許しください。

26 :nobodyさん:2009/09/11(金) 10:37:14 ID:???
許してやる

27 :nobodyさん:2009/09/11(金) 10:40:09 ID:???
お前アスペルガーだろww

28 :nobodyさん:2009/09/11(金) 17:34:22 ID:???
PHP 5.2.9 を Windows で動かしています。
処理の長い処理に、順次 printing... を出したくて
http://jp2.php.net/manual/ja/function.ob-flush.php#90529 などを参考に

function flush_buffers(){
ob_end_flush();
ob_flush();
flush();
ob_start();
}

for($i=0;$i<10;$i++){
flush_buffers();
echo 'printing...<br />';
usleep(300000);
}

としてみましたが、結局、全部まとめて出てしまいます。
何かアドバイスをいただけませんか。

29 :nobodyさん:2009/09/11(金) 17:37:08 ID:???
>>28
HTMLで出力してるんじゃないの?

30 :28:2009/09/11(金) 17:44:19 ID:???
>>29
早速ありがとうございます。
HTML で出したいのですが、
HTML で出力とはどういうことでしょうか…。

31 :nobodyさん:2009/09/11(金) 19:11:47 ID:???
>>28
php5.2.10にバージョンアップしないの?

32 :nobodyさん:2009/09/11(金) 19:34:57 ID:???
古いIEの256バイトの呪いとか、apachでのキャッシュとか、0.2秒で目視できないとか

33 :nobodyさん:2009/09/12(土) 22:40:15 ID:???
<?php

 class aaa{

  public $b;

      }

 $c = new aaa;

 $c->b=1;

 print $c->b;

?>

----------------------------

オレ様が華麗にOOPに挑戦

34 :nobodyさん:2009/09/12(土) 22:51:03 ID:???
$c = new aaa();
()つけような

35 :nobodyさん:2009/09/12(土) 22:56:05 ID:???
>>33
直接フィールド($b)を操作するのはよくないからアクセサを用意してください。
継承しないフィールドは基本的に全てprivateでOK。

<?php
class aaa {
 private $b;
 public function setB($value) {
  $this->b = $value;
 }
 public function getB() {
  return $this->b;
 }
}

$c = new aaa();
$c->setB(1);
echo $c->getB();
?>

36 :nobodyさん:2009/09/13(日) 17:37:11 ID:???
php.iniに、
pdo.dsn.samples="sqlite:C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\samples.sqlite"
と書き加えろと参考書に書かれているのですが、別にどこに書き加えてもいいのでしょうか?
特にpdo.dsn=と言う様な行も見当たらないのですが

37 :nobodyさん:2009/09/13(日) 18:35:56 ID:???
>>36ですが、事故解決しました

38 :nobodyさん:2009/09/13(日) 18:59:27 ID:???
きめえところにインストールしてんな
俺ならD:\Apache2.2\htdocsだぞ

39 :nobodyさん:2009/09/13(日) 19:07:43 ID:???
>>38
マジですか?
やっぱCよりもDの方がいいんですかね?

40 :nobodyさん:2009/09/13(日) 19:09:45 ID:???
いやドライブはどこでもいいけど階層深いとめんどくさい場面があるから

41 :nobodyさん:2009/09/13(日) 22:36:14 ID:???
xamppを使う場合、

\x

ってのを入れると、\xがなんか、
特別な意味に解釈されてしまって
うまく動かない、ってのを本で読んだんだが、
そうなの?

\xampp\sample\...

とかってパス名を使う場合。

42 :nobodyさん:2009/09/13(日) 23:27:01 ID:???
だから初心者はxamppは使うな

43 :nobodyさん:2009/09/14(月) 00:19:06 ID:???
>>41
\\って書けばいいだけ

>>42
お前は何をいってるんだ

44 :nobodyさん:2009/09/14(月) 14:33:45 ID:???
ファイル書込を行いたいのですが
同じ処理をメール受信トリガーで起動させるとfopenでエラーが出ます
具体的には

function csv_write($email){
$result = "rslt";
$date = date('Y/m/d');
$word = $email.",".$date."\n";

$pointer=fopen("./csv/test.csv", "a");
if($pointer == FALSE){
$result = "fopen失敗";
mail("$email", "check01", "$result");
return;
}

flock($pointer, LOCK_EX);
fputs($pointer, $word);
flock($pointer, LOCK_UN);
fclose($pointer);
mail("$email", "check02", "$result");
}

これをそのまま呼び出したPHPにブラウザからアクセスすると書込成功するのですが
メール受信で起動させるとcheck01のエラーメールが届きます
この原因は何が考えられるのでしょうか?

45 :nobodyさん:2009/09/14(月) 14:48:08 ID:???
カレントディレクトリが違うんじゃないのかな。

46 :44:2009/09/14(月) 15:49:02 ID:???
>>45
dirname(__FILE__)かましたら無事にできました!
ありがとうございました。

どーもこのカレントがちょろちょろ変わるのが慣れないですね
脳内エラーパターンリストに早く刷り込まないと


47 :nobodyさん:2009/09/14(月) 17:21:41 ID:???
コマンドプロンプトで、C:\Documents and Settings\メイン>って言うのから、cd.. と打たなくてもいきなりC:\>となるような方法ってありますか?

48 :nobodyさん:2009/09/14(月) 17:24:41 ID:???
スレ違い

49 :nobodyさん:2009/09/14(月) 17:56:27 ID:???
そこをなんとか

50 :nobodyさん:2009/09/14(月) 18:01:44 ID:???
c: だよ!もうPC一般行けよ!

http://pc11.2ch.net/pc/

51 :nobodyさん:2009/09/14(月) 19:04:31 ID:???
phpで、すでに定義された関数を削除することはできるでしょうか。
やりたいことは、ライブラリやフレームワークが提供する関数を上書きしたいということです。
素直に再定義するとエラーになるので、関数をいったん削除できないかと思い、質問しました。
よろしくお願いします。

52 :nobodyさん:2009/09/14(月) 19:29:28 ID:???
そういう場合は普通継承させるんじゃないの?

53 :nobodyさん:2009/09/14(月) 19:32:51 ID:???
http://www.php.net/manual/ja/function.override-function.php

54 :nobodyさん:2009/09/14(月) 19:57:56 ID:???
まあ、役には立たないのだけどね。

55 :nobodyさん:2009/09/15(火) 00:09:33 ID:???
素直にクラス作って継承させちゃえよ

56 :nobodyさん:2009/09/15(火) 10:19:15 ID:???
データベースというのはPHPの参考書には必ず書かれていますが、厳密にはPHPの分野なのでしょうか?
それともSQLやデータベースの分野になるのでしょうか?

57 :nobodyさん:2009/09/15(火) 10:20:51 ID:???
釣りですね

58 :nobodyさん:2009/09/15(火) 11:11:20 ID:???
いや、初心者なんでマジで聞いたんですけど・・・

59 :nobodyさん:2009/09/15(火) 11:13:16 ID:???
データベースはデータベース
SQL,MYSQL,SQLLite,・・・
データベースと一口にいってもいろいろある
プログラミング言語と一口に言ってもいろいろあるのと同じ
分野と言うなら全部別

60 :nobodyさん:2009/09/15(火) 11:14:18 ID:???
ツナマヨというのはコンビにには必ず置かれていますが、厳密にはコンビニの分野なのでしょうか?
それともおにぎりやツナマヨの分野になるのでしょうか?

変だろ?

61 :nobodyさん:2009/09/15(火) 11:49:37 ID:???
関係データベースシステムを操作する言語がSQL(Simple Query Language)
一種のプログラミング言語と考えていい

62 :nobodyさん:2009/09/15(火) 15:37:41 ID:???
Simple?

63 :nobodyさん:2009/09/15(火) 15:51:29 ID:???
略語ですらないらしいな。

64 :nobodyさん:2009/09/15(火) 16:31:07 ID:???
しーくうぇる

65 :nobodyさん:2009/09/15(火) 16:38:30 ID:???
Structured English Query Languageが元だね
ただSImple Query Languageもあっている

66 :nobodyさん:2009/09/15(火) 19:54:37 ID:???
すみません、queryメソッドと、prepare/excuteメソッドの使い分け&違いを教えていただけませんか?
どっちも同じような所で使われていて、本3冊を読んでみたりしたのですが分かりません


67 :nobodyさん:2009/09/15(火) 20:09:58 ID:???
>>66
query →基本 初心者はこれを使え

prepare/excute → 上級者用
SQLインジェクション対策でこれを使う
はじめのウチは無視してOK

68 :nobodyさん:2009/09/15(火) 20:37:26 ID:???
つうかなんで同じスレで聞かないの?
マルチと言うかは微妙だけどさ

69 :nobodyさん:2009/09/16(水) 10:48:49 ID:???
>>67
そうやって脆弱性のあるプログラムが量産されるわけだな

70 :nobodyさん:2009/09/16(水) 11:04:34 ID:???
と言うか、SELECT以外は全部prepare/execute使えばいいんじゃないの?
俺は良く分かっていないからそうしてるんだけどw

71 :nobodyさん:2009/09/16(水) 11:29:53 ID:???
selectには何で使わないの?
sqlインジェクションの危険は同様にあるぞ

72 :nobodyさん:2009/09/16(水) 12:18:18 ID:???
変なデータ入れられることはないが見られちゃまずいものを見られる危険性があるからな

73 :nobodyさん:2009/09/16(水) 12:20:02 ID:???
>>71
じゃぁもう全部にprepare/execute89を使えばいいの?

74 :nobodyさん:2009/09/16(水) 12:37:36 ID:???
>>72
> 変なデータ入れられることはない
いや、あるだろ。


75 :nobodyさん:2009/09/16(水) 12:37:40 ID:???
>>72
>変なデータ入れられることはないが

「;」をエスケープしなきゃupdateでもdrop tableでもし放題だよ

76 :nobodyさん:2009/09/16(水) 12:41:30 ID:???
>>73
使っときな


77 :nobodyさん:2009/09/16(水) 12:47:21 ID:???
DBを絡めたコードを書いたことない奴が多いスレだな

78 :nobodyさん:2009/09/16(水) 12:50:19 ID:???
初心者歓迎だから当然だな

79 :nobodyさん:2009/09/16(水) 12:57:15 ID:???
select文にどうやってupdateやdropを組み込むの?

80 :nobodyさん:2009/09/16(水) 13:05:30 ID:???
>>79
http://www.thinkit.co.jp/cert/tech/7/5/2.htm
このあたりが参考になる

81 :nobodyさん:2009/09/16(水) 13:42:34 ID:???
ん?SQLインジェクションへの対抗手段としてquoteってあるんだよね?
「'」を無効化できるから
で、それだとコードが冗長になるって言うんでprepare/executeメソッドを使うんだよね?
でもそれでも「;」をエスケープしなきゃ駄目だって事?
じゃぁ対策はどうすればいいの?
他にメソッドとかあるの?

82 :nobodyさん:2009/09/16(水) 13:57:05 ID:???
>>81
レスを順によく読め
;を使ったマルチプルステートメントのリスクは、prepare/executeを使わなかった場合の話だ


83 :nobodyさん:2009/09/16(水) 14:01:53 ID:???
>>81
プリペアドステートメント使っていれば「;」も平気だよ。

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

プリペアドステートメントはそもそもインジェクション対策ではなく
クエリのパースの回数を減らしDB側の負担を軽く(リソース消費量を少なく)させるのが目的。
プレースホルダを使うのでインジェクション対策にも有効というだけ。
冗長だから使うというモノではない。

84 :nobodyさん:2009/09/16(水) 15:07:06 ID:72D7UAj5
phpでテキストを作成してログを出力してるんですが、ログファイルが増えるのはよくないので
出来ればmessagesとかに一緒に出力出来ればと思ってるんですが
権限の問題かmessagesには出すことが出来ませんでした。
ログを出すさいにmessagesなどに出す方法があれば教えてください。

85 :nobodyさん:2009/09/16(水) 15:20:48 ID:???
>>84
1.独自のログに出力させ、そのログをlogrotateでローテートさせる
2.loggerを使う
 例)exec("logger -i -t TEST -p kern.warning 'TEST message from php'");
3.messagesの権限を変える。

好きなの選んで。
俺なら1を選ぶが。

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

> 権限の問題かmessagesには出すことが出来ませんでした。
syslog()を使ってもダメだったってことかな

87 :84:2009/09/16(水) 16:23:03 ID:72D7UAj5
>>85
ログ関係いままで触ったことがなかったからloggerなんてものがあったの知らなかったです
ちょっと調べてみます。

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

messagesだとOKっていうわけじゃないんですが、ログをフォルダ単位(/var/log)でとっているので
散らばるのはよくないかな〜という漠然とした考えでした。


88 :nobodyさん:2009/09/16(水) 16:24:59 ID:???
php.iniのinclude_path= の設定で、
include_path=".;c:/php/includes;C:/php/Pear;"と参考書やネットを見て設定したのですが、
自分のc:/phpフォルダを見ると、includesというフォルダやファイルが見当たりません
コレで大丈夫なのでしょうか?
殆どがこのような設定になっていますが、皆さんのphpフォルダの中にはincludesというファイルやフォルダが入っているのでしょうか?

89 :85:2009/09/16(水) 17:02:10 ID:???
>>87
syslog()なんてあったのか。
ならexecでloggerなんて呼ばないでsyslog()を使った方が良い。

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

で、そこまでやるならやっぱりlogrotateの方が良いと思うぞ

90 :nobodyさん:2009/09/16(水) 18:31:51 ID:???
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コマンドで上記いずれも接続できることは確認しています。
なのでサーバーが起動していないとか、ポートが空いてない、
ユーザー権限・パスワードの設定ミスではありません。

宜しくお願いします。

91 :nobodyさん:2009/09/16(水) 19:26:33 ID:???
MySQLが外から接続できない設定になってる

92 :90:2009/09/16(水) 19:35:53 ID:KVXgimyy
90です。解決しました。
SELinuxが有効になっていて、それがmysqlの接続をブロックしていたためでした。
参考:ttp://www.media.t-kougei.ac.jp/~nagae/?p=2350

ありがとうございました。

93 :nobodyさん:2009/09/16(水) 19:46:58 ID:???
selinuxは無効にするのがデフォって教えてもらわなかったのか?w

94 :nobodyさん:2009/09/17(木) 00:51:33 ID:GtJThGz3
質問させてください。
コンストラクタがいまいちどのタイミングで使うのか理解出来ない
のですが、誰か教えてください。

95 :nobodyさん:2009/09/17(木) 00:59:58 ID:???
>>94
使うも何も、オブジェクトを生成するときに呼び出されるメゾットだよ
主にオブジェクトの初期化を行うことが多い

96 :nobodyさん:2009/09/17(木) 01:05:29 ID:???
>>94
Hogeクラスがあるとする。
このクラスのオブジェクトを作成する場合、

$obj = new Hoge(引数);

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

どのタイミングで使うかを気にしているみたいだが、
コンストラクタを関数として直接呼ぶ必要は無い。

97 :94:2009/09/17(木) 01:29:07 ID:GtJThGz3
>>95
>>96
えと・・・クラスを書いた後、オブジェクトを関数の中に書かなくても
最初に実行されるメソッドって事でいいんですかね?

98 :nobodyさん:2009/09/17(木) 01:46:08 ID:???
>>97
日本語でおk
http://jp2.php.net/manual/ja/language.oop5.decon.php

99 :nobodyさん:2009/09/17(木) 09:11:08 ID:???
PHPってPEARやPDOとかを含めたリファレンスって無いんですか?
もういい加減ネット調べるのもめんどくさくなってきた・・・
本でバッと見た方が早いし
IT後進国の我が県で一番大きな本屋に売ってなかったんですけど、何かいい本ないですか?
アマゾンで買います

100 :nobodyさん:2009/09/17(木) 09:14:33 ID:???
http://jp.php.net/manual/ja/book.pdo.php
http://pear.php.net/manual/ja/package.database.db.php

101 :nobodyさん:2009/09/17(木) 10:54:41 ID:aZjknirC
PHPのリファレンス本とPearのリファレンス本とPDOのリファレンスの3冊買えば解決というより
ネットでサクっと見るほうが効率よさそうな気もするけどな。

102 :nobodyさん:2009/09/17(木) 11:25:54 ID:???
リファレンス程度の事をいちいちブラウザで調べてたら面倒と思うかもしれんな。
IDEならHELP内包してるし、PHPエディタだって関数位ならF1一発で検索できる。

まぁ紙媒体で持っておきたいというのもわかるけどね。


103 :nobodyさん:2009/09/17(木) 11:29:02 ID:???
>>102
してないんじゃね
ネットへのリンクがほとんどだろ

104 :nobodyさん:2009/09/17(木) 11:48:42 ID:???
マニュアル(php_manual_ja.chmとか)をダウンロードしておけば
それを表示っていうのはあるな

105 :nobodyさん:2009/09/17(木) 12:24:55 ID:???
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:\>の後に記述しても受け付けられず、混乱しています

106 :nobodyさん:2009/09/17(木) 12:54:59 ID:???
>>105
phpにパスが通って無いだけじゃないの?

とりあえず、受け付けませんじゃなくて画面に表示されるエラーを記述しなよ
あと「>」の前は書くモノじゃなくて、今いるパスが表示されているだけ。

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

本当ならばココでpear.iniとかテーブルベース上のテーブルに対応したデータアクセスクラスが作成されるはずなのですが・・・
何か表記方法をまちがっているのでしょうか?

108 :107:2009/09/17(木) 13:29:19 ID:???
ちなみに自分は良く分からないので、
cd c:\を書いて、C:\>という風にいつもしています

109 :nobodyさん:2009/09/17(木) 13:38:59 ID:???
>>107-108
実行したコマンドも”全て”コピペして。
createTables.phpを直接実行したら、.phpという拡張子が関連づけされていなければそうなる

ってこれはphp関係無くwindowsの初歩的な事だよ

110 :nobodyさん:2009/09/17(木) 13:51:03 ID:???
>>109さん
C:\>C:\php\PEAR\DB\DataObject\createTables.php "C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap6\myConfig.ini"
と入力しました
.phpの後の「"」の記号は付けたり外したりしました

ごめんなさい、構文の方はまぁ分かるのですが、こういうコマンドプロンプトのようなコンピューターの中の方はからっきしで駄目でして
コマンドプロンプトの弄り方の載ってるサイトを4つほど見たのですが、良く分からなくて・・・


111 :nobodyさん:2009/09/17(木) 14:49:41 ID:???
>>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をつけて実行して。

112 :nobodyさん:2009/09/17(木) 21:11:33 ID:???
>>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時間程かけてしまいました(苦笑)

113 :nobodyさん:2009/09/17(木) 21:15:13 ID:???
>>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"

↑これでいけると思う

114 :nobodyさん:2009/09/17(木) 21:19:28 ID:???
>>113

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

>>113さん、あなたへの感謝の気持ちは一生忘れません。
また、こんな質問にずっと付き合っていただき、まことにありがとうございました
本当に嬉しいし、感謝しています
ありがとうございました!!

115 :nobodyさん:2009/09/18(金) 00:33:31 ID:???
コンストラクタを分かりやすく何かで例えてください
マニュアル読んでもしっくりこない
どなたかお願いします><

116 :nobodyさん:2009/09/18(金) 01:02:03 ID:???
どの辺が分からんの?

117 :nobodyさん:2009/09/18(金) 01:04:31 ID:???
たとえるからわかりにくくなる
インスタンス化(new)したときに一番はじめに呼び出されるメソッド(≒関数)

118 :nobodyさん:2009/09/18(金) 01:12:05 ID:???
そんなのはマニュアルに書いてあるんだからいらないですこの無能><

119 :nobodyさん:2009/09/18(金) 01:22:05 ID:???
言葉の意味がわからないのなら理解するのは無理
あきらめてください

120 :nobodyさん:2009/09/18(金) 09:41:00 ID:???
>>115
う〜ん、基本中の基本だからなぁ・・・
逆に説明するのが難しい
自分はJavaScriptから始めたんだけど、JavaScriptの方がいい説明があったような気がする

121 :nobodyさん:2009/09/18(金) 10:04:25 ID:???
今まで自分で初期化用の関数を用意してたのが最初から用意してくれたのがコンストラクタだよ!
これ以上に簡単にどう説明しろと

122 :nobodyさん:2009/09/18(金) 10:41:10 ID:???
>>121
>>118

123 :nobodyさん:2009/09/18(金) 10:58:11 ID:???
よくわからんから、ガンダムにたとえてくれ

124 :nobodyさん:2009/09/18(金) 11:02:37 ID:???
阿呆はスルーしとけ

125 :nobodyさん:2009/09/18(金) 11:08:07 ID:???
ここまでの池沼は初めて見たな

ガンダムとドムが合体して子供が産まれた、こういう事だよ

126 :nobodyさん:2009/09/18(金) 11:13:39 ID:???
アムロがイッたんだな

127 :nobodyさん:2009/09/18(金) 11:13:45 ID:???
いや違うだろ
アムロがハンバーガーを食べて痛風になったって話だろ?

128 :nobodyさん:2009/09/18(金) 11:17:30 ID:???

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

じゃなかった?

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

JoJoでたとえてくれ

130 :nobodyさん:2009/09/18(金) 11:21:26 ID:???
ストーンオーシャンのジョリーンのオナニーシーンで3回抜いた

131 :nobodyさん:2009/09/18(金) 11:23:15 ID:???
>>129
「ブッ殺す」と心の中で思ったならッ!その時スデに行動は終わっているんだッ!

132 :nobodyさん:2009/09/18(金) 11:23:52 ID:???
  |l、{   j} /,,ィ//|     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  i|:!ヾ、_ノ/ u {:}//ヘ     | あ…ありのまま 今 起こった事を話すぜ!
  |リ u' }  ,ノ _,!V,ハ |     < 『おれはクラスからインスタンスを作成したと
  fト、_{ル{,ィ'eラ , タ人.    |  思ったらいつのまにか初期化されていた』
 ヾ|宀| {´,)⌒`/ |<ヽトiゝ   | 催眠術だとか超スピードだとか
  ヽ iLレ  u' | | ヾlトハ〉.   | そんなチャチなもんじゃあ 断じてねえ
   ハ !ニ⊇ '/:}  V:::::ヽ. │ もっと恐ろしいものの片鱗を味わったぜ…
  /:::丶'T'' /u' __ /:::::::/`ヽ \____________________

133 :nobodyさん:2009/09/18(金) 11:25:15 ID: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で見ても入っていないようです。
上記のコマンドを入力して実行するとちゃんとインストールされるのでコマンドはあっていると思います。
うまくいかない原因があれば教えてもらえないでしょうか。

134 :nobodyさん:2009/09/18(金) 11:25:43 ID:???
>>131-132
なんとなくニュアンスは伝わった。なんとなくだが。

135 :nobodyさん:2009/09/18(金) 11:28:30 ID:???
>>132
ワラタw
お前面白いなw

136 :nobodyさん:2009/09/18(金) 11:29:56 ID:???
アンパンマンで説明してやった方が分かりやすくないか?

137 :nobodyさん:2009/09/18(金) 11:30:24 ID:???
>>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);

138 :nobodyさん:2009/09/18(金) 11:31:17 ID:???
>>133
echo exec('whoami'); のユーザーで rpm使える?

しかし、こんなスレでよく質問する気になるね。

139 :nobodyさん:2009/09/18(金) 11:32:26 ID:???
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
何このスレwwwwwwwwwwwwwwwwwwwwwwwwwwwww

140 :137:2009/09/18(金) 11:33:56 ID:???
確かにrpm -ivhは一般ユーザじゃ普通無理だな

141 :nobodyさん:2009/09/18(金) 11:36:29 ID:???
アンパンマンで例えるならば簡単だ

カビルンルンそのままじゃねぇか!!


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

sudoあたりで権限あげれば出来るのかな。

143 :142:2009/09/18(金) 14:46:04 ID:N3PcKfh3
sudoで
apache ALL=(ALL) ALL
とかやってもダメでした
試しにsudoに
%wheel ALL=(ALL) ALL
を追加して
/etc/groupに
wheel:x:10:root,apache
してみましたがダメでした。
PHPでrpmコマンド叩く事って無理なんでしょうか。

実は商用のものでブラウザ上からrpmファイルを指定して実行するものがあったので
便利だと思いちょっと似たようなの作ってみたかったのですが。

144 :nobodyさん:2009/09/18(金) 14:51:18 ID:???
>>143
シェルから実行できるか確認した?


145 :nobodyさん:2009/09/18(金) 14:54:43 ID:???
googleで php sudo  ってやって出てくるページを10個ぐらい眺めるといいかも。

146 :nobodyさん:2009/09/18(金) 14:56:33 ID:???
>>143
ソースは?
ちゃんとsudoのパスワード渡してる?

147 :nobodyさん:2009/09/18(金) 15:05:27 ID:???
どうも須藤です

148 :143:2009/09/18(金) 15:38:45 ID: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にしているのでパスは聞かれないような気もしますが。


149 :nobodyさん:2009/09/18(金) 16:32:23 ID:???
ふと思ったのですが、IPv6のクライアントから繋いできた時
$_SERVER['REMOTE_ADDR']の値ってどんな風になりますか?

150 :nobodyさん:2009/09/19(土) 06:59:45 ID:???
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つ目の結果が想定してたものと違うというのが
このバグレポートでのお話

151 :nobodyさん:2009/09/19(土) 16:30:15 ID:???
失礼致します。

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

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

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

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

変数にHTMLのタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?


152 :nobodyさん:2009/09/19(土) 16:55:34 ID:???
>>151
お前何カ所に書き込んでいるんだよ?
webサービス作ってて、マルチポストが嫌われる事も知らんとはね

153 :nobodyさん:2009/09/21(月) 18:54:50 ID:???
get って大文字で書かないとダメなんだね。

154 :nobodyさん:2009/09/21(月) 21:38:33 ID:???
今、SQLite3を使っていますが、MySQLを使おうと思っています
この場合、SQLiteはアンインストールしたり、php.iniにてsqlite部をコメントアウトしたりした方がいいのでしょうか?


155 :nobodyさん:2009/09/21(月) 21:41:27 ID:???
少しでも余計なリソースを削除したいなら、消してもいいけど
普通はそんな事しなくて平気

156 :nobodyさん:2009/09/22(火) 15:23:45 ID: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 とすると *.** " と表示されて"が入ってきます。
これはどこから入ってくるんでしょうか?

157 :nobodyさん:2009/09/22(火) 18:34:19 ID:???
一応PHPの学習は終わったのですが、まだ全然使いこなせていません
基礎を習得したくらいなので、今後実践的な事を書いていきたいのですが、学習に役立つサンプルのあるいいサイトありませんでしょうか?
自分でも探しているのですが、例えばクライアントサイドの場合はFireBug等で勉強出来ましたが、流石にサーバサイドは無理だと思いまして


158 :nobodyさん:2009/09/22(火) 19:04:03 ID:???
フリースクリプトが星の数ほど公開されてるじゃん
掲示板なりアクセス解析なりショッピングカーとなり好きなの見てみればいいんじゃない

159 :nobodyさん:2009/09/22(火) 19:46:01 ID:rnxaS1Zp
大角本やいろんなPHPの本を読むのがいいと思うよ。
むろんサイトも参考になると思うが、ソースがきたないのもあるし


160 :nobodyさん:2009/09/22(火) 22:57:28 ID:???
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は上書きされないのでしょうか?
自分にはちょっと分かりませんでしたので質問させていただきました


161 :nobodyさん:2009/09/23(水) 00:27:15 ID:???
されるでしょ

162 :160:2009/09/23(水) 00:55:25 ID:???
ですよね?
では、上書きされるのであれば、下から2行は何の為に記述しているのでしょうか?
DB_DataObjectクラスの変数$optionsの部分だけを$config['DB_DataObject']で書き換えているという意味なのでしょうか?
ちなみに、PEAR::DB_DataObjectのサンプルコードの一部です


163 :nobodyさん:2009/09/23(水) 01:00:05 ID:???
どこに書いてあるの?

164 :160:2009/09/23(水) 01:07:20 ID:???
独習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 />');
}
?>

165 :nobodyさん:2009/09/23(水) 01:18:24 ID:???
試しに省いてみたら?

166 :nobodyさん:2009/09/23(水) 01:48:40 ID:???
まず試してみるのは大切だよね

167 :164:2009/09/23(水) 13:59:59 ID:???
$options文を一方ずつ省いてみましたが、
Fatal error: Call to undefined method DB_DataObject_Error::selectAdd() in C:\Program Files\〜
となってエラーが出ました
う〜ん、コレはどうなっているのでしょうか?
何故オーバーライドされているのにどちらとも作用しているのでしょうか???


168 :nobodyさん:2009/09/23(水) 14:21:23 ID:???
エラー文に書いてるじゃないか

169 :164:2009/09/23(水) 14:50:44 ID:???
えぇ、6行目のselectAdd()が定義されないというのはエラー文から分かりました
このselectAdd()で取得カラムをクリアするのは分かります
しかし何故オーバーライドしないと作用しないのかが自分には分かりません

$a = ’aaa’;
$a = 2;
で$aをprint出力すると2と出ると思いますが、このaaaと2はオーバーライドされた後も互いにまだ影響はあるのでしょうか?

オーバーライドされているのであれば、上書き前のものは別に必要ないのかと思っていたのですが・・・・・・

ごめんなさい、エラー文の意味が分かっていないかもしれません
どういうことなのでしょうか?


170 :nobodyさん:2009/09/23(水) 15:46:57 ID:???
もしかしたら3行目はクラスをロードしてるだけとかね

171 :164:2009/09/23(水) 16:04:21 ID:kQ5zUYAt
3行目が、コール元のクラス名DB_DataObjectの中の変数$optionsを取得しているというのは分かります
で、それをこの構文内の$optionsに代入していると

もしselectAdd()がこの文の後にあり、で、4行目の$optionsの文がその後にあるというのならば何となく分かるのですが、3行目の後すぐに4行目で$optionsに別の値を代入しているという事がサッパリ理解できません
例えば、
$a = ’aaa’;
print $a;
$a = 2;
print $a;
は分かりますが、
$a = ’aaa’;
$a = 2;
print $a;
は何の為に1行目を書く必要があるのかという風な疑問です
しかも質問のコードはこの1行目がなければ作動する事がないというので更に訳がわかりません

3行目でクラスをロードしてすぐに別の式で上書き代入した場合は、ロードはそのまま作用するのでしょうか?
このサンプルコードの上4行がDB_DataObjectを利用する場合、定型的な記述だと思っておけと書かれているので分からないままでは実践で使えないだろうなと思いこだわっているのですが・・・苦笑


172 :164:2009/09/23(水) 16:17:08 ID:???
http://pear.php.net/manual/ja/package.database.db-dataobject.intro-configuration.php

PEARマニュアルの「デフォルトオプションの設定」にも同じような$optionsが書かれていました
自分には即座にオーバーライドしているように見えます

173 :nobodyさん:2009/09/23(水) 16:22:15 ID:???
$a =& $c;
$a = 2;
print $a;
print $c;
は、分かりますか?

174 :164:2009/09/23(水) 16:32:10 ID:???
分かりました、ありがとうございました
単純なところで迷っていたみたいですね、お恥ずかしい限りです・・・

175 :nobodyさん:2009/09/23(水) 16:37:42 ID:???
例では$cに当たる部分がメソッドだから意味が違うよ

176 :nobodyさん:2009/09/23(水) 16:42:04 ID:???
ex)
class myClass {
 function setValue( $set)
 {
 $foo = &PEAR::getStaticProperty('myClass', "foo");
 $foo = $set;
 }
 function view()
 {
  print PEAR::getStaticProperty('myClass', "foo");
 }
}
myClass::setValue('value = foo');
myClass::view();


177 :nobodyさん:2009/09/23(水) 17:36:20 ID:???
>>175
あっ、ほんとですね
メソッドの場合は意味が違うのですか?
失礼ですが、意味の違いが分かりません

>>176
すみません、初心者なのでいまいち分からなかったのですが、文をそのまま実行したら、
3行目がParse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Filesとなりました

>>176のコードは、まずmyClassというクラスを定義し、中身はsetValueとviewという2つの関数を内包
setValue関数はまずmyClassというクラスからfooという変数を取得、次にsetValue関数の引数$setを$fooに代入
view関数はそのままprint()
で、メソッド呼び出しという考えでいいのでしょうか?
('value = foo')は$setにfooを代入

で、上の方でも書いている問題点なのですが、自分がこうじゃないのかなぁと思ったのは、
$foo = &の文でコピーした変数fooと$foo = の下の文は独立して・・・ってアレ?
どっちとも同じ式に・・・???

ごめんなさい、やっぱ分かりません




178 :nobodyさん:2009/09/23(水) 18:05:26 ID:???
エラーは全角スペースかな。


getStaticPropertyが返してるのは参照なので、 'myClass'と"foo"という文字列で参照できるようにした変数の参照を返してるんだと
思います。  実際どうなってるのかは知らないけど、たとえば
$foo = &$proparty["myClass"]["foo"];    みたいな感じで。
なので、 $foo = $set;  は
$proparty["myClass"]["foo"] = $set; をしてることになりますよね。

179 :nobodyさん:2009/09/23(水) 18:07:13 ID:???
そうすることに何の意味があるの?

180 :164:2009/09/23(水) 18:16:35 ID:???
つまり、>>164の場合は、
$optionsという変数がオーバーライドされているわけではなく、
PEAR::getStaticProperty('DB_DataObject','options') = $config['DB_DataObject']
と代入しているという事でしょうか?
となると変数$optionsというものは意味が無く、形だけのものだという事なのでしょうか?
それがメソッド時の「&」の意味だと言うのならば分かります

>>176の例では
PEAR::getStaticProperty('myClass', "foo") = $setという意味で、PEAR::getStaticProperty('myClass', "foo")がオーバーライドされて消えたのではないと言う意味になるのですね





181 :nobodyさん:2009/09/23(水) 18:31:13 ID:???
173が分かるなら、それ以上のことではないよ。難しく考えすぎじゃない?

182 :nobodyさん:2009/09/23(水) 18:39:17 ID:???
一種の決まり文句とかおまじないのようなものと思っておけばいいと思う。

ソースのコメントに、
// おまじない
だの
// ↓消すと何故か動かなくなる
だのが書かれてるコードはたまに上がってくるしな。

183 :nobodyさん:2009/09/23(水) 20:53:59 ID:???
PHPって曜日も把握してるの?


たとえば、
2009/09/23

って入れたら、

「その日は水曜日」

ってわかる?

184 :nobodyさん:2009/09/23(水) 21:03:36 ID:???
umu

185 :nobodyさん:2009/09/23(水) 21:06:43 ID:???
>>184
すごいね。
もしかして、2000年分くらい
全部記憶してるの?

186 :nobodyさん:2009/09/23(水) 21:08:23 ID:???
umu

187 :nobodyさん:2009/09/23(水) 21:16:22 ID:???
計算で出るだろ

188 :nobodyさん:2009/09/23(水) 22:18:05 ID:???
strtotime() と date() だろ

189 :nobodyさん:2009/09/23(水) 23:05:30 ID:???
arrayの内容を、
一個づつ取ってきて、
画面に表示する、
ってプログラム、
forとforeachではできたんだけど、
こんどwhileでやってみるかな?って思ったんだけど、
どうやって組むかな?

190 :nobodyさん:2009/09/23(水) 23:06:28 ID:???
<?php

$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";


for($i=0;$i<=3;$i++){
print $banban[$i] . "<br>";
}
?>


-------------------------------------

↑これがforのバージョン。

191 :nobodyさん:2009/09/23(水) 23:07:15 ID:???
<?php

$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";
$banban[] = "PHP";


foreach($banban as $aaa){
print $aaa;
print "<br>";

}


?>
------------------------------------------

↑これがforeachのバージョン。

192 :nobodyさん:2009/09/23(水) 23:14:21 ID:???
君の見てるサイトの配列のページに書いてあるじゃないか

193 :nobodyさん:2009/09/23(水) 23:32:42 ID:???
print_r じゃダメなの?????

194 :nobodyさん:2009/09/24(木) 00:18:42 ID:???
>>190
<?php

$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";

for($i=0;$i<array_count_values($banban);$i++){
print $banban[$i] . "<br>";
}
?>


195 :nobodyさん:2009/09/24(木) 00:26:16 ID:???
<?php

$banban[] = "HTML";
$banban[] = "XHTML";
$banban[] = "XML";
$banban[] = "CSS";

array_walk($banban, create_function( '$v','print $v."<br>";' ));
?>

196 :nobodyさん:2009/09/24(木) 00:37:53 ID:???
reset($banban);
while ($val = each($banban)) {
print $val[1] . "<br>";
}

197 :nobodyさん:2009/09/24(木) 09:14:12 ID:???
すみません、上の質問読ませて頂きました
読んでいて自分も疑問に思ったので調べてみたのですが、>>176のような『&』の事を何と呼ぶのでしょうか?
ネットで調べても、&だけでは色々とあって自分では辿り着きませんでした
何か、何とか演算子とか名前があると調べやすいと思ったものですから


198 :nobodyさん:2009/09/24(木) 09:32:16 ID:???
リファレンス演算子

199 :nobodyさん:2009/09/24(木) 11:46:01 ID:???
create_functionってあまり推奨されてないよね

200 :nobodyさん:2009/09/24(木) 11:47:06 ID:???
そりゃ無名関数があるしな

201 :nobodyさん:2009/09/24(木) 12:17:44 ID:???
リファレンス演算子 で出てこないッス・・・orz

202 :nobodyさん:2009/09/24(木) 12:19:14 ID:???
http://gooddays1.blog37.fc2.com/blog-entry-110.html
あるじゃん

203 :nobodyさん:2009/09/24(木) 15:48:25 ID:???
よく色んなサイト(例えばココ http://www.phpbook.jp/install/phpini/index2.html)
や本でphp.iniの中で、include_path=".;c:/php/includes;"とありますが、自分のPHPフォルダ内にはincludesというフォルダもファイルも存在していません
で、上記のようにphp.iniを設定していますが、意味が無いように思えます
コレは自分で勝手にincludesというフォルダを作ればいいのでしょうか?
それとも、その中に何か必要な(or重要な)ファイルとか入っているのでしょうか?
どうすればいいのでしょうか?


204 :203:2009/09/24(木) 15:50:47 ID:???
PHPのバージョンは5.210です

205 :nobodyさん:2009/09/24(木) 15:53:46 ID:???
>>203
インクルードパスっていうのは、php本体ではなく、phpの拡張パーツが入るディレクトリの場所。
なので拡張パーツが特になければ、 include ディレクトリはなくていい。

必要になったら、設定ファイルのその箇所に書いたディレクトリを作ればいい。

206 :nobodyさん:2009/09/25(金) 00:54:56 ID:???
アルバイトや派遣でPHP経験者の希望が多いみたいなんで
PHP経験者になりたいのですが
どんなwebアプリケーションを作れば
PHP経験者として採用されるレベルになれますか?


207 :nobodyさん:2009/09/25(金) 01:02:08 ID:???
>>206
たぶん、経験者を募集している企業の本音は、
「業務で携わったことがある」ことが条件だと思う。
とりあえず、
・サイト画面から入力ができる
・データベースと連携できる
・W3Cチェックを通るHTMLでそれらができる
・環境を作れる(PHPやDBの設定など)
というところは押さえておいたほうがいいかも

208 :nobodyさん:2009/09/25(金) 01:02:18 ID:???
実務経験がないのを経験者とは言わない

209 :nobodyさん:2009/09/25(金) 09:10:13 ID:???
>>207の書き込みから未経験者が回答してることは分かった
経験とはそういう事は言わないんだよ

210 :nobodyさん:2009/09/25(金) 09:36:06 ID:???
>>209
質問者のためにもなるから正答と思えるものを書いたほうがいいよ。

レス批判しあってもしょうがないし

211 :nobodyさん:2009/09/25(金) 09:46:18 ID:???
>>209
どういうことを言うの?

212 :nobodyさん:2009/09/25(金) 09:56:56 ID:???
>>210
批判というより初心者の回答者を正してるだけなのにな



求人での経験ってのは業務で作業したことがある経験の事で趣味での経験ではない
>>207が書いてあるのは経験ではなくてただのスキル

213 :nobodyさん:2009/09/25(金) 10:03:27 ID:???
企業募集の経験者ってのは業務経験者のことだよ。
そうじゃないところはわざわざ経験者とは書かないで、
初心者歓迎や独学でやってる人歓迎みたいな風に書いてあるでしょ。
経験者になりたいのならアルバイトでも経験者になるので、
初心者でアルバイト募集してるとこで下積みするといいよ。
もしかしたらそこから正社員登用されるかもしれないし。

214 :nobodyさん:2009/09/25(金) 10:14:56 ID:???
仕事したことない奴が仁王立ち気分でキーボードかちゃかちゃして回答してるんだなwこのスレ

215 :nobodyさん:2009/09/25(金) 10:16:17 ID:???
お前みたいのよりは幾分まし

216 :nobodyさん:2009/09/25(金) 10:24:20 ID:???
>>215


217 :nobodyさん:2009/09/25(金) 10:28:14 ID:???
>>216


218 :nobodyさん:2009/09/25(金) 12:35:09 ID:???
PHPでCGIゲームとか、
WEBゲームとか
ブラウザゲームとか作ってみれば?

あれは基本が全部つまっている。

219 :nobodyさん:2009/09/25(金) 14:57:24 ID:???
PHPでサーバー内のディレクト名を変更する事って出来るのでしょうか?
数百のディレクトリ名を法則にそって変更しないといけないので、手作業でやるにはちょっと時間がかかるので・・・。


220 :nobodyさん:2009/09/25(金) 15:05:23 ID:???
>>219
やったことないから知らないけど
http://jp.php.net/manual/ja/ref.filesystem.php
この中に該当する関数がなさそうなら
exec関数とかを使ってコマンドで操作するしかないんじゃないかな

221 :nobodyさん:2009/09/25(金) 15:34:35 ID:???
普通にrename()でいいんじゃないか?


222 :nobodyさん:2009/09/25(金) 17:18:49 ID:JtFu9Epk
$dir_file = opendir( './' );
while( $file_name = readdir( $dir_file ) ){
echo "$file_name";
}
closedir( $dir_file );

とやっても何も表示されないんですが何か間違ってますか?

223 :nobodyさん:2009/09/25(金) 17:25:53 ID:???
>>222
公式マニュアルに正しいディレクトリの取得方法のコードが載ってるの見た?

224 :222:2009/09/25(金) 17:28:40 ID:JtFu9Epk
>>223
すいません。
ttp://php.benscom.com/manual/ja/function.readdir.php
ですかね。
試しにコピペで
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
貼り付けてみましたが何も表示されませんでした。

225 :nobodyさん:2009/09/25(金) 17:30:18 ID:???
何もファイルが無いんでね?

226 :222:2009/09/25(金) 17:41:49 ID:JtFu9Epk
いや・・・ファイルは10個くらい置いてるんですが・・・
opendir.php <- このファイルに224のスクリプトを書いてます
index.php
test.php
up.php
こんな感じで10個ほどあります。一応権限も777にしてみましたがダメでした。

227 :nobodyさん:2009/09/25(金) 17:50:19 ID:???
じゃエラー表示しない設定にしてたら表示するようにするとか

228 :226:2009/09/25(金) 18:10:44 ID:JtFu9Epk
>>227
すいません。
特に何もしてないのでエラー表示の設定などはしてないです。
どのようにすれば出るようになるのでしょうか・・・

229 :nobodyさん:2009/09/25(金) 18:15:40 ID:???
じゃ変数の値や関数の返り値を各行で確認してみるとか・・・

230 :nobodyさん:2009/09/25(金) 18:18:23 ID:???
セーフモードおふにしてみろ

231 :226:2009/09/25(金) 18:29:18 ID:JtFu9Epk
>>229
試しに
echo "1hoge";
if ($handle = opendir('.')) {
echo "2hoge";
while (false !== ($file = readdir($handle))) {
echo "3hoge";
echo "$file\n";
}
echo "4hoge";
closedir($handle);
}
echo "5hoge";
こういうの書いてみたら1hogeと5hogeのみ表示されました・・・

>>230
php.iniのsafe_modeですよね?Offとなっておりました。

ますます意味が分からない・・・

232 :nobodyさん:2009/09/25(金) 18:35:16 ID:???
いやそれは止まってる場所を調べる方法であって値を調べているわけではないぞ・・・

>path が有効なディレクトリでないかまたは権限が 制限されているかファイルシステムのエラーによりディレクトリが
>オープンできない場合、opendir() は FALSE を返し、 E_WARNING エラーが発行されます。 opendir()
>のこのエラー出力は、 関数名の前に '@' を付けることにより抑制できます。

カレントディレクトリがオープンできない理由てのは俺には分からん。
warningエラー出てるんじゃないの?
var_dump(ini_get('display_errors'));
var_dump(ini_get('error_reporting'));
を実行した際の結果は?

233 :nobodyさん:2009/09/25(金) 18:45:08 ID:???
検索ワードが見つからない場合に、not found的な表示をしたいです。
SQLで検索ワード見つからない場合にnot foundを表示する事自体は分かったので
すが、
それ以降のHTMLの表記を中止する事は可能ですか?

<?php

if ( ○○==0 ) {
echo "not found";
}
?>

<font>TEST</font>
これ以降下にズラ〜〜っとHTMLが続くのですが、それを途中で止めて
not foundだけをページに表示するにはどうすれば良いでしょうか。

234 :nobodyさん:2009/09/25(金) 18:47:16 ID:???
exit

235 :226:2009/09/25(金) 18:47:21 ID:JtFu9Epk
>>232
馬鹿な勘違いしててすいませんでした。
実行した結果は
tring(0) "" string(4) "2047"
となっておりました。

236 :nobodyさん:2009/09/25(金) 18:48:31 ID:???
>>233
exit;
すればいいんじゃね。

237 :nobodyさん:2009/09/25(金) 18:48:53 ID:???
>>233
<?php

if ( ○○==0 ) {
echo "not found";
} else {
?>
<font>TEST</font>

ズラ〜〜っと

<?
}
?>

</html>

238 :nobodyさん:2009/09/25(金) 18:52:04 ID:???
>>235
display_errorsが0ってことはエラーが表示されてない設定になってると思うお
php.iniを書き換えればいいお

239 :226:2009/09/25(金) 19:08:16 ID:JtFu9Epk
>>238
くだらない質問につきあっていただきありがとうございます。
php.iniを
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
に変更してみましたが、変化は見られませんでした。
変更するところ間違ってるのかな。よく分からなくなってきた。

240 :nobodyさん:2009/09/25(金) 19:12:18 ID:???
>>237
きめえ

241 :nobodyさん:2009/09/25(金) 19:22:17 ID:???
>>239
apache再起動はしたかお?

242 :226:2009/09/25(金) 19:32:14 ID:JtFu9Epk
>>241
2回ほど再起動しました。
う〜ん・・・

243 :226:2009/09/25(金) 19:34:04 ID:JtFu9Epk
>>241
すいません。
一応サーバごと再起動してみたらうまいこといきました。
ログを見るとどうやらapache様が挙動不審になってたようです。
設定を修正して見れるようになりました。
Webは普通に動いてたのでピンポイントでおかしくなってたようです。
こんなくだらない事にながながとつきあっていただき本当にありがとうございました。


244 :sage:2009/09/25(金) 20:36:02 ID:???
古いファイルを判定して削除したいんですが、なにぶん初心者なもので良い方法を思いつきません。
date("Ymd H:i:s.", filemtime($file))
をwihleで回して更新日を取得する事が出来るようにはなったのですが
これをどのようにすればよいのでしょうか?
ヒントをいただけないでしょうか


245 :nobodyさん:2009/09/25(金) 20:38:26 ID:???
現在の時間とファイルの作成時間の差を取る
その差が、削除したい差以上であれば、削除

てな感じでよくない?

246 :nobodyさん:2009/09/25(金) 20:40:26 ID:???
古いファイルの判定基準が曖昧だな
更新日って一度そのファイルが作成されたら更新はもうされないの?

とりあえず3ヶ月更新なかったものを削除とすると
取得した更新日と現在日時の差で90日分あいていたら
そのファイルにたいしてunlinkかけるとかでいいんでない?

247 :sage:2009/09/25(金) 20:43:14 ID:???
例えば5個ファイルがあったとして新しい3つのファイルを手元に残して
残りの2個は削除したいという意味です。
説明不足申し訳ない。

248 :nobodyさん:2009/09/25(金) 20:44:07 ID:???
更新日時でソートして上から3つのファイル名に対して削除かける

てな感じでよくない?

249 :nobodyさん:2009/09/25(金) 20:59:34 ID:???
>>247
ファイルを作成するときに同時にファイル名を記録するtxtを用意して
それをもとにして削除しな

250 :sage:2009/09/25(金) 21:18:20 ID:???
>>248->>249
while (false !== ($file = readdir($dir))) {
$filetaime[] = date("Ymd H:i:s.", filemtime($file));
$filetime[] = sort($filetime);

unlink($file[$i]);

というのを思いついたのですが、ファイル名と時間が連動してないですね。
きっとアホなことしてると思われてるんでしょうけど、複数の変数を連動させるような事はできますか?

251 :nobodyさん:2009/09/25(金) 21:26:04 ID:???
全部取ってからでないとソートできないっしょが?

252 :249:2009/09/25(金) 21:41:52 ID:???
$new_file = "hoge.txt"; //新しいファイル名
touch($new_file); //新しいファイルを作成する
file_put_contents("log.txt", $new_file."\n", FILE_APPEND | LOCK_EX); //新しいファイル名をログファイル(log.txt)に追記
$list = file("log.txt"); //ログを配列に読む
$tmp_log = ""; //新しいログ
for ($i = count($list) - 1; $i >= 0; $i--) { //後ろから回す
 if ($i > 5) {
  unlink($list[$i]); //ファイル削除
 } else {
  $tmp_log .= $list[$i]."\n";
 }
}
file_put_contents("log.txt", $tmp_log, LOCK_EX);

動作確認もしてないし細かいとこが違ってるかもしれんけど
イメージとしてはこんなかんじのことをいった

253 :252:2009/09/25(金) 21:48:57 ID:???
追記の仕様を勘違いしてた&for文とif文の条件がめちゃくちゃだったw
眠くて頭が回らない・・・

254 :nobodyさん:2009/09/25(金) 21:49:56 ID:???
途中で送信してしまった
252は忘れてちょうだい・・・

255 :nobodyさん:2009/09/25(金) 23:10:04 ID:???
ISBNコード 書名 価格 出版社
0-0000-0001-2 ガリの穴 25,000円 山田のおばさん

コレをあなたのデータベースに登録してみて下さい

256 :nobodyさん:2009/09/25(金) 23:22:36 ID:???
したよ

257 :nobodyさん:2009/09/25(金) 23:26:38 ID:xPOnPJfW
いつもログファイルに書き込みするときは
fopenしてLOCK_EXしてfputsで書いてLOCK_UNしてfloseしてるんだけど
やっぱりfile_put_contents1行で書いたほうがいいものなんかね?

258 :nobodyさん:2009/09/25(金) 23:45:05 ID:???
いいって何が?

259 :nobodyさん:2009/09/25(金) 23:45:29 ID:???
>>255
俺もしたけど、まさかコレをデータベース登録したおかげでこの俺に彼女が出来る事になったとは・・・

260 :nobodyさん:2009/09/25(金) 23:46:22 ID:???
>>257
ロックされないじゃん

261 :sage:2009/09/26(土) 00:07:25 ID:???
>>260
file_put_contentsでもパイプでLOCK_EXすればいいんじゃないの?
file_put_contents($file, "hogehoge", FILE_APPEND | LOCK_EX);
こんな感じ。

262 :nobodyさん:2009/09/26(土) 00:21:08 ID:???
パイプて

263 :sage:2009/09/26(土) 00:24:43 ID:???
これはロックされているのか?

264 :nobodyさん:2009/09/26(土) 00:39:16 ID:???
>>261
> FILE_APPEND | LOCK_EX
これは有効なのか?

マニュアルを見ると、

フラグを組み合わせる際には、論理 OR (|) 演算子で連結します。
FILE_APPENDはLOCK_EX と同時には使用できません。

と読めるのだが...。

「追記はアトミックに行われるためロックは不要」とあるので、
FILE_APPENDの指定だけでログ追記するのに問題はなさそうではあるが。


265 :sage:2009/09/26(土) 00:50:03 ID:???
横からで悪いがロックしなくても同時書き込みが発生しても大丈夫ということか?

266 :nobodyさん:2009/09/26(土) 01:35:35 ID:???
>>265
アトミック(=不可分の)とあるので、一連の操作が邪魔されることがないということなんだろうね。
マニュアルを信じるならば。

古い版のマニュアルでは、
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
という例が載っているが、
http://bugs.php.net/bug.php?id=49329
で修正されたようだ。


267 :sage:2009/09/26(土) 01:40:05 ID:???
マニュアルを信じるならfopenでわざわざLOCKとか使わなくても
file_put_contentsの1行で済むというわけか。

268 :nobodyさん:2009/09/26(土) 01:42:11 ID:???
FILE_APPENDの場合についてはそのように読めるな。

269 :nobodyさん:2009/09/26(土) 05:54:34 ID:???
php でバッチやるならタイムアウトにならないように注意ね

270 :nobodyさん:2009/09/26(土) 17:49:56 ID:???
PHPでは、
配列ってシングルクオート入れないと、
正式にはダメみたいだね。

271 :nobodyさん:2009/09/26(土) 18:27:03 ID:???
配列に入れる?
正式?

272 :nobodyさん:2009/09/26(土) 18:36:08 ID:???
anArray['keyString'] の話か?

273 :nobodyさん:2009/09/26(土) 18:45:59 ID:???
>>272
それそれ

シングルクオート抜いたら、
Noticeが出やがる。

274 :nobodyさん:2009/09/26(土) 19:13:58 ID:???
何を今更感てんこもりだな・・・

275 :nobodyさん:2009/09/26(土) 19:41:50 ID:???
つ$anArray[1]

276 :nobodyさん:2009/09/26(土) 19:47:01 ID:???
>>275
数字だったら、Noticeが出ないってこと?

277 :nobodyさん:2009/09/26(土) 19:48:22 ID:???
つ$anArray[$key]

278 :nobodyさん:2009/09/26(土) 19:51:12 ID:???
define('keyString', 'manuke'); とかあったらバグの元だろうに

279 :nobodyさん:2009/09/26(土) 20:05:45 ID:???
>>277
変数でもNoticeが出ないってこと?

280 :nobodyさん:2009/09/27(日) 00:01:22 ID:???
$anArray[keyString]
定数keyStringを先に探して、なければ文字列'keyString'とみなす。
クオートで囲わなくても動くかもしれないが、それはたまたまだってこと。

>>278はこれを説明している


$anArray[1]
1番の要素。
1は番号であって文字列ではないのでクオートで囲わない。


これで判るかい?

281 :nobodyさん:2009/09/27(日) 00:05:28 ID:???
2番目の要素だよ

282 :nobodyさん:2009/09/27(日) 00:07:26 ID:???
>>281
2番目とは限らないし、そもそも「1番目」ではなく「1番」と書いているだろ
ちゃんと読め

283 :nobodyさん:2009/09/27(日) 00:27:37 ID:???
http://ja.wiktionary.org/wiki/%e7%95%aa
意義
1. 順序だてたものの中で順序が到来すること。

284 :282:2009/09/27(日) 00:55:21 ID:???
ん?
1番と書いてるんだから最初の要素のつもりだろ、っていう意味かな?
背番号1番=1番目の打者ではない、という説明で判ってもらえるだろうか

285 :nobodyさん:2009/09/27(日) 00:58:56 ID:???
もっと具体的に説明した方がいいと思うよ。
ほのめかすような書き方だと2chでは攻撃されたと思う人が多いから。

286 :233:2009/09/27(日) 02:01:49 ID:???
>>234
>>236
お礼遅れて申し訳ありません。
解決しました!ありがとうございます!

287 :nobodyさん:2009/09/27(日) 02:44:45 ID:???
PHPの配列は、数値であっても番号と言うよりただのキーだから、
何番目というのはあまり意味が無い。

$ar[2]=2 ;
$ar[0]=0 ;
$ar[1]=1 ;
print_r($ar) ;

結果

Array
(
[2] => 2
[0] => 0
[1] => 1
)


288 :nobodyさん:2009/09/27(日) 02:57:34 ID:???
ただのキーだから「何番」というのもおかしい

289 :nobodyさん:2009/09/27(日) 08:28:17 ID:???
>>288
foreach の出力の順とかあるでしょ

290 :nobodyさん:2009/09/27(日) 08:57:46 ID:???
foreachの順番は配列の内部順番。  配列のソート関数はソレを並び替えるもの。 

291 :nobodyさん:2009/09/27(日) 11:03:35 ID:???
>>288
別におかしくないだろ


292 :nobodyさん:2009/09/27(日) 12:17:21 ID:???
ん?どういうこと?
順序が関係ないって上で言ってるのに矛盾してるぞ?

293 :nobodyさん:2009/09/27(日) 12:59:06 ID:???
>>292
背番号の説明で理解できなかったか?


294 :nobodyさん:2009/09/27(日) 13:06:15 ID:???
>>289>>290でしてる順番の話と背番号の話がどう関連?

295 :nobodyさん:2009/09/27(日) 15:07:31 ID:???
>>294
あー、それは俺が書いたんじゃないから知らん。

ID表示ないんだからアンカー付けてくれよ。


296 :nobodyさん:2009/09/27(日) 19:31:27 ID:???
勉強しようと思って参考書買って来たけど
外れ引いたっぽ・・・orz

297 :nobodyさん:2009/09/27(日) 19:38:36 ID:???
アマゾンで書評がついていない本は
買わないほうがいい

298 :nobodyさん:2009/09/27(日) 19:40:51 ID:???
外れだと理解できるだけの勉強はできたってことだろう

299 :sage:2009/09/28(月) 10:47:22 ID:???
$file=fopen($filename, "a");
flock($file, LOCK_EX);
fputs($file, $hoge."\n");
flock($file, LOCK_UN);
fclose($file);
こういうの使い回してるんですが、これってもっとシンプルには出来ないでしょうか?

300 :nobodyさん:2009/09/28(月) 11:33:09 ID:???
どういう意味でシンプルといってるのかがわからんが
コードを単に短くしたいのならfile_put_contents()使えばいい
file_existsやis_readableなどチェック機構を組み込んだ関数を作るのもよい

301 :sage:2009/09/28(月) 11:37:10 ID:???
上にも出てるけどfile_put_contentsでもロックされてるっぽいから
いちいちfopenとかfcloseしなくてもfile_put_contentsで充分なんじゃないかな

302 :nobodyさん:2009/09/28(月) 11:46:48 ID:???
>>301
されてるっぽいとかあいまいな回答なんていらねえんだよ
しっかり検証してから回答してね

303 :sage:2009/09/28(月) 11:52:15 ID:???
じゃあLOCKされてるから大丈夫と書けばそのまま信じるのかな

304 :nobodyさん:2009/09/28(月) 11:56:28 ID:???
検証するためにデッドロックがおきえる環境を意図的に作るほうが難しい

305 :sage:2009/09/28(月) 12:11:34 ID:???
いまどきのサーバーやPCで同時書き込みとかが発生するくらいの処理数ってかなりのもんだと思う。
負荷ツールで負荷かけてもデッドロックが起きる前に別の問題で落ちそうだし
そういう環境作るのってけっこう難しいな


306 :nobodyさん:2009/09/28(月) 12:15:08 ID:???
>>304
abじゃないようのjava製のソフト使えばできます

307 :sage:2009/09/28(月) 18:54:01 ID:???
hoge.txtテキストの中身をクリアにしたいとき
touch("hoge.txt")
とするのはアリですか?
なにか他にクリア方法が思いつかないのですが、代替案とか普通はこうするだろってのがあったら教えてください。

308 :nobodyさん:2009/09/28(月) 19:00:13 ID:???
truncate?

309 :sage:2009/09/28(月) 19:17:12 ID:???
file_put_contents($file , "")
でもクリア出来るんじゃね?

310 :sage:2009/09/28(月) 21:28:13 ID:???
mktimeでファイルの更新日を比較したりしてるんですが、これは扱える数字の限界とかありますか?
2000年問題みたいに扱える桁数の制限から使えなくなったり変な値を返したりすることが出てくるでしょうか?

311 :nobodyさん:2009/09/28(月) 22:39:08 ID:???
>>310
環境は?

2038年問題で検索してみて。

312 :nobodyさん:2009/09/28(月) 23:54:52 ID:???
>>310
どうせそこまで同じコード書いてないから心配する必要ないよ

313 :sage:2009/09/29(火) 07:46:18 ID:???
>>310
環境はCentOS5.3のPHPは5.1.6です。
検索してみましたが30年近く先の話なので気にしなくてもよさそうですね

>>312
確かに気にしなくてもよさそうです

314 :nobodyさん:2009/09/29(火) 10:10:17 ID:???
>>313
まぁそんなにシビアなシステムでないならいいんだが

「2038年にコード使って無いから関係無い」というのは間違い

日付の計算した時に2038年1月19日を超えたらおかしくなる。
2004年にATMで誤動作をおこしたのもコレ(内部で2倍にしていたため)
だからコーディングの仕方、運用の仕方では今すぐ起こる問題。

例えば、開始日・終了日などを設ける場合に、
「終了日は(事実上無期限で)決まってないから3000年にしとけ」とかした場合に
当日が終了日を超えているかどうかチェックしたりするとおかしくなる。

頭の片隅にでも2038年の事は入れておいた方が良いよ

315 :nobodyさん:2009/09/29(火) 10:56:12 ID:???
2038年になってりゃパソコン側でも改良してるから間違いではないな

316 :sage:2009/09/29(火) 11:30:05 ID:???
その頃にはおれ定年でもういね〜よ

317 :314:2009/09/29(火) 11:35:18 ID:???
なんだよ釣りかよ、マジメに回答した俺が馬鹿だった。

318 :nobodyさん:2009/09/29(火) 11:36:40 ID:???
たいして参考にならないから気にしなくてもいいよ

319 :sage:2009/09/29(火) 11:46:08 ID:???
あれって2039年になるとどういう値を返すわけ?

320 :nobodyさん:2009/09/29(火) 11:47:19 ID:???
>>317
他スレでも2038年については何度も話題になってるんだよ

毎度、2038年まで後30年もあるから問題無いっていう本質を理解できていない馬鹿がでてくる

321 :sage:2009/09/29(火) 11:53:11 ID:???
>>319
0とかになるんじゃないの?
と適当に言ってみる。

322 :nobodyさん:2009/09/29(火) 11:53:56 ID:???
何この自演

323 :nobodyさん:2009/09/29(火) 11:59:56 ID:???
>>319=321
お前は何をやってるんだw
wikipediaのアニメーションgifでも眺めてろよ

http://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C

324 :nobodyさん:2009/09/29(火) 12:29:04 ID:???
ぶっちゃけそこまでレス汚すほどの問題でもない
解決策もあるし既に過去スレで回答もでてる

http://phpspot.org/blog/archives/2007/02/php2038.html

325 :nobodyさん:2009/09/29(火) 12:33:47 ID:???
年月日だけなのか時分秒まで含めるのかで変わってくるな。

>>321
CentOS使ってるなら64bit版使えば気にしなくていい

326 :nobodyさん:2009/09/29(火) 13:17:25 ID:???
PearなんかじゃなくてPHPのDatetimeオブジェクト使いなよ
http://www.php.net/manual/ja/book.datetime.php

327 :nobodyさん:2009/09/29(火) 13:22:14 ID:???
Datetimeは5.3以降じゃないとつかえないのが辛い

328 :nobodyさん:2009/09/29(火) 13:24:04 ID:???
え?5.2だよ

329 :nobodyさん:2009/09/29(火) 13:34:13 ID:???
>>328
失礼!
RHEL5がphp5.1.6なので、それで使えないのが辛い

330 :nobodyさん:2009/09/29(火) 13:36:12 ID:???
自分で入れればいいのに

331 :nobodyさん:2009/09/29(火) 13:59:42 ID:???
>>330
サポート受けられなくなる

332 :nobodyさん:2009/09/29(火) 14:00:30 ID:???
サポート受けてるのか

333 :nobodyさん:2009/09/29(火) 14:11:50 ID:???
>>332
ちゃんと書くと、
RHELをH/Wベンダ経由で800ライセンス買っている
redhatのサポートもH/Wベンダ経由で受けているが、
redhat networkで落とせるパッケージ以外のモノを入れるとサポートが受けられなくなる。

うちは大部分がjavaのシステムだけど、一部phpを使ってる(余談だがpythonも使ってる)
そのphpのためにサポートで揉めるのは勘弁。

スレ汚しスマンかった。

334 :nobodyさん:2009/09/29(火) 14:19:54 ID:???
PHPカンファレンスではPHP5.2使っている人が一番多かった記憶がある。
OSバンドルは5.1みたいなので、みな自分でインストールしてるって事かな?

335 :nobodyさん:2009/09/29(火) 14:25:29 ID:yA+gFAaj
CSVを読み込んで 列順序を変更した上で表示したいです。

項目例の1行目を非表示(2行目からのデータ部分のみ)にして表示したいのですが

どのように記載すればよいのでしょうか?

for( $i=0 ; $i<count( $data ) ; $i++ ) {
print "$shop[$i],$priceA[$i],価格:$priceB[$i] $place[$i]<br>\n";
}

現在の表示部分はこのような感じです。
初心者な質問ですが
ご教授お願いいたします。

336 :nobodyさん:2009/09/29(火) 14:30:25 ID:???
linux使う奴でPHPを自分で入れない奴なんているのか

337 :nobodyさん:2009/09/29(火) 14:45:34 ID:???
>>335
良く分からんが
$i=1
にしてみてはどうだろう

338 :nobodyさん:2009/09/29(火) 14:48:22 ID:???
>>335
csv読込み部のソースは?
$shopとか$priceAに既に格納されているなら$i=1で

>>336
昔はソースから入れていたけど、最近はyumで済ませてる。

339 :nobodyさん:2009/09/29(火) 14:53:59 ID:???
初期設定にもよるがサーバ設定ならパッケージに最初から入ってるんじゃね
ふるいのがだけど
最新のはソースからビルドしないといかんから
ちょっといじってみよう程度にはじめたにわかUnix使いだとちょっと大変かもな

340 :nobodyさん:2009/09/29(火) 15:39:59 ID:???
初めまして。
プログラミング初心者の学生です。

今のアルバイト先で自分が関わっているパッケージでは、
各ファイルのPHPコードが膨大な自家製ライブラリを、そのページで
使う、使わない関わらず全てインクルードしてしまっています。
このおかげでパフォーマンス(特にメモリ周り)が残念なことになっています。

なんとかしてPHPコード中の不要なrequireを取り除きたい
(そのファイルのPHPコードが参照していないインクルードを取り除きたい)
のですが、自動的にPHPコード間の依存関係を解決して、
参照していないrequireファイルをリストしてくれるようなツールはないでしょうか?

もし無いようであれば、自分で簡単なツールを作ってしまおうと思うのですが、
プログラミング初心者でもカスタマイズしやすいPHPパーサーはありませんか?

なければ言語処理研究室の人にyaccの使い方を教えてもらうので
PHPのBNFを教えてください。

341 :nobodyさん:2009/09/29(火) 17:26:26 ID:???
>>340
難しい事に挑戦するんだね、がんばって
http://www.php.net/manual/ja/book.tokenizer.php を使ってもいいし
BNF周りを知りたければソース一式チェックアウトしてre2c/bison用ファイル
Zend/zend_language_parser.y
Zend/zend_language_scanner.l
を読んだらいいんじゃないかな

最適化はいいんだけど、動的言語で参照していない事を証明するのは大変そうね
eval('require_once "foo.php";'); とか
require_once true ? 'foo.php' : 'bar.php'; とか意味解析するの?面倒そう
オートローダを使用するよう書き換えたほうがよかったりしてね

342 :340:2009/09/29(火) 17:56:16 ID:???
>>340
tokenizerで字句解析はできるのですね。
現状のソースをみる限り、完全な構文解析は必要ないし、
http://sourceforge.jp/projects/sfnet_phpparser/
を参考に、簡易パーサーを作ろうかなあ・・・

>BNF周り
PHPは文脈自由文法じゃないぽいですね。
死ぬかもorz

>require_once true ? 'foo.php' : 'bar.php';
>eval('require_once "foo.php";'); とか
うわあああああああああああああああ
 !イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ
 `!  !/レi' (◯),  、(◯) レ'i ノ
 ,'  ノ   !'"   ,rェェェ、  "' i .レ


真面目に作ったら余裕で卒研になりそうだ・・・orz

343 :nobodyさん:2009/09/29(火) 18:38:14 ID:bssRjC3K
>342
1.hoge.phpでのrequireしてるものは確かdebug的なものでだせたはず
2.hoge.phpでのメソッド呼び出ししてる箇所から必要なライブラリを検索して一覧を作成
3.1−2で無駄なもの一覧作成完了

でいいんじゃないの?
動的関数は面倒ぽいが・・・そんなに難しくないと思う

344 :nobodyさん:2009/09/30(水) 00:32:55 ID:???
よろしくお願いします。

IMAPサーバーにあるメールをGmailにコピーしたくて次のようにしました。

$overview_list = imap_fetch_overview($src, "1:{$srcs->Nmsgs}", 0);
foreach ($overview_list as $overview) {
$head = imap_fetchheader($src, $overview->msgno);
$body = imap_body($src, $overview->msgno);
imap_append($dst, "{" . $DST['host'] . ":993/imap/ssl}INBOX", $head.$body);
}

メールそのものは追加されるのですが,Gmail側では,
メールの送信日時が,コピーされた日時になってしまいます。

元メールの送信日時を反映させるにはどのようにすればうまく行くでしょうか。


345 :nobodyさん:2009/09/30(水) 00:35:19 ID:BlvWBTQC
よろしくお願いします。

IMAPサーバーにあるメールをGmailにコピーしたくて次のようにしました。

$overview_list = imap_fetch_overview($src, "1:{$srcs->Nmsgs}", 0);
foreach ($overview_list as $overview) {
$head = imap_fetchheader($src, $overview->msgno);
$body = imap_body($src, $overview->msgno);
imap_append($dst, "{" . $DST['host'] . ":993/imap/ssl}INBOX", $head.$body);
}

メールそのものは追加されるのですが,Gmail側では,
メールの送信日時が,コピーされた日時になってしまいます。

元メールの送信日時を反映させるにはどのようにすればうまく行くでしょうか。

346 :nobodyさん:2009/09/30(水) 10:57:57 ID:7ZBUopvT
foreach($data as $hoge1){
echo $hoge1 . "<br>";
}
ってやると
最初の1個目はちゃんと出るけど2個目以降は先頭にArray〜って出る。
なぜ?何か間違ってる?

347 :nobodyさん:2009/09/30(水) 11:07:17 ID:???
var_dump($data);

348 :nobodyさん:2009/09/30(水) 11:09:54 ID:???
2個目以降に配列が入ってるからだろ

349 :346:2009/09/30(水) 11:10:20 ID:7ZBUopvT
>>347
array(24) { [0]=> string(5) "hoge1" [1]=> string(5) "hoge2" [2]=> string(5) "hoge3"
こんな感じで24個入れてます


350 :nobodyさん:2009/09/30(水) 11:14:51 ID:???
その変数でその結果はありえない。
可能性があるとしたら隠してる部分。

351 :346:2009/09/30(水) 11:25:12 ID:7ZBUopvT
>>350
hoge24まで書いたほうがよかったでしょうか?
変数自体は
$data[] = $data . "hoge$i" . "\n";
で入れてます。

352 :nobodyさん:2009/09/30(水) 11:26:36 ID:???
>$data[] = $data . "hoge$i" . "\n";

>array(24) { [0]=> string(5) "hoge1" [1]=> string(5) "hoge2" [2]=> string(5) "hoge3"
にならんでしょ。
先頭に$data付いてるもの。


353 :nobodyさん:2009/09/30(水) 11:28:28 ID:???
http://php.s3.to/bbs/bbs7.php
これ設置したんだけど、メールに添付する画像によって、
「更新」押すと結果が反映されず、
メールサーバから当該のメールが削除されることがある。
画像リサイズしてPCからメール送信すると反映されたりする。
何が原因か分かりますか?

354 :nobodyさん:2009/09/30(水) 11:28:30 ID:???
>>351
小出しにしないで関連する部分のソース全て示して

355 :346:2009/09/30(水) 11:28:42 ID:7ZBUopvT
>>352
すいません。
var_dump貼り付けてるだけなんでそのままコピペしてるんですが
本当は違うものがvar_dumpされてないといけないってことなんですよね?

356 :nobodyさん:2009/09/30(水) 11:30:02 ID:???
>>353
エラーログにはなんて出てる?

リサイズしてって事は、memory_limitとか超えてない?

357 :nobodyさん:2009/09/30(水) 11:31:32 ID:???
>>355
もう一度確認するけどvar_dumpだとArrayが付いてなくてforeachだとArrayが付くの?

358 :nobodyさん:2009/09/30(水) 11:39:25 ID:???
>>356
すみません、エラーログがどこ見れば良いか分からなかったのですが、
よく調べたらconfig.phpに「最大添付量」という項目があり、
100kbで制限されていたようです。ここを変えたら無事投稿できました。

お騒がせしました。

359 :nobodyさん:2009/09/30(水) 11:52:22 ID:sh5fr2N4
mb系のmail関数でメール送信は不具合があると言われました
mail()で送信するのが正しいと言われたのですが
mail()でのメール送信の正しい書き方を教えてください


360 :nobodyさん:2009/09/30(水) 11:55:53 ID:???
>>359
どんな不具合があるの?

361 :nobodyさん:2009/09/30(水) 11:57:55 ID:???
>>360
お前知らないなら出てこなくていいよ

362 :nobodyさん:2009/09/30(水) 12:01:17 ID:???
>>361
知らないから聞いてるんだけど?
ここ初心者歓迎の質問スレでしょ?

363 :nobodyさん:2009/09/30(水) 12:04:02 ID:???
素直にmb_send_mail使っとけ、問題無いから

364 :nobodyさん:2009/09/30(水) 12:10:49 ID:???
>>361=>>362
質問はIDだせ

>>363
無知乙

365 :nobodyさん:2009/09/30(水) 12:15:13 ID:???
RFC違反はmb_send_mail使うだけじゃ解決しない話か?
だったら自前でエンコードしとけって話だな。

366 :nobodyさん:2009/09/30(水) 12:27:38 ID:???
>>364
>質問はIDだせ

勝手なルール作るなよ

367 :nobodyさん:2009/09/30(水) 12:43:06 ID:???
mb_send_mailは環境によって文字化けするからおすすめできないなあ
そんなのも知らないのかなここの自称回答者ってのは

368 :nobodyさん:2009/09/30(水) 12:44:05 ID:???
>>365
それ具体的にRFCの何に違反する話ですか?

bug報告が見あたらないんですが、devにも流れてませんよね?

369 :nobodyさん:2009/09/30(水) 12:53:49 ID:???
>>367
文字化けするからmb_send_mail使わないって理由は無いな
適切にエンコード指定すればいいだけだろ?

370 :nobodyさん:2009/09/30(水) 12:53:52 ID:???
>bug報告が見あたらないんですが、devにも流れてませんよね?
違反しないと思うなら無批判に使っとけばいいんじゃね?

371 :nobodyさん:2009/09/30(水) 12:54:49 ID:???
>>369
何言ってんの?お前ググって濃いよ

372 :nobodyさん:2009/09/30(水) 12:54:53 ID:???
>>370
そんな意地悪ゆうなよ><

373 :369:2009/09/30(水) 13:12:00 ID:???
>>371
俺が悪かった。
たぶんホッテントリ入りしてるblogの事を言ってると思うが、
はてブで俺もコメントしてるのにすっかり忘れてた。

また文字化けごときでぐだぐだ言ってると思い脊髄反射してしまった。

374 :nobodyさん:2009/09/30(水) 13:26:24 ID:???
結局、RFCは関係なかったみたいですね、安心しました。

375 :nobodyさん:2009/09/30(水) 13:34:12 ID:???
すみません

PEARなんて時代遅れのモノを使うなと言われたのですが
PEARを使う事に問題ってあるのでしょうか??
今後、PEARは衰退していくのでしょうか??

自分で作るよりは、PEARのpdoとか使う方が良いと思うのですが…

376 :nobodyさん:2009/09/30(水) 13:38:39 ID:???
>>375
ZF とか、他フレームワークを使え、ということだよ

377 :nobodyさん:2009/09/30(水) 13:50:00 ID:???
>>376
ありがとうございます。

開発現場ではSymfonyも使っているのですが
うまく言えませんが、ちょっとした画面を作るのにいくつもディレクトリ・ファイルが存在する事になり
一言で大げさだなという印象を持ちました。

小規模の開発の場合もフレームワークを使っていくのが普通なのでしょうか?

そうなるとPEARまさに用無し(洋梨)という事ですね!

378 :nobodyさん:2009/09/30(水) 13:50:03 ID:???
PDOはPECLだろ
ようするにそういうことだ
低速なPEARより高速なPECLに置き換わってるということ
なんでPECLが高速なのかはぐぐればすぐにわかるのでぐぐってくれ
クラスライブラリの話なのでフレームワークの話をしてるやつはスルーで

379 :nobodyさん:2009/09/30(水) 13:57:14 ID:???
>>378
あぁそうでした、pdoはPECLでしたすみません。
PEARはphpで書かれ、PECLはC言語で書かれているのでPECLの方が速度が速いという認識です。

あと言葉足らずでした。
具体的には、ちょっとした管理画面をPEARのHTML_QuickFormを使って作ったら
PEARなんて時代遅れの〜と言われてしまいました…

380 :nobodyさん:2009/09/30(水) 14:03:58 ID:???
>PEARなんて時代遅れの〜
PECLがPEARのモジュールすべてを置き換え可能なものなら
そういう言い様もあるのかもしれんが・・・

381 :nobodyさん:2009/09/30(水) 14:06:06 ID:???
それより「人権擁護法」という危険な法律を知っているかい?

「差別を取り締まる」強力な権限「人権委員会」という組織を設置する法律です。
人権委員会が差別と認定したら、一般人はもちろん警察官も罰せられます。
おそらく「差別を受ける側」の在日朝鮮人や部落解放同盟が人権委員になります。
そうなると警察は朝鮮人を事件の容疑者にすることができなくなります。
容疑者が「俺が朝鮮人だから疑うのか!」と人権委員会に訴えれば、
差別と認定される可能性が高く、警察官が処罰されます。
レイプ事件の容疑者が「俺が朝鮮人だから拒否したのか!」と訴えれば、
被害者の女性が処罰される可能性もあります。
人権委員会の権限は非常に強固あり「簡単に悪用」できる非常に危険な法律です。

しかし民主党は、この危険な法律を「こっそり成立」させようとしています。
その背景には「朝鮮人は差別されて可哀相な人種。日本人は差別する悪い人種。」という
偏った考えがあります。
すなわち「日本は悪い国」という、いわゆる「反日思想」です。
日本人が日本を嫌いになるのは異常なことですが、現実には大勢います。
反日思想の日本人を作り出したのは「日教組」です。
日教組は戦後GHQの指導で設立されましたが、当時の共産党員と在日朝鮮人が運営にあたりました。
彼らはごく自然に日本の教育現場に反日思想を持ち込みました。
戦後70年近く日本人に反日教育をやり続けた結果、多くの反日思想の日本を作り出しました。。
今では「日本人が日本を嫌い」を異常と感じないほど洗脳が進んでいます。

朝日新聞やNHKや電通など主要なマスコミも反日団体です。
小泉安倍政権が北朝鮮に対して否定的な政策を打ち出して以降、
反日団体である「民主党」に政権を取らせるべく世論の誘導に本腰を入れました。
サブプライム問題に端を発する世界的な不況と重なり、自民党は支持率を落とし、
遂に反日団体「民主党」が政権を取りました。
民主党が進めようとしている反日政策は他にもたくさんあります。
・在日外国人に日本の参政権を与えるのもそのひとつ。
・受給者の7割以上が在日朝鮮人と言われている生活保護を手厚くするのもそのひとつ。
日本は働かないで日本に寄生する朝鮮人の楽園になります。

382 :nobodyさん:2009/09/30(水) 14:08:03 ID:???
HTML_QuickFormの場合多くの人はそんなもの使わないで
htmlに直接フォームを記述して自分でバリデーションロジックもかいてるからじゃない?
その部分に関してはバリデーション機能豊富なフレームワークつかえというのもあながち間違ってないな

383 :nobodyさん:2009/09/30(水) 14:50:11 ID:???
PEARのすべてのモジュールが時代遅れなんてことはない
そういう意味で時代遅れというならそいつはアンチかマジキチ

384 :nobodyさん:2009/09/30(水) 14:54:01 ID:???
そういう意味でアンチとかマジキチというならそいつはアンチかマジキチ

385 :nobodyさん:2009/09/30(水) 14:57:18 ID:???
みなさんありがとうございます。

適材適所って事ですね。

386 :nobodyさん:2009/09/30(水) 22:47:29 ID:???
>>383
どういうのが時代遅れじゃないの?

387 :nobodyさん:2009/09/30(水) 23:09:52 ID:yTlYrHgD
test.php
<?
include("test.conf");
$ans = $a + $b;
echo $ans;
?>
test.conf
$a = "10";
$b = "20";
だと実行結果は
$a = "10"; $b = "20"; 0
ですがtest.conf内を<?php ?>で囲えば意図した結果が返ります。
include先がPHPである必要があるけどファイルの拡張子などは別のものでもよいという考えで大丈夫?

388 :nobodyさん:2009/09/30(水) 23:15:31 ID:???
>>387
http://jp2.php.net/manual/ja/function.include.php

389 :387:2009/09/30(水) 23:37:49 ID:yTlYrHgD
>>388
こちらの説明には
読み込むファイル中のPHPコードとして実行する必要がある コードは、 有効なPHPの開始タグおよび終了タグで括る必要があります
とあるのでやはり拡張子はphpでなくても良いという判断で大丈夫なようです。
ありがとうございました。

390 :sage:2009/10/01(木) 11:29:37 ID:???
header("hoge: test");
これを指定の場所に送りたいのですがどういった関数を使えば指定の場所へヘッダーを送信できますか?

391 :nobodyさん:2009/10/01(木) 13:41:50 ID:???
>>390
出力するページのヘッダをいじる関数だからよそのページにヘッダを送出することはできない

392 :390:2009/10/01(木) 13:46:22 ID:???
>>391
なるほど。
そうなると他の関数を使わないといけないという事でしょうか。
それともPHPではヘッダーを任意の場所に飛ばすという事自体無理なのでしょうか。
引き続き調べてますがなかなかそれらしいのがみつからない状態です。

393 :nobodyさん:2009/10/01(木) 14:03:52 ID:???
WebProxyなんかがあるのを考えるとできるはず
ただやろうと思ったことがないのでやり方はわからないなぁ

394 :nobodyさん:2009/10/01(木) 14:06:23 ID:???
>>392
何がやりたいのかよくわからんが
他サイトにhttpヘッダ飛ばしたいならcURLでできる

PHP: cURL - Manual
http://www.php.net/manual/ja/book.curl.php

395 :nobodyさん:2009/10/01(木) 15:36:28 ID:???
>>391
おまえいいかげんにしろよ

396 :nobodyさん:2009/10/01(木) 17:33:27 ID:???
>>390
さっぱり意味がわからなくて、みんな良く回答してるなと関心します。
指定の場所 とは何でしょう。
あなたのいうヘッダというものが送られる先はサーバー?ブラウザ?
で、どうなってほしいんでしょうか。

397 :390:2009/10/01(木) 17:42:45 ID:???
みなさん大変失礼いたしました。
header("hoge: test");
というヘッダーを特定のサーバー(例:192.168.1.1)に送信したいと思ってます。
ヘッダを受け取ったサーバーはその内容をひたすら記録していくというものです。


398 :nobodyさん:2009/10/01(木) 17:47:04 ID:???
>>397
>>394

399 :nobodyさん:2009/10/01(木) 19:48:07 ID:???
意味不明すぎるけど、要はHTTPリクエストヘッダを送りたいってことか。

そもそもそれってheader()できるのか?
普通にPEAR:HTTP_Requestでも使って好きにヘッダ追加すりゃ5分も
かからないだろうに

400 :nobodyさん:2009/10/01(木) 20:59:14 ID:???
header関数でHTTPリクエスト送ろうとする人初めて見た

401 :nobodyさん:2009/10/02(金) 13:18:06 ID:???
HTTPリクエストって、

「おまえんとこのページ見せて〜〜」


って、firefoxから、WEBサーバーに送る手紙?

402 :nobodyさん:2009/10/02(金) 13:25:52 ID:???
そうじゃね?
PHPでブラウザのようなものを再現するのかと思った

403 :nobodyさん:2009/10/02(金) 14:03:39 ID:???
https://sourceforge.jp/ticket/browse.php?group_id=1&tid=18432

これってどういうこと?
バイトカウントって何?

404 :nobodyさん:2009/10/02(金) 16:10:04 ID:Zilzfd9c
つまりはCSRFをやりたいってことか?

405 :nobodyさん:2009/10/04(日) 05:56:16 ID:???
phpで2chのbbsmenu(http://menu.2ch.net/bbsmenu.html)から、
掲示板のリンクと名前を抜き出すものを作りたいです。どのように書くべきでしょうか?
正規表現を使って書こうとしましたが挫折しています。

406 :nobodyさん:2009/10/04(日) 06:44:05 ID:???
>>405
こういうのは大抵誰かやってるのでぐぐるほうが早い

http://smilejapan.net/wiki/index.php?%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%AB%E3%81%A8%E6%9D%BF%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E5%8F%96%E5%BE%97


407 :nobodyさん:2009/10/04(日) 06:47:46 ID:???
>>406
助かります・。ありがとうございます。

408 :nobodyさん:2009/10/04(日) 16:25:22 ID:???
PHPって横に長くなる傾向があるんで、
モニターは横長の買ったほうがいいよね?

409 :nobodyさん:2009/10/04(日) 16:49:38 ID:???
横に長くなるコーディングをしてる貴様の書き方に問題大有りだろ
PHPの性にするな池沼が

410 :nobodyさん:2009/10/04(日) 17:18:51 ID:???
でも正方形に近いモニターだと、
コードの右端が切れて見えなくなるよね?

411 :nobodyさん:2009/10/04(日) 17:26:10 ID:???
14.1インチ使ってますけど見えますね

412 :nobodyさん:2009/10/04(日) 17:59:22 ID:???
改行しても問題ないだろばかー。

413 :nobodyさん:2009/10/04(日) 18:40:48 ID:WZQEMB6D
imageconvolutionでのシャープ化についての質問です
使い方が分からずググったら、こういう感じで設定すれば良いとあり
   $matrix = array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1));
   imageconvolution($img, $matrix, 8, 0);
実際シャープはかかったのですが、もう少し弱くかけたいのです

それで値を変更してみると真っ黒になってしまいます
どのように調整すればよいのでしょうか?

414 :nobodyさん:2009/10/04(日) 20:55:02 ID:???
フレームワーク勉強しようと思ってるんだけど、最初にやるには何がいいですか?
Zendとかcakeとかいう名前は知っているのですが、何を、また何からやればいいのか分かりません
好きなものをやれというのは勘弁してください

415 :nobodyさん:2009/10/04(日) 20:58:40 ID:???
Zendでおk

416 :nobodyさん:2009/10/04(日) 21:06:42 ID:???
初心者はcakePHPから勉強しろ
その次にpear
その次にsmarty

417 :nobodyさん:2009/10/04(日) 21:09:43 ID:???
楽になるための苦労は別にいいが、特に楽になってない気がする

418 :414:2009/10/04(日) 21:34:11 ID:???
zendとcakeは一緒に使うことは出来ないんですよね?
何かzendの方がcakeよりも難しそうですが、自分の作りたいようなフレームワークを使いたい場合はzendの方がいいような事を聞きました
将来的な事を考えるとzendの方がいいように思えますが、cakeの決められたレール(ルール)だけで特にPHPで不都合を感じないというのであればcakeでもいいように思います

>>416
一応基本的なことはですが、PEARとSmartyは学習しました
その後に学ぶフレームワークという場合は、やはりcakeの方がいいのでしょうか?

419 :nobodyさん:2009/10/04(日) 21:42:47 ID:???
>>418
zendのほうがいい

420 :414:2009/10/04(日) 21:56:24 ID:???
分かりました、zendにします

421 :nobodyさん:2009/10/04(日) 22:07:55 ID:???
>>417
このレスはどれに対して言ってるの?
言ってる意味も分からないんだけど・・・

422 :nobodyさん:2009/10/04(日) 22:58:53 ID:???
(フレームワークを利用することで)楽になるための苦労(勉強)・・・
(実際使ってみるといろいろ段取りが必要なこともあって)特に楽になってない



423 :nobodyさん:2009/10/04(日) 23:08:31 ID:???
>>422
まぁ、それはそうかもね
それに、PHP学習してもまた各フレームワークの記述方法に慣れないといけないとかあるし
Smartyもそうだけど
例えばforeachにしても書き方が少し変わるとか

で、>>422はフレームワークは使ってないの?


424 :nobodyさん:2009/10/04(日) 23:16:25 ID:???
前もforeachが違いすぎてどうのと言ってた人か?
あんなのドキュメント見れば初見でも3分で理解できるレベルだろ

425 :nobodyさん:2009/10/04(日) 23:19:11 ID:???
>>424
何の事だ???
知らんけれど、俺はただ最初にSmartyで出てきたのがforeachだったから記憶にあっただけで
別に他の構文述べても良かったんだけど


426 :nobodyさん:2009/10/04(日) 23:41:57 ID:???
cakePHPやれよ!!!!!!!!!!!!!

427 :nobodyさん:2009/10/04(日) 23:58:04 ID:???
確かにフレームワークで一番人気はcakePHPだけど・・・
symfonyは日本では人気が無いからまぁ別としても、Zendではなくcakeをそこまで強調する理由は?

428 :nobodyさん:2009/10/05(月) 07:33:37 ID:???
ググったんですが、よくわからないのですが、n12br()という関数は使えないんでしょうか?
Fatal error: Call to undefined function n12br() in E:\xampplite\htdocs\guestbook.php on line 100

*で囲った下のような書き換えをネット上で見かけたので、その下のecho文を
書き換えてみましたが、どうもうまくいきません。

***********
.n12br($row['body']).
以下に書き換える。
.12br(htmlspecialchars($row['body'],ENT_QUOTES)).
*************

echo "<p>" . n12br($row["g_mes"]) . "</p>";
echo "<p>" . 12br(htmlspecialchars($row['g_mes'],ENT_QUOTES)) . "</p>";

結果>Parse error: parse error, expecting `','' or `';'' in E:\xampplite\htdocs\guestbook.php on line 101

429 :nobodyさん:2009/10/05(月) 09:09:03 ID:???
nl2br

430 :nobodyさん:2009/10/05(月) 10:33:56 ID:???
n12brでぐぐったら、間違えた話ばっかりだったが。

431 :nobodyさん:2009/10/05(月) 10:43:01 ID:???
打ち間違いならしょうがないと思うが
n12brで覚えてる人はfunction名がなぜその名前なのか考えないのかな?

432 :nobodyさん:2009/10/05(月) 11:50:16 ID:???
つられすぎだろ

433 :nobodyさん:2009/10/05(月) 13:29:28 ID:???
参考書のフォントは見にくいからn12brなのかnL2brなのか混合しちゃったよ

434 :nobodyさん:2009/10/05(月) 14:11:14 ID:???
セッションファイルの置き場所を知る方法について質問です。
session.save_path の値が設定されていない(=空文字列)の場合、session_save_path() も空文字列を返すようですが、
そのような場合はセッションファイルを置く場所というのはどうやって決まるのでしょうか。

435 :nobodyさん:2009/10/05(月) 14:42:18 ID:???
OSのtmpディレクトリ

436 :nobodyさん:2009/10/05(月) 14:52:54 ID:???
>>435
ありがとうございます。もう少し詳しく教えていただけないでしょうか。
現在、session.save_pathは未設定、環境変数$TMPDIRも未設定の状態で、
セッションファイルが /var/tmp に格納されます。
この /var/tmp という値はどうやって決まったのでしょうか。

なおPHP5.2.10です。

437 :nobodyさん:2009/10/05(月) 15:04:26 ID:???
>>436
OSの種類は?

438 :nobodyさん:2009/10/05(月) 15:36:27 ID:???
>>437
Mac と Linux です。

で、PHPのソースコードを追ったところ、

ext/session/session.c の php_session_initialize() で PS(mod)->s_open() を呼んでいる。
けどこれは関数ポインタで、その実体はデフォルトでは ext/session/mod_files.c の PS_OPEN_FUNC() であり、
その中で php_get_temporary_directory() を呼んでいる。
そして main/php_open_temporary_file.c の php_get_temporary_directory() で、環境変数 TMPDIR があればそれを使い、なければ P_tmpdir を使っている。
この P_tmpdir は stdio.h で定義されており、
grep P_tmpdir /usr/include/stdio.h すると
#define P_tmpdir "/var/tmp/"


となりました。
P_tmpdir なんていうのがあるんですねー。知りませんでした。
しかしこれだと、PHPレベルではデフォルトのセッションファイル保存ディレクトリが取得できないということですよね。困りました。


439 :nobodyさん:2009/10/05(月) 16:13:27 ID:???
>>436
仕様です

440 :nobodyさん:2009/10/05(月) 16:14:17 ID:???
未定義=OSのデフォルト

仕様です

441 :nobodyさん:2009/10/05(月) 16:27:49 ID:???
>>438
なぜそのような事がしたいのですか?

442 :nobodyさん:2009/10/05(月) 17:21:45 ID:???
>>441
434ですでに書いている。
セッションファイルの保存場所が知りたいけど、session_save_path() が空文字列で困っているという状況。

443 :nobodyさん:2009/10/05(月) 17:31:29 ID:???
>>442
ごめんなさい。
なぜ「セッションファイルの保存場所が知りたい」のかを知りたかったのです。

返答によっては問題解決のために違ったアプローチの仕方もあるかもしれないと思いまして。

444 :nobodyさん:2009/10/05(月) 17:32:06 ID:???
バグなのかなぁ。
$_ENV['tmp'] を使っている気配。

445 :nobodyさん:2009/10/05(月) 17:33:35 ID:???
>>444
ソース追ってないけど、バグじゃなくて>>438って事じゃないの?

446 :nobodyさん:2009/10/05(月) 17:45:27 ID:???
>>438
更にphp_get_temporary_directoryでgrepしてみなよ
sys_get_temp_dir()がまんま呼んでるだろ
今のところは実装依存という条件付きでやっつけて、
php.internalsにクレクレしておくといい

447 :nobodyさん:2009/10/05(月) 18:12:15 ID:???
>>438
仕様なのだからと回答したのにスルーかよ


448 :nobodyさん:2009/10/05(月) 18:45:01 ID:???
>>431
なーんも考えないで
ただ丸暗記してるだけの人って多いよ。

449 :nobodyさん:2009/10/05(月) 18:47:52 ID:???
ただ丸暗記の方が覚えるの大変だと思うけどなぁ

450 :nobodyさん:2009/10/05(月) 18:49:31 ID:???
>>447
仕様がどうなっているかを聞いているのに「仕様です」と回答してどうするwww

451 :nobodyさん:2009/10/05(月) 18:51:36 ID:???
>>449
生まれ持った能力配分が、

暗記力 ■■■■■■■■■■■■■■■
思考力 ■

↑こーんな人も実際いるから、
そういう人は暗記だけでゴリ押ししちゃう。

452 :nobodyさん:2009/10/05(月) 19:32:19 ID:???
>>428です。
>>429-431
ありがとうございました。
さっき、本を見てて気づきました。
Σ(´゚д゚`)・・・!?ハッ

453 :nobodyさん:2009/10/05(月) 19:33:38 ID:???
やっぱxamppユーザはゆとりだなぁ

454 :nobodyさん:2009/10/05(月) 20:01:18 ID:???
>>450=質問者か?
未定義の場合はOSデフォルトで決められたディレクトリになるんだよ

これで2回も回答したよ?

455 :nobodyさん:2009/10/05(月) 20:30:53 ID:???
未定義の場合の挙動についてはどこにも書いてないし
実装が仕様ですと強弁したとしても
どう実装されているかを答えらてない
もう質問者は自分で答え>>438見つけちゃったようだし
対策も>>446で出てるんだから黙っとけ

456 :nobodyさん:2009/10/05(月) 20:38:12 ID:???
伝統的に/tmpや/var/tmpは一定時間アクセスの
無いファイルが消えるようになってるから。
といえば良かったのだろうか?

457 :nobodyさん:2009/10/05(月) 22:11:49 ID:???
>>455=質問者態度がでかいな

458 :nobodyさん:2009/10/05(月) 22:27:49 ID:???
アホな回答者には態度がでかくなっても問題ないさ

459 :nobodyさん:2009/10/05(月) 23:04:12 ID:???
>>455
どう実装されたかなんてソース見ろとしかいいようがない

460 :nobodyさん:2009/10/05(月) 23:59:23 ID:???
まだやってんのかw
>>434は過程を聞いてるんでしょ
Q. どう決めているのですか?
A. ソース読め
ならいいが、OSのテンポラリ君は結果だけ言って
答えたつもりになってるからスルーされたんじゃね
回答する事は良いことだが
何を聞かれているか理解できないのを質問者のせいにするのは良くねぇなぁ

461 :nobodyさん:2009/10/06(火) 08:50:50 ID:???
質問者ひつこいなw

462 :nobodyさん:2009/10/06(火) 09:51:03 ID:T6gAVcs1
OpenSSLで暗号化してあるファイルを復号化しているのですが
復号化のパスをPHPにそのまま書いております。復号化するには必ずパスが
必要になりますが、こういったものを保持するにあたって少しでも安全性の高い
保持方法というのはありますでしょうか?

463 :nobodyさん:2009/10/06(火) 11:02:04 ID:???
>>460=質問者は他人に何かを伝える事を、表に出て体験してくるように。

464 :nobodyさん:2009/10/06(火) 11:24:04 ID:???
人間の脳というメモリに保存

465 :nobodyさん:2009/10/06(火) 11:34:11 ID:T6gAVcs1
>>464
最近のサーバには人間の脳が載っているのでしょうか。
残念ながら使用しているサーバには人間の脳は載っておらず、apacheやphpといったものしか積んでおりません。
可能であればPHPで出来ることでお願いできればと思います。

466 :nobodyさん:2009/10/06(火) 11:43:25 ID:???
>>434に絡んでる奴、スレ立てて質問者と二人きりでやってくんねぇかな

>>460
ソースにマジックナンバーを書いておくと中間コード上にプロセスの最初っから最後まで保持されるが
それを見られる状態ならなんでも出来るって話で、何をしても無駄に終わりそうよね
OSとHTTPサーバ(Apacheならモジュール,CGIどちらで動かしているかも)書いたら
もっといい返事貰えるかもよ

467 :466:2009/10/06(火) 11:44:30 ID:???
すまん >>460 じゃなくて >>465

468 :465:2009/10/06(火) 12:00:46 ID:T6gAVcs1
>>466
OSはCentOS5.3です。
Apache 2.2.3
PHP 5.1.6
openssl 0.9.8e

動作として
自動受信したメールに添付されている暗号化ファイルを特定フォルダへ移動
特定フォルダにて復号化
復号化ファイルを自動で所定の場所へ移動
となっております。
使用しているのは表に出ているapacheと処理を行うPHPとOpenSSLのみで他の言語やDBなどは使用しておりません。


469 :nobodyさん:2009/10/06(火) 12:07:34 ID:???
×復号化

470 :nobodyさん:2009/10/06(火) 13:46:39 ID:???
暗号を戻すのは復号であってるんじゃない?


471 :nobodyさん:2009/10/06(火) 14:02:25 ID:???
aという文字を5bit分ずらす方法がわかりません
$a = a^^^^^;だとずれませんでした

472 :nobodyさん:2009/10/06(火) 14:03:23 ID:???
暗号←→平文
復号←→暗号化

473 :nobodyさん:2009/10/06(火) 14:29:58 ID:???
>>471
ビットシフトの事ならこれ

http://jp.php.net/manual/ja/language.operators.bitwise.php

474 :nobodyさん:2009/10/06(火) 18:53:04 ID:???
PEAR::DB_DataObjectでpear.iniに関してなのですが、
[book__keys]
isbn = K
の「K」って何なのでしょうか?
他にも、http://pear.php.net/manual/ja/package.database.db-dataobject.intro-autobuilding.php
「N」とかあるようです
スキーマ定義ファイルを調べても出てきません
これら「K」や「N」の意味と、他にどんなのがあるのか教えていただけませんでしょうか?

475 :nobodyさん:2009/10/06(火) 19:01:37 ID:???
>>472
むかし、指導教官に【活性化】の反対語は【抑制化】だと主張されて
閉口したことを思い出した。
でもなぜそれでいけないのかを合理的に説明できなかった。
いまでも夢に見る。

476 :nobodyさん:2009/10/06(火) 19:34:23 ID:???
すいませんビットシフトで文字をずらした場合、
ずらした文字から元の文字に直すことって出来ますか?

477 :nobodyさん:2009/10/06(火) 21:38:31 ID:???
>>474
KEYやNULLの意味じゃない?
>>476
473に
>PHP のシフト処理は算術シフトです。両端からあふれたビットは捨てられます。
って書いてるよ

478 :nobodyさん:2009/10/06(火) 23:17:11 ID:???
あふれて捨てられるビットをどこかに取っておく方法ってないですかね?


479 :nobodyさん:2009/10/07(水) 00:28:18 ID:???
捨てられる前に保存すりゃ取っておけるね

480 :nobodyさん:2009/10/07(水) 11:58:02 ID:???
CentOS5.3 (64bit)
php 5.1.6

ファイルを読み込む時に、3行目から(1、2行目は無視)読み込みたいのですが
こういった時は普通はどのように記述しますか?

$contents = file('hoge.txt');
foreach($contents as $line){
 if($i > 1) echo $line;
 $i++;
}

一応上記の記述で動くのですが、
そもそもfile()で読み込む時に2行無視とかできれば
$iがいらなくなりもっとスマートかなと思いました。

でもこんなの↓↓↓しか思いつきませんでした・・・

$contents2 = explode("\n",shell_exec('/bin/sed 1,2d hoge.txt'));
foreach($contents2 as $line){
 echo $line . "\n";
}

481 :nobodyさん:2009/10/07(水) 12:35:25 ID:???
$fp = fopen("hoge.txt","r");
@fgets($fp);
@fgets($fp);
while( !feof($fp)){
echo fgets($fp);
}
スマートさは無いな。

482 :nobodyさん:2009/10/07(水) 12:37:04 ID:???
@使うな

483 :480:2009/10/07(水) 12:49:43 ID:???
>>481
ありがとうございます。

あと思いついたのはfor使う方法です。

$contents = file('hoge.txt');
for($i=2 ; $i < count($contents) ; $i++){
 echo $contents[$i];
}

プログラム経験が無いので定石みたいなものがわからないんですよね。

484 :nobodyさん:2009/10/07(水) 13:07:51 ID:???
483 が好きかなぁ。
2 はマジックナンバーじゃなくて定数にして、
なんで 3 からはじめたいかの理由を書くけど。

485 :nobodyさん:2009/10/07(水) 13:35:09 ID:???
いや結局全部読み込んでるから変わらない気がするけど

486 :nobodyさん:2009/10/07(水) 13:52:03 ID:???
>>483

$file = file_get_contents($filename);
preg_match("/[.*\n]{2]/","",$file);
echo $file;

487 :nobodyさん:2009/10/07(水) 13:55:38 ID:???
>>483
$file = file($filename);
unset($file[0],$file[1]);
implode("\n", $file);
echo $file;

488 :nobodyさん:2009/10/07(水) 14:00:35 ID:???
>>487
fileは、各要素に改行含みますぜ。


489 :480:2009/10/07(水) 14:06:55 ID:???
みなさんありがとうございます。
ファイル名とか行数とかは定数にします。

>>486さんや>>487さんの書き方は一般的なのでしょうか??

同じ事を実現するのに色々な方法があり、結局ケースバイケースなのかもしれませんが
私の>>483の書き方はイレギュラーな書き方でしょうか??

490 :nobodyさん:2009/10/07(水) 14:09:32 ID:???
一般的ってどういうこと?

491 :nobodyさん:2009/10/07(水) 14:13:58 ID:???
>>488
各要素に改行があるから改行で連結してるんですよ

492 :480:2009/10/07(水) 14:17:55 ID:???
>>490

プログラム歴1週間で、まだ自分の書き方が正しいのかどうかわかりません。
>>480の場合、目的の事はできているのですが
このコードがあまりにもとんちんかんなコードだったら困ると思い、
普通はどう書くのか質問しました。

私の記述の仕方で問題無ければ良いのですが・・・

493 :nobodyさん:2009/10/07(水) 14:19:32 ID:???
一般的かそうでないかとかじゃなくて
用途を満たしているか、セキュリティは大丈夫か、負荷は大丈夫か、などで判断したほうがいいかと

494 :nobodyさん:2009/10/07(水) 14:29:31 ID:???
>>492
とりあえず>>480に関しては問題無い

あとはネットに転がっているサンプルソースをたくさん見ていればどういう書き方をするのが良いのかわかってくると思う
そして、>>493氏が言うことを頭にいれておけば平気

495 :nobodyさん:2009/10/07(水) 14:56:01 ID:???
>>491
echo implode("", $file);
ってやんないと、結果出力しないうえに、改行が2個入るよ。

496 :nobodyさん:2009/10/08(木) 09:43:52 ID:???
PEAR::HTML_QuickFormについて教えて下さい
addruleのcompareについてなのですが、
http://pear.php.net/manual/ja/package.html.html-quickform.intro-validation.php
を見ると、compareの$formatパラメータにNULLというものがありません
しかし、http://pear.php.net/manual/ja/package.html.html-quickform.html-quickform.addrule.php
ココのサンプルだとcompareの$formatパラメータにNULLが入っています
コレはどういう事なのでしょうか?
このNULLを設定すると何を意味するのか教えて下さい


497 :nobodyさん:2009/10/08(木) 09:49:42 ID:???
パラメータのnullではなくPHPのnullだから

498 :nobodyさん:2009/10/08(木) 10:09:53 ID:???
えっ、どういうことですか?
$form->addElement('password', 'cmpPasswd', 'パスワード:');
$form->addElement('password', 'cmpRepeat', 'パスワード(もう一度):');
$form->addRule(array('cmpPasswd', 'cmpRepeat'), 'パスワードが一致しません', 'compare', null, 'client'); //@
つまりコレは、cmpPasswdと'cmpRepeatを比較(compare)しているのだという事は分かるのですが、compareの$formatパラメータをnullの部分に入れるのではないのですか?
例えばmaxlength等はaddule()のstring $format部にパラメータを入れますよね?
コレは自分ではパラメータを入れてると思ってたのですが違ったのでしょうか?
もしコレがPHPのnullだとしたら更に分からなくなりました
@の文のnullはどういうことを意味しているのですか?




499 :nobodyさん:2009/10/08(木) 10:13:12 ID:???
マニュアル嫁

500 :nobodyさん:2009/10/08(木) 10:31:26 ID:???
マニュアル読んで分からないので聞いているのですが・・・

$form->addRule('email', 'E-Mail is required', 'required', null, 'client');
のnullはhttp://pear.php.net/manual/ja/package.html.html-quickform.intro-validation.php に載っている$formatパラメータ欄が何も書かれていないのでnullなのは分かりますし、
$form->addRule('email', 'サイズでかすぎ', 'maxfilesize', 1280,);
は$formatパラメータ欄にファイルの最大サイズを表す整数値をと書かれているので1280が入っているのは分かります
で、そのうえで上記のnullの意味が分からないのです
compareには$formatパラメータ欄にいくつかパラメータが入っているので

501 :nobodyさん:2009/10/08(木) 10:33:06 ID:???
>>499
マニュアル君久しぶりね
出てこなくていいよ^^
答えわからないんでしょ^^
無理にレスしなくても誰も困らないよ^^

502 :nobodyさん:2009/10/08(木) 10:49:06 ID:???
>>500
で、それが解らないと何か困るのか?

503 :nobodyさん:2009/10/08(木) 10:53:24 ID:???
>>500
>string $format
> (オプション) 追加の検証データのために必要。

追加のオプションを指定しない事を明示的に「null」と書いてると思ってくれ。

オプションが無い(=null)とデフォルトの動作になるので、
マニュアルの「(デフォルト) 両方の要素が同じ値でなければなりません」の部分になる。
つまり2つの値が同じ値かどうかのチェック。

だからこの場合、「null」と書くのと「eq」と書くのが同じって事。

504 :nobodyさん:2009/10/08(木) 10:56:35 ID:???
>>502
E-Mailの確認などでcompareを使う場合、曖昧なままだと使えないなぁと思いまして
例えばパラメータに載っている、”eq”や”neq”等が書かれていれば分かったのですが、nullが何を意味するのか分からないもので、コレを使っていいものなのかと・・・
色々調べたのですが、出てきませんで



505 :nobodyさん:2009/10/08(木) 10:57:59 ID:???
>>503
ありがとうございます
自分が>>504書き込んでいる間のレスでした
>>503のように理解します
答えてくれて有難うございました

506 :nobodyさん:2009/10/08(木) 11:03:05 ID:???
>>501
俺もそう思った
俺はわからなくて何も書けなかったんだが、>>499みたいなのは答えわかってないんだと思う
そもそもマニュアルリンクしてるんだから、マニュアルは読んでるんだと普通は判断できるけれどもな

507 :nobodyさん:2009/10/08(木) 11:14:06 ID:???
>>504
$formatの省略値は '' だな。
マニュアルを素直に読むと、デフォルト動作を指定するには、
''を渡すのが正解ということになる。
で、マニュアルにちゃんと説明されて無いんだから素直に''か'eq'か'=='
を使っとけ、という事になる。
例でnullを渡してるのは「ああ、その場合も動くんだな」くらいに思って
おくのが吉。

508 :nobodyさん:2009/10/08(木) 11:39:32 ID:???
PHP発祥の痛いキャラ一覧

正規表現クン・・・・専用のdate関数使ったほうが楽なのにわざわざpreg_matchで自己満コードを書く人生を無駄に過ごしている人
マニュアルクン・・・回答者ぶりたいけど答えが分からないのでとりあえずマニュアル嫁としか言えない素人


509 :nobodyさん:2009/10/08(木) 11:50:32 ID:???
ちゃんと答えれば>>505のように丁寧に感謝されるのに、半ば「マニュアル嫁」とか書くから叩かれるのにな
分からなければ何も書かなきゃいいのに
それか、「こういうことかもね」とか、「俺にはわからないから他の人に頼む」とか

510 :nobodyさん:2009/10/08(木) 11:51:43 ID:???
>>506
何言ってんだ
Pearのマニュアル読む前にPHPのマニュアル読め
引数のデフォルト値なんて基本中の基本だろ

511 :nobodyさん:2009/10/08(木) 12:04:22 ID:???
これがマニュアルの限界を超えたスーパーマニュアルを更に越えたスーパーマニュアル2をそして更に越えたスーパーマニュアル3だ!!!!
                      |  ヽ  ゙、  、 \ \ヽ ヽl/ /  // //  /  //イ //-‐'"
                 \ヽ、  |  ヽ 、、\  \ \ヽl  l l/  // // ///‐ /‐彡-‐
                   \ヽ、 |  \ \\、ヽ、\ヽ           ヽ///  /  /// ヽ
                    \ \、  \  \\ ヽ''     ヽ、      | /  /////ヽヽ
                     \\\、、ヽ,  ゙゙゙ ゙         ヽゝ、    /  /ヽ|////ヽ ||
                       \、\\|           /  ノ/~'   ヾ"' '|、ヽl |//-‐イ| ||
                         \、\| __  ヽ    //   /  ゞ    / ノ / -‐    | ||
                          \ ヽ \  ヽl  //  /,.. イ     ┌ノ //   /  | |
                          /フ ハ ヽ\ l    /、ノ / -‐   / /     /  / |
                    ___┌‐|  |  `、、ヽゝヽヾ、‐''ヽ-''"-‐'"     /''" |    /‐/  |
                    |  ミ | |ミ|    \、 ̄‐ヽ/ '''" ,.-、      ,.' |  |  ,.‐"  /  /|
                    |::::、、  | |│     ヽ  |_,.- / ,-|    /  | |/ /   /::::::/ /::
                    ヽミ::::::: ヽ l|       ゝ、  ̄、"-‐'",,ノ   /:::: l| |‐"   /::::::/ /:::
                    /\ ::::: \|    | |    ヽ、ヽ''"-‐   /:::: 、 |,.''    /::::/ /:::::



512 :nobodyさん:2009/10/08(木) 12:15:48 ID:???
【PHP】くだらねえ回答はここで書きこみやがれ【初心者歓迎】3

513 :nobodyさん:2009/10/08(木) 14:24:26 ID:???
PEAR使うとさ、
エラーレベル最強にしてると
Noticeとかでまくるよね。

みんなどうやって対処してるの?

514 :nobodyさん:2009/10/08(木) 15:26:43 ID:???
>>512
笑w

515 :nobodyさん:2009/10/08(木) 16:07:23 ID:???
>>510
じゃぁPHPのマニュアルって書けよ
お前の不親切さがこうなってるんだろ、マニュアル厨

516 :nobodyさん:2009/10/08(木) 16:25:18 ID:???
ぶっちゃけまずマニュアル次にググれば大抵活路は開けるんだが
それが出来たら初心者じゃないよねー
ってことで生暖かく回答してやれ

517 :nobodyさん:2009/10/08(木) 16:29:54 ID:???
正規表現クンよりもそれに噛み付いてウダウダいい続けるアホのほうが個人的にはうざい
正規表現を使うまでもないならさらりと他のコード出せばいいだけなのに
たいていケチつけるやつはコードも出さずに文句しか言わないからな
マニュアルクンは答えになるようなURLを張ってマニュアル嫁ならいいけど
ただマニュアル嫁はゴミ

518 :nobodyさん:2009/10/08(木) 16:49:26 ID:???
>>517
正規表現クンの時は他のコード出てたし

519 :nobodyさん:2009/10/08(木) 16:50:20 ID:???
URL張ったとしてもPHPマニュアルだという罠

520 :nobodyさん:2009/10/08(木) 16:57:10 ID:???
結局このグダグダもいつものお前のせいじゃないのか?

521 :nobodyさん:2009/10/08(木) 19:15:32 ID:???
他のコード出す奴がたまにいて
煽るだけの奴のほうが圧倒的に多い
それがPHP(笑)スレクオリティー

522 :nobodyさん:2009/10/08(木) 19:56:54 ID:???
PHPスレ荒らしにきてるのって
絶滅しかけのパーラーらしいよ

523 :nobodyさん:2009/10/08(木) 20:04:21 ID:???
前スレより質問を引用

49 名前:nobodyさん[] 投稿日:2009/03/23(月) 10:24:31 ID:8ptTuCbS
2009-04-01 08:40:00
↑の時間の30分後を取得する方法。


↑に対して正規表現クンは↓の回答

$date= '2009-04-01 08:40:00';
preg_match("/(\d{4})\D(\d\d?)\D(\d\d?)\s+(\d\d?):(\d\d?):(\d\d?)/s", $date, $d);
$d= localtime(60*30+mktime($d[4], $d[5], $d[6], $d[2], $d[3], $d[1]));
printf("%d-%02d-%02d %02d:%02d:%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]);


↑の回答に対して罵倒してる人たちは↓の回答

echo date("Y-m-d H:i:s",(strtotime("2009-04-01 08:40:00") + 60*30));



date_default_timezone_set("Asia/Tokyo");
$time = 60*30;
$data = "2009-04-01 08:40:00";
$st = strtotime($data)+$time;
echo date('Y-m-d H:i:s',$st);



524 :nobodyさん:2009/10/08(木) 20:36:38 ID:???
>>523
strtotime('2009-04-01 08:40:00 + 30 min')

525 :nobodyさん:2009/10/08(木) 21:18:30 ID:???
>>523

$date= '2009-04-01 08:40:00';
preg_match("/(\d{4})\D(\d\d?)\D(\d\d?)\s+(\d\d?):(\d\d?):(\d\d?)/s", $date, $d);
$d= localtime(60*30+mktime($d[4], $d[5], $d[6], $d[2], $d[3], $d[1]));
printf("%d-%02d-%02d %02d:%02d:%02d", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]);

・・・コレはひどい・・・

526 :nobodyさん:2009/10/08(木) 21:18:55 ID:???
PHP 6.0.0から非推奨の関数(ereg等)の一覧を見たいのですが
マニュアル等どこかで見れる所ありませんか?

527 :nobodyさん:2009/10/08(木) 21:34:39 ID:???
マニュアルにあるよ

528 :nobodyさん:2009/10/08(木) 21:46:55 ID:B5gIBP6O
マニュアルクンこんばんは
マニュアルのどこで見れるのか教えてくださいませんか?
マニュアルにあるのが分かってるんですから勿論書けるはずですよね


529 :nobodyさん:2009/10/08(木) 21:52:14 ID:???
マニュアル君は人間とは会話できません

530 :nobodyさん:2009/10/08(木) 22:00:29 ID:???
>>528
http://pc11.2ch.net/test/read.cgi/php/1158647441/
スレ違いなのでこちらでどうぞ

531 :526:2009/10/08(木) 22:15:41 ID:???
528とは別人ですが流れが変なので別スレで聞くことにします

532 :nobodyさん:2009/10/09(金) 02:42:58 ID:???
前スレ見てきた
コードは出してもセンスのない無駄なコードという噛み付き方が悪い
こういうこと書くからお前の方がセンスないみたいなガキの喧嘩が始まって面倒なことになる
正規表現使わなくても書けるよとだけツッコミを入れてコードをさらりと書けばそれで終了
そこらへんが分からないからPHPスレ住人は質が低い
正規表現クンだけを悪者にしたいようだが第三者から見ればどっちもどっち

533 :nobodyさん:2009/10/09(金) 02:57:07 ID:???
時間の操作で正規表現が出てくる発想がすげぇ

534 :nobodyさん:2009/10/09(金) 06:44:07 ID:???
>>532=正規表現クン乙

535 :nobodyさん:2009/10/09(金) 09:57:25 ID:???
>>532
汚いコードを書く回答者は叩かれて当然

536 :nobodyさん:2009/10/09(金) 09:59:34 ID:???
正規表現クンをスレをまたいでまで思い出したように叩くのは当事者だからだろ?
某スレで二人池沼がIP出して言い合いしてたが、片方がたまに現れて叩いてるのと同じ現象。
池沼同士仲良くしろよ。周りに迷惑だけはかけんなよな。

537 :nobodyさん:2009/10/09(金) 10:03:28 ID:???
>>532じゃないけど、
>汚いコードを書く回答者は叩かれて当然
この発想が餓鬼なんだよwwwなんでわざわざ叩くわけ?
気に入らないなら放置するか「自分ならこうする」って言って他のコード書けばいいじゃないか。

538 :nobodyさん:2009/10/09(金) 10:30:55 ID:???
でも、>>523の正規表現の解答は明らかに馬鹿にしてたり、悪意を持って解答してるだろ

539 :nobodyさん:2009/10/09(金) 10:41:20 ID:???
>>523みたいな正規表現の回答ってただのネタだろ?

540 :nobodyさん:2009/10/09(金) 10:46:50 ID:???
61 名前:nobodyさん[sage] 投稿日:2009/03/23(月) 13:08:23 ID:???
別に複雑に書いたつもりはないけど、処理の過程が明確で日時の場合月日だけとか
時分秒だけとか副次的に利用することがおれの場合は多いからこう書くクセがついてるだけ

と本人は言っているわけだ。

541 :nobodyさん:2009/10/09(金) 10:51:10 ID:???
引用文の解説よろ

542 :nobodyさん:2009/10/09(金) 10:51:34 ID:???
言葉足らずって感じだな

最初に、副次的に利用する事を考慮してこういう書き方もある
と前置きがされていれば叩かれないのに。

543 :nobodyさん:2009/10/09(金) 10:53:03 ID:???
dateで書式も書けるんだから正規表現使うのは非効率だろwwwwwwwwwwwww

544 :nobodyさん:2009/10/09(金) 10:54:43 ID:???
>処理の過程が明確で日時の場合月日だけとか時分秒だけとか副次的に
えっと書式に'm月d日'って書けば月日だけとかできるのに

545 :nobodyさん:2009/10/09(金) 10:56:27 ID:???
そもそもこのスレいらないと思うが

こっちに統合じゃだめなのか?
http://pc11.2ch.net/test/read.cgi/php/1253061577/

546 :nobodyさん:2009/10/09(金) 10:58:33 ID:???
このスレは元々ID出してスレと分裂する前に一部の住民がID出さなくてもいいだろと反論したときにこのスレができた

547 :nobodyさん:2009/10/09(金) 11:02:46 ID:???
叩いたり本人乙認定する阿呆が一番悪い
意見を言うだけに叩きの要素はいらないだろ
ちゃんと自己主張するやつは他人と意見があわない可能性があることを自覚してるやつ
そんなやつがわざわざ煽り合いに参加するんだろうか?

548 :nobodyさん:2009/10/09(金) 13:59:33 ID:???
正規表現正規表現うるさい!!!
ttp://labs.cybozu.co.jp/blog/akky/archives/2007/10/phpspot-bad-regex.html

549 :nobodyさん:2009/10/09(金) 16:37:55 ID:tKqousLR
変な空気の中しょぼい質問かもしれませんが
example.txt
example0 "on"
example1 "on"
example2 "off"
example3 "on"
example4 "on"
という内容のファイルがあります。
それぞれを$example0=onというように左側のexample*を変数として右のon/offを
代入したいと思ってますが何か効率の良い方法はありますでしょうか?
現在は
$hoge = file("./example.txt");
foreach($hoge as $hogehoge){
$hoge_val = explode(" ", $hogehoge);
$hoge_val = str_replace("\"", "", $hoge_val);
}
で$hoge_val[0]に変数で$hoge_val[1]に代入の値という風に出来たのですが
$hoge_val[0]に入っている値そのものを変数にする方法が思いつきません。
どのようにすれば変数に出来るのかヒントもらえないでしょうか?

550 :nobodyさん:2009/10/09(金) 16:41:17 ID:???
>>549
>$example0=on
なんで値を""で囲まないの?

551 :nobodyさん:2009/10/09(金) 16:42:09 ID:???
>>549
eval

552 :nobodyさん:2009/10/09(金) 16:44:10 ID:???
$txt = '$test = "てst";';
echo $txt;
echo eval($txt;echo $text;);

553 :nobodyさん:2009/10/09(金) 16:50:23 ID:???
>>549
extractかな

PHP: extract - Manual
http://jp.php.net/manual/ja/function.extract.php

554 :nobodyさん:2009/10/09(金) 16:55:02 ID:???
皆凄いな
俺は>>549が何を言っているのかも分からない

555 :553:2009/10/09(金) 16:59:04 ID:???
>>549
こんなんでどうだろ?

$hoge = file("./example.txt");
foreach($hoge as $hogehoge){
 $foo = explode(" ", $hogehoge);
 $hoge_val[$foo[0]] = trim($foo[1],"\n\"");
}
extract($hoge_val);

var_dump($example0);
var_dump($example1);
var_dump($example2);
var_dump($example3);
var_dump($example4);

556 :nobodyさん:2009/10/09(金) 16:59:23 ID:???
>>549
foreach内最後に
${$hoge_val[0]} = $hoge_val[1];
追加

557 :553:2009/10/09(金) 17:11:29 ID:???
>>556
あ、これでいいのか。
わかりにくい例を示してしまった、スレ汚しスマン。

558 :549:2009/10/09(金) 17:12:29 ID:tKqousLR
ちょ、みんな凄すぎ
こんな駆け出し初心者の質問に答えてくれてありがとうです。

>>550
使い回してた部分なのでそのまま"を消すものが入ってました。
"がなくても動いてたので気にしてなかったのですが、あまりよくないので消し説きます。

>>551-552
eval自体知りませんでした。
駆け出しなのでまだまだ知らない関数たくさんありますが勉強になりました。

>>553 >>555
extractも知りませんでした。
eval同様に非常に便利そうですので使っていきたいと思います。

>>556
こんな書き方あるんですね。
ぱっと見るとシェルっぽい書き方に見えなくもないですが凄く便利そうです。


みなさんこんなアホな質問に速攻で答えてくれてありがとうございました。


559 :26:2009/10/09(金) 17:25:06 ID:???
名乗るほどのモンじゃねえから礼はいいってことよ

560 :nobodyさん:2009/10/09(金) 20:29:43 ID:???
正規表現系の関数っていろいろあるけど
全部preg_match使っておk?

561 :nobodyさん:2009/10/09(金) 20:50:57 ID:???
多数のブログのRSSフィードURLを一括で調べれるような
スクリプトってどこかで公開されてませんか?
イメージとしてはこんな感じなのですが
http://blog-lvup.com/utility/feed_finder/

562 :nobodyさん:2009/10/09(金) 21:06:18 ID:???
>>561
それにHTTPリクエストをブログの数だけループして投げればいい

別にそれくらい自作すればいいと思うけど

563 :nobodyさん:2009/10/09(金) 21:31:35 ID:???
PHPスクリプトを書くときに、
それをWindows上で動かすのと、Linux上で動かすのと、
何か違いはある?

564 :初代認定回答者:2009/10/09(金) 22:13:53 ID:???
ありますよ
fopenみたいにOSによって仕様が同じでないものがありますよ

565 :nobodyさん:2009/10/09(金) 22:16:30 ID:???
>>562
perlのFeed::Find;を使ってみようと思います。
ありがとうございました。

566 :nobodyさん:2009/10/10(土) 19:51:32 ID:???
mysqlに連番のフィールドを入れています。
phpで指定した番号のレコードを取得し、各フィールドを配列に格納したいです。
どのように書けばいいのでしょうか?

567 :nobodyさん:2009/10/10(土) 20:14:30 ID:???
>>566
mysql_fetch_assocで展開すれば連想配列になる
後はMySQLを自分で何とかしれ

568 :nobodyさん:2009/10/12(月) 14:49:35 ID:???
this->

の意味がいまいち分かりません。
どうして宣言してもいないのに急に出てくるんですか?
初心者過ぎる質問で申し訳ありません。
どなたか教えてください

569 :nobodyさん:2009/10/12(月) 15:05:44 ID:???
>>568
http://jp2.php.net/manual/ja/language.oop5.basic.php

これで気づいたけどoop5のページが少し更新されてたんだね
入門用としてより詳しい解説になってる

570 :nobodyさん:2009/10/12(月) 15:37:36 ID:???
>>568
Javaの勉強をかじり程度でもすることをオススメする
PHPじゃオブジェクト指向というものを理解するのは難しい

571 :nobodyさん:2009/10/12(月) 19:03:16 ID:???
>>568
ありがとうございます

>>570
バイト先で使っているので横道にそれる余裕がないのです
急がば回れかもしれませんが・・・。


this->
はクラス内で宣言された変数を同じクラス内で宣言された関数内で使用する際に頭につけるルール
のような認識で合ってますでしょうか?

572 :nobodyさん:2009/10/12(月) 19:04:03 ID:???
間違えた;;

>>569
ありがとうございます

573 :nobodyさん:2009/10/12(月) 19:07:31 ID:???
>>571
No
(自身のインスタンスの)プロパティとメソッドにアクセスする時に使う変数

574 :nobodyさん:2009/10/12(月) 19:50:43 ID:???
>>570
そういうのは、本末転倒という。

575 :nobodyさん:2009/10/12(月) 21:38:56 ID:???
>>571
$thisは自分自身を指す変数。


576 :nobodyさん:2009/10/12(月) 23:36:44 ID:???
その程度の知識でPHPのアルバイトっていけるのか

577 :nobodyさん:2009/10/12(月) 23:51:40 ID:???
なんとなく分かったような・・・不安ですが
ありがとうございました

>>576
プログラミングメインではないのでいけたのかと思います。
本来はプログラマー募集でもなかったですし

578 :nobodyさん:2009/10/13(火) 00:15:16 ID:???
なるほど
デザイナーがプログラムまでやらされるような残念な会社か・・・
大変そうだがガンガレ

579 :nobodyさん:2009/10/13(火) 00:18:05 ID:???
VISTAで、
PHPエディタ で、
F2押して出すマニュアルで、
マニュアル自体は起動するんだけど、
「無効なWEBの検索」
とかって出て、左側のフレームは
print
とかって出てるんだけど、
右側のフレームには、
そのprintの内容(関数の説明とか)が
でてこなくて、対処、URLを再入力する、
とかって出てきてしまうのですが、
できてる人いますか?

580 :nobodyさん:2009/10/13(火) 10:04:13 ID:???
>>579
公式のマニュアルだと文字化けするから
他から落とした方が良い

581 :nobodyさん:2009/10/13(火) 10:14:20 ID:???
新しいのは文字化けなんてしねえよ

582 :580:2009/10/13(火) 10:22:54 ID:???
>>581
あれ?ここって公式じゃないの?
http://www.php.net/download-docs.php

583 :nobodyさん:2009/10/13(火) 10:29:04 ID:???
そこから落とせるchmファイルのどこが文字化け支店の?

584 :nobodyさん:2009/10/13(火) 10:34:56 ID:???
キーワードが文字化け
日本語の検索が出来ない

585 :nobodyさん:2009/10/13(火) 10:38:57 ID:???
あ、本当だ
でも俺のは文字化けしないな



と思ったらいつも俺はchmをリコンパイルしてたんだったわ

586 :580:2009/10/13(火) 10:45:27 ID:???
>>579
「php_manual_ja.chm」で検索するとリコンパイル方法が色々でてくる。
俺は誰かがリコンパイルしてくれた奴を過去に落としたが、今は無いみたいだ。

ということで、今リコンパイルしてみたが
KeyToolsでデコンパイルして、HTML Help Work Shopでリコンパイルすれば文字化け解消するよ
その際に、特にエディタで書換える必要も無かった。

587 :nobodyさん:2009/10/13(火) 11:57:08 ID:???
リコンパイルとか
まじでわからん

588 :nobodyさん:2009/10/13(火) 16:45:52 ID:???
PHPではセッションファイルをデフォルトで/var/tmpとかに書きますよね。
ひとつのディレクトリにセッションファイルを書いていったとして、だいたいどのくらいの数まで実用的に動作しますか。
たとえばLinuxなら/var/tmp以下に1万個ぐらい作ってもへっちゃらとか、10万ぐらいで遅くなったとか、
そういう経験談があれば教えてください。
なおOSはLinuxで、ファイルシステムはext2かext3です。


589 :nobodyさん:2009/10/13(火) 17:09:18 ID:???
それだけの情報じゃ何もアドバイスできない

590 :nobodyさん:2009/10/13(火) 17:38:40 ID:???
ファイルシステムの話であれば、  ext3 ファイル数 で検索すればいいじゃない。

591 :nobodyさん:2009/10/13(火) 18:52:50 ID:???
そんな悩むほどアクセスあるなんてうらやましすぎる

592 :nobodyさん:2009/10/14(水) 13:18:33 ID:???
セッションはファイルじゃなく
memcache とか使えばいいのに

593 :nobodyさん:2009/10/14(水) 14:42:06 ID:???
phpで、自力でwarningを出す方法について教えてください。
てっきりwarn()とかいう関数が標準であるのかと思ったらありませんでした。

594 :nobodyさん:2009/10/14(水) 14:43:20 ID:???
trigger_error?

595 :nobodyさん:2009/10/14(水) 15:15:53 ID:???
ttp://php.belnet.be/manual/ja/language.exceptions.php

596 :nobodyさん:2009/10/14(水) 15:48:55 ID:???
>>593
もう何度目の質問だよこれw
過去スレで散々出てきたんだからちったあ探す努力しろやぼけ

597 :nobodyさん:2009/10/14(水) 16:46:14 ID:???
>>593
てっきりこっちかと思った。
ttp://php.net/manual/ja/errorfunc.configuration.php
 ・error_reporting
 ・display_errors

>>596
そう思うんなら、いちいち反応するなよ。

598 :nobodyさん:2009/10/14(水) 16:51:10 ID:???
>>597
的外れな回答しただけでいきがんなって

599 :nobodyさん:2009/10/14(水) 17:39:37 ID:???
>>594
まさにこれでした。ありがとうございます。


600 :nobodyさん:2009/10/14(水) 18:46:32 ID:???
なんで自力でwarningを出したいの?

601 :nobodyさん:2009/10/15(木) 11:27:15 ID:IJjjUaJi
今ローカル上のWinにVirtualBoxを起動させそこでCentOSを稼動させています。
そしてそのCentOS上でLighttpdとPostgreSQLとPHP5.3を動かしています。

NetBeans6.7.1ではSFTPを使いCentOS上に*.phpファイル保存時に自動的に書き込むようにしています。CentOS上のphp.iniではXdebugの設定をしたのでNetbeansを用いてPHPのコードを一行一行実行して行く事ができるようになりました。

ここまでは上手く行きました。NetBeansのメニューで「プロジェクトのデバッグ」を選択するとブラウザーが立ち上がり、ブレークポイントを付けた行で停止して1行ずつコードを実行して行けます。

しかし、NetBeansのメニューで「プロジェクトの実行」を選択するとブラウザーが立ち上がる所までは同じですが、その後それ以上何も進展しない状況になります。(ブラウザーは「読み込み中」と表示されたままです。)

これって正常でしょうか?

602 :nobodyさん:2009/10/15(木) 11:28:34 ID:???
>>601
スレ違い
ID出して書き込みやがれスレ池

603 :nobodyさん:2009/10/15(木) 17:04:49 ID:???
クラスメソッド内から、現在のクラス名を参照する方法はありますか。

class Foo {
 function f1() {
  // ここで Foo という名前を取得したい
 }
}

Foo::f1()


604 :nobodyさん:2009/10/15(木) 17:08:40 ID:???
その質問過去スレに2回ほど回答がでてるけど見た?

605 :nobodyさん:2009/10/15(木) 17:55:30 ID:???
>>604
過去スレを「クラス名」で検索しましたが見つかりませんでした。

606 :nobodyさん:2009/10/15(木) 18:25:13 ID:???
>>604
バンバンバンバンバンバンバンバンバン゙ン
バンバン /⌒ヽ バンバンバンバンバン
バンバン∩#^ω^)動けお
    /_ミつ / ̄ ̄ ̄/__
      \/___/


  ドゴォォォォン!!
        ; '     ;
         \,,(' ⌒`;;)
         (;; (´・:;⌒)/
  /⌒ヽ(;. (´⌒` ,;) ) ’
Σ(;^ω^)((´:,(’ ,; ;'),`
⊂ ⊂    / ̄ ̄ ̄/__
      \/___/

607 :nobodyさん:2009/10/15(木) 18:29:06 ID:???
過去スレ嫁厨
ID出すほうで質問したらちゃんと俺が答えてやったが
ここは管轄外なのでスルーさせていただくよ

608 :nobodyさん:2009/10/15(木) 18:37:31 ID:???
>>603
自己レスです。
継承しないならget_class()または__CLASS__でうまくいったのですが、継承があるとだめでした。

class Foo {
function f1() {
echo get_class(), "¥n";
echo __CLASS__, "¥n";
}
}

class Bar extends Foo {
}

Bar::f1(); // Foo Foo

継承したときのクラス名(この例ならBar)をとってこれないでしょうか。

609 :nobodyさん:2009/10/15(木) 18:39:25 ID:???
>>603=>>604=>>607

610 :nobodyさん:2009/10/15(木) 18:53:51 ID:???
同一人物認定厨まで現れたか
さすが低レベルなスレだな

611 :nobodyさん:2009/10/15(木) 20:04:40 ID:???
>>608
http://jp.php.net/manual/ja/language.oop5.late-static-bindings.php

612 :nobodyさん:2009/10/15(木) 22:53:54 ID:???
>>611
5.3からの新機能で可能ということですね(つまりそれ以前のバージョンでは不可能)。
ありがとうございました。


613 :nobodyさん:2009/10/15(木) 22:59:03 ID:???
>>611
これは良い。

614 :nobodyさん:2009/10/16(金) 01:42:29 ID:???
http://www.nicovideo.jp/watch/sm8524579

PHP入門講座、はじめたよー

615 :nobodyさん:2009/10/16(金) 02:28:04 ID:???
その辺のサイトに書かれてることを動画にしても効率が悪いだけ
ていうか最初と最後に文字いれしてるんだから
わざわざタイプで時間使わないで文字いれしろよ
そうすりゃこんな意味のない動画を3分も見せ続けられなくてすむし
CM1本分ぐらいに収まるだろ

616 :nobodyさん:2009/10/16(金) 02:43:44 ID:???
自宅待機者ふぜいが
えらそうに、、、

617 :nobodyさん:2009/10/16(金) 02:45:06 ID:???
意見があればコメントしろっていったのはお前だろ
あんな無駄なものを3分も見せられるほうの気持ちも考えろ

618 :nobodyさん:2009/10/16(金) 10:42:03 ID:???
配列をクリアする関数はありますか。
$array = array();
はしたくないので
foreach (array_keys($array) as $key) { unset($array[$key]); }
としているんですが、
array_clear($array);
みたいなのが標準であれば教えてください。

ぐぐったら $array = array() ばかりが出てくるんですけど、array_clear()みたいなのはないんでしょうか。

619 :nobodyさん:2009/10/16(金) 10:43:00 ID:???
unset

620 :nobodyさん:2009/10/16(金) 10:49:12 ID:???
>>618
array_splice($array, 0);

array() を代入したくない理由は?

621 :nobodyさん:2009/10/16(金) 10:52:22 ID:???
>foreach (array_keys($array) as $key) { unset($array[$key]); }
何これ?連想配列?
まぁただの配列にしても連想配列にしてもunsetやれば全部NULLになるでしょ

$a = array(1, 2, 3, 4);
unset($a);
var_dump($a); //NULL

$b['foo'] = 1;
$b['bar'] = 2;
unset($b);
var_dump($b); //NULL

622 :621:2009/10/16(金) 10:55:18 ID:???
>>620
嗚呼・・・クリアってそういうことか
変数割り当てをクリアじゃなく配列の値をクリアするってことね
>>621は無視してちょうだい

623 :nobodyさん:2009/10/16(金) 11:15:42 ID:???
>>620
ありがとうございます。array_splice()で出来ました。
ただ、これって連想配列でも動作が保証されているのでしょうか。
連想配列ではない通常の配列でなら、array_splice()でいいと思いますが、連想配列でも動作が保証されているのか、マニュアルを読んでも分からなかったので、もしご存知なら教えてください。

624 :nobodyさん:2009/10/16(金) 11:17:00 ID:???
初心者なアホな質問ですがアドバイスもらえると助かります。
kyomo-iitenki-1.2.3.exe
というファイルがあって1.2.3がバージョンになります。
バージョンだけ取り出したいんですがまず
$test_val = "kyomo-iitenki-1.2.3.exe";
$test_num = strrpos($test_val, "-");
$hogera = str_split($test_val, $test_num+1);
$hogera = ereg_replace(".mid", "", $hogera[1]);
こんな感じで1個ずつやってみたのですが、何かもっと効率よさそうな方法がありそうな気がします。
PHP始めたばかりなので最初から効率を求めるわけではないのですが、後学のためにこれをもっと
効率よくする書き方があれば教えてください。

625 :624:2009/10/16(金) 11:46:37 ID:???
すんません。
テストでmidiファイルとかやってたので最後の行が.midになってました。
正確には.exeの間違いです。


626 :nobodyさん:2009/10/16(金) 11:51:28 ID:???
>>623
PHPのarrayは配列も連想配列も同じ順序付きハッシュだから動く
つうか array_splice($array, 0) も内部で $array = array() と同じ事やってんだが、これでいいのか?

>>624
正規表現がまさにそういう用途のためにある
http://jp.php.net/manual/ja/function.preg-match.php

$test_val = "kyomo-iitenki-1.2.3.exe";
preg_match('/([^\-]+)\.[^.]+\z/', $test_val, $matches);
echo $matches[1];

627 :nobodyさん:2009/10/16(金) 11:52:29 ID:???
>>624
正規表現をうまく使えればもっとシンプルにできるよ
俺はあまり正規表現は得意じゃないんでもっと最適なものがあるとは思うけど

$test_val = "kyomo-iitenki-1.2.3.exe";
echo preg_replace("/[^0-9]+[^0-9]/", "\\1", $test_val);

628 :624:2009/10/16(金) 11:55:18 ID:???
>>626-627
正規表現ですか。
まだ本当に記号の羅列にしか見えないですね。
でも正規表現使えればあの汚いものがこんなにシンプルな1行になるわけですね。
ちょっと正規表現勉強してみます。
ありがとうございます。

629 :nobodyさん:2009/10/16(金) 12:05:20 ID:???
$str = ファイル名
preg_match("![0-9][\._-0-9]*!",$str,$match);
print_r($match);

630 :nobodyさん:2009/10/16(金) 12:10:14 ID:???
>>629
穴だらけな上にエラーまで出すとは、なかなか才能があるな

631 :nobodyさん:2009/10/16(金) 12:20:37 ID:???
"/\d+(?:[\._\-]\d+)*/"

632 :nobodyさん:2009/10/16(金) 12:58:50 ID:???
>>630
どこに穴があんの?

633 :nobodyさん:2009/10/16(金) 17:42:29 ID:???
>>632
バージョン以外の数字に一致
拡張子のドットまで含めてしまう

634 :nobodyさん:2009/10/17(土) 13:36:36 ID:???
文字列で、"hoge\n" というのは 最後に改行が付くけど
\n のような特殊な文字(エスケーッぷ?)の一覧を教えて。

あと、\nが CR+LFになるのかLFになるのかを
プログラム中から知る手段も教えてほしい。

635 :634:2009/10/17(土) 13:43:17 ID:???
自己解決しました。

636 :nobodyさん:2009/10/17(土) 20:14:28 ID:???
興味本位で、確認くん(ttp://www.ugtop.com/spill.shtml)に使われている変数が気になり、
調べてみたのですが、「クライアント電話番号」と書かれている部分だけ分かりません。
どのように取得すれば良いかご存知の方がいらっしゃれば、ご教授いただけないでしょうか。

以下は、他の欄に使われていると思われる変数です。
--------------------------------------------------
情報を取得した時間:date("Y年\nm月\nd日\n A \nH時 i分\n s秒\n")
現在接続しているホスト名:$_SERVER['SERVER_NAME']
現在接続している場所(現IP):$_SERVER['REMOTE_ADDR']
現在接続している場所(元IP):$_SERVER['FORWARDED_FOR']
クライアント電話番号:不明
プロバイダー名:gethostbyaddr($_SERVER['REMOTE_ADDR'])
サポート言語:$_SERVER['HTTP_ACCEPT_LANGUAGE']
ポート番号:$_SERVER['REMOTE_PORT']
クライアントの場所:$_SERVER['HTTP_FORWARDED']
クライアントID:$_SERVER['REMOTE_USER']
ユーザ名:$_SERVER['REMOTE_IDENT']
クッキー:$_SERVER['HTTP_COOKIE']
使用ブラウザ:$_SERVER['HTTP_USER_AGENT']
どこのURLから来たか:$_SERVER['HTTP_REFERER']
proxyのバージョン等:$_SERVER['HTTP_VIA']
proxyの効果:$_SERVER['HTTP_PROXY_CONNECTION']
FORMの情報:$_SERVER['REQUEST_METHOD']
FORMのタイプ:$_FILES[...]['type'] ← 自信無し
FORMのバイト数:$_FILES[...]['size'] ← 自信無し
HTTP_X_LOCKING:$_SERVER['HTTP_X_LOCKING']
HTTP_FROM:$_SERVER['HTTP_FROM']
データ取得の手段:$_SERVER['REQUEST_METHOD']
エンコードの仕様:$_SERVER['HTTP_ACCEPT_ENCODING']
MIMEの仕様:$_SERVER['HTTP_ACCEPT']
--------------------------------------------------

637 :nobodyさん:2009/10/17(土) 20:54:10 ID:???
つwhole

638 :nobodyさん:2009/10/17(土) 23:00:26 ID:???
>>637
「php whole」などで検索してみたのですが、どういうことか分かりません…。
もう少し詳しく教えていただけないでしょうか。

639 :nobodyさん:2009/10/17(土) 23:35:58 ID:???
>>638
貴様のIPからプロバイダ情報を調べてみろkz
これがヒントだksgおとといきやがれカス

640 :nobodyさん:2009/10/17(土) 23:42:00 ID:???
わからないなら無理して答えるなよ(プッ

641 :636:2009/10/17(土) 23:47:19 ID:???
ああ、そういうことだったか
解決したありがとう

642 :636:2009/10/17(土) 23:50:33 ID:???
>>641は偽者です。
まだ分かっていないので、分かる方がいたらよろしくお願いいたします。

643 :nobodyさん:2009/10/17(土) 23:52:53 ID:???
>>642
>>639に書いてあるよ
意味が分からないなら実際言われたことをやってみろよ

644 :nobodyさん:2009/10/18(日) 00:25:07 ID:???
ANSI Whois Gateway(ttp://whois.ansi.co.jp/)で自分のプロバイダ情報を調べてみたところ、
「phone」と言う項目がありました。

これは、
 PCの場合、登録に関する連絡の担当者(もしくは技術的な連絡の担当者)の電話番号
 携帯電話の場合、クライアントの電話番号(使用者の電話番号)
になると考えて良いのでしょうか。

645 :nobodyさん:2009/10/18(日) 09:38:00 ID:???
ドメイン登録 電話でggr

646 :nobodyさん:2009/10/18(日) 09:39:14 ID:???
>>636=>>640だからもう回答しなくてよくね?

647 :nobodyさん:2009/10/18(日) 10:04:33 ID:???
>>646
IDでてないのによくわかるね。

648 :nobodyさん:2009/10/18(日) 10:20:56 ID:???
エスパーなんです

649 :nobodyさん:2009/10/18(日) 10:24:15 ID:???
639から640
641から642
レス早いだろ

650 :647:2009/10/18(日) 10:38:15 ID:???
俺が>>640だよwww
>>636カワイソスww

651 :nobodyさん:2009/10/18(日) 10:45:08 ID:???
「一部の携帯電話のみ」
だから、番号を通知する設定にするとリクエストに番号が載るキャリアがあるんじゃね?
もしくはダイアルアップの場合のみ、とか。

652 :nobodyさん:2009/10/18(日) 10:53:44 ID:???
リクエストに番号が載ったら怖いだろ

653 :nobodyさん:2009/10/18(日) 14:26:46 ID:???
>>636
サブスクライバIDとか、UIDとか、端末識別暗号とかEZ番号とか、
呼び方は色々だけど、つまりはそういうことです。

654 :636:2009/10/18(日) 16:52:42 ID:???
>>645-653
つまり、「クライアント電話番号」というのは、携帯の電話番号というわけではなく、
「携帯端末ごとに決められているユニークな番号」という意味だったんですね。
ようやく理解することができました。

最後に、>>653さんの単語から検索した結果、色々な情報が出てきたので、まとめておきたいと思います。
--------------------------------------------------
・ドコモの場合
 個体識別情報:<a>タグや<form>タグに「utn」という文字を入れると、$_SERVER[’HTTP_USER_AGENT’]の後ろに付加される
 iモードID:GETやPOSTで引数に「guid=ON」を入れると、$_SERVER['HTTP_X_DCMGUID']から取得できる
・auの場合
 個体識別情報(=EZ番号=サブスクライバID):auは固体識別子を毎回送信しているので、$_SERVER['HTTP_X_UP_SUBNO']から取得できる
・ソフトバンクの場合
 個体識別情報:ソフトバンクの固体識別番号は、常にユーザーエージェントに含まれているので、$_SERVER[’HTTP_USER_AGENT’]から取得できる
 個体識別情報:httpのページからhttpsへ遷移するようなケースであれば、$_SERVER['HTTP_X_JPHONE_UID']からも取得可能
・イーモバイルの場合
 個体識別情報:HTTPリクエストヘッダの「x-em-uid」($_SERVER[’HTTP_X_EM_UID’]?)から取得できる
・ウィルコムの場合
 現時点では取得不可能?
--------------------------------------------------

長い間、レスを使ってしまい申し訳ありません。とても勉強になりました。
答えてくださった方、本当にありがとうございます。

655 :nobodyさん:2009/10/18(日) 17:06:22 ID:???
636=640解決できてよかったな

656 :nobodyさん:2009/10/18(日) 17:49:47 ID:mL8oRkmg
PEAR::DBでプレースホルダ使用したSQL文をprepareしてるんですけど、
プレースホルダに設定する値が数値"0"のとき、
空文字に自動変換されてしまって困ってます。
解決策わかる型いらっしゃいませんか?
環境は
DB:MySQL5.0.45
PHP:php5.2.8
PEAR:1.9.0
です。

657 :nobodyさん:2009/10/18(日) 18:11:30 ID:mL8oRkmg
656です。
自己解決しました。
自動変換によるものではなく、
変換メソッドが悪さをしていたようです。

658 :nobodyさん:2009/10/18(日) 18:47:53 ID:???
俺には>>636-654の会話の意味がまるっきり分からない・・・苦笑
皆凄いね・・・

659 :nobodyさん:2009/10/18(日) 19:27:11 ID:???
お世話になります。cgi設置に関する質問です。
ネットショップ立ち上げのために先日oscommerceをインストールしてみたのですが
しょっぱなからちゃんと動作しないなどの不具合が。
oscommerceはデータベースサーバなどと連携している分、不具合やエラーが出やすいかなと
思い、perl言語のみのルミーズカートcgiに興味を持ちました。
以前、perl言語のクイズ作成cgiを設置して何のトラブルもなくずっと使えていたのでcgi単独だと
安定して使えるのかなというイメージがあります。
ずばりルミーズカートならoscommerceよりも安定して管理できるでしょうか?
多少機能が劣っていてもシンプルな構成でトラブルが少なく扱いやすい物が一番と考えております。
個々の環境にもよるとは思いますが一般論でお答えいただければ幸いです。

660 :nobodyさん:2009/10/18(日) 19:30:45 ID:???
まずはスレタイをみようか

661 :nobodyさん:2009/10/18(日) 20:28:40 ID:???
自己解決しました
phpなんかよりperl使うべきですね。

662 :nobodyさん:2009/10/18(日) 20:38:15 ID:???
Perlみたいな新時代についていけてない時代遅れのカス言語なんか誰もつかってねーよ

663 :nobodyさん:2009/10/18(日) 20:52:19 ID:???
今時perlを覚えるよりphpを覚えたほうがコストが安い
そして己が人に教える時のことも考えてもコストが安い

664 :nobodyさん:2009/10/18(日) 20:55:30 ID:???
でも携帯ライブラリはperlの方がたくさんあるよね
軽量FWもたくさんでてるし時代遅れって事は無いと思う

665 :nobodyさん:2009/10/18(日) 21:08:54 ID:???
一般人が使うWebアプリではPHPにトップシェアの座は譲ったけど
まだまだPerlはUnixなんかのシステムにはよくつかわれてるんだぜ

666 :nobodyさん:2009/10/18(日) 21:13:10 ID:???
板的にweb限定だろ

667 :nobodyさん:2009/10/19(月) 11:22:19 ID:???
$_FILESとかに何もしてせずに送った時は何も入ってないと思うのですがPHPの場合はNULLという文字列が入ってますか?
条件分岐を $hogehoge == "" としててもうまく機能せず $hogehoge == "NULL" とするとうまくいくのでどうなのかな?と。
CとかVBは数年使ってたのでプログラム自体は素人ではないのですがPHPは使い始めて1週間です。


668 :nobodyさん:2009/10/19(月) 11:24:56 ID:???
まずマニュアルの型の比較のところを読もう

669 :nobodyさん:2009/10/19(月) 11:42:48 ID:???
その場合は==じゃなく===じゃないといかんのじゃね?
とPHPを初めて1ヶ月の俺が適当に答えてみるテスト

670 :nobodyさん:2009/10/19(月) 11:44:28 ID:???
exec("/usr/bin/php -f /var/www/hoge/hoge.php");
と呼び出しているphpに、呼び出し時に値を一緒に渡したいのですがどうすればいいでしょうか?

671 :nobodyさん:2009/10/19(月) 12:05:24 ID:???
>>667
本当にただのNullの場合、緩い比較である==演算子を使っても文字列としては通らない。
よって$hogehoge == "NULL";で通るということはNULLという文字列が入っていると考えられる。
ためしに$hogehoge == "null;"と小文字にして確かめてみるとよい。

672 :nobodyさん:2009/10/19(月) 12:50:51 ID:6KYWXDe7
PHPでevalは危ないから使わないほうがいいって聞いたのですが
何が危ないのでしょうか?

673 :nobodyさん:2009/10/19(月) 12:55:31 ID:???
なんで言ったやつに聞かないのよ

674 :nobodyさん:2009/10/19(月) 13:03:03 ID:???
>>671
var_dump(true == "NULL");

675 :nobodyさん:2009/10/19(月) 13:04:20 ID:???
もう一個
var_dump(0 == "NULL");

676 :nobodyさん:2009/10/19(月) 13:37:33 ID:???
>>673
言ったやつが正しいのか間違ってるのか分からないからここで聞いてんだろks

677 :nobodyさん:2009/10/19(月) 13:39:05 ID:???
>>674-675
何がいいたいかわからん
ていうかvar_dumpをそんな使い方してる人ははじめてみたな

$a = null;
var_dump($a);

if ($a == "null") {
echo 1; //nullはStringではないので表示されない
}

678 :nobodyさん:2009/10/19(月) 13:43:12 ID:???
>>677
var_dump(null == "null");

679 :nobodyさん:2009/10/19(月) 13:55:09 ID:???
>>678
ん?ちゃんとfalseになってるよね

680 :nobodyさん:2009/10/19(月) 14:01:26 ID:???
てか、型の違うものを比較するなよ
empty()でチェックしたり、intval()とかで変換したりしろ

681 :nobodyさん:2009/10/19(月) 14:22:30 ID:???
>>676
だから・・
言ったやつがどういう意図で言ったか根拠を本人に聞いてないとここで答えようがないだろつってんだよ

682 :680:2009/10/19(月) 14:26:31 ID:???
と言ったけど、一応、何が起こってるか言っておこう
>>668で終わりなんだけどね


http://jp.php.net/manual/ja/reserved.variables.files.php
ファイルが送られなくても$_FILESは空にはならない
$hogehogeはそれが何なのかわからないのでなんとも


http://jp.php.net/manual/ja/language.operators.comparison.php
>>674
boolとstringとの比較なのでboolに変換され、true == true

>>675
numberとstringとの比較なので数値に変換され 0 == 0

>>677
nullとstringとの比較なので""に変換され "" == "null"

683 :nobodyさん:2009/10/19(月) 14:40:52 ID:???
>>670
http://www.php.net/manual/ja/reserved.variables.argv.php

684 :nobodyさん:2009/10/19(月) 15:09:06 ID:???
>>681
日本語でおk

685 :nobodyさん:2009/10/19(月) 17:55:34 ID:???
$hoge = "abc";
この$hogeの中身を1文字ずつずらしてbcdとしたいのですが1文字ずらすのはどうすればいいんでしょうか?
文字コード拾ってきて1個ずらすとかでしょうか?

686 :nobodyさん:2009/10/19(月) 18:18:28 ID:???

$hoge = "abc";
foreach (str_split($hoge) as $eachVar ) {
print ( chr ( ord( $eachVar ) + 1 ) );
}

687 :nobodyさん:2009/10/19(月) 19:08:07 ID:???
>>686
$hoge = "abc";
foreach (str_split($hoge) as $eachVar ) {
print (++$eachVar);
}

688 :nobodyさん:2009/10/19(月) 19:26:15 ID:???
>>687
これは知らなかったありがとう。
ただ、zの次がaaですぜ

689 :nobodyさん:2009/10/19(月) 20:11:26 ID:???
こっちのほうが半短
$hoge = "abc";
$hoge = ++$hoge;
echo $hoge // bcd;

690 :nobodyさん:2009/10/19(月) 20:14:51 ID:???
>>689
結果:abd

691 :nobodyさん:2009/10/19(月) 20:16:01 ID:???
$hoge = "abc";
$hoge = --$hoge;
$hoge = $hoge + 1;
echo $hoge // bcd;

692 :nobodyさん:2009/10/19(月) 20:17:35 ID:???
>>691
結果:1

693 :nobodyさん:2009/10/19(月) 20:19:04 ID:???
>>690,>>692
今日のところはこれくらいで勘弁してやるよ

694 :nobodyさん:2009/10/19(月) 20:20:33 ID:???
試しもしないで書いてるのワロタw

695 :nobodyさん:2009/10/19(月) 20:33:24 ID:???
やりたい事は
自分自身を消した後に指定アドレスにlocationするという事をしたいです。
ore.php
include_once("hogehoge.php");
いろんな処理〜
exec("rm -rf ore.php");
header("Location: yahoo.co.jp");
このような事なのですがlocationする前に消しているせいか、locationしてくれません。(当たり前ですが)
かと言ってlocationを先にするとファイルが消されません。
ファイルを消してなおかつlocationするにはどうすればいいのでしょうか?
馬鹿な私に知恵をお貸し下さい。

696 :nobodyさん:2009/10/19(月) 20:46:53 ID:???
headerは文字通りヘッダ出してるだけだから後に書いても問題ないと思うけど。
ファイルが使用中だから消せないとか?分からんけど。

別な方法としてはGETやリファラでファイル名を渡して遷移先で消すとか。あるいは間に1ページ挟むとか。


697 :nobodyさん:2009/10/19(月) 22:37:55 ID:???
>>695
なんでそういうことをしたいのか分からないので最適な方法はどれになるかわからんけど
消したいファイルのリストを生成しておき(exec使ってるらへんに)
次回アクセス時にリストにあった場合それらを消すというのはいかがだろう?

698 :nobodyさん:2009/10/19(月) 23:32:01 ID:???
証拠隠滅したいんじゃないのは
ID出さないスレで質問してるから後ろめたい悪意を背後から感じられる

699 :nobodyさん:2009/10/20(火) 09:14:28 ID:???
>>695
自殺プログラムか
普通にunlinkではだめなんだっけ?
あと、Locationの書き方間違えてる

700 :nobodyさん:2009/10/20(火) 09:49:35 ID:???
Locationってhttp://とかいるんだっけ?
Location 自体使わないから知らんけど。

701 :nobodyさん:2009/10/20(火) 10:58:33 ID:???
Location後に__FILE__をunlinkだろ

702 :nobodyさん:2009/10/20(火) 11:38:40 ID:???
俺はフォルダ消すときはexecよく使う
unlinkだと中身あると面倒だしな

703 :nobodyさん:2009/10/21(水) 10:49:18 ID:???
/* fnc_capture.php */
<?php
require_once("../MySmarty.class.php");
$o_smarty=new MySmarty();
$o_smarty->assign("data",array(1,2,3,4,5,6,7,8,9,10));
$o_smarty->display("fnc_capture.tpl");
?>

/* fnc_capture.tpl */
{capture name="exp"}
{include file="fnc_section2.tpl"}
{/capture}
{if $smarty.capture.exp|strip:""!=""} // ココの "" != "" の意味が分かりません
結果)<br />
{$smarty.capture.exp}
{/if}

/* fnc_section2.tpl */
{section name="loopName" loop=$data start="2" step="2" max="3"}
{$smarty.section.loopName.rownum}.
{$data[loopName]} <br />
{/section}

すみません、上の3つのファイルで、fnc_capture.tplの『"" != ""』の意味が分かりません
strip修飾子で繰り返された空白・改行・タブを、1つの空白または与えられた文字列によって置き換えたものが空白ではない???
って感じで理解が出来ません
簡単な事だとは思うのですが、どなたか教えて下さい

704 :nobodyさん:2009/10/21(水) 12:01:18 ID:???
>>703
{if ($smarty.capture.exp|strip:"")!=("")}
ということではないかと

705 :nobodyさん:2009/10/22(木) 10:03:21 ID:h4MlR9Sn
軽量のフレームワークの名前とHello worldの出し方を教えろやks
しらねえなら今から調べて来い
12時に飯食うからそれまでにとっととggってこいや
時間がねえからさっさとしろよksども


706 :nobodyさん:2009/10/22(木) 10:12:13 ID:???
こっちも書いてるのか。 触るなよ。

707 :nobodyさん:2009/10/22(木) 11:19:43 ID:???
>>703はどうなった?

708 :nobodyさん:2009/10/22(木) 15:02:17 ID:???
PHPでExcel出力をする必要があり、PEARのライブラリspreadsheet_excel_writerを
使おうと思っているのですが、PEARでインスコ出来ません。
pear install --alldeps Spreadsheet_excel_writer
というコマンドをターミナルから実行するのですが、しばらくすると
No releases available for package "pear.php.net/Spreadsheet_excel_writer"
と出て終わってしまいます。
何か違う方法でインストールするのでしょうか?

709 :nobodyさん:2009/10/22(木) 15:39:17 ID:???
betaだからじゃね?

710 :703:2009/10/22(木) 15:55:36 ID:???
>>704
つまり、 ($smarty.capture.exp|strip:"") != ("")と言う事は、取得した配列から空白文字を取り除いたものが、
空文字でなければ{$smarty.capture.exp}を出力するという事でしょうか?

>>707
風邪でブッ倒れていました
体調悪いです・・・

711 :708:2009/10/22(木) 16:14:33 ID:???
pearで何かをインストールしようとすると必ず上記のエラーが出ます。
ping pear.php.net を行うと、pingが帰って来ないのでpear.php.netにアクセス出来ない感じです。
どうしたらいいんでしょうか・・・?

712 :nobodyさん:2009/10/22(木) 16:21:16 ID:???
会社の鯖管がフィルタリングしてんじゃね?

713 :708:2009/10/22(木) 16:57:33 ID:???
うーん・・・
pear.php.netはping帰ってこないのに、
pecl.php.netはpingが帰ってくる・・・。
当然 pear installは出来ないけど、pecl installはOK。
困ったぞ・・・

714 :nobodyさん:2009/10/22(木) 23:29:06 ID:???
ExcelWriterは普通にどこかモジュールのパス通ってるところに置いて
php.ini にその設定追加してあげれば動くはず

つーか、昔のExcelWriter/Reader 使っているサイト改修したときはそうした。

715 :nobodyさん:2009/10/23(金) 02:43:19 ID:???
PHPエディタで、
フォントの大きさを14より
大きくするにはどうしたらいいの?

716 :708:2009/10/23(金) 08:58:03 ID:???
結局どうしてもpear.php.netに接続出来ないので、ローカルにgzを落として
ローカルインストールして解決しました。
de.pear.php.netには接続出来るので、チャンネルのURLを変更しようとしても
pear.php.netに一旦アクセスしないといけないので変更出来ず・・・。
ずっとこのままだとちと面倒だなぁ・・・。

717 :nobodyさん:2009/10/23(金) 10:51:39 ID:???
PHPエディタは使うなっ!!!!!!!!!!!!!!!!!!!
しっかりしたエディタをカスタマイズしろよ!!!!!!!!!!!!

718 :nobodyさん:2009/10/23(金) 14:33:10 ID:TDVXUmCb
【OS名】2000 apache 2.2
【PHPのバージョン】php5.21
【質問内容】
PHPで画像を表示させ、「何秒か経過したら他の画像を表示させる」
プログラムが作れません。グーグル先生は俺の日本語が下手すぎて回答内容
も僕を導いてはくれませんでした。そもそもhtmlに結果のみを表示するPHPで
質問内容が出来るものなのか?と正直自分は思っています。
出来るのでしたらどなたかやり方を教えてください。
よろしくお願いいたします。

719 :nobodyさん:2009/10/23(金) 14:34:01 ID:???
>>718
画面遷移ではなくフォトフレームみたいな奴?

720 :nobodyさん:2009/10/23(金) 14:35:42 ID:???
>>718
JavaScriptスレにおいで
http://pc11.2ch.net/test/read.cgi/hp/1255424883/

721 :nobodyさん:2009/10/23(金) 14:59:05 ID:???
>>716
78.129.214.25にpingは通る?
通るならとりあえずhostsに書いとけば

722 :nobodyさん:2009/10/23(金) 15:19:18 ID:EL5fculY
PHPでHTMLを出力しているのですが、ページの上部に
空白ができてしまいます。

PHPファイルの文字コードをANSIに変えてやると問題ないのですが...

現在は、UTF-8を使用していますが、やはりANSIに切り替えるしかないでしょうか?

アドバイスよろしくお願いします。

723 :nobodyさん:2009/10/23(金) 15:20:38 ID:???
BOMでも入ってるのでは?

724 :722:2009/10/23(金) 15:20:44 ID:EL5fculY
すみません、事故解決しました。

UTF-8のBOMをとってやればOKでした

725 :nobodyさん:2009/10/23(金) 20:19:55 ID:???
>>719
そうなります。広告のポップやフォトフレームみたいに
「自動で画像が変える」為のプログラムがわかりません。
一度きりの表示はわかるんですが。
>>720
この問題はJavaScriptスレで聞けば良いということなのでしょうか?


726 :nobodyさん:2009/10/23(金) 20:23:09 ID:???
>>725
JSでやったほうが楽だけど
PHPでやるならランダムで画像を出力するページをインラインフレームで表示してrefleshで定期的に更新させるとか

727 :nobodyさん:2009/10/23(金) 20:25:08 ID:???
>>725
>この問題はJavaScriptスレで聞けば良いということなのでしょうか?
うん。

728 :nobodyさん:2009/10/23(金) 20:26:10 ID:???
アクセスカウンタみたいなものを作っています。
使い方としては、カウンタ本体のスクリプトファイルがあり、それを他ファイルからincludeして使うような形です。

何らかのエラーが出た場合、適当なエラーメッセージを吐いて終了(include元のページに制御を戻す)したいのですが、exitで終了してしまうと、その後、ページの内容が出力されません。
どうしたら良いのでしょうか。

ファイルの末尾にgotoする、というもの考えたのですが、もっとスマートが方法があれば教えてください。

729 :728:2009/10/23(金) 20:32:27 ID:???
なんとreturn文でこの機能が実現できるんですね、知りませんでしたorz

730 :nobodyさん:2009/10/23(金) 20:34:31 ID:???
6分の間に何があったんだ

731 :nobodyさん:2009/10/23(金) 20:36:38 ID:???
謎である。

732 :nobodyさん:2009/10/23(金) 21:29:52 ID:???
goto厨きめえ

733 :nobodyさん:2009/10/23(金) 22:01:50 ID:EonHv/nO
悪いことは言わないからgoto使うのはやめとけ

734 :728:2009/10/23(金) 22:19:00 ID:???
引き続いての質問なのですが、
他ファイルからカウンタ本体のスクリプトをincludeして使うようなカウンタだと説明したのですが、
この場合、変数や関数の名前が被ってしまう場合の対策というのは何か無いのでしょうか。

735 :nobodyさん:2009/10/23(金) 22:27:03 ID:???
名前空間というものがある

736 :nobodyさん:2009/10/23(金) 23:00:02 ID:4v117FRK
質問があります。

DBに入っている画像データのバイナリから、
ファイルを介さず直接サムネールを生成する方法はないでしょうか。

画像そのものを出力したり、ファイルやURLからサムネールを
生成する方法はあちらこちらに書いてあるのですが、
バイナリを直接GDに食わせる方法の記述を見つけられません。

Perlでは簡単にできるのに、PHPではできないということなのでしょうか。


737 :nobodyさん:2009/10/23(金) 23:04:28 ID:???
http://www.php.net/manual/ja/function.imagecreatefromstring.php
がそれじゃないの?

738 :nobodyさん:2009/10/24(土) 00:46:14 ID:???
>>736
Content-Typeヘッダを、JpegならJpegの、GIFならGIFのものを与えて投げてあげればおk

739 :nobodyさん:2009/10/24(土) 01:02:45 ID:???
PHPのクラスって、宣言されてないインスタンス変数にも代入できるようだけど、
これだとタイプミスしたときに見つけにくいよね。

class Foo {
}
$obj = new Foo();
$obj->x = 111;
$obj->y = 222;
var_export($obj); #=> Foo::__set_state(array('x' => 111, 'y' => 222,))

宣言してないインスタンス変数に代入しようとしたらエラーになるよう、設定できませんか?

740 :nobodyさん:2009/10/24(土) 01:27:37 ID:???
__setメソッドというのがあるよ

741 :nobodyさん:2009/10/24(土) 11:41:45 ID:???
PHPの関数っていくつあるの?
どこかのサイトで数えてた気がするけど、見つからないので教えてください。

742 :nobodyさん:2009/10/24(土) 11:57:31 ID:???
http://php.net/manual/ja/indexes.php
関数全部コピペしてプ改行のぞいてA-Zと_の27をひけばそんくらいなんじゃね

743 :nobodyさん:2009/10/24(土) 12:03:33 ID:???
>>742
そこのページ、クラスも入ってる

>>741
http://php.net/manual/ja/indexes.php
このページの総ワード数5900単語の内の半分ぐらいだと思えばいい

744 :nobodyさん:2009/10/24(土) 12:19:32 ID:???
>>741
>>743のから::か->を含む行をぬいてみた。
http://www.dotup.org/uploda/www.dotup.org296354.txt.html
4199個。

745 :nobodyさん:2009/10/24(土) 12:20:51 ID:???
>>742-744
・・・
http://jp2.php.net/manual/ja/function.get-defined-functions.php

746 :nobodyさん:2009/10/24(土) 12:23:16 ID:???
ワロタ

747 :nobodyさん:2009/10/24(土) 12:24:02 ID:???
>>745
それだとビルド時のオプションによっては出てこない関数がある。
だったと思う。

748 :nobodyさん:2009/10/24(土) 12:25:27 ID:???
ま、知る必要のないことだな

749 :nobodyさん:2009/10/24(土) 12:26:44 ID:???
PHP4200KO

パスワードに使おう。

750 :nobodyさん:2009/10/24(土) 12:27:20 ID:???
動的にソースを入れ替えるわけでもあるまいし・・・
それなら継承とかを学んだ方がいいぞ

751 :nobodyさん:2009/10/24(土) 12:32:43 ID:???
元ネタから10レスも離れてないのに、継承まで飛びますかw

752 :nobodyさん:2009/10/24(土) 12:49:30 ID:???
>>747
正解

>>745
無知乙

753 :nobodyさん:2009/10/24(土) 13:03:18 ID:???
>>745をそんなにいじめるなよw
気取りたいことくらい誰だってあるだろ

754 :nobodyさん:2009/10/24(土) 13:49:14 ID:???
>>745
マジksだなwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
それだとオプションなしでのlinuxとエクステンションdllを読み込んでないでのwinで比べてもハッキリと違うだろがwwwwwwwwwwwww
その方法だとlinuxでないと使えない関数はwinでは取れねえだろwwwwwwwwwwwwwww
顔真っ赤でIDも真っ赤になって幸せだなwうぇwっうぇうぇwwwwwwwwww

755 :nobodyさん:2009/10/24(土) 14:50:02 ID:???
745涙目www

756 :nobodyさん:2009/10/24(土) 15:47:12 ID:???
よっぽど悔しかったんだな
草の数が物語ってる

757 :nobodyさん:2009/10/24(土) 16:50:30 ID:???
冷静を装って756で現れる>>745先生w

758 :nobodyさん:2009/10/24(土) 19:06:33 ID:???
ユーザーが
すべてのクッキーを受け付けない

って設定にしてたら、
セッションクッキーも
はじかれるの?

759 :nobodyさん:2009/10/24(土) 19:09:26 ID:???
当然受け付けてくれない。
ブラウザからは、クッキーのそれぞれの意味は判別不可能。

760 :nobodyさん:2009/10/24(土) 19:15:14 ID:???
したら、
セッションクッキーを発行したとして、
それが、必ず受け入れられている、
って勝手に自分で前提を組んでしまって、
その前提でアプリを設計するのは
まずい、ってことだよね。

761 :nobodyさん:2009/10/24(土) 19:22:28 ID:???
セッション張れないならログインできない、とか
いう症状になるんだろうね。
心配ならチェックすればいいと思う。
なにかエラー出たら「クッキーonにしてね」って
表示するだけのサイトも多いけど。

762 :nobodyさん:2009/10/24(土) 19:50:17 ID:???
その処理をめんどがって書かないでいると、

「IDとパスワードをいれているのになぜかログインできない」

ってクレームになるわけね。

763 :nobodyさん:2009/10/24(土) 20:34:31 ID:???
そのためのsession.use_trans_sidじゃないの?

764 :nobodyさん:2009/10/27(火) 14:15:50 ID:???
>>760
情弱乙
それマスゴミが言ってたそのまんまじゃん

765 :nobodyさん:2009/10/27(火) 14:16:54 ID:???
>>764
自分の言葉で解説よろ

766 :nobodyさん:2009/10/27(火) 16:36:12 ID:???
いまだに「情弱」とか「マスゴミ」とか言うやつの想像図
http://file.mootoko.blog.shinobi.jp/img20090813163317.jpg

767 :nobodyさん:2009/10/27(火) 19:35:56 ID:???
お前の頭の程度だな、その絵は。

768 :nobodyさん:2009/10/28(水) 21:49:18 ID:???
PHPを使ってブログでも作ってみようと思ってるけど、
アクセスやコメント書き込みが集中したときのための対策は何か必要?
大勢が閲覧したときに処理が重くならないようにするためには、サーバを2台にしたりするのかな。
それに、2人の人がまったく同時に書き込もうとしたらどうなるんだろ。

そもそも、どのくらい集中したら重くなるの?
1分間に100人とか?

詳しい人、どうぞ教えてください。

769 :nobodyさん:2009/10/28(水) 22:11:54 ID:???
PHPで、
CLI版(コマンドライン版)で、
MS-DOSプロンプト上で動かすとき、
キーボードからの
入力を受け付けて、
文字列とか数値とかの
入力をキーボードから受け付けて、
変数で受け取るにはどうしたらいいの?

770 :nobodyさん:2009/10/28(水) 22:13:46 ID:???
いつものようにWEBでやるんだったら、
フォームで
<input type="text" name="aaa">
とかってやって、
$bbb = $_POST['aaa'];

とかってやればいいんだけど、
これをMS-DOS上で
CLI版でやるのはどうしたらいいの?

771 :nobodyさん:2009/10/28(水) 22:16:23 ID:???
>>770
PHP: PHP をコマンドラインから使用する - Manual
http://php.net/manual/ja/features.commandline.php

引数でいいなら$argvで取得できる

772 :nobodyさん:2009/10/28(水) 22:23:54 ID:???
引数じゃない

キーボードから入力して
それを取得したい

773 :nobodyさん:2009/10/28(水) 22:23:57 ID:???
>>770
<?php echo fgets(STDIN) ?>

774 :nobodyさん:2009/10/28(水) 22:25:54 ID:???
>>772
じゃあこっちか

PHP: readline - Manual
http://www.php.net/manual/ja/function.readline.php

775 :nobodyさん:2009/10/28(水) 22:29:15 ID:???
<?php
$line = trim(fgets(STDIN)); // STDIN から 1 行読み込む
print $line;
?>

なんかこれを実行すると
すげー改行されるんだけど、なんで?

776 :nobodyさん:2009/10/28(水) 22:32:09 ID:???
>>774
なんかエラーになる
readlineは定義されてないって

777 :nobodyさん:2009/10/28(水) 22:33:01 ID:???
#include <stdio.h>
int main(void)
{
  int counter=0;
  while(1){
    int c = getchar();
    if(c=='\n'){
      counter++;
    }
    system("clear");
    printf("counter:%d\n", counter);
  }
  return 0;
}

※windowsならsystem("cls");

ようはこれをやりたかった
だけなんだけど。

778 :nobodyさん:2009/10/28(水) 22:39:15 ID:???
うちの環境(windows xp / php5.2.10)では
DOS窓で>>775を実行しても無駄な改行などはでてこないな

779 :nobodyさん:2009/10/28(水) 22:39:44 ID:???
<?PHP

$c=0;
while(1){


$c = fgets(STDIN);

if($c=='\n'){
$c++;
}
system("cls");
print "counter:" . $c ."\n";
}

?>

だめだぁ〜
これだとなぜかうごかない〜
たすけてえろいひと〜

780 :nobodyさん:2009/10/28(水) 22:52:54 ID:???
>>779
fgetsは改行を含む1行を読み込む関数だぞ
ttp://jp.php.net/manual/ja/function.fgets.php

<?php echo strlen(fgets(STDIN)) ?>
というスクリプトに対して、

qwertyと打って、リターンキー押すと、7が出力される

781 :nobodyさん:2009/10/28(水) 23:23:12 ID:???
if文のチェックをはずしても
カウンターがカウントアップ
されないんです

782 :nobodyさん:2009/10/28(水) 23:24:50 ID:???
<?PHP

$c=0;
while(1){


$a = fgets(STDIN);


$c++;

system("cls");
print "counter:" . $c ."\n";
}

?>

これでできた
だが一歩前進、といったところだ

なぜなら、カウントアップは
するようになったが、
clsが効いていない

783 :nobodyさん:2009/10/28(水) 23:51:28 ID:???
PHPでDOSでCLSって
もしかして、できないの?

command.comのオプションとして
実行する、ってのが
ググったらでてきたが、
ソースをこぴぺして試してみたが、
消えなかったよ

784 :nobodyさん:2009/10/28(水) 23:52:17 ID:???
それと、ググッたら、別のページでは、

PHPではCLSはできない
(CとC++ではできる)
ので、代わりにニューラインを30行
出力すればよい


って書いてあるが、そうなの?

785 :nobodyさん:2009/10/28(水) 23:54:42 ID:???
<?PHP

$c=0;
while(1){


$a = fgets(STDIN);


$c++;

for($b=0;$b<40;$b++){
print "\n";

}

print "counter:" . $c ."\n";
}

?>


たしかに、これで、希望の動作に
近い物はできた。
だが、しかし、何かが違う。
やはりCLSのほうがいい。
CLSはどうやったら使えるんだ?

786 :nobodyさん:2009/10/29(木) 00:36:57 ID:???
最近沸いてこないと思ったらまたお前か

787 :nobodyさん:2009/10/29(木) 00:37:53 ID:???
<?PHP

$c=0;
while(1){


$a = fgets(STDIN);


$c++;
for($b=0;$b<40;$b++){
print "\n";
}


print "counter:" . $c ;

for($b=0;$b<24;$b++){
print "\n";
}


}

?>

これでかなり近いものができた
しかし画面のちらつきがある
CLSとまったく同等のものは
できないのか?
ていうか、なんでできないの?

788 :nobodyさん:2009/10/29(木) 00:38:37 ID:???
>>786
自宅待機者は書き込むな
税金どろぼう

789 :nobodyさん:2009/10/29(木) 20:19:34 ID:???
NGワードは何にすればいいですか?

790 :nobodyさん:2009/10/29(木) 20:46:34 ID:???
DOSの意味を知らないせいだな。
コマンドプロンプトはcommand.comじゃないのにな。

791 :nobodyさん:2009/10/29(木) 20:52:55 ID:???
男は黙ってESC[2J

792 :nobodyさん:2009/11/03(火) 18:29:33 ID:???
ここって板全体が過疎なの?

793 :nobodyさん:2009/11/04(水) 01:01:06 ID:???
>>792
そう。
PHPプログラマーって
犯罪者が多いから、
隔離板として作られた。

794 :708:2009/11/05(木) 00:26:10 ID:???
88のCLS 3の遅さに泣いた

795 :nobodyさん:2009/11/05(木) 01:07:53 ID:???
規制中は平和だったが、解除されたとたんこれか。

796 :nobodyさん:2009/11/07(土) 01:42:56 ID:???
web関係のことをひととおり身につけようとすると
HTMLとCSSとJavaScriptとPHPとCGIとFlashとJavaとSQLと……

どんだけ覚えさすねん!!

おまいらどうやって覚えた?


797 :nobodyさん:2009/11/07(土) 02:04:19 ID:???
そりゃ正攻法で

798 :nobodyさん:2009/11/07(土) 02:05:55 ID:???
もはやCGIはPerlと同義語か?

799 :nobodyさん:2009/11/07(土) 02:12:53 ID:???
CGIはPerlに限らないから違うでしょ。

800 :nobodyさん:2009/11/07(土) 04:32:43 ID:???
CGIはインターフェイスだから「CGIはPerlに限らない」はおかしい。
PerlはCGIではない。

とか言うと「ホームページ」論争みたいな事になる。
きょうび、CGIと言われたらまずPerlの事だな。
そう思わないと話が通じない場合が多いし。

801 :nobodyさん:2009/11/07(土) 05:40:06 ID:???
>>800
逆じゃね?
Perlと言われたらまずCGIの事じゃない?

802 :nobodyさん:2009/11/07(土) 06:54:59 ID:???
>>801
話のもとが>>796なもんで。

803 :nobodyさん:2009/11/07(土) 11:34:20 ID:???
Web関係で重要な技術は
HTML>CSS>PHP>SQL>Javascript>Java>Flash かな。
今の新規プロジェクトでCGI使う物はかなり少ないし、
Flashはプログラマの仕事ってよりデザイナーの仕事って感じだし、
Javaはぜひ覚えておいた方がいい言語だけど、Webプログラムに特化したら意外と使わせてもらえないし、
Javascriptはググれば大抵どこかに欲しい物が落ちてるし、
SQLはWeb系で使えなかったら素人扱いにしかならないし、
PHPは出来るべきだし、
HTMLとCSSが出来ない人間にWebプログラマなんて出来ない。
後、Linuxも必要だよ

804 :nobodyさん:2009/11/07(土) 12:06:23 ID:???
>>796
仕事をするなら全部覚える必要はないよ
広く浅い知識より得意分野を作ったほうが仕事は多くなります

805 :nobodyさん:2009/11/07(土) 17:00:29 ID:???
また、規制来てるな・・・

WEBプログラマならhttpが優先度高いだろう。
あとflex(adobeの方、字句解析じゃなくて)が要求される仕事が最近増えてきたよ。

>CGI使う物はかなり少ない
通常はmod_xxxってことか?w


806 :nobodyさん:2009/11/07(土) 17:40:01 ID:???
ちょっと規模が大きくなってアプリケーションサーバって事になるとJavaって場合が多い。

807 :nobodyさん:2009/11/07(土) 17:43:36 ID:???
その頃YahooではPHPでsymfonyを使ってるようでした

808 :nobodyさん:2009/11/07(土) 19:20:15 ID:???
Yahoo Bookmarksだな。

809 :nobodyさん:2009/11/07(土) 19:51:19 ID:???
>>800
CGIに用いる言語はPerlに限らないって意味でしょ

810 :nobodyさん:2009/11/07(土) 19:58:19 ID:???
ホームページ論争って何だ?

811 :nobodyさん:2009/11/07(土) 20:02:14 ID:???
>>809 無知乙

812 :nobodyさん:2009/11/07(土) 20:04:49 ID:???
>>810
「ホームページ」は自分がブラウザ開いた時に表示されるページだ。なんでもホームページ言うな!
今更そんな古い話持ち出すな、ホムペで通じるだろ老害!

みたいな話。

813 :nobodyさん:2009/11/07(土) 20:05:02 ID:???
どのへんが無知?

814 :nobodyさん:2009/11/07(土) 20:06:05 ID:???
名前からも分かるとおり、CGIはあくまでもインターフェイスであり、特定のプラットフォームに依存せずに、
ウェブサーバなどから外部プログラムを呼び出す仕組みのことを指す。

そのため、この仕組みを用いて起動されるプログラム本体のことをCGIと呼称するのは誤りである。また、
1990年代後半のCGIを使ったプログラムはPerlが大部分であったため、「CGIとはPerlまたはそれに類する
特定の言語のことである」という認識も広く存在するが、こちらも誤りである。

815 :nobodyさん:2009/11/07(土) 20:08:25 ID:???
「CGIはPerlに限らない」や
「CGIに用いる言語はPerlに限らない」じゃ意味わからん。

「CGIを使ったプログラムはPerlに限らない」と書け。





というくだらん揚げ足取り?

816 :nobodyさん:2009/11/07(土) 20:10:22 ID:???
間違った認識を正すのは揚げ足取りとは言わない。

817 :nobodyさん:2009/11/07(土) 20:11:39 ID:???
筋肉痛が痛いっつったら
ハァっていちいち言うタイプだろ

818 :nobodyさん:2009/11/07(土) 20:12:20 ID:???
多少省略しても成り立つのが日本語のいいところょ。

819 :nobodyさん:2009/11/07(土) 20:13:24 ID:???
ホームページ論争みたいな事になってるしw

820 :nobodyさん:2009/11/07(土) 20:14:09 ID:???
>>798-800

CGIはインターフェイスだから「CGIはPerlに限らない」はおかしい。

ではなく

CGIはインターフェイスだから「もはやCGIはPerlと同義語か?」はおかしい。

でしょ。

821 :nobodyさん:2009/11/07(土) 20:14:50 ID:???
「きょうび、CGIと言われたらまずPerlの事だな。」もおかしいにょ。

822 :nobodyさん:2009/11/07(土) 20:16:51 ID:???
ホームページって各ウェブサイトのトップページのことだよ

823 :nobodyさん:2009/11/07(土) 20:19:14 ID:???
>>820>>821
そういう意味で使う人が多い、ってのは間違って無いだろ。

824 :nobodyさん:2009/11/07(土) 20:20:00 ID:???
もうどこまでが本気でどこからがネタなのかwww

825 :nobodyさん:2009/11/07(土) 20:22:10 ID:???
>>822
君の使ってるブラウザにもあるだろ、ホームページの設定。

826 :nobodyさん:2009/11/07(土) 20:23:25 ID:???
>>825
ごめん、英語での意味の話。
僕ちんイギリスに住んでたのよ。

827 :nobodyさん:2009/11/07(土) 20:24:32 ID:???
>>826
そうだったのか、ごめん。

828 :nobodyさん:2009/11/07(土) 20:26:07 ID:???
ttp://www.cgi.com/

829 :nobodyさん:2009/11/07(土) 21:35:06 ID:???
「CGIを設置する」って言い方が定着してるから、しょうがないんだろうな。
CGIはPerlだけじゃないよ、って解説してるページも多いし。
CGIのちゃんとした意味なんか知らなくても、応募フォームとか、会員管理するサイトとか作るのに支障はない。

けど、せっかく"prog"って付く板にいるんだから、RFC3875に目を通してみてはどうだろう?
The Common Gateway Interface (CGI) Version 1.1(日本語訳)
http://www.studyinghttp.net/rfc_ja/rfc3875


830 :nobodyさん:2009/11/08(日) 11:11:34 ID:???
PHPを書くのにどういうテキストエディタがいいでしょうか?

831 :nobodyさん:2009/11/08(日) 11:12:38 ID:???
komodo

832 :nobodyさん:2009/11/08(日) 11:17:10 ID:???
こもどwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

833 :nobodyさん:2009/11/09(月) 13:44:13 ID:???
今までSQLite3使っていたのですが、MySQLに変えようと思っております
で、php.iniにてDSN宣言をしようと思うのですが、今までは
pdo.dsn.test="sqlite:c:\〜\Apache2_2\htdocs\samples\hoge.db"としていました
MySQLの場合は、
pdo.dsn.test="mysql:host=localhost;dbname=friend;charset=sjis"の他にどのように書けばいいのでしょうか?
SQLiteでいう、c:\〜\Apache2_2\htdocs\samples\hoge.dbの部分が分かりません


834 :nobodyさん:2009/11/09(月) 13:45:35 ID:???
ファイルの指定なんていらんよ

835 :nobodyさん:2009/11/09(月) 14:13:07 ID:???
>>834
では、例えば>>833の例で言うと、以上のpdo.dsn.testの設定で終わりで、
$user = 'aaa';
$pass = '111';
とすると、 $dbh = new PDO('test', $user, $pass); でいいのでしょうか?

$dsn = 'mysql:host=localhost;dbname=friend'; として、
$dbh = new PDO($dsn, $user, $pass); とする方法は分かっているのですが、少しでも記入を減らす為にphp.iniでDSN宣言をしたいと思いまして
SQLite使ってて、その宣言方が身についているもので

836 :nobodyさん:2009/11/09(月) 14:22:43 ID:???
それでいいんじゃない?

837 :nobodyさん:2009/11/09(月) 14:26:44 ID:???
>>836
申し訳ございません
それとは改行よりも上の部分の方でしょうか、それとも改行よりも下の部分の方でしょうか?
何度もごめんなさい

838 :nobodyさん:2009/11/09(月) 14:27:23 ID:???
上のほうです

839 :nobodyさん:2009/11/09(月) 14:34:40 ID:???
>>838
ありがとうございました

840 :nobodyさん:2009/11/09(月) 15:09:08 ID:???
move_upload_fileのエラー処理でファイルがアップロードされているかどうかの判断を['size']でやってる人が
周りに何人かいるんだけど今はそれで大丈夫なの?
俺は今まで['erroe']の番号で0ならOKで3なら不完全で4ならアップされてないよ〜みたいな判断してて
かつerrorが0の場合にファイルサイズが0以上ならって感じで見てるんだけど、もしかして順番間違ってる?


841 :nobodyさん:2009/11/09(月) 15:15:38 ID:???
errorで見たほうがいいんでないの
実質的には変わらんかもしれないけど

842 :nobodyさん:2009/11/09(月) 22:11:13 ID:???
学習中のものです。
PEAR::DBじゃなくてPDOを使うのが主流なんですか?
PDO2もあるとどこかで読みましたし…。

843 :nobodyさん:2009/11/09(月) 22:19:39 ID:???
学習中なら違いを学習してください

844 :nobodyさん:2009/11/09(月) 22:35:52 ID:???
アンケート取ったわけじゃないからわからんが
今時はpear/peclに依存しないのが主流じゃね?

845 :nobodyさん:2009/11/09(月) 22:47:10 ID:???
学習中なら主流なんて気にするな。
作ろうとするものに、どんな道具を使えばいいのかを考えとけ。

846 :842:2009/11/09(月) 23:03:10 ID:???
>>843
参考書に違いが載っています。
a)MySQL関数を使う方法、b)PEAR::DBモジュールを使う方法、c)PDOを使う方法
の3つの説明があり、それぞれの欠点は下のとおりでした。

a)MySQLでしか使えない
b)抽象化してセキュリティも配慮しているのでお勧めだが動作が遅め
c)ネイティブ実装で速度は申し分ないがサポートするRDBMSが少ない

PDOが使いやすそうですが、ウェブサーバを変えたときに対応してなかったら
コードの書き直しが必要になるので、迷っているところです。

>>844
PECLというのは初めて目にしましたが、Cで書かれていてPEARより高速なんですね。
でもPEARもPECLも避けたほうがいいということなら、選択肢から外そうと思います。

>>845
そうですね。
主流の方法を勉強しておいたほうが後々有利だと考えてしまいました。

847 :nobodyさん:2009/11/09(月) 23:07:31 ID:???
>でもPEARもPECLも避けたほうがいいということなら、選択肢から外そうと思います。
いやPEARとPECLは使った方がいいよ

848 :844:2009/11/09(月) 23:10:17 ID:???
>>846
PDOはpeclだよ

避けた方が良いとかはないよ
ただ今はフレームワークが流行で、フレームワークはpear/peclに依存してないのが多い。

学習中なら全部やっとけ、覚えるのに時間かからんから。

849 :nobodyさん:2009/11/09(月) 23:21:29 ID:???
>>847
そうなんですか…。
確かにPEARとかはインターネットで調べても情報がいろいろ出てくるので
よく使われてるんだなぁという印象を受けてます。

>>848
PDOってPHP5.1.0以降は標準で入ってるんですね。
サポートするRDMBSが少ないということですが、今のところMySQLとSQLiteしか
使ってないので、問題ないかなと思い始めました。

やっぱり全部やっておくのが一番ですよね。
まずどれか一つを使ってみてから、他の方法もそれぞれ使えるようにしていこうと思います。
ありがとうございました!

850 :nobodyさん:2009/11/10(火) 00:20:10 ID:???
swfのFileReferenceでアップロード中にキャンセルすると、
$_FILES[xxx]['error']が0で$_FILES[xxx]['size']はアップロード済みのサイズになる。
これ、豆知識な。

851 :nobodyさん:2009/11/10(火) 01:11:54 ID:???
突然なに?

852 :nobodyさん:2009/11/10(火) 01:51:13 ID:???
いつものキチガイだろ

853 :nobodyさん:2009/11/10(火) 03:07:10 ID:???
10レスくらいは、遡ってみろよと思う。

854 :nobodyさん:2009/11/10(火) 07:56:46 ID:???
>>853
別の話題が間に入っているのにアンカーを付けなかったら
>>851-852のように思われても仕方ない。

855 :nobodyさん:2009/11/10(火) 09:43:53 ID:???
10レスくらいでキチガイとか言っちゃったあげく、真っ赤になって言い訳か。


856 :nobodyさん:2009/11/10(火) 10:28:41 ID:???
きっと>>840>>850に関連があるって解らなかったんだよ。


857 :nobodyさん:2009/11/10(火) 11:01:27 ID:???
どうやら本当にキチガイのようだ

858 :nobodyさん:2009/11/10(火) 11:11:02 ID:???
自分以外がみんな「キチガイ」に見える人だったか、ご愁傷様。

859 :nobodyさん:2009/11/10(火) 11:17:36 ID:???
>>850
まじかよ
俺も>>840みたいにerrorで判別してたからかな。
ちょうどswf扱ってたから、これ知らなかったら試験ではまったかもしれん。

860 :nobodyさん:2009/11/10(火) 12:42:58 ID:???
まじかよw

861 :nobodyさん:2009/11/10(火) 13:23:00 ID:???
本気と書いてマジと読むw

862 :nobodyさん:2009/11/12(木) 02:11:31 ID:???
>>848
フレームワークはどれが主流?

863 :nobodyさん:2009/11/12(木) 02:16:21 ID:???
ちいたん

864 :nobodyさん:2009/11/12(木) 09:22:24 ID:???
>>862
pearと言われたらそれを素直に信じるのかい?


865 :nobodyさん:2009/11/12(木) 09:56:44 ID:???
>>862
CakePHP・smarty・zend framework の3強
次点で、codeigniter

今後どうなるかはわからないが、勉強会などの人数で判断するとCakePHPが一番盛り上がってる

866 :nobodyさん:2009/11/12(木) 10:31:56 ID:???
>>865
smartysmartysmartysmartysmartysmartysmartysmartysmartysmartysmartysmartysmartysmarty

え?

867 :nobodyさん:2009/11/12(木) 10:32:42 ID:???
>>865-866
smartyじゃなくてsymfonyだったw

ごめんね、最近smartyの仕事ばっかでむかついてたからだと思う

868 :nobodyさん:2009/11/12(木) 10:55:56 ID:???
ちいたんとか名前的に提案できないよ(´・ω・`)

869 :nobodyさん:2009/11/12(木) 11:12:56 ID:???
ちいたんはドキュメントがないから素人におすすめできない

870 :708:2009/11/12(木) 17:55:39 ID:???
PEAR::DBもPDOも使わずに、adodb使ってるオレは少数派かw

871 :nobodyさん:2009/11/12(木) 22:36:54 ID:???
>>864
意味不明

872 :nobodyさん:2009/11/12(木) 23:58:52 ID:???
>>870
adodbってwindows限定?

873 :nobodyさん:2009/11/13(金) 01:26:27 ID:???
PHPでブログ作成に挑戦してます。
サイドバーを表示する位置(右か左か)は、その位置によってHTMLを変えるんですよね?
それともCSSを工夫するだけでどっちにも表示できるんですか?

874 :nobodyさん:2009/11/13(金) 02:16:57 ID:???
float使えばCSSでも可能じゃないかな

875 :nobodyさん:2009/11/13(金) 02:22:31 ID:???
>>874
floatを持ってる本で調べたら
「ブログのマルチカラムデザインを作成する歳によく利用される手段です」と書かれていて
使い方の説明ページを見つけることができました!
ありがとうございました。

876 :nobodyさん:2009/11/13(金) 19:38:00 ID:???
>>873
maloでも使っとけ

877 :nobodyさん:2009/11/13(金) 22:51:40 ID:???
          「;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:|
            ト、;:;:;:丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:|
          {::ト、:;:;:;:;:;:` '' ー―――;:;: '|
           l::l . 丶、:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:|
           ',:i r- 、、` ' ―――一'' " .|
            || ヾ三)       ,ィ三ミヲ  |        Malo とは
            lj         ゙' ― '′ .|
           | , --:.:、:..   .:.:.:.:..:.:...  |     何じゃ
           | fr‐t-、ヽ.  .:.:. '",二ニ、、|
           l 丶‐三' ノ   :ヾイ、弋::ノ| 
           ', ゙'ー-‐' イ:   :..丶三-‐'"|
            ',    /.:   .      |
            ',  ,ィ/ :   .:'^ヽ、..  |
             ',.:/.:.,{、:   .: ,ノ 丶::. |
            ヽ .i:, ヽ、__, イ    _`゙.|
              ,.ゝ、ト=、ェェェェ=テアヽ|
           _r/ /:.`i ヽヾェェシ/   |
     _,,. -‐ '' " ´l. { {:.:.:.:', `.':==:'."    |
一 '' "´        ',ヽ丶:.:.:ヽ、 ⌒      ,|
             ヽ丶丶、:.:.ゝ、 ___,. イ |
              `丶、 ``"二ユ、_,.____|

878 :nobodyさん:2009/11/13(金) 23:24:30 ID:???
ggrks

879 :nobodyさん:2009/11/13(金) 23:50:36 ID:???
-rw-r--r-- 1 root root 0 10月 10 00:00 test
のファイルの文字を追加したく下記を作成しました。
<?php
exec("echo 'test' >> /tmp/test");
?>
これでは権限が足りずに追記できないためsudoで
apache ALL=(ALL) NOPASSWD: ALL
を設定しましたがダメでした。
このファイルにPHPから追記する方法というのは無いのでしょうか?
初歩的だと思うのですが解決策あればヒントもらえないでしょうか。

880 :nobodyさん:2009/11/13(金) 23:53:11 ID:???
俺が歯磨き終わるまで待っててくれるのなら

881 :879:2009/11/14(土) 00:00:27 ID:???
>>880
歯磨きが数時間かからないのであれば待ちます

882 :nobodyさん:2009/11/14(土) 01:13:38 ID:???
歯を磨きながら寝てしまったか
やっぱオナヌーしよ、と気分が変わったか
どっちかだな

883 :nobodyさん:2009/11/14(土) 02:10:55 ID:???
PEAR::AuthでcryptTypeにMD5を指定すると
データベースに入っているMD5のパスワードと照合できるとのことですが、
認証のためにフォームに入力して送信するパスワードは
平文で流れるんですか?

自分でJavaScriptでMD5化してから送信したほうがいいということでしょうか?

ご教示いただければ幸いです。
よろしくお願いします。

884 :nobodyさん:2009/11/14(土) 02:49:47 ID:IZ6ITEcO
SSLじゃないなら平文

885 :nobodyさん:2009/11/14(土) 02:51:38 ID:???
phpがするってことは権限はapacheになるんだよね?
-rw-r--r--にapacheが追記って可能なのか?

886 :nobodyさん:2009/11/14(土) 17:53:48 ID:???
>>884
ありがとうございます。
ハッシュ化せずに送信するのは一般的なのでしょうか?

SSLが安全だと思って導入方法を調べてもよくわからなかったので
SSLを使わない方法を検討しているところです。

887 :nobodyさん:2009/11/14(土) 19:53:13 ID:???
>>886
生パスワードでもハッシュでも、送信した情報を途中で
キャプチャされる事を考えたら、安全性はどっちも同じ。

ハッシュ値で比較するのは、主にデータベースの中身
が漏れた時の対策。
生パスワードで管理すると、情報が漏れたらログイン
し放題だけど、ハッシュで比較するなら危険性は低い。
その意味で言うと、ハッシュ値を送信して比較するのは、
生パスワード同士で比較してるのと一緒。


888 :nobodyさん:2009/11/14(土) 20:05:59 ID:???
>>887
どうもありがとうございます。

むしろ生パスワードを送信したほうがいい
っていうことになるんでしょうか?

889 :nobodyさん:2009/11/14(土) 21:27:01 ID:???
せめべBasic認証ぐらいやれ

890 :nobodyさん:2009/11/14(土) 22:43:04 ID:???
>>889
アドバイスありがとうございます。

調べてみましたが、Basic認証でもパスワードは平文で送られるんじゃないでしょうか。
Digest認証というのも調べましたが、どちらもダイアログボックスが出てきてしまうようですね。
Facebookやmixiのログインページのように、ダイアログボックスが出ない方法がいいなと思ってます。

現在、MD5化したパスワードをデータベースに保存し、ブラウザから送信するときも
MD5にして送るようにしていますが、送信データもDBもMD5だと良くないということが
>>887さんのご説明でわかりました。
結局どうしたら良いのでしょうか。

891 :nobodyさん:2009/11/14(土) 23:03:42 ID:???
グローバル変数なんですか、どっから呼び出してるのかわかりません
1つ1つ探して行くしかないのでしょうか・・・?
大変じゃないですか? 

892 :nobodyさん:2009/11/14(土) 23:42:17 ID:???
>>891
・大変じゃないようなソースを書くようにする
・IDEを使う
・grepする

893 :nobodyさん:2009/11/14(土) 23:52:58 ID:???
>>879
それができたら権限の意味がない
ようにも見えるが>>880なら回避方法あるっぽい

894 :nobodyさん:2009/11/15(日) 09:16:48 ID:???
方法は知らんがmessagesに書いてくれるものがなかったっけ?
それ使えば出来るんじゃないかと適当にレスをつけてみる

895 :nobodyさん:2009/11/15(日) 09:54:26 ID:???
>>894 知ったかぶりでスレ浪費すんなkasu

896 :nobodyさん:2009/11/15(日) 13:15:49 ID:???
>>895
知らないくせに煽ってんじゃねえぞksg

897 :nobodyさん:2009/11/15(日) 15:03:59 ID:???
>>896
知らないくせに煽ってんじゃねえぞksg

898 :nobodyさん:2009/11/15(日) 15:17:35 ID:???
>>897
同じ言葉を真似てる人ってリアルで気が弱いから言い返す力がない人によく見られる光景

899 :nobodyさん:2009/11/15(日) 16:58:09 ID:???
>>898
主語が「同じ言葉を真似てる人」だから文末の「光景」は不自然

日本語もまともに使えない人ってリアルで学歴が低いから言い返す力がない人によく見られる光景?w

900 :nobodyさん:2009/11/15(日) 17:08:44 ID:???
>>898
お前には他人の行動を咎めるだけの文章力がないんだよksg

901 :nobodyさん:2009/11/15(日) 21:15:02 ID:???
error_logでいいじゃん

902 :nobodyさん:2009/11/15(日) 22:31:53 ID:???
Defaults requiretty とか?

903 :nobodyさん:2009/11/15(日) 23:25:27 ID:???
apacheにroot権限あげるかsudoするしかないんじゃないかな
もしくは-rw-r--r--を-rw-rw-rw-とかにして書き込めるようにするとか。
一番いいのはrootで動く別のものに渡してやるとかじゃないかね。
こっちはもともとroot権限ないと作れないけどどれもあんまりお勧めできんな。

904 :nobodyさん:2009/11/15(日) 23:40:52 ID:???
PHP5.3.0にはlibmysql.dllはついてないの?ないんだけど

905 :nobodyさん:2009/11/16(月) 00:02:55 ID:???
そのくらい自分で入れろよ

906 :nobodyさん:2009/11/16(月) 00:13:12 ID:???
>>905
ん?どこで手に入れんの?

907 :nobodyさん:2009/11/16(月) 00:58:35 ID:???
ありました
どうも失礼

908 :nobodyさん:2009/11/16(月) 10:53:06 ID:???
PHPには、例えばココ(http://jigsaw.w3.org/css-validator/#validate_by_input)のように、
html、CSS、JavaScriptにあるような、構文のエラーをチェックしてくれるサイトはないのでしょうか?

後は、FireBugのようにバグを教えてくれる機能のあるソフトとか。

もしあるのであれば教えていただけませんか?




909 :nobodyさん:2009/11/16(月) 12:14:20 ID:???
動かして問題があればエラー出るじゃん

910 :nobodyさん:2009/11/16(月) 12:41:25 ID:???
>>908
構文チェックはphp -lでできる。
あとはerror_log等を見る。

デバッグという事なら、PDTなどのIDEを使い、ZendDebugger/xdebugなどで
リモートデバッグが行える。

911 :nobodyさん:2009/11/16(月) 13:18:43 ID:???
またOCNとチンピラが沸いてたのか

912 :nobodyさん:2009/11/16(月) 13:25:41 ID:???
>>910

すみません、php -l って、マイナスと小文字のエルですか?
どのように使うのでしょうか?
ググってみたのですが、また、マニュアルで検索してみたのですが、出てきませんでした


913 :nobodyさん:2009/11/16(月) 13:31:41 ID:???
>>912
http://www.php.net/manual/ja/features.commandline.php

914 :nobodyさん:2009/11/16(月) 13:34:58 ID:???
グーグルでもヒットするじゃん
http://www.google.co.jp/search?q=%22php+-l%22

915 :nobodyさん:2009/11/16(月) 14:13:08 ID:???
>>913
ありがとうございます

>>914
ダブルクォーテーションを使って検索するのですね・・・
知りませんでした
そのまま検索したら、PHP自体のことしか出てこなくて・・・
ありがとうございます

916 :nobodyさん:2009/11/16(月) 16:16:17 ID:???
プリペアドステートメントを使うだけでSQLインジェクション対策はばっちりなのでしょうか?
これだけでいいなら誰も被害に遭わないとですよね

917 :916:2009/11/16(月) 16:16:48 ID:???
不要な「と」が入ってしまった、どこかの方言みたい

918 :nobodyさん:2009/11/16(月) 17:23:01 ID:???
>>916に便乗して聞きたいけど、
レコード数の少ないテーブルからSELECTで抽出するようなときも
プリペアドステートメントとかで対策する必要があるの?

危険なのは
UPDATE、INSERT、REPLACEとかでデータベースを書き換えるときや
認証でパスワードを扱うときぐらいかなって思ったんだけど。

919 :nobodyさん:2009/11/16(月) 17:28:29 ID:???
えっ・・・?

920 :nobodyさん:2009/11/16(月) 17:32:13 ID:???
>>918
「select * from hoge ; delete 〜」のようにセミコロンで区切られて
複数クエリ実行されたらどうするの?

921 :nobodyさん:2009/11/16(月) 17:35:58 ID:???
>>920
どうやって実行されるの?

922 :nobodyさん:2009/11/16(月) 17:44:09 ID:???
>>921
例えが悪かったな、すまん。
wikiのSQLインジェクションに書いてある例を使わせて貰うと

SELECT * FROM users WHERE name = '(入力値)';

というSQLがあったときに、入力値に "' OR 't' = 't" と入れると

SELECT * FROM users WHERE name = '' OR 't' = 't';

こうなるとある。この場合は全件選択されるだけだが
ここで入力値を "' OR 't' = 't' ; delete from TABLE名; --"
とすると、delete文が実行されてしまう。

923 :nobodyさん:2009/11/16(月) 17:50:37 ID:???
やっぱ皆さん、フレームワークは使っているのでしょうか?
PHP、PEAR、Smartyと学習してきましたが、フレームワークだけは何をやればいいのか分からなくて・・・

そもそも、どういうところで使用するのですか?


924 :nobodyさん:2009/11/16(月) 18:41:46 ID:???
Webアプリでですが

925 :918:2009/11/16(月) 20:49:30 ID:???
>>920 >>922
つまり、SQL文にユーザの入力値が含まれてるような場合が危険ってことだよね?

入力値より前の部分がどんなSQL文になってるか、ユーザに知られちゃうことってあるの?
それとも当てずっぽうで攻撃する人がいるってこと?

926 :nobodyさん:2009/11/16(月) 20:51:21 ID:???
はぁ・・・?

927 :nobodyさん:2009/11/16(月) 20:53:58 ID:???
まぁあてずっぽうでもそれっぽいの入れてればそのうちあたるかもな
それっぽいのをブルートフォースであたれば寝て起きたらいくつかわかってるかもしれんな
SQL文の命令自体はもうきまってるわけだし。

928 :nobodyさん:2009/11/16(月) 21:12:08 ID:???
>>922
PDOでプレースホルダを使ってるけど、

$q = $db->prepare("SELECT * FROM users WHERE name=:username);
$q->bindparam(":username", $_POST['username']);
$q->execute();

こんなんじゃダメ??

$q->bindparam(":username", mysql_real_escape_string($_POST['username']));

のようにエスケープ関数を使わなきゃダメなのかな?

929 :nobodyさん:2009/11/16(月) 21:23:30 ID:???
何のためにPDO使ってんの?

930 :nobodyさん:2009/11/16(月) 21:26:43 ID:???
>>929
だめ?

931 :nobodyさん:2009/11/16(月) 21:40:14 ID:???
個人で使うならmysql_real_escape_stringで十分

932 :nobodyさん:2009/11/16(月) 21:44:02 ID:???
>>930
問題ないよ

933 :nobodyさん:2009/11/16(月) 21:53:30 ID:???
>>930
揚げ足取りはスルーするのがいいよ

934 :nobodyさん:2009/11/16(月) 21:56:03 ID:???
>>930
ばんばん使うといいよ

935 :nobodyさん:2009/11/16(月) 23:04:29 ID:???
ウェブサイトからメタタグを取得して、
"。" ごとに配列に入れたいのですがうまくいきません。
"、" で試したらうまくいったのですが、どうしてでしょうか。

$tags = get_meta_tags('http://sample.com');
$des = $tags['description'];
$arry = explode('。', $des);



936 :nobodyさん:2009/11/17(火) 00:03:52 ID:???
メタタグ内に。がないんじゃない?

937 :nobodyさん:2009/11/17(火) 11:04:57 ID:???
ページャーのクラスを自作してみましたが、
クラスは何年も前にC++でちょっと使った経験しかないので
扱い方が正しいのか不安です。

$p = new pager(引数いろいろ);
echo $p->linkhtml(),

こうすると他ページへのリンクが出て、そのリンクをクリックすると
「?page=10」のようなクエリ文字付きで同じスクリプトに飛びます。
そうすると、リンクをクリックする度に $p = new pager(...); で何度も
インスタンス化が繰り返されることになりますが、問題ないでしょうか?

また、C++ではオブジェクトが不要になったら自分で破棄していた
記憶がありますが、PHPではガベージコレクターが自動的に
破棄してくれるのでしょうか。

938 :nobodyさん:2009/11/17(火) 11:38:28 ID:???
>>936
"。" は、あるんですが、できないんです。

939 :nobodyさん:2009/11/17(火) 11:53:59 ID:???
>>937
スクリプトが終わると勝手にデストラクタが呼ばれるよ

940 :935:2009/11/17(火) 11:55:07 ID:???
解決しました。
テキストエディタでphpのソースファイルを開いてみたら、
エンコードがなんとかかんとかって言われて
なぜか、"。"の部分が "B" になってました。
"B" を "。" に直したら解決しました。



941 :nobodyさん:2009/11/17(火) 11:59:14 ID:???
>>940
「。」 0x8142(sjis)
「B」 0x42

理由わかってないとまた同じ問題起こしちゃうかもよ。

942 :nobodyさん:2009/11/17(火) 12:20:57 ID:???
>>939
やっぱりそうなんですか。

リンクを押して飛ぶときにスクリプトが終了してオブジェクトが破棄されて
リンク先で新たにオブジェクトが作成される
と考えれば、問題ないんでしょうか‥。

943 :nobodyさん:2009/11/17(火) 12:28:07 ID:???
そうです

944 :nobodyさん:2009/11/17(火) 12:34:06 ID:???
飛ぶ時にスクリプトが終了?

945 :nobodyさん:2009/11/17(火) 12:40:58 ID:???
>>943
ありがとうございます。
安心しました。

>>944
クライアント−サーバ間でやり取りが終わった時ですかね。
失礼しました。

946 :nobodyさん:2009/11/17(火) 20:55:41 ID:???
CakePHPに興味があるのですが、bakeって何ですか?
本屋でざっと読んだくらいでは理解が出来ませんでした

947 :nobodyさん:2009/11/17(火) 20:57:05 ID:???
bakeっていうのはバカっていう意味だよ

bake=cakePHP初心者=cakePHPを覚える者=cakePHPも使えないバカ

948 :nobodyさん:2009/11/17(火) 21:42:08 ID:???
cakeをbakeすんじゃね?

949 :nobodyさん:2009/11/17(火) 21:49:08 ID:???
逆だろ
bakeをcakeにするんだろ
他の人が(スクリプトが勝手に)土台を作ってくれると思えばよい
あとは生クリーム塗ってデコレーションは自分でしてねと

950 :nobodyさん:2009/11/17(火) 21:55:50 ID:???
>>946じゃないけど、cakephpって今や必須?
どういうものかもわかってないんだけど。

いまテキストエディタでベタ打ちしてるんだけど、cakephpだと何か楽になるの?
今までに作ったwebアプリをcakephpに対応させる(?)ことは可能なのかな。

951 :nobodyさん:2009/11/17(火) 21:56:34 ID:???
フレームワークだよ

952 :nobodyさん:2009/11/17(火) 22:08:27 ID:???
「フレームワーク」調べてみた。

> フレームワークは一言で表すと、「アプリケーションの土台」と言えます。データベースへの接続、
> 認証機構の実装、データの登録・編集・削除ページの作成など、どんなWebアプリケーションにも
> 必須の機能があります。これらの開発を毎回1から行うことは非常に効率が悪いことです。
> フレームワークはこれらの機能を一つにまとめ、その組み合わせ方も提供します。言わば、コードの
> 規格書とも言えるでしょう。
ttp://www.phppro.jp/article/framework/framework.php


DBへの接続や認証の実装よりも、「コードの規格書」を新たに覚えるほうが面倒なんだけどなぁ。
個人で自分用のものを開発してるだけだったらフレームワークとか使わなくてもいいかな。

953 :nobodyさん:2009/11/17(火) 22:15:59 ID:???
好きにしなよ

954 :nobodyさん:2009/11/17(火) 22:24:03 ID:???
好きにします><

たぶん近いうちに本を読んでみる。

955 :nobodyさん:2009/11/17(火) 22:40:34 ID:???
>>937
クラスって使い方がわかんねぇや。
どういうときに使うんだ?

956 :nobodyさん:2009/11/17(火) 23:57:53 ID:???
素人や見習い相手にカッコつけたいときに

957 :nobodyさん:2009/11/18(水) 00:43:46 ID:???
クラスのコードだけ配布するのはやめてほしい
俺はExampleがほしいんだよ

958 :nobodyさん:2009/11/18(水) 00:44:25 ID:???
配列にhtmlタグを追加していきたいんですけど
$url=$_GET['url'];
$tug = "<img src=\"".$url."\" width=\"300\" height=\"300\">";

$tug_array=array();
array_unshift($tug_array,$tug);
どこが悪いんですかね?それともarray_unshift($tug_array,$tug);なんて不可なんでしょうか?

959 :nobodyさん:2009/11/18(水) 00:56:01 ID:???
>>958
どこも悪くないよ
そのあとにvar_dump($tug_array);って書いてみるといいよ
あと、特に意図がないならarray_unshiftなんて使わなくても配列の追加は
$tug_array[] = $tug;
とか
$tug_array[] = "<img src=\"".$url."\" width=\"300\" height=\"300\">";
なんかでできるよ

960 :nobodyさん:2009/11/18(水) 01:02:21 ID:???
どうでもいいかもしれないけど、タグのスペルが・・・(ry

961 :nobodyさん:2009/11/18(水) 01:20:54 ID:???
>>959
おお・・・なんと親切な。ありがとうございます。

>>960
素直にtagで良かったのか・・・恥

962 :nobodyさん:2009/11/18(水) 02:38:42 ID:???
え・・・わざとじゃ・・・なかった・・・だと・・・!!

963 :nobodyさん:2009/11/18(水) 02:59:20 ID:???
>>961
>素直にtagで良かったのか
俺ちょっと意味分からん

964 :nobodyさん:2009/11/18(水) 13:13:19 ID:???
設置ぐらいしかでき無い素人なんだけどここで聞いていいのかな?
借りてたサーバーが閉鎖するから他のサーバーに移転作業中で
設置して何回かのエラーの後、前の通り動かすことはできたんだけど
PHPから生成されるファイルの所有者が「www」になって
インターネット上から直接ファイルにアクセスすると丸見えなんだけど、これをどうにか自分の権限にすることできない?
前のサーバーではどこ変更することなく自分のIDになってた。

変える部分はここら辺かなとはおもう
/*-- メインファイル作成 --*/
function make_file1($line, $num) {
$file = LOGDIR . $num . ".dat";
$fp = fopen($file, "w");
set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $line);
fclose($fp);
chmod($file, 0666);
}

965 :nobodyさん:2009/11/18(水) 13:14:30 ID:???

同時に生成されるこっちのファイルはちゃんと自分のIDになってる

/*-- カウントファイル作成 --*/
function make_file2($num) {
$file = LOGDIR . $num . "c.dat";
$line = "0<><>";
$fp = fopen($file, "w");
set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $line);
fclose($fp);
# chmod($file, 0666);
}

PHPはレッツPHPのI-BOARDの改造版つかってます。
よろしくおねがいします。


966 :nobodyさん:2009/11/18(水) 13:40:45 ID:???
明らかに違う点があるじゃないか

967 :nobodyさん:2009/11/18(水) 14:59:10 ID:???
ここ?
$line = "0<><>";

カウントファイルのchmodはエラーが出たので自分でコメントアウトした

968 :nobodyさん:2009/11/18(水) 15:02:00 ID:???
そうか

969 :nobodyさん:2009/11/18(水) 16:29:27 ID:???
そうさ

970 :nobodyさん:2009/11/19(木) 14:45:12 ID:q1nxRQc4
PHPって複数の変数に同時に代入できますか?
$hoge と $hoge1 に 4989 という数値を入れたい時に
$hoge = "4989";
$hoge1 = "4989";
としないといけないのですが複数を一気に入れることが出来れば教えてください。

971 :nobodyさん:2009/11/19(木) 14:50:41 ID:???
>>970
$hoge = $hoge1 = "4989";

972 :nobodyさん:2009/11/19(木) 14:51:25 ID:???
>>971
そういうやり方でよかったんですね。
ありがとうございます。

973 :nobodyさん:2009/11/19(木) 15:10:14 ID:???
>>971
何そのセンスの無いきめえ書き方

974 :nobodyさん:2009/11/19(木) 15:13:07 ID:???
他に書き方が・・・?

975 :nobodyさん:2009/11/19(木) 15:32:31 ID:???
C++とかでも同じように記述するよねぇ

976 :nobodyさん:2009/11/19(木) 15:32:39 ID:???
C言語では普通に使われる書き方だな。
あと、↓でも解説されてる。
http://php.net/manual/ja/language.expressions.php
>'$b = ($a = 5)' のように書くことは、 '$a = 5; $b = 5;' と書くのと 同様なのです。(セミコロンは、文の終わりを示します。)
>代入は、右から左へ実行されるため、'$b = $a = 5' と書くことも 可能です。

977 :nobodyさん:2009/11/19(木) 15:58:12 ID:???
別に>>973馬鹿にするわけでも何でもないんだが
$a = $b = "1"以外に同時に代入する方法あれば知りたいな

978 :nobodyさん:2009/11/19(木) 16:24:29 ID:nc7ESJS7
$a & $b = 1;

979 :nobodyさん:2009/11/19(木) 16:59:07 ID:???
$_FILES['aaa']['error'] が空かどうかを判定するのってどうするんでしょうか?


980 :nobodyさん:2009/11/19(木) 17:07:26 ID:???
is_null

981 :nobodyさん:2009/11/19(木) 18:40:59 ID:???
list($a, $b)=array_pad(null, 4989, 2);//w

>>979
isset

982 :nobodyさん:2009/11/19(木) 18:44:46 ID:???
array_pad(array(), 2, 4989)だな、ネタだからどうでもいいけど。

983 :nobodyさん:2009/11/19(木) 19:39:34 ID:???
>>979
empty

984 :nobodyさん:2009/11/20(金) 10:45:33 ID:???
error_log("1234", 3, "/var/log/1234");
で実行すると権限がないと怒られます。
sudoで権限の設定はしたのでsudoでやれば出来ると思いますが、
これをsudoでする場合はどう記述すればいいのでしょうか?

985 :nobodyさん:2009/11/20(金) 11:10:47 ID:???
またおまえか

986 :nobodyさん:2009/11/20(金) 11:14:04 ID:???
syslogのほうが便利

987 :984:2009/11/20(金) 11:47:31 ID:???
すまん
php分離してsudoからphp別ファイルで叩いて回避した
syslogも考えて見ます。
ありがとうございます。

988 :nobodyさん:2009/11/20(金) 11:59:12 ID:???
そろそろ次スレ立てないとな・・・

989 :nobodyさん:2009/11/20(金) 12:13:31 ID:???
俺立てられないからこんな感じで誰か新スレ立ててくだされ


【PHP】ID出さんでも質問OKなスレ【初心者可】3

ID出さなくても質問OKなスレです
初心者もいるので、そういう方には親切に答えてあげましょう
荒らしやあまりにも言葉使いの悪い人間は無視の方向で

PHP以外にもPEAR等のライブラリ、Smarty等のテンプレート、フレームワーク、PHPがらみのSQL等も可としますが、出来るだけ専門のスレで質問された方がいいと思います
また、出来るだけOS、PHPやApache等のバージョンも書いた方がいいと思います


◆前スレ
【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2
http://pc11.2ch.net/test/read.cgi/php/1252590753/

その他、諸情報は >>2-10 辺りにて

990 :nobodyさん:2009/11/20(金) 13:02:55 ID:???
自分で解決できなくて質問しにくるのはみんな初心者だと思うんだが・・・

991 :nobodyさん:2009/11/20(金) 13:38:00 ID:???
idスレに統合でいいと思うんだが・・・

992 :nobodyさん:2009/11/20(金) 13:39:37 ID:???
あっちは毎日暇人気違いが暴れとるぞw

993 :nobodyさん:2009/11/20(金) 13:42:16 ID:???
統合はすべきでないと俺は思うけどね
どっちも見ていてちょっと気質が違うから

994 :nobodyさん:2009/11/20(金) 13:43:20 ID:???
ここは元々IDを出さないで質問してくる奴らのために分離されたスレだから

995 :nobodyさん:2009/11/20(金) 13:51:52 ID:???
>>990
そうとも限らない

996 :nobodyさん:2009/11/20(金) 13:56:33 ID:???
>>995
初心者乙

997 :nobodyさん:2009/11/20(金) 14:00:55 ID:???
>>996
本気で言ってるの?

998 :nobodyさん:2009/11/20(金) 14:07:08 ID:???
新しいバグ発見とかでも初心者扱いかよw

999 :nobodyさん:2009/11/20(金) 14:08:24 ID:???
経験者ほど知識の共有を大事にするもんだ

1000 :nobodyさん:2009/11/20(金) 14:15:38 ID:???
一応1000取っておくか

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

238 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)