【PHP】下らねぇ質問はここに書き込みやがれpart14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0448nobodyさん
2005/12/29(木) 09:49:51ID:???0449nobodyさん
2005/12/29(木) 10:00:09ID:???0450nobodyさん
2005/12/29(木) 10:11:04ID:???0451nobodyさん
2005/12/29(木) 10:19:38ID:???$a = 0;
if ($a) { echo "あ"; }
if (!$a) { echo "い"; }
if ($a == "") { echo "う"; }
if ($a != "") { echo "え"; }
if ($a == 0) { echo "お"; }
の結果が
いうお
になります。
$aに0〜の数字が入っていれば真としたいのですが、条件をどのようにすればよいのでしょうか?
0452nobodyさん
2005/12/29(木) 10:27:43ID:???0453nobodyさん
2005/12/29(木) 10:31:53ID:???!==
0454nobodyさん
2005/12/29(木) 10:33:15ID:???少し考えればできそうなのに頭がこんがらがるお前は頭いいね。
つーか
> $aに0〜の数字が入っていれば
って意味ワカンネ。
0455nobodyさん
2005/12/29(木) 11:15:25ID:???0457nobodyさん
2005/12/29(木) 11:27:09ID:???$aが数字の場合、真
$aが空や数字以外なら偽
としたかったのです。
>>455
でできました。ありがとうございました。
0459434
2005/12/29(木) 15:45:06ID:1WTCJJ6cクエリが test=hoge 以外だとエラー吐いたのですが
ちょっと強引に error_reporting(0); で誤魔化しました。
>>447
「ひきすう」だったのね…orz
おかげで解決しました。
本当にありがとうございました。
0460nobodyさん
2005/12/29(木) 16:45:34ID:???じゃあ
if (isset($_GET['test'] ) and $_GET['test'] == 'hoge') {
echo "<p>まんせー</p>";
}
0461nobodyさん
2005/12/29(木) 20:50:49ID:???たしかにサンプルなんかだと
むやみにexitとかdie使っててどうすりゃいいんだ!とか悩んだな。昔は。
ちゃんとhtmlのケツの方まで出したかったりするんだったらエラー処理時の関数を作っておくとよい。
そういう事をしてるうちに見通しのよいソースが書けるようになってくるし、自分の関数をほかのプログラムでも使い回ししやすくなる
0462nobodyさん
2005/12/29(木) 21:07:10ID:???ファイル処理時にファイルの内容なんかをmysqlにもデータ保持させて、
読み込む必要がある場合は、
mysqlから読み込んだりしてます。
この方法ってやっぱりナンセンスでしょうか?
今まで簡単だからとmysqlに逃げてましたがそろそろ真剣に
考えなきゃいけないかなと感じてます。
理由はデータベースからひっぱってくるデータは非常に処理が
しやすいからです。
でも整合性(ファイルとデータベースの違い)とかで
たまに苦しみます。整合性自体も考慮して書けばいいんでしょうが。
0463nobodyさん
2005/12/29(木) 21:52:07ID:???「整合性」って具体的に何の話をしてるんだかよくわからんけど、
DBで処理できる範囲ならそのままでいいんじゃない?
負荷が大きくなってくると少し考えなくちゃいけないけど。
0464nobodyさん
2005/12/29(木) 23:11:37ID:???どっちにしろエラー処理でプログラム終了しちゃったらそこで終わっちゃうし、
かといって終了させないと、実行させたくない正常時処理まで走ってしまう。
結局のとこ、全体の流れをちゃんと組めてないだけだろ?
その程度のごくごく基本的なロジックも組めないならプログラミングなんてやめてしまえと。
関数化しないといけないのはエラー時の表示はもちろん、メインの処理も含めて全体。
元の質問者は「他にどんな処理があるかは教えませんが、表示だけしないで終わるように、
かつ自分で考えなくてもそのまんま動くプログラムを教えてください」とアホ質問してるだけなので、
ここはそういうスレだからそれ自体を怒りはしないけど、ちっとは考えて回答を読めと。
0465nobodyさん
2005/12/29(木) 23:15:54ID:???ファイルをどのように扱うプログラムなのかが分からんので何とも。
ざっと読んだ限りじゃ、そもそもファイル扱う必要ないんじゃない?って思うけど。
でもやってることはファイル内容をキャッシュして扱ってる、ってのと同じだと思うので、
そういう処理は当然のように整合性問題がついて回るけど、だからといって
その種の手法がナンセンスだとは思わない。必然があるならどんどんやればいい。
検索の高速化やファイルロックの堅実性など、下手に悩むよりずっといいこともある。
メリット・デメリットを全然考えずにやってるならナンセンスなんだろうけどね。
0466nobodyさん
2005/12/30(金) 01:41:08ID:???$hairetu = array(
"a","b"
);
格納してあるんですが、これをランダムに順序を並べ替えて
r,d,c,g,aみたいに40個順に出力するにはどうすればいいでしょうか。
0467nobodyさん
2005/12/30(金) 01:48:09ID:???0468nobodyさん
2005/12/30(金) 02:08:10ID:???0469nobodyさん
2005/12/30(金) 02:11:41ID:???どうも。shuffleなんてあったんですね。
array_randはポケットリファレンスに載ってないのはなんでだろ。
0470nobodyさん
2005/12/30(金) 02:19:29ID:???それに対してarray_rand()はPHP4以降。
そのリファレンス本が古いんじゃね?
つーかPHPは仕様の変化が早いからマニュアル系で良書と呼べる本はあんま無いぞ。
テクニック本ならともかくリファレンスとして使うなら本家なりミラーなりの
オンラインマニュアルに勝るものなし、って感じ。
俺は普段、それをローカルに保存して使ってるけど、それだって年に1度は
保存し直しとかないといつの間にか内容変わってて怖いくらいだ。
0471nobodyさん
2005/12/30(金) 04:18:40ID:???(このスレの回答でも出てきてるfile_get_contents()とか4.3.0で追加された)
戻り値とかの仕様も変わっちゃう(特に配列系はかなり変わってる)んだから、
その辺の安い本なんて読みながらコーディングしてるようなやつは
現場じゃ使い物にならないと思うけどな。
ま、趣味で書いてる分には別に構わないけど、それなら他人に質問すんなって感じ。
自分の使ってるバージョンのマニュアルも読まずに質問するのは失礼じゃね?
0472nobodyさん
2005/12/30(金) 04:30:28ID:???0473nobodyさん
2005/12/30(金) 04:58:26ID:???0474nobodyさん
2005/12/30(金) 10:31:47ID:FPBgif0X「test.php」というファイルに別のディレクトリにあるtest2.phpもしくはtest3.phpというファイルの
どちらを上書きするか、セレクトメニューで選択した方を上書きコピーしたいのですが
■select.php (選択した方を読み込むファイル)
require("filecopy.php");
if ($sentaku == true) { //選択ボタンが押された時コピー実行
copyfile();
}
■filecopy.php(select.phpで呼び出された動作)
function copyfile{
switch ($datafile) {
case "test2": //test2が選択された時はtest.phpにtest2.phpを上書き
chmod ("test.php",0666);
copy ("file/test2.php","test.php");
chmod ("test.php",0666);
case "test3": //test3が選択された時はtest.phpにtest3.phpを上書き
chmod ("test.php",0666);
copy ("file/test3.php","test.php");
chmod ("test.php",0644);
}
という感じで書きましたが、
Fatal error: Call to undefined functionエラーが発生します。
どうすれば良いでしょうか?
0475nobodyさん
2005/12/30(金) 10:37:30ID:???0476nobodyさん
2005/12/30(金) 10:38:17ID:???>Fatal error: Call to undefined functionエラーが発生します。
>どうすれば良いでしょうか?
エラー表示を全部書かないのは嫌がらせか?
あとエラー行の位置を示さないのも嫌がらせの一種だからな。
0477nobodyさん
2005/12/30(金) 10:39:39ID:???()は省略可能かどうかは確認したか?
0478nobodyさん
2005/12/30(金) 10:40:56ID:???つーのは、 〜って関数が定義されて無いのに呼び出そうとしたのでガッした、って事。
0479nobodyさん
2005/12/30(金) 10:41:43ID:???失礼。
Fatal error: Call to undefined function: copyfile() in /home/rika/public_html/test/select.php on line 23
23行目は上のselect.php の copyfile(); の部分
0482nobodyさん
2005/12/30(金) 10:47:04ID:???0483nobodyさん
2005/12/30(金) 10:49:21ID:???呼び出し元も何の引数も与えてないんだからfunction側をいくらいじったところで…
こいつ、PHPとPerlを勘違いしてそうな予感。
そのレベルでいきなりrequireで別ファイル定義してたって解決が遅くなるだけだ。
まず最初のうちはselect.phpの中でfunctionの定義して、動くようになってから分離シレ
0484474
2005/12/30(金) 10:50:44ID:???すいません、select.php側の()を消すとエラーは消えました。
が、コピー動作が作動していない様です。
0485nobodyさん
2005/12/30(金) 10:51:53ID:???エラーに関係ないけど,
switch内のcase文は,きちんとbreakしないと,次のcase文まで実行してしまうよ.
test2が選択されても,最後にはtest3がコピーされるね,このままだと.
0489nobodyさん
2005/12/30(金) 10:59:29ID:???今のうちに言っておくが、エラーがなくなったところでそのコピーは絶対動かないぞ。
$datafileってどっから出てきたんだよ。
「HTMLのフォームで渡してます」とか勘違い回答禁止。
0490nobodyさん
2005/12/30(金) 10:59:34ID:???お前は分かっとるのかと。
ちなみに>>482括弧が空でも動くぞ。
0492474
2005/12/30(金) 11:03:19ID:???$datafileはデータファイル(data.dat)の中に。
例えばtest2を選択した時はdata.datの中には
test2 という値が保存される様になってます。
この値は既に確認済みです。
0493474
2005/12/30(金) 11:06:00ID:???0494nobodyさん
2005/12/30(金) 11:06:38ID:???function copyfile() の中で
print $datafile;
とかやってみれ。でてこねーから。
0495491
2005/12/30(金) 11:07:06ID:???require("filecopy.php");
if ($sentaku == true) { //選択ボタンが押された時コピー実行
ここ
}
に、functionの中身を書けば動くだろが ボケカス氏ね糞
0497491 == 487 != 482
2005/12/30(金) 11:09:17ID:???0499494=487
2005/12/30(金) 11:11:56ID:???PHPはPerlと違って、普通に$datafileとか書くとローカル変数として扱われて
関数内の$datafileとその外の$datafileは別物だから。
0501485
2005/12/30(金) 11:15:50ID:???…いや,これが最初の手段でしょ.
関数を作るのは,その処理を頻繁に行う必要が出てきてから.
>>494で変数が出てこないのは,変数のスコープが違うから.
0502nobodyさん
2005/12/30(金) 11:16:43ID:???最初のうちはprintだけ書いて処理の流れを確認した方がいいと思うぞ。
0503474
2005/12/30(金) 11:19:47ID:???「ファイルは分けた方が動作が軽快」と聞かされてたんで、
requireを使って、動作の目的ごとにファイルを分けてたんです。
>>502
了解です
0505nobodyさん
2005/12/30(金) 13:09:47ID:???0507nobodyさん
2005/12/30(金) 15:39:37ID:???データだけでなくタイムスタンプも保存するようにして、
ファイルのタイムスタンプと比較したら?
つかそういうの何もせずにデータが分散しちゃうのは
全然よくない方法だと思うんだけど。
0508nobodyさん
2005/12/30(金) 17:51:40ID:???0510nobodyさん
2005/12/30(金) 21:02:19ID:???あるスクリプトを3つに7つぐらいに分割したのと、
まとめたものの出力タイムを算出したら、
倍ぐらい違ったぞ。
もちろんまとめたほうが早かった。
スクリプトを分けるのはいいけど、早くなるってわけじゃないってこと。
0511nobodyさん
2005/12/30(金) 21:11:34ID:???・includeやrequire処理は遅い。 <- まぁファイルを開く処理なんで当然っちゃー当然。
なので、
・滅多に使わない処理を別ファイルにすると、普段の処理は速くなる。
つーあたりが落とし所かと。
スクリプトの管理が楽になるってのもあるけど。
0512nobodyさん
2005/12/30(金) 21:57:56ID:???その上で共通の部分は1つにまとめてrequire()しましょ、って話でしょ。
理由もなく分ければ速いとか遅いとか言ってもしょーがないよね。
0513nobodyさん
2005/12/30(金) 22:14:09ID:WrjQPieiアクセレータは入れてる?
速度向上を求めるなら、スクリプトをまとめるよりも、
アクセレータ入れた方がいいよ。
0514nobodyさん
2005/12/30(金) 22:18:34ID:???0515nobodyさん
2005/12/30(金) 22:47:43ID:???0516nobodyさん
2005/12/30(金) 23:00:40ID:???0519nobodyさん
2005/12/31(土) 03:35:38ID:TV9EjbIm再起動させれば問題ないよね?
0520nobodyさん
2005/12/31(土) 03:36:13ID:???0521nobodyさん
2005/12/31(土) 08:05:19ID:???0522nobodyさん
2005/12/31(土) 09:25:13ID:GIcF9gPaSn Uploaderのphp版があれば最高なんだけど・・・詳しい人いたら教えていただきたいです。。
0523nobodyさん
2005/12/31(土) 09:59:51ID:???そして、何がしたいのかも分からん
DL用のリンクじゃなくてURLを単純に文字列として表示したいのか?
それならスクリプト内のHTML出力部分をちょっと手直しするだけだけど、それだったらスレ違いやし
エスパーキボン
0524nobodyさん
2005/12/31(土) 10:16:32ID:???0525nobodyさん
2005/12/31(土) 11:03:55ID:???そうだ、sourceforgeでいいじゃん。
ミラー管理、会員管理、ファイルのバージョン管理、ML、
なんでも付いてるphp製アップローダだぞ
0526nobodyさん
2005/12/31(土) 11:21:27ID:???http://pc8.2ch.net/test/read.cgi/mysv/1128273012/605
0527nobodyさん
2005/12/31(土) 14:26:52ID:NkWpneAF返事がおくれましたが、それでいけました。あまりに素っ気ない回答だったんで最初はわからなかったんですが、
よくみてみるとeオプションなんてのがあるんですね、勉強になります。
どうもありがとうございました。
0528nobodyさん
2005/12/31(土) 16:26:59ID:ytK+M4x0調べる構文はありますか?
0530nobodyさん
2005/12/31(土) 16:50:24ID:???MySQLライブラリがPHPに組み込まれているかどうかでは無く、
MySQLがサーバにインストールされているかどうか、
そのMySQLでMyISAMが有効であるかどうか、です
0531nobodyさん
2005/12/31(土) 17:00:17ID:???PHPから使えなくてもMySQLが入ってればいいってこと?
PHPから使えない=PHPからアクセスできない=MySQLが入ってても認識できない
ってことだから「構文」としてはそんなものは存在しないと思うけど。
強いて言えば
passthru("find / -name mysql");
とかやれば探せるかもしれない。が、共有サーバーとかでこんなの走らせると怒られるかも。
0532nobodyさん
2005/12/31(土) 17:02:15ID:???現在のmysqlの状態を表示させるしかないんじゃないかな。
つーか、こういうのはサーバー管理者に質問して確認すべきものであって、
ユーザが勝手に調べたりしていいものじゃないと思うぞ。
0534nobodyさん
2005/12/31(土) 18:25:15ID:???show variables like 'have_myisam'
でYESになればサポートしてる。
0535nobodyさん
2005/12/31(土) 18:39:31ID:???接続に失敗するのが
・MySQLがインストールされてないため
・DB接続の指定を間違っているため
のどっちなのかをどうやって判別するんだ
0536nobodyさん
2006/01/01(日) 00:27:10ID:???年の初めから、悩んでおります・・・
送信元 html
<form name="form1" method="post" action="c.php">
<input type="text" name="a">
<input type="submit" name="Submit" value="送信">
</form>
受け取りphp
<?
$a=$_POST['a'];
print($a);
?>
これは動作しました。
ですが↓はヘッダのメタ部だけ読み込まれて
POSTで情報を送ったものは失敗しているようで表示されません
0537nobodyさん
2006/01/01(日) 00:28:09ID:???<form method="POST" action="hogehoge.php" name='reserve'>
<input type="text" name="name" maxlength="30">
<input type="text" name="mail" maxlength="50">
<input type="text" name="phone" maxlength="15">
<select name="select" onChange="PushPulldown(this.options[this.options.selectedIndex].value)">
<option value=''>月</option>
<? for($a=1;$a<13;$a++){
echo "<option value='".$a."'>".$a."</option> ";
} ?> </select>//javascriptで連動するプルダウンを2つ作っています
<select name='day' onChange="this.options[this.options.selectedIndex].value">
<option value=''>日</option>
</select>
<select name="hour">
<? for($d=1;$d<25;$d++){
print("<option>".$d."</option>");
} ?> </select>
<select name="detail">
<option>頃</option>
<option>30分頃</option>
</select>
<input type="text" size="3" name="number">
<input type="submit" value="確認画面へ">
<input type="reset" value="クリア">
0538nobodyさん
2006/01/01(日) 00:29:27ID:???受け取りphp
<?
$name=_HS(_SS($_POST['name']));
$mail=_HS(_SS($_POST['mail']));
$phone=_HS(_SS($_POST['phone']));
$select=_HS(_SS($_POST['select']));
$day=_HS(_SS($_POST['day']));
$hour=_HS(_SS($_POST['hour']));
$detail=_HS(_SS($_POST['detail']));
$number=_HS(_SS($_POST['number']));
echo "$name";
echo "$mail";
echo "$phone";
echo "$select";
echo "$day";
echo "$hour";
echo "$detail";
echo "$number";
//_HS はhtmlspecialcharsと同動作
//_SS はstripslashesと同動作
?>
同じようなことをしているんですが、片方だけうまくいかないことの
考えられる理由を教えてください…
鯖側PHPは4.3です
0539nobodyさん
2006/01/01(日) 00:34:04ID:???こんな新年の夜中から何やってんだか。
_HS()とか_SS()とかが正しく動くもんなのかこれだけじゃ判別つかんので、
受け取りPHPの1番先頭に
<?php var_dump($_POST); ?>
の1行を入れてくれたまい!
0540nobodyさん
2006/01/01(日) 00:38:53ID:???こんばんは、あけましておめでとうございます。
array(8) {
["name"]=> string(3) "aaa"
["mail"]=> string(11) "[email protected]"
["phone"]=> string(10) "0301111111"
["select"]=> string(1) "1"
["day"]=> string(1) "1"
["hour"]=> string(1) "1"
["detail"]=> string(2) "頃"
["number"]=> string(2) "12" }
1行入れたところこんな、配列が発掘されました・・・
0541nobodyさん
2006/01/01(日) 00:47:45ID:???0542nobodyさん
2006/01/01(日) 00:50:04ID:???↓
echo $hoge;
0544434
2006/01/01(日) 00:54:20ID:xNWERqNS遅レスですが…
>>460
出来ました。ありがとう。
>>464
ごめんなさい。
マニュアル読んで勉強します。
0545nobodyさん
2006/01/01(日) 00:57:48ID:???そのようでした・・・ほかのところにも使っていたんですが
それでは問題なく動作していたために、灯台下暗し・・・・でしたorz
ありがとうございました。
今夜はよく眠れそうです・・・
ちなみに_SSと_HSはこんなfunctionでした
function _hs($_val){
$_val = htmlspecialchars($_val);
return( $_val );
}
function _ss($_val){
if(get_magic_quotes_gpc()){
$_val = stripslashes($_val);
}
$_val = trim($_val);
return($_val);
}
0546nobodyさん
2006/01/01(日) 03:08:25ID:???君はマニュアルより先に、プログラミングの基礎みたいな本を読んだ方がいいと思う。
マニュアルは命令一覧とかは書いてあってもロジックの書き方は書いてないから。
0547434
2006/01/01(日) 03:12:23ID:xNWERqNSなるほど、本ですか…
ifも他人のスクリプトのソースみて覚えたものなので…
本やサイトを見て勉強したいと思います。
ありがとうございました。
0548nobodyさん
2006/01/01(日) 03:23:21ID:???substrはバイトごとみたいで
■ このスレッドは過去ログ倉庫に格納されています