くだすれPHP(超初心者用)6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/05(日) 22:04:26ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/
前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/
関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0732nobodyさん
2009/08/04(火) 03:50:28ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/
0733nobodyさん
2009/08/04(火) 05:00:43ID:???それで計算したのを元の時間にもどせばよい
0734nobodyさん
2009/08/04(火) 10:31:32ID:bt+0qZLbたしかに、strtotime()で、unixタイムは出るので、それ同士を引けば、秒の差分は出たんですけど、
それをどうやって、date("H:i", )みたいに整形して表したらいいのかがわからないんです・・・・
0736nobodyさん
2009/08/04(火) 11:55:24ID:???0737nobodyさん
2009/08/04(火) 12:09:19ID:???やってみりゃいいじゃないって話だけど
0738734
2009/08/04(火) 12:12:15ID:bt+0qZLb0739nobodyさん
2009/08/04(火) 12:36:14ID:???0740nobodyさん
2009/08/04(火) 15:56:23ID:???0741nobodyさん
2009/08/04(火) 22:06:13ID:RR0r5hKihttp://ansaikuropedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91
アンサイクロペディアのオブジェクト指向のページですが、
function 話す() {
if (($this->今日は話した)) {
$this->好感度--;
return "しつこい";
}
$this->今日は話した = 1;
$this->好感度++;
return "別に";
}
「(($this->今日は話した)) 」はどういう意味なのでしょうか?
コードをみると、「($this->今日は話した == 1)」だと意味が通じると思うのですが・・・
0742nobodyさん
2009/08/04(火) 22:06:17ID:???Bという時間がある。
Aをタイムスタンプに直す。
Bをタイムスタンプに直す。
A-Bを計算する。
差分を、好きな形式に変換しなおす。
0743nobodyさん
2009/08/04(火) 22:09:52ID:???0744nobodyさん
2009/08/04(火) 22:14:17ID:???PHPで1と0をboolで評価した場合前者はtrue、後者はfalseになる
boolで評価するといってもキャストは必要ない
つまり$this->今日は話したは
$this->今日は話した == trueという意味をもっている
つまりあなたのいっている$this->今日は話した == 1と同じ意味です
http://www.php.net/manual/ja/types.comparisons.php
0745nobodyさん
2009/08/04(火) 22:26:12ID:???if(1)
これと同じってことだろ?
説明が長いやつはたいてい、レベルが低い。
よくわかってる人ほど、短く、適切な説明をする。
0746nobodyさん
2009/08/04(火) 22:27:06ID:???OOP使いまくり、インターフェースで
多重継承使いまくり、にすれば
問題ないんだよね?
0747nobodyさん
2009/08/04(火) 22:28:35ID:???ストレスのはけ口にされると迷惑ですよ
0748nobodyさん
2009/08/04(火) 22:30:48ID:RR0r5hKiありがとうございました。
0751744
2009/08/04(火) 22:53:59ID:???>つまり$this->今日は話したは
>$this->今日は話した == trueという意味をもっている
このつまりってのはいらなかったな
0752nobodyさん
2009/08/04(火) 23:31:54ID:???0753nobodyさん
2009/08/04(火) 23:46:49ID:???バージョン6が出るかどうかだろうか?
スクリプト言語のバージョン6は、出ないことが運命づけられてる気がするので心配だ
0754nobodyさん
2009/08/05(水) 00:22:29ID:???0755nobodyさん
2009/08/05(水) 00:24:34ID:???0756nobodyさん
2009/08/05(水) 09:47:24ID:gQxriDt5手放したくなくなるな
0757nobodyさん
2009/08/05(水) 09:54:59ID:???0758nobodyさん
2009/08/05(水) 10:12:59ID:???そのとおり
で、サイト内に自由に吐き出したい部分だけを
持ってくる
これができるようになると、もっと実感できますぞ
0759nobodyさん
2009/08/05(水) 10:52:11ID:???ttp://www.sigmawidgets.com/products/sigma_visual/
これがもっとうまく作れるようになるともうWindowsイラネってレベルになるのに・・・
0760nobodyさん
2009/08/05(水) 16:45:34ID:Oexv7raqto "| /usr/local/bin/php /home/アカ名/www/test.php"
と記入し、メール受信でPHPを起動するようにしたのですが
通常はちゃんと起動するのですが
PHPに
require_once 'Mail/mimeDecode.php';
を書くとメールを送っても
Returned mail: see transcript for details
が返信されて起動しません
php.iniのインクルードは
include_path = ".:/home/アカ名/pear/PEAR"
で、実際にPEAR以下にMail/mimeDecode.phpは存在しています
メール送信からこれを起動させるにはどうすればよいのでしょうか?
0762nobodyさん
2009/08/05(水) 20:28:36ID:???―MySQLのデータベース設計とPHPセッション管理の作法
大角清美
PHPの勉強しようと本屋にいったら「ひろゆき推薦とかいう」すごい本を見つけた・・・
本を開いたときにデスクリムゾンをはじめてみた時のような衝撃を受けた・・・
アマゾンでどんなレビューされてるかと思ったらアマゾンのレビューの
信憑性のうわさは本当だとわかった・・・
0763nobodyさん
2009/08/05(水) 23:31:52ID:???どこからネタなのか判断不能だな。
0764nobodyさん
2009/08/06(木) 00:11:19ID:???書いたものをこの先ずっと使いたい、というならJavaかPerlをオススメする。
PHPやRuby, Pythonなんかは後方互換性をあまり重視しない言語。
分かりやすくいえば、今PHP5で普通に書いたコードが、PHP6で動かなくなる可能性というのが、それなりに高い。
0765nobodyさん
2009/08/06(木) 01:21:59ID:???0766nobodyさん
2009/08/06(木) 01:29:20ID:???0767nobodyさん
2009/08/06(木) 07:35:58ID:???0769nobodyさん
2009/08/06(木) 09:53:56ID:h+wjIr1tこれからはPHP
0770nobodyさん
2009/08/06(木) 09:58:22ID:???Python, Ruby は数年は互換性は気にしなくてよさそう。
Perl は Per5 に不満を持っていないから
Perl6 が出てもずっと Perl5 を使いそう。
PHP は x.y.z の z ですら互換性がなくなったり
goto が追加されたりと目が離せません><
0771nobodyさん
2009/08/06(木) 09:59:59ID:???0772nobodyさん
2009/08/06(木) 10:06:16ID:w20GGpoy<h3>ファイルアップロード</h3>
<?php
// ファイルを保存するディレクトリ
$save_dir = "./";
$enc_disp = "EUC-JP"; // ブラウザ表示文字コード
$enc_file = "SJIS"; // 保存ファイル名文字コード
// ファイルがアップロードされたものなら処理をする
if (is_uploaded_file(@$_FILES["upfile"]["tmp_name"])) {
// ファイル名の文字コードを変換する
$file_name = $save_dir.$_FILES["upfile"]["name"];
$det_enc = mb_detect_encoding($string, $enc_disp . ", " . $enc_file);
if ($det_enc and $det_enc != $enc_file) {
$file_name = mb_convert_encoding($file_name, $enc_file, $det_enc);
}
// テンポラリファイルを保存ディレクトリにコピー
copy($_FILES["upfile"]["tmp_name"], $file_name);
echo "<p>ファイルアップロード完了";
echo "<p>ファイル名:".$_FILES["upfile"]["name"];
}
?>
<form enctype="multipart/form-data"
action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
<input type="file" name="upfile">
<input type="submit" value="アップロードする">
</form>
実際に使うとアップロードされましたと表示されるのですが、フォルダ内にはファイルが特にありません。
どこが問題で何が原因なのかわからない状態です。
くだらない質問ですがどなたかアドバイスいただけると助かります。
0773nobodyさん
2009/08/06(木) 10:09:23ID:???どこで想定外の動きしてるかチェックしたほうがいいよ
http://www.php.net/manual/ja/function.move-uploaded-file.php
あとこことか参照
0774nobodyさん
2009/08/06(木) 10:47:35ID:???なんか吹いたわ
0775772
2009/08/06(木) 11:37:21ID:w20GGpoyすいません。
ご指摘の通りですね。
改良して問題なく動くようになりました。
ありがとうございます。
0776nobodyさん
2009/08/06(木) 11:53:52ID:oShIeqJ9CLIを調べてみましたが、レンタル鯖では設定できないようなので
PHPに直接インクルード指定でできました
ありがとうございました
0777nobodyさん
2009/08/06(木) 19:20:12ID:???x, y ってのが入ってるんだけど、何これ?
0778nobodyさん
2009/08/06(木) 19:22:29ID:???0779nobodyさん
2009/08/06(木) 19:23:35ID:???0781nobodyさん
2009/08/06(木) 20:34:15ID:???ここが判りやすい
ttp://www.tagindex.com/html_tag/form/input_image.html
0783nobodyさん
2009/08/07(金) 23:58:02ID:Q5392INlプログラミング超初心者です。
下のコードの、ユーザー定義関数の作成部分で、
いきなり、$in_key とか $in_list とか
急に "$in_"というようになるのが理解できません。
なぜ、$key が$in_key となるのでしょうか。
<?php
$key = "バナナ";
$list[0] = "りんご";
$list[1] = "みかん";
$list[2] = "イチゴ";
$list[3] = "バナナ";
$list[4] = "ぶどう";
$flg = check_proc($key,$list);
if ($flg) {
print "「".$key."」に該当するデータが見つかりました。\n";
}
function check_proc($in_key,$in_list) {
$ret = false;
foreach($in_list as $key) {
if ($key == $in_key) {
$ret = true;
break;
}
}
return $ret;
}
?>
0784nobodyさん
2009/08/08(土) 00:02:55ID:???0785nobodyさん
2009/08/08(土) 00:12:57ID:???即レスありがとうございます。
ただ、学習不足のため、いまいち飲み込めません。
"$in_ "というのは、こういう構文の場合に付けるもんだと
理解しておけば良いのでしょうか。
0786nobodyさん
2009/08/08(土) 00:20:25ID:???半分正解。
"$in_"とか"$tmp_" "$cash_" "$hoge"など、これら関数の名前付けは
機能(処理内容)や個人の趣味。
0787nobodyさん
2009/08/08(土) 00:26:17ID:???ありがとうございます。
なんとなくですが、わかりました。
hoge とかと同じ感じなのですね。
学習を始めたばかりで、ここでつまづいて困ってました。
ありがとうございました。
0788nobodyさん
2009/08/08(土) 00:38:10ID:???0789nobodyさん
2009/08/08(土) 00:47:45ID:???function check_proc($in_key,$in_list)
と定義した関数を
check_proc($key,$list)
と呼び出すと、呼び出した時点での$key, $listの値が、check_proc()の$in_key, $in_listのところに入った処理が実行される。
つまり、$in_keyと$in_listは、keyやlistとはまったく無関係な別の名前でも問題ない。
function check_proc($in_key,$in_list)
の$in_key,$in_listと、その後の関数内の$in_key,$in_listをセットで別のものに置換しても問題なく動く。
関数の中で使う変数名は、外の変数名とは一切関係ない。
ちなみに>784は大嘘をこいてるが、別に一致してても問題ない。
人によっては多少読みづらくなる、というだけ。特に初心者には意味が分かりづらくなるだろうな。
0790nobodyさん
2009/08/08(土) 00:49:55ID:???0791nobodyさん
2009/08/08(土) 00:53:57ID:???"$in_key,$in_list" を
"$x,$y" として、実行してみたら、同じ結果が得られました。
構文の意味自体は、まだ飲み込めないのですが、こういうことなのですね。
>>788
まだ基礎の基礎の段階なので、応用はちょっと。。
8月から始めたので、まだチンプンカンプンです。
0792nobodyさん
2009/08/08(土) 01:07:30ID:???>>790
とてもわかり易い解説ありがとうございます。
ちゃんと意味まで理解できました。(多分ですが)
「ユーザー定義関数に戻り値を指定して、呼び出し元の変数の値を変更する」
とテキストに書いてあるのですが、>>789さんが言っていることですね。
つまり、$key と$in_key は、全く別で構わない。
だから、"$in_"を$x,$yに変更しても同じ結果を表示したのですね。
$key と$in_keyが似ていたので、かえって混乱してしまったようです。
ありがとうございました。
0793nobodyさん
2009/08/08(土) 02:09:42ID:???0794nobodyさん
2009/08/08(土) 14:47:01ID:???0795nobodyさん
2009/08/08(土) 14:55:27ID:???0796nobodyさん
2009/08/08(土) 15:14:43ID:???0797nobodyさん
2009/08/08(土) 15:21:38ID:???0798nobodyさん
2009/08/08(土) 16:52:03ID:???一番力入れて書いてるところだろ。
0799nobodyさん
2009/08/08(土) 17:14:28ID:???変数名は自分で決めるんだって気がつくのに、ちょっとかかったなぁ・・・
0800nobodyさん
2009/08/08(土) 18:28:28ID:???PHP7とかなったら変数名に2バイト文字が使えるようになったり・・・して・・・
0801nobodyさん
2009/08/08(土) 18:39:36ID:???0802nobodyさん
2009/08/08(土) 23:03:06ID:???0803nobodyさん
2009/08/08(土) 23:10:03ID:???0804nobodyさん
2009/08/08(土) 23:21:41ID:???春の番組改編以来
最高視聴率!!!!
やっぱり事件ほどおいしいものはない@TBS
0805nobodyさん
2009/08/08(土) 23:51:30ID:???$pg = array(
'This is a' => 'pen.',
'I am a' => 'boy.',
…
みたいに、スペース入ったらいかんの?
0806nobodyさん
2009/08/09(日) 00:11:19ID:???0808php
2009/08/09(日) 01:25:12ID:???画像のファイルサイズを圧縮した画像も別ディレクトリに保存する
にはどうすれば良いでしょうか?
例えば、 test.jpg ファイルがアップロードされた場合
1) img/test.jpg
2) img2/test_assyuku.jpg
という風に自動で保存したいと思っています。
0809nobodyさん
2009/08/09(日) 02:03:49ID:???GD使うなりImagick使うなりすればOK
PHP4ならGD、PHP5ならImagickかな。どっちにしてもモジュールが入ってないとダメだから
レン鯖ならphpinfoで確かめてみるとよろし
0810808
2009/08/09(日) 02:11:10ID:???ありがとうございます。
因みにサクラ鯖上に乗せたいと思っています。
PHP5を使用しておりますのでgoogleでImagickを調べて試してみようと思います。
0811nobodyさん
2009/08/09(日) 10:56:44ID:???古い記事だが、GD入ってるならアップロードと画像加工を一つにした「CLASS.UPLOAD.PHP」がおすすめ
http://www.moongift.jp/2007/05/class_upload_php/
0812nobodyさん
2009/08/09(日) 14:18:33ID:???余計な空白や改行が出力されないように、ファイルの最後の ?> を書かないようにした方が良いのか、
return; で戻った方が良いのか、一番安全な方法はどちらかあるいは他の方法でありますでしょうか。
バージョンや環境によらず、両方ともいつでも使えるでしょうか?
0813nobodyさん
NGNG0815nobodyさん
2009/08/10(月) 00:13:28ID:???閉じタグについてはここ
http://www.php.net/manual/ja/language.basic-syntax.instruction-separation.php
returnについてはお好きにどうぞ
0816nobodyさん
NGNG0818nobodyさん
NGNG0819nobodyさん
2009/08/10(月) 19:16:57ID:???0820nobodyさん
NGNG0822nobodyさん
NGNG0823nobodyさん
2009/08/11(火) 01:16:38ID:???ありがとうございます。
因みに自分でアップローダを作ってみたのですが、
どうもクラックされたっぽいです。
(クラックっていうか侵入されたかも)
現在、自分の運営しているサイトのアップローダは何かファイルがアップロードされた場合
ファイルの種類や投稿者の情報とか色々と記憶しているのですが、
昨夜(2:00過ぎ)にそのアップロードされたファイルの一覧ページを見てみたところ
確かに「Explorer.php」というファイルがアップロードされていました。
一番気がかりなのは、もう一度ページをリロードすると消えていました。
DBへのアクセス権ものっとられていたりするのでしょうか?
非常に心配です。
0824823
2009/08/11(火) 01:29:03ID:???アップロードされた場合に弾くべきファイルとして、
*.php *.en *.ja
を禁止していたのですが perl(触った事が無いですが)とかも
アップロードされると外部から実行されてしまいますよね?
その場合にperlのアップロードを弾く場合にはどうすればよいでしょか?
perlの拡張子は *.pl なので
*.pl.ja 等を弾けば良いでしょうか?
0826nobodyさん
2009/08/11(火) 01:35:28ID:???おおぉー。。。。
そうですね。。。
ご名答です。
因みに一時的にphpスクリプトをアップロードされ、次の瞬間にそのファイルが無くなったということは
侵入された可能性はありますか?
0827nobodyさん
2009/08/11(火) 01:51:51ID:???0829nobodyさん
2009/08/11(火) 02:13:40ID:???0830nobodyさん
2009/08/11(火) 02:15:46ID:???あと、Torとか使ってくる奴もいてうざくてしょうがないです。
0831nobodyさん
2009/08/11(火) 02:37:13ID:???アップロードディレクトリでスクリプト実行できないようにしなよ
今のセキュリティホール全開な仕様が異常だと認識したほうがいい
>侵入された可能性はありますか?
スクリプト実行と侵入は違う気がするが
suexecが有効ならサーバ内のファイル構成を見られたりファイル消されたりする可能性はある
とにかくPHP周りを強化するよりサーバ周りの設定を強化したほうがいい
■ このスレッドは過去ログ倉庫に格納されています