【PHP】下らねぇ質問はここに書き込みやがれ 60
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/01(土) 21:18:36ID:MnWwNIk0PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1195204145/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0196nobodyさん
2007/12/05(水) 21:32:48ID:QkDOhUsvセーフモードがoffの状態でも動くものでしょうか?
0198nobodyさん
2007/12/05(水) 22:01:40ID:wraGx0x2そのうち一度だけ、その関数の引数を使った条件が真のとき(for文中のif文でチェック)、
その数字を赤字で出力する場合(<font color=red>$i</font>)、
以降の処理ではif文をもう実行しないという方法はないでしょうか?
ただし、現在ある赤字チェック以外のif文を新規に追加しないことと、
数値の出力自体は100まで実行するものとします …やっぱり無理かな?
0199nobodyさん
2007/12/05(水) 22:05:25ID:???0200nobodyさん
2007/12/05(水) 22:22:37ID:???for($i = 0;$i < 100;$i++) {
if ($flag == false && hoge($i)) {
echo '<font color="red">'.$i.'</font>';
$flag = true;
}
echo $i';
}
function hoge($hoge) {
if ($hoge == true) {
return true;
}
return false;
}
こんな感じか?
標準関数ではそんなのない
0201nobodyさん
2007/12/05(水) 22:30:08ID:h+ynIQ9APerlみたいにコマンドを入力する黒い画面上での実行は無理ですか。
0202nobodyさん
2007/12/05(水) 22:35:02ID:???0203nobodyさん
2007/12/05(水) 22:39:13ID:???残りのループの中で無駄なifをやりたく無いって事だろうけど、後で読み辛くなると思うなぁ。
for($i=0; $i<100; $i++){
if(cond($i)){ do_1; break; }
}
for(;$i<100;$i++){ do_2; }
0204nobodyさん
2007/12/05(水) 22:41:41ID:???PHPの本3冊共、黒画面の実行プログラムが載ってないからな。
0205nobodyさん
2007/12/05(水) 22:42:07ID:???どうもです
>標準関数ではそんなのない
聞いて安心しました 赤字を返す処理してるのにそのあとまでif文実行するなんて
無駄だなーって思ってたんですが、自分が知らないのかと不安で、、 ありがとう
0207nobodyさん
2007/12/05(水) 23:35:42ID:???どんだけレベルひくいねんなw
0208nobodyさん
2007/12/05(水) 23:56:31ID:???>>207とかねwwwwwwwwwwwww
0209nobodyさん
2007/12/06(木) 01:14:57ID:???0210nobodyさん
2007/12/06(木) 02:24:47ID:HrkIjuFXimagecopyresampledなどを使っても上手くできません。
どうやってやれば良いのか教えてください。
0211nobodyさん
2007/12/06(木) 02:28:43ID:???↓
以下は自分で考えてみろ
0212nobodyさん
2007/12/06(木) 02:28:54ID:???0213nobodyさん
2007/12/06(木) 04:28:51ID:5xDWI9jJHTMLの<form><textarea>タグから得られた複数行の文字列を
1行目、2行目という風に行ごとに分ける方法を教えてください。
0215nobodyさん
2007/12/06(木) 05:07:11ID:5xDWI9jJ\nとexplodeを使ったら、上手く出来ました。
ありがとうございました。。
0216nobodyさん
2007/12/06(木) 10:46:08ID:Wo2vC2Xgログイン中のユーザのセッションに保存されてる値を他のユーザから書き換えを行いたいと思います。
0218nobodyさん
2007/12/06(木) 11:17:23ID:???0219nobodyさん
2007/12/06(木) 11:37:58ID:???> Perlみたいにコマンドを入力する黒い画面上での実行は無理ですか。
ふつーにできるでしょ。CLIのやつを使えば。
C:\>php -r "echo 'hogehoge';"
hogehoge
C:\>php --version
PHP 5.2.4 (cli) (built: Aug 30 2007 07:06:31)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
C:\>
> そうなのか。
> PHPの本3冊共、黒画面の実行プログラムが載ってないからな。
何に対して「そうなのか」と言ってるんだろう
0221216
2007/12/06(木) 13:00:52ID:Wo2vC2Xg要件としてサイトAからサイトBにユーザが移動時にパラメータでポイント的な値が渡されます。
その値をサイトBにて表示してます。
サイトCにユーザが移動してなんらかのアクションを起こすとサイトCからサイトBにサーバ間通信されます。
ここでサイトBのポイントを減算する必要があります。
ユーザが戻るリンクでサイトBに戻ればよいのですが、ブラウザの戻るボタンで戻った場合を考慮して
通信を受けた際にセッションのポイントを減らすのが目的です。
ちなみに携帯向けなのでクッキーは使用できません。
DBに都度保存すれば良いのですが、面倒なのでできれば直接セッションを書き換えたほうが楽かなと思っております。
0222nobodyさん
2007/12/06(木) 13:49:14ID:???0223nobodyさん
2007/12/06(木) 14:00:06ID:k6INzxiU#PHPエラー設定
ini_set('html_errors', "1");
ini_set('error_reporting', 6135);
ini_set('display_errors' , "1");
echo :
?>
ローカル鯖ならエラーが出てくれるのに
レンタルサーバーではエラーが表示されません。
どうにかしてエラーを出すように設定ができないでしょうか?
0224nobodyさん
2007/12/06(木) 14:07:17ID:k6INzxiUFATALエラーの場合、ini_setだとスクリプト自体が実行されないから
ini_setが反映されないのかorz
他の方法探してみます・・・。
0225nobodyさん
2007/12/06(木) 14:20:04ID:k6INzxiUさくらまじで死ね!
0226nobodyさん
2007/12/06(木) 15:12:16ID:???0227nobodyさん
2007/12/06(木) 15:14:36ID:k6INzxiU0228216
2007/12/06(木) 15:36:20ID:???了解しました。
セッションを操作できる方法があればと思いましたが、
DBを使う事にします。
ありがとうございました。
0229nobodyさん
2007/12/06(木) 15:44:28ID:???初心者丸出しwwwwwww
でも、いい経験になったね。
0233nobodyさん
2007/12/06(木) 16:32:30ID:???0234nobodyさん
2007/12/06(木) 19:13:26ID:???これで$kを0〜10まで表示させたいのですが、どのような形で可能でしょうか?
0236nobodyさん
2007/12/06(木) 19:38:05ID:???0237nobodyさん
2007/12/06(木) 19:50:28ID:???for($i=0;$i<11;$i++){
print $aaa[$i];
}
とか?
もしくは面倒&パフォーマンス悪いけど
$i = 0;
foreach($aaa as $k => $v){
if($i < 11){
print $k . ' => ' . $v;
}else{
break();
}
}
0238234
2007/12/06(木) 19:53:15ID:???var_dumpで$vを調べてみたら int(数字が高い順にarsortでソートされてる)
でした。$vはポイント集計の数字のようです。
$kには人名が入ってました。
この場合で$vを上から10位までのランキングとして11位以下を足切りしたいのですが、
foreach($aaa as $k => $v) {
$v = range(0,10)
としても上手くいきません。 どこがまずいのでしょうか?
0239nobodyさん
2007/12/06(木) 19:58:08ID:???エラー吐くならエラー文載せろクズ
0240nobodyさん
2007/12/06(木) 20:00:43ID:???まったく何も表示されません。
考えてみたら$vは
int[112]
int[100]
int[99]
int[78]
int[68]
int[66] ....
こんな感じなのでrangeもくそもないですのね^^;
0243nobodyさん
2007/12/06(木) 20:50:09ID:???0244nobodyさん
2007/12/06(木) 21:28:56ID:???IIS6+PHP5.2(Win2k3 R2)
PostgreSQL(Win2k3)
WebServerとDBServerを別筐体で運用。
move_uploaded_fileを使ってフォームからアップロードされたファイルを
DBServer側に保存させたいのだが...
IIS上でDBServer上の共有ファイルをUDCで強引に割付けて
move_uploaded_fileをやっちゃうと、フォルダかファイルの名前がないぜというエラー
が出ちゃって、移動できないよ・゚・(つД`)・゚・ ウワァァァン
WebServerと保存先となる別Serverの2台構成で、なおかつIIS6を使う時
どうやってuploadファイルを別サーバに移せばよいんだ?
おちえてくれい
0249nobodyさん
2007/12/06(木) 22:56:40ID:???0250240
2007/12/06(木) 22:57:51ID:???10までで切り捨てたいのですが・・・
forなら i <= 10 こんな感じでできそうですが。
0251nobodyさん
2007/12/06(木) 22:59:49ID:???0252nobodyさん
2007/12/06(木) 23:00:27ID:???情報の小出しをやめろ。
それだけで大分違うんじゃね?
0253nobodyさん
2007/12/06(木) 23:01:57ID:???0254250
2007/12/06(木) 23:06:23ID:???0256nobodyさん
2007/12/06(木) 23:15:16ID:???値の重複を持つフィールドのレコードを引っ張りだしたいのですが、
$st = $db->prepare("SELECT * FROM goods WHERE name = 'バナナ'");
$st->execute();
$ar = array();
$ar = $exe->fetch(PDO::FETCH_ASSOC);
foreach($ar as $key => $value){
echo "キー: $key; 値: $value;
}
では一つのレコードしか表示されません。
重複したレコード全部を表示させるためにはどうすれば良いでしょうか?
0258nobodyさん
2007/12/06(木) 23:19:45ID:???みたいな本はないんだろうな。
デバッグの仕方、問題点の探し方を知っていればこのスレの世話になることもないだろうに。
0259nobodyさん
2007/12/06(木) 23:23:49ID:B7iDUoX7実際にブラウザで開くphp --------------------------------
require_once("testclass.php");
$testPrint= new testPrint();
$testPrint->printIt();
testclass.php ----------------------------------------
require_once("arrayList.php");
class testPrint{
function printIt(){
for($i=0;$<2;$++){ print $this->testAry[$i];}
}
}
arrayList.php --------------------------------------
$testAry = array("a","b","c");
恥ずかしながらこの程度のものが良くわかりません
イメージではabcって出力するつもりだったんですが、、
おねがいします
0261nobodyさん
2007/12/06(木) 23:36:39ID:B7iDUoX7ありがとうございます
うー、ごめんなさい おかしいのはtestclass.phpってことですか?
0263259
2007/12/06(木) 23:46:32ID:B7iDUoX7ありがとうございます、スコープの概念が良くわかってないみたいです
ためしにクラスの中にrequireしてみたんですが、
require_once("arrayList.php");
class testPrint{
エラーで画面真っ白になりました
元の実行するphpにrequire_once("arrayList.php");してもダメだし、、
外部ファイルから読み込むのが無理ってわけでしょうか?
0264nobodyさん
2007/12/06(木) 23:49:54ID:???function printIt(){
require_once("arrayList.php");
for($i=0;$<2;$++){ print $testAry[$i];}
}
or
function __construct()
{
require_once("arrayList.php");
$this->testAry = $testAry;
}
or
$testPrint= new testPrint();
$testPrint=$testAry;
$testPrint->printIt();
0265nobodyさん
2007/12/06(木) 23:50:01ID:???0266nobodyさん
2007/12/06(木) 23:51:01ID:???testPrint->testAry = $testAry;
0267nobodyさん
2007/12/06(木) 23:51:37ID:???0268259
2007/12/07(金) 00:29:14ID:buUfpIh5ありがとうございます
ただ、真ん中のコンストラクタを使うやり方を試しましたが うまくいきませんでした
function __construct(){
require_once("arrayList.php");
echo $testAry;//@
$this->testAry = $testAry;//A
}
@をためしに追加してみたんですが、NULLが帰ってきました (testArray.phpにはもちろんあります)
これがNULLってことはAも当然失敗すると考えていいんでしょうか?
なんか変なことしてたら申し訳ありません 引き続きテストしてみますので、
気づいたことがあったら教えてください
0269nobodyさん
2007/12/07(金) 00:30:55ID:???0270259
2007/12/07(金) 00:37:06ID:buUfpIh5var_dump($testAry);//@
でした
ちなみに、以下を試してみたら、「NULL NULL コンストラクタNULL」という結果でした
function __construct(){
//配列リストの読み込み
require_once("arrayList.php");
var_dump($testAry);
var_dump($this->testAry);
echo "コンストラクタ";
$this->testAryX= $testAry;
var_dump($this->testAryX);
}
まいったな… なんでだろう
0271nobodyさん
2007/12/07(金) 00:59:54ID:???あとは
・arrayList.phpはPHPモードに入っているのか
・testPrintクラスはちゃんとインスタンス化しているのか
0272nobodyさん
2007/12/07(金) 01:13:18ID:???0273nobodyさん
2007/12/07(金) 02:00:20ID:zHjm6pQT0274nobodyさん
2007/12/07(金) 02:22:58ID:???0275nobodyさん
2007/12/07(金) 02:34:39ID:???0276nobodyさん
2007/12/07(金) 04:26:33ID:???で検索条件にマッチしたレコードを取り出したとき、
該当するレコードが1つの場合は、
foreach($rec as $key1 => $val1){
echo "キー: $key1; 値: $val1¥n";
}
だし、
該当するレコードが二つの場合は、
foreach($rec as $key1 => $val1){
foreach($val1 as $key2 => $val2){
echo "キー: $key2; 値: $val2¥n";
}
}
で全部表示できます。
でも、これって該当するレコードの数が分かってないといけないですよね。
マッチしたレコードの数が分からない状態で、
レコード全部を表示する方法ってないのでしょうか?
0277nobodyさん
2007/12/07(金) 04:35:10ID:????
0278259
2007/12/07(金) 04:59:54ID:buUfpIh5確認してみたところ、実際にブラウザで開くphpの一番上に
require_once("arrayList.php"); がひとつ入っていたのが原因のようでした
他愛ないことですみません でもとても助かりました ありがとうございました
0280nobodyさん
2007/12/07(金) 07:30:20ID:???> IIS上でDBServer上の共有ファイルをUDCで強引に割付けて
UDCってなに?
UNC (\\server\hogehoge) がうまくいかないんなら、
ネットワークフォルダにドライブ文字を割り当てて
試してみたら。(やったことないんでうまくいくかどうか知らんけどね)
エクスプローラーのウィンドウ(マイドキュメントとか)開いて、
メニューの ツール→ネットワークドライブの割り当て
UNCを、例えばQドライブとかにできるのでUNCワカリマセーんなソフトでもOK
0282nobodyさん
2007/12/07(金) 10:23:44ID:???fetchAllとか
while (PDOStatement->fetch(PDO::FETCH_ASSOC,PDO::FETCH_ORI_NEXT)){}
とかもろにマニュアルに書いてあったよ
0283nobodyさん
2007/12/07(金) 11:03:33ID:???{
echo "test{$value}<br />\n";
}
へぇー、こんな使い方もあるんだ
この使い方すると、ループ毎に「range(0, 10)」が実行されるから効率悪そうだな
0284nobodyさん
2007/12/07(金) 11:04:56ID:???forよりこっちのほうがソースも見やすく使いやすかったりして・・・
0285nobodyさん
2007/12/07(金) 12:00:34ID:wQgqBqh41)フォームでファイル指定&text等の値を入力して送信
2)PHPでファイルをアップロードしつつtextの値も取得
3)(2)でファイルや入力データに問題があればエラーとし、(1)の画面に戻すためのフォームを表示する。
その際、ファイル以外のtext等はエラー前の値を保持したまま表示させる
という処理をさせたい場合で、アップロードするファイルがPOST_MAX_SIZEを超えた場合、$_POSTが空になってしまうため
(3)のためにファイル以外の値を取得したくても、取得できません。
upload_max_filesizeをPOST_MAX_SIZEより小さくしていたとしても、ファイルのサイズがPOST_MAX_SIZEを超えていた場合は
POSTを空にされてしまいます。
POST_MAX_SIZEを超えたファイルがアップされても同時に送信されたほかの値を取得するにはどうしたらいいでしょうか?
それともやはりPOST_MAX_SIZEをかなり大きくとった上で、それより大きなファイルがアップロードされようとしてエラーになった場合は
値が空になるという事をエラー画面でユーザに告知してあきらめてもらうしかないのでしょうか?
マニュアル読んでも「十分大きさを取れ&駄目な時は空になるよ」以外は見つけられなかったし、
javaScriptとか使ってfileに指定された時にサイズ計測して警告するとかしかないのかな?、、、orz
0286nobodyさん
2007/12/07(金) 13:17:13ID:???http://jp.php.net/manual/ja/function.PDO-query.php
0288nobodyさん
2007/12/07(金) 15:43:10ID:???> PHPは、ASP.NET を使えない低知能な方々のための言語なのですか?
いいえ。
Windows Server を購入できない貧乏人のための言語です。
0289nobodyさん
2007/12/07(金) 15:44:16ID:???0290288
2007/12/07(金) 15:49:18ID:???>>274-275 貧乏人の言い訳。
>>279 ASP と ASP.Net が別物という情報さえ入手できない貧乏人。
>>289 最近の Windows Server に触れる仕事を請け負えない貧乏人。
分かったでしょ。
もちろん PHP は無料でご利用いただけます。
どうぞ、ご利用ください。
0292nobodyさん
2007/12/07(金) 16:42:14ID:???0293nobodyさん
2007/12/07(金) 18:34:12ID:???ていうか、ふつー(裸の)PHPとASP.net比べるか?
まぁ、Visual Web Developer Expressも知らないブルジョア(失笑)と無駄な掛け合い漫才をする気は無いが。
0294nobodyさん
2007/12/07(金) 18:47:21ID:???0295nobodyさん
2007/12/07(金) 18:51:23ID:???いちいち批判し合うのは不毛過ぎる。
■ このスレッドは過去ログ倉庫に格納されています