【PHP】質問スレッドpart33【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/16(木) 03:19:52ID:xwXojaq/【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0693671
2006/03/10(金) 22:48:17ID:8gj1xhR9レスありがとうございました。
調べてみます!
0694687
2006/03/11(土) 08:33:19ID:???みなさんありがとうございました
なんとなく安心しました
他の方は配列でやってるのでしょうか?
それともクラス定義?
最初はクラスで定義してたのですが
変数の宣言を忘れても間違ってても
エラーにならないのでやめてしまいました。
(もしかしてエラーのレベルのせい?)
もう1度いろいろ試してみます。
>>691
配列でやると構造をあらわしにくいと思います
0695nobodyさん
2006/03/11(土) 08:46:23ID:???気がつくと5次元6次元配列とかできてたりして
この辺は個人の作り易さとかあるだろうな
0696nobodyさん
2006/03/11(土) 08:47:02ID:???気がつくと5次元6次元配列とかできてたりして
この辺は個人の作り易さとかあるだろうな
0697nobodyさん
2006/03/11(土) 08:50:36ID:???いちおうPHPの配列はリスト、スタック、キュー、マップ(ハッシュ)、木構造などだいたい表現できるけど。
stdClassは使い捨てスクリプトとかテストスクリプトみたいな一時的なものに使う以外にはあんまり使い道ないよ。
全部配列で代替できるから。
構造の「定義」をしたいならクラスを使うべき。
0698972
2006/03/11(土) 11:53:34ID:???できました。
亀レスですがありがとうございました。
>>973
リファレンスで検索しても基本的な関数の一覧しかヒットしませんでした。
その様な関数はあるのでしょうか?
更に質問なのですが、
関数内で引数として渡された値実体を
直接変えることはできますか?
伝わりにくいかもしれませんが、
やはりCでのポインタを用いたswapのイメージでお願いします。
0700nobodyさん
2006/03/11(土) 12:00:18ID:???お前が>>672なら
function hoge(&$var) {
$var++;
}
$val = 1;
hoge($val);
echo $val;
0702nobodyさん
2006/03/11(土) 12:10:19ID:???function swap(& $a, & $b) {
$t = $a; $a = $b; $b = $t;
}
この&をつけて変数を渡すことをPHPではリファレンスっていうのです。C++の参照の構文に似せてあるね。
http://php.net/references
0703672
2006/03/11(土) 12:27:06ID:???調べてみました。
参照変数なんてあったんですね。
ポインタと比べて変数のアドレスは操作できないが、
アドレスの指す変数を操作していると解釈していいのでしょうか?
0704nobodyさん
2006/03/11(土) 12:34:58ID:???0705nobodyさん
2006/03/11(土) 13:20:09ID:???お前最悪だな
糞なおまえの糞スパゲティコードなんかメンテしたくねえや。
クラスくらい作って『集約(Aggregation)』くらいしやがれや
0708nobodyさん
2006/03/11(土) 15:53:32ID:???おかげでアホな外注が作ったワケ分からんスパゲッティーコードを
元請様がデバッグする羽目になる。
0710nobodyさん
2006/03/11(土) 17:08:56ID:???$a['s1'] = "aaa";
$a['s2'] = "bbb";
$a['b']['n1'] = 123;
$a['b']['n2'] = 456;
こんな感じ?
なんか気持ち悪いのはおれだけ?
0713nobodyさん
2006/03/11(土) 17:44:10ID:???まークラスにしても
PHPには型宣言もないし
宣言してない変数でも使えてしまうし
いっしょな気もする・・・
変数名で型とかがわかるようにするとしても
連想配列もクラス変数も一緒だしね
0714nobodyさん
2006/03/11(土) 17:48:15ID:???PHPもプロトタイプレスだし
0715nobodyさん
2006/03/11(土) 18:53:19ID:???$hoge1 = new Hoge();
$hoge1->num = 100;
$hoge2 = $hoge1;
$hoge2->num = 200;
echo $hoge1->num;
とした場合、
PHP4.3.10では 100 が
PHP5.1.2 では 200 が返されました。
PHP5で仕様が変わったのでしょうか?
マニュアルのどこかに記載がありましたら教えてください。
0716nobodyさん
2006/03/11(土) 18:56:25ID:???0720nobodyさん
2006/03/11(土) 20:39:49ID:???それくらいならまだまし
Javaでも二次元キーのハッシュはよく作るから。
List key = new ArrayList<String>();
key.add("book");
key.add("sound");
Map map = new HashMap<List, Integer>();
map.put(key,123);
key = new ArrayList<String>();
key.add("paper");
key.add("light");
map.put(key,456);
こんな感じで。
これで5次元のキーでもまあ、どうにかなるだろう。
しかしこれが5次元の配列となるとまた別。
最悪。5次元のキーを持つハッシュではなく配列ってのは読みにくくて超ウザイ。
そんなコードを書いて渡した奴に鉄拳制裁したくなる(できれば経済制裁したい)。
0721nobodyさん
2006/03/11(土) 21:01:41ID:???3次元画像はいらん
0722nobodyさん
2006/03/11(土) 21:17:29ID:???0723nobodyさん
2006/03/11(土) 21:35:40ID:???0724nobodyさん
2006/03/11(土) 21:43:45ID:???0727nobodyさん
2006/03/12(日) 00:09:02ID:yHHsI6Ak0728nobodyさん
2006/03/12(日) 00:24:10ID:d4WSeAj/例(1つ)->strip_tags($str,'<Font>');
例(2つ)->strip_tags($str,'<Font><b>');?
0729nobodyさん
2006/03/12(日) 00:26:02ID:???0732nobodyさん
2006/03/12(日) 11:19:33ID:???error_reporting関数では設定できないの?
E_ALLまでは指定できるけどE_STRICTだけ有効にならない
0733nobodyさん
2006/03/12(日) 11:43:11ID:???環境くらい書けと。
error_reporting(E_ALL | E_STRICT);
ちなみにE_STRICTはPHP5.0から
0734nobodyさん
2006/03/12(日) 11:54:05ID:???すんません、できるはずなんですね。
PHP5.1.2なんですが、
error_reporting(E_ALL | E_STRICT);
としても
error_reporting(4095);
としても有効にならないっす
httpd.confかphp.iniならできるんだけど・・・
0737nobodyさん
2006/03/12(日) 22:33:58ID:???CとかJavaで発注かけないと。
phpとかperlは仕様書見て作り直しが基本。
0738732
2006/03/13(月) 00:30:59ID:???コンパイル後に
error_reporting(xx)
でE_STRICTを有効にしても
時すでに遅しってことのようですね。
失礼しました
0739nobodyさん
2006/03/13(月) 06:00:06ID:???↑
変数の最初の10文字だけ取得したいのですが
適切な関数はないでしょうか?
0741nobodyさん
2006/03/13(月) 07:29:03ID:???0742nobodyさん
2006/03/13(月) 07:58:53ID:???http://www.php.net/manual/ja/ref.mbstring.php
●日付・時刻関数
http://www.php.net/manual/ja/ref.datetime.php
●配列関数
http://www.php.net/manual/ja/ref.array.php
●正規表現関数
http://www.php.net/manual/ja/ref.pcre.php
これくらいは読めヽ(`Д´)ノ ウワァァァン
0743nobodyさん
2006/03/13(月) 13:10:52ID:???どう考えても1度は目を通しとかないとPHPプログラマとしてまずかろう、って
レベルの基本の内容すら目を通してない連中がごろごろいるってのがなぁ…
0744nobodyさん
2006/03/13(月) 13:43:15ID:???って誰が判断するんだろう。
0745nobodyさん
2006/03/13(月) 13:50:28ID:???このスレに書く、ということですな。
0746nobodyさん
2006/03/13(月) 14:47:15ID:???そんなん自分だろ。
その自分が目を通すか通さないかの敷居を低くしていくと、
全体的なレベルが下がるから困るとも言いたいんじゃないか?
0747nobodyさん
2006/03/13(月) 19:00:58ID:???タイムアウトを設定することはできますか?
いつまでもページ全体が表示しないのはまずいので、つながらないときはエラーでもいいから
早めに諦めてほしいのです。
0748nobodyさん
2006/03/13(月) 19:02:04ID:???「ファイルシステム関数」にモロに書いてました・・・
0749nobodyさん
2006/03/13(月) 19:44:33ID:???なんか
php出来ます=低スキル、低単価、案件失敗確実
って風評が広まってる悪寒。
0750nobodyさん
2006/03/13(月) 19:46:15ID:???仕方ない事だと思うよ。
0753nobodyさん
2006/03/13(月) 20:37:44ID:???phpの文法、ロジックなんか簡単にマスター出来るでしょ。
http的な事でとまどう事は有るだろうけど。
むしろphpしか出来ないエンジニアなんて皆無に近いんじゃマイか
0754nobodyさん
2006/03/13(月) 20:44:21ID:???0755nobodyさん
2006/03/13(月) 20:44:28ID:???確かに。Perlしかできないやつのほうがマシ
0756nobodyさん
2006/03/13(月) 20:45:30ID:???PHPだけでなんでもかんでも作ろうとする原理主義者に
はなってもらいたくはないな。辞めて欲しいんだが。
0757nobodyさん
2006/03/13(月) 20:52:57ID:???0758nobodyさん
2006/03/13(月) 21:20:14ID:???大規模開発だけがプログラムじゃないし
っていうかここなんてスレ?
0759nobodyさん
2006/03/13(月) 21:27:13ID:???大規模化するとやばいぞ。
それでプログラミングなんて
馬鹿でもできるなんて迷信が広まったら最悪だ。
ただでさい東証システム事件でやばいことになって
本気でIT=虚業だとほざく馬鹿やマスコミまで出てきているというのに。
情報処理学会がそれを危惧して
こんな発言をしているぞ。
2005年後半から2006年初頭にかけての事件と情報教育の関連に関するコメント
http://www.ipsj.or.jp/12kyoiku/statement2006.html
「情報システムの理解不足は、国に重大な影響を及ぼす」、情報処理学会が見解表明:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20060307/231860/
0760nobodyさん
2006/03/13(月) 22:05:53ID:???皆さんのレスを見ていてphpしか出来ない自称PGの起こした事件を思い出しました。
DTP上がりのphp房が集客系のシステムで客に一番初期のXServe台、
シグマリオン1台、開発用のPB一台買わせたあげくに開発失敗してトンヅラしたとかだっけ・・・
アレたしかphpで<a href="">のhrefの中身が全部ハードコーディングしてあって
びびった事が有ったの思いだした。。。
テスト環境から本番環境に移行するのにどうやったんだろうなぁ。
エディタで書き換えたんだろうか。sedなんか使えるとは思えないし。
で、被害者から相談されてそのPGに設計書か仕様書を出せ、と言ったら
「webシステムには設計書というものは通常出さないものだ」
とか言ってた・・・
着手前に要件定義書を出さない・出せない人はやばいよねぇ。ていうか有り得ないんだけど。
いや、もうホントスレチガイも甚だしいですね。スマン子
0761nobodyさん
2006/03/13(月) 22:15:42ID:qnB47IGOこういうねたはプログラマ板ってところでやるんだよ。
0762nobodyさん
2006/03/13(月) 22:16:48ID:???いやなこった。
そんなPHP厨がこの業界に繁殖するなんてな。
プログラマの価値が下がる。
ちゃんとソフトウェア工学も理解できない奴が
偉そうにするんじゃねえよっていいたい。
0763nobodyさん
2006/03/13(月) 22:59:48ID:???なにPHPしか出来ない俺に言ってんの?
誰だって最初は一個しか書けないんじゃないのかよっ!
>>762
は>760のどこに反論してるのか分かりません。 ><
っていうかソフトウェア工学ってなに?必須?
0764nobodyさん
2006/03/13(月) 23:10:39ID:???0765nobodyさん
2006/03/14(火) 00:39:01ID:???0766nobodyさん
2006/03/14(火) 03:24:27ID:PRYzuNfa0767nobodyさん
2006/03/14(火) 03:48:19ID:???0768nobodyさん
2006/03/14(火) 04:37:37ID:???0769nobody
2006/03/14(火) 05:21:47ID:l+upm9sfちょっと つまづいてしまって先に進めない状態です。
file1.php
<html>
<head>
<title>スーパーグローバル変数
</title>
</head>
<body>
<form method="POST" action="file2.php" enctype="multipart/form-data">
ファイルのパス:
<input type="file" mame="upload" size="50" />
<input type="submit" value="アップロード"/>
</form>
</body>
</html>
file2.php
<?php
move_uploaded_file($_FILES['uploaded']['temp_name'],
'./doc/'.$_FILES['uploaded']['name']);
print('アップロードに成功しました');
print ($_FILES['file']['error']);
?>
という2つのプログラムを実行すると、「アップロードに成功しました」と表記はされるのですが、実際に/samples/chap2/docにアップロードされているかどうかよくわかりません。chap2の下にdocというファイルができるのでしょうか?
また、print ($_FILE['file']['error']); を記述いているのに返答がありません。なにかまちがっているんでしょうか?
どなたか 教えてください。
0771nobodyさん
2006/03/14(火) 06:04:05ID:???0772nobodyさん
2006/03/14(火) 06:38:42ID:???質問する前に、自分の書いたスクリプトに本当に間違いがないかちゃんと確認した?
HTMLの文法はそれで本当に間違いはないの?
スペルミスはない?
ここまで言っても相変わらず「どこがまちがってるのか分からない」って言っているようじゃ
申し訳ないけどWebプログラミングの素質は全くないよ。
あるいは、いつまで経ってもこういうスレの存在がなければまともに一仕事できない
赤ん坊のままだね。
もうちょっと自分自身の力だけで頑張ってみなよ。
0774nobodyさん
2006/03/14(火) 07:21:36ID:???そのスクリプトに間違いがあるかどうかには関知しないが、
PHPのHTTP POSTによるファイルアップロードの処理は
マニュアルの以下にまとまっている。
http://www.php.net/manual/ja/features.file-upload.php
テンポラリにアップロードされてから、任意の場所に移動
という手順を踏むことや、注意すべきポイントが解説されているので
解説本だけで済まそうと思わないで、マニュアルも併読すること。
0775nobodyさん
2006/03/14(火) 07:25:45ID:???併読すること。
0776774
2006/03/14(火) 07:36:40ID:???アップロードのファイルを監視して進行状況を提供する改変パッチ
http://www.modphp.org/viewtopic.php?p=325
これ結構面白いな。
0777nobodyさん
2006/03/14(火) 07:41:26ID:???マニュアルは一応"仕様"と見なしていいから、
PHP(ZE)のソースの併読はいらんよ。
必要があった時に読めばいい。バグリストもな。
0780nobodyさん
2006/03/14(火) 08:45:43ID:???0781nobodyさん
2006/03/14(火) 08:53:09ID:???0782nobodyさん
2006/03/14(火) 09:23:55ID:???0783nobodyさん
2006/03/14(火) 10:58:08ID:???「アップロードに成功しました」って…
成功したかどうか判別もしないで必ずそう表示するように作ってるんじゃん。
それって自分で作ったのか?それともサンプル?
もしもそれがサンプル通りならその本捨てれ。参考書になってない。
0786nobodyさん
2006/03/14(火) 11:55:03ID:???仕事ってもいろいろあるんじゃない?w
0787nobodyさん
2006/03/14(火) 14:08:10ID:1kXYSwK7<input type="file" mame="upload" size="50" />
mame→nameが正しい
だがここを直したところで
move_uploaded_file($_FILES['uploaded']['temp_name'],
'./doc/'.$_FILES['uploaded']['name']);
HTML内ではuploadだったのに、ココに来て'uploaded'となってはそんな変数ありませんだ。
更にだ。
$_FILESに'temp_name'なんて配列の要素抱えてない。
正しくは'tmp_name'な。
docディレクトリは自分でまず作って置いてパーミッションは777にするように。
0788nobody
2006/03/14(火) 16:46:49ID:l+upm9sfみなさん返事書き込みありがとうございました。
おかげで動きました。あと、いろいろアドバイスありがとうございます。
プログラムが動いたことがとってもうれしいです。
0789nobodyさん
2006/03/14(火) 16:54:25ID:???SQLのレコードにある特定の文字を消去するためPHP側より
select trim(leading '文字' from フィールド)from テーブル
というSQL文を発行して特定の文字を消すのですが、
消去した後のフィールドを配列として格納したいのですが、うまくいきません。
教えて頂けないでしょうか。
当方はmysql_fetch_arrayで試しているのですが間違いですか?
0790nobodyさん
2006/03/14(火) 18:38:57ID:???うまくいかないのは分かったが、エラーは出てないのか?
MySQL側。
■ このスレッドは過去ログ倉庫に格納されています