【PHP】下らねぇ質問はここに書き込みやがれpart17
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50
過去スレは>>2
0065nobodyさん
2006/02/27(月) 12:32:40ID:???長い場合は3つ目。ダブルクォートを気にしなくてすむし。
見やすくするためにEO+識別子を使う。EO_EntryFormとかね。
EOFだとファイルが終わっちゃう感じがするし。
短い場合は1行で収めちゃうね。基準はその時の気分w
0066nobodyさん
2006/02/27(月) 12:51:45ID:???俺はechoやprintではHTMLを出力しないようにしてる。
原則、?>HTML<?php 形式。
必要なケースでは(変数に格納しておきたい場合など)
1.変数が必要で内容が短い→"〜"
2.変数が不要か「.」で繋いだ方がシンプルにまとまって内容が短い→'〜'
3.内容が長い→<<<HTML でヒアドキュメント
って感じ。
0067nobodyさん
2006/02/27(月) 13:22:14ID:nvSEUa/x常識は持っています。
で、趣味で、webサイトを構築するときにcgiかphpを使おうと思っているところです。
簡単に言うとフォームから入力した情報を、index.htmlに反映させて
上書きしていく、というものです。
cgiとPHPどちらがいいものでしょうか?
0069nobodyさん
2006/02/27(月) 13:40:35ID:???CGIでPHPを使うのが両方出来てお得だと思います。
Pascalライクなのがいいなら、Pythonなんかがそんな感じがするが
Webと組み合わせるならPHPは本当に楽だよ。
007067
2006/02/27(月) 14:14:22ID:???PHPを勉強してみます。
0071nobodyさん
2006/02/27(月) 16:04:42ID:???お助けください。。。
// ------------------------------------------------------------
// データ格納
function getData() {
$post = $_POST; // 項目は「氏名(name)」と「目的(mokuteki)」
}
// ------------------------------------------------------------
// エラーチェック
function checkErr() {
if (!$post['name']) {$errmsg .= '<li>氏名が入力されていません。</li>';}
if (!$post['mokuteki']) {$errmsg .= '<li>目的が入力されていません。</li>';}
if ($errmsg) {$errflag = 1;dispErr();} else {return;}
}
// ------------------------------------------------------------
function dispErr() {
// エラーメッセージ表示
echo ('<ul>');
echo ($errmsg);
echo ('</ul>');
die;
}
HTMLのフォームからPOSTされた内容をエラーチェックしたいのですが、
フォームに何も入力しないでSUBMITしても、
エラーチェックにひっかかってくれません。
エラーチェックルーチンではこの他に
if ($post === "") / if ($post == "") / if ($post === NULL)
なども試してみました・・・
007271
2006/02/27(月) 16:12:47ID:sj9CYitM誤)if ($post === "") / if ($post == "") / if ($post === NULL)
正)if ($post['name'] === "") / if ($post['name'] == "") / if ($post['name'] === NULL)
0073nobodyさん
2006/02/27(月) 16:12:57ID:???関数の中でグローバル宣言してやる、もしくは引数として渡してやるかしないとダメだろ。
いずれにしてもgetData()、checkErr()は変だよ。返値ないじゃん。
関数の書き方マニュアルでチェックしてみ。
007471
2006/02/27(月) 16:20:23ID:???レスありがとうございます。
ソースにはカキコした関数以外の部分でglobal宣言しておりました。
とりあえずcheckErr()に$postを渡してみました。
checkErr → checkErr($post);
すると、いままでうんともすんとも言わなかったテスト用のvar_dumpが
反応してくれました(嬉泣)!
ひとまず、ご報告まで。半年ROMって精進します。
007571
2006/02/27(月) 16:31:45ID:???・ getData()内で$postと$errmsgをglobal宣言した
・ getData($post)からはreturn $post;で戻るようにした
・ checkErr()に$errmsgを渡すためにcheckErr($errmsg)と呼び出した
上記の変更で、なんとなく動くようになりました。
さらに改良していきます。
ありがとうございました。
0078nobodyさん
2006/02/27(月) 17:26:50ID:???checkErr($_POST);
0079nobodyさん
2006/02/27(月) 20:00:13ID:j8jIGqNe0080nobodyさん
2006/02/27(月) 20:02:35ID:???0082nobodyさん
2006/02/27(月) 20:04:59ID:j8jIGqNeすいません、詳しく教えてくれませんか?
検索しようにも記号は検索語にならんもんで。。
0083nobodyさん
2006/02/27(月) 20:08:18ID:???ttp://php.s3.to/man/language.operators.comparison.html
0085nobodyさん
2006/02/27(月) 22:02:21ID:APEEDXbIやったこと
→googleで「ファイル分割関数」で検索
→PHPエディタ[スタンドアロン版]に付属のマニュアルchmで検索
関数名さえ教えてもらえば、あとは自分で調べます。
0086nobodyさん
2006/02/27(月) 22:12:02ID:???0087nobodyさん
2006/02/27(月) 22:14:09ID:APEEDXbIすいません書き忘れてました
1.44メガバイトずつに分割したいと考えています。
0088nobodyさん
2006/02/27(月) 22:19:06ID:???0091nobodyさん
2006/02/27(月) 22:49:27ID:???いえ、フロッピーではなく、
今「PCドキュメントダウンローダー」という、auの定額携帯用のツールを作っていて、
DL可能なファイルサイズが、KDDIの仕様で1.5MBまでなんです。
0092nobodyさん
2006/02/27(月) 23:21:55ID:???夜遅くにすみません。
0093nobodyさん
2006/02/27(月) 23:24:21ID:???移動乙
OSとphpのバージョン書いたほうがいいよ
Winっぽいよね・・、winでphpのインストールした事がないなぁ
0094nobodyさん
2006/02/27(月) 23:26:01ID:???googleで
「php windows インストール マルチバイト関数」
で検索したら一発だな
0095nobodyさん
2006/02/27(月) 23:28:34ID:d/u1H5JHあの、ホントいい人ですね。
winです。でも>>94さんが言うように、さっきググったら自己解決できます。きっと。
俺のバカ。
夜遅くにホントすいません。
>>94
愛してます。
俺のバカ。
<引用>
mbstring は拡張モジュールです。
つまり、デフォルトでは 有効にならないということです。
configure スクリプトでモジュールを有効にする必要が あります。
詳細は、インストールの 節を参照してください。
はい、これならできます。ホントありがとうございました。
0097nobodyさん
2006/02/27(月) 23:59:20ID:???そ、そう言われたら。。
php.iniから↓をコメント外したしたところ、無事動作しました。
//ここから
extension=php_mbstring.dll
output_handler = mb_output_handler //これだけは追加しますた。
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;
//ここまで
おやすみなさい。。
0100正規表現?
2006/02/28(火) 00:01:40ID:DEUM5hM0$str = mb_ereg_replace('\\\\',"\\\\",$str);
$str = mb_ereg_replace('\'',"\\'",$str);
という、データベースに入れるデータを通すための関数が2つあるんですが、
'\\\\',"\\\\"
'\'',"\\'"
この2箇所がどのような文字列についての対策なのかが分かりません...
もし分かる方がいらっしゃいましたら、
おしえてくださいっm(__)m
0101nobodyさん
2006/02/28(火) 00:41:40ID:???漏れは余計な改行が入るのを嫌って全てecho
>>100
単なるクエリのエスケープだと思うが
>$str = mb_ereg_replace('\\\\',"\\\\",$str);
前の\\\\は「\」にマッチしたいが「\\」→「\」の変換が2度行われる為
後の\\\\は「\\」に置換したいが「\\」→「\」の変換が1回行われる為
>$str = mb_ereg_replace('\'',"\\'",$str);
'\''は「'」にマッチさせる為
"\\'"は「\'」に置換させる為
''と""を使い分けている理由に付いては(゚听)シラネ
参照(引用)元がたまたまこの形式で、それをコピペしただけかも知れん。
0102nobodyさん
2006/02/28(火) 00:41:45ID:???0105nobodyさん
2006/02/28(火) 00:46:28ID:C5SJRerwちなみにperlからも出来ない・・・orz
これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・
0106正規表現?
2006/02/28(火) 01:09:33ID:1e1aKd+D100です
ありがとうございます!!!
よく分かりました!
0107nobodyさん
2006/02/28(火) 06:42:02ID:???特定のディレクトリのバックアップを自動で行ってくれるような
スクリプトはかけますでしょうか?
PHPでどういったことが(どこまで)できるのか知りたいです。
PHPは最近はじめたばかりで、他の言語に関しては知識は皆無です・・・
0109nobodyさん
2006/02/28(火) 07:28:57ID:???まぁできなくは無いんじゃないかな。WebProgというよりLinuxの方の話になると思うけど。
1週間おき -> cron (linuxの仕組み)
日付 -> date (PHP)
tar -> PHPにはtarを直接扱える関数が無さそうなので ` ` や execとか (PHP+Linuxコマンド)
tarはそう難しいファイルフォーマットじゃないので、自作でもできるんじゃないかな。
実際pearにもtarを扱うやつあるものね(pearだから当然PHPで書かれている)。
0110nobodyさん
2006/02/28(火) 09:10:39ID:1h7tXCMd文字コードと思われる点でつまづいています。
秀丸で書いておりまして、
保存時に「EUC」と改行コードは「LF」を設定しています。
IEで開くとき、問題なく表示できるようになりましたが、
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
キーワード:<INPUT NAME="KEYWORD" TYPE="TEXT" SIZE="30">
<INPUT TYPE="SUBMIT" VALUE="検索">
とする時、日本語入力を受け付けていないようなのです。
echo( $_POST[ "KEYWORD" ] );
を各所に配置して確認したところ、日本語入力をすると文字化けしています。
0113110
2006/02/28(火) 09:33:07ID:???mbstring.http_output = EUC
としました。
汚してどうも。
0114107
2006/02/28(火) 09:44:35ID:???cronですか。ちょっとサービスが起動してるか確認してみます。
0115nobodyさん
2006/02/28(火) 12:33:53ID:???実行するにはどーすればいいんでしょーか?
http://jp.php.net/downloads.php ここで落とせばいいの?
0116nobodyさん
2006/02/28(火) 12:54:20ID:???あとWEBサーバもないと駄目。まぁ単体でも使えるけど・・
0117nobodyさん
2006/02/28(火) 13:08:31ID:???変数宣言とか無いから
ソース見た時に、この変数の型ってなんだ?とか思っちゃいます。
例えば、
$BBSData = LoadCsvFile( BBS_DATA );
こんなのある時に、LoadCsvFileはarray型の値を返すんですが、
$BBSDataの型は、LoadCsvFileの定義か、
$BBSDataを実際に使ってるところから割り出すしか無いですか?
変数宣言を強制するとかできません?
0118nobodyさん
2006/02/28(火) 13:11:09ID:???ありがとさん。解説サイトにも書いてあったけど、やっぱりサーバー持ってる人用なのかな?
普通にレンタルサーバーでもPHPは使えるわけでしょ、
更に下らない質問なんだけど
つまり鯖無しユーザーはHTMLにPHP記述してブラウザで確認ってカタチで宜しいんでしょうかね?
0120nobodyさん
2006/02/28(火) 13:17:29ID:???ムリ
大抵は関数の定義から判断する。
Perlみたいにスカラーとリストを両方返せる関数があるわけじゃないんだし、
型宣言できたところでリファレンスか実体かでまた苦しむだけだから一緒かと。
ソースを部分的に見ただけで型判別できるようにしたかったら、変数名に型の識別名を
入れるのがPHPに限らずCでもC++でもJavaでもセオリーかと思うがどうか。
0121117
2006/02/28(火) 13:24:14ID:???>リファレンスか実体かでまた苦しむだけだから
あら、やっぱり参照型と値型あるんですね。
まだ始めたばっかりなんで、オブジェクト関係はまだ遠いです。
>CでもC++でもJavaでもセオリーかと思うがどうか。
最近C#とIDEの開発では接頭語入れない事が多いんで、
それに慣れちゃってました。
PHPの慣習に倣います。
すごい分かりやすい解説でした。
また縁があったらよろしくお願いします。
ありがとうございました。
0122117
2006/02/28(火) 13:47:48ID:???PHPって関数の戻り値を、
絶対受けなきゃいけないって訳じゃないんですか?
さっきの例で、
$BBSData = LoadCsvFile( BBS_DATA );//array型の値が返る関数
の後に、
if ( $BBSData == false ) {
}
とか、
LoadCsvFile( BBS_DATA ); //特にLoadCsvFileのオーバーロードが他にある訳ではないです。(というか規定のパラメータと言う?)
みたいなコードが書いてあったんで、
「ん?bool型も返す?」・「戻り値受けなくてもいい?」
と疑問が出たのですが、中々目当ての資料に行き着けなくて。
毎度すみません。よろしくお願いします。
0123nobodyさん
2006/02/28(火) 14:02:37ID:???サーバの意味がわかってない。Webサーバってハードじゃないぞ。
自分のパソコンでも大丈夫。
用はApacheとかIIS等のWebサーバがPHPの言語を解釈してブラウザに表示する
役割をもっている。
だからWebサーバ起動してなかったらブラウザで確認できんよ。
0124nobodyさん
2006/02/28(火) 14:18:25ID:???おk。やってみるわd。
>>123
自分のパソコンをWeb鯖にするってことだよね?
それが公開されてなくても大丈夫なのかな・・・?
本当に糞みたいな質問なんだけど
>>だからWebサーバ起動してなかったらブラウザで確認できんよ。
起動してないユーザーはそもそもPHPの言語を読めないってこと?
PHPってHTMLファイルの中に直接書き込んでいってブラウザで表示するものだと思ってた・・orz
JavaScriptとは違うのね。・・・もうこれ以上質問する前に勉強してくる。
0125nobodyさん
2006/02/28(火) 14:39:09ID:???>起動してないユーザーはそもそもPHPの言語を読めないってこと?
サーバを起動してない>>124は、PHPをHTMLに埋め込んでブラウザで表示してもPHP部分は動かないって事?
と意訳させてもらうと、答えは、
「そうだよばか」
勉強頑張れ〜。
0126nobodyさん
2006/02/28(火) 14:40:36ID:???0127nobodyさん
2006/02/28(火) 14:41:34ID:???公開されなくても確認するだけなら別にいいよ。みんなに見せたいなら公開しないと駄目だけど。
Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
Web鯖起動しててもPHP組み込んでなかったらただのテキストとして表示される。
入れるのややこしいならここらへんが便利そう
ttp://www.apachefriends.org/en/xampp.html
ttp://www.spacetag.jp/modules/download/
0128nobodyさん
2006/02/28(火) 14:46:10ID:???>Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
論旨は間違っていないが、初心者には余計な誤解を招くぞ。
0131nobodyさん
2006/02/28(火) 15:00:31ID:???> PHPの慣習に倣います。
慣習で言ったら接頭語なんて付けない、型なんて特に気にしない、が普通じゃないか。
0133nobodyさん
2006/02/28(火) 15:11:05ID:???> 自分のパソコンをWeb鯖にするってことだよね?
> それが公開されてなくても大丈夫なのかな・・・?
まー、IISじゃなきゃ80ポートをちょこっと受け付けるくらいで甚大な被害は多分出ないって。きっとw
0134nobodyさん
2006/02/28(火) 15:41:59ID:???>>117
PHPの変数の型はその場の文脈で勝手に変わるから
変数名で判断するとか無理なんよ
あと、Cだと基本的に全てのシンボルはアドレスと考えられるが
PHPはそうではないからリファレンスを理解する時注意するように
0135nobodyさん
2006/02/28(火) 17:02:02ID:???俺はスクリプトの最後にバックアップ用ファイルの最終更新時間と現在の時刻を照らして、条件を満たしていればバックアップを上書きするようにしてる。
普段使ってるファイルが壊れたり異常が見られたら、普段のファイル削除→バックアップを普段のファイル名にリネームしている。
0136nobodyさん
2006/02/28(火) 17:57:58ID:???スクリプト中に記述しても変更出来ません。
ini_set('upload_tmp_dir', "D:/test"));
試しにvar_dumpしてみるとbool(false)と帰ってきています。
どうすれば変更できるでしょうか?
0137136
2006/02/28(火) 17:58:54ID:???ini_set('upload_tmp_dir', "D:/test"));
↓
ini_set('upload_tmp_dir', "D:/test");
0138nobodyさん
2006/02/28(火) 18:01:19ID:???それとWinのセパレーターは/じゃなくて\ね
0139136
2006/02/28(火) 18:03:20ID:???;upload_tmp_dir =
どの様にすれば変更出来るでしょうか?
0140nobodyさん
2006/02/28(火) 18:06:46ID:???0141136
2006/02/28(火) 18:09:53ID:???0143136
2006/02/28(火) 18:15:43ID:???0145136
2006/02/28(火) 18:20:18ID:???0146nobodyさん
2006/02/28(火) 18:47:29ID:z6M7N5M1PHP_INI_SYSTEM 4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能
0147nobodyさん
2006/02/28(火) 18:50:11ID:???XMLで記述したForm情報を読み込んで処理できるやつあったら教えてください。
↓こんな感じのXMLを元に処理してくれたらうれしいんですが
<form>
<element id="name">
<max_length>30</max_length>
<min_length>1</min_length>
</element>
</form>
0148nobodyさん
2006/02/28(火) 19:05:53ID:???もし可能であれば教えていただけないでしょうか。
0149nobodyさん
2006/02/28(火) 19:18:52ID:???0150nobodyさん
2006/02/28(火) 19:37:39ID:???そもそもスクリプトが実行開始された時点でファイルのアップロードは完了しており、
すでにどこか(指定の)ディレクトリに保存されているので、スクリプト内で改めて
保存先を指定する意味が無い。実際の動作を考えれば判りそうなもんだけど・・・。
>>138
一応'/'でも通るよ。つかエスケープが面倒なので'/'を常用してる。
>>146
ゆとり教育の弊害だと思う
0151nobodyさん
2006/02/28(火) 19:57:03ID:???ゆとり教育ってのは段階的にかなり長期的に続けられている
0153nobodyさん
2006/02/28(火) 20:18:17ID:???0154nobodyさん
2006/02/28(火) 20:49:51ID:???元々ゆとり教育したい教育者のムードがあった。
そんな突然ゆとり教育させたら、きちんとした教育者は反発する。
0155nobodyさん
2006/02/28(火) 21:28:23ID:???0156nobodyさん
2006/02/28(火) 21:48:47ID:???楽をしたがった教職員やPTAのせいだけどね。
0157nobodyさん
2006/02/28(火) 22:04:52ID:???0158nobodyさん
2006/02/28(火) 22:05:44ID:???0159nobodyさん
2006/02/28(火) 23:11:14ID:???和田 秀樹 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4569579108/ref=pd_sim_dp_4/249-5087703-6782729
0160nobodyさん
2006/02/28(火) 23:50:56ID:???0161nobodyさん
2006/02/28(火) 23:58:27ID:???0163nobodyさん
2006/03/01(水) 00:27:02ID:HmVG72O50164nobodyさん
2006/03/01(水) 00:30:16ID:???■ このスレッドは過去ログ倉庫に格納されています