【PHP】下らねぇ質問はここに書き込みやがれ 72
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/08/16(土) 12:01:25ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0065nobodyさん
2008/08/18(月) 18:30:40ID:xd5mcyZyキャッシュ見てたあああああああああああああああああああああああああああああああ
0066nobodyさん
2008/08/18(月) 18:31:09ID:???yumはどのパッケージを使ったかとか、参考にしたサイトがあるか、とか
やったことについて書いた方がいい
ぱっと思いつくのはApacheモジュールになってないパッケージを使ったってことか
まずはApacheインストールディレクトリのmodulesにlibphp5.soがあるかどうかの確認だな
L板ほっとくとマルチになるから注意だぜ
0069nobodyさん
2008/08/18(月) 20:59:21ID:3TodphYxレスありがとうございます。
ecplipse使っている人が多いので、安心しました。
バージョンアップが面倒だったのですが、
コードインスペクタもついていると知って、
週末にでもバージョンアップしてみます。
毎回、関数名が分からずに正引きしていたので、助かります。
お世話になりました。
0070nobodyさん
2008/08/18(月) 21:11:47ID:???いや、あなたがEclipseを使っているのでアドバイスしただけで、
今時Eclipseを使っている人は余程の物好きです。
あんなに重くて、メモリーを食うプログラムを
デバック処理をしようとするとすぐに固まって、
業務には使い物にならないよ。
海外で英語が苦手じゃないならx-php-laboとかおすすめだが。
0071nobodyさん
2008/08/18(月) 21:40:29ID:???コードの打ち込みが半分以下になるから、
俺も愛用している。誰か日本語のパッチ作らないかなあ。
0072nobodyさん
2008/08/18(月) 23:00:39ID:RVA7Wvm+男なら手打ちでいこうぜ
0073nobodyさん
2008/08/18(月) 23:27:41ID:???0074nobodyさん
2008/08/18(月) 23:39:56ID:???0076nobodyさん
2008/08/19(火) 01:26:11ID:???・fnc($test);
testと言う変数が送られているが、中身は未定義
呼び出し側でエラー出ないか?
fnc(""); とfnc()の区別はつけられないと思う。
というか区別しないように$a=""と書くのではないだろうか?
0077nobodyさん
2008/08/19(火) 02:17:55ID:???0078nobodyさん
2008/08/19(火) 08:52:10ID:???しかし、JavaはSunだろ。それに対してEclipseは元々ライバルのIBMの製品。
それでも、使うのかよ。
0079nobodyさん
2008/08/19(火) 09:02:07ID:???>>76
Notice非表示なら何もでない
そもそもNULLという物がある事は知ってるか?
function fnc($a=""){
if(is_null($a)){
echo "ヌル";
}else{
echo "ストリング";
}
}
0080nobodyさん
2008/08/19(火) 09:14:32ID:+fWBJARSfunctionにreturnメソッドがないと気持ち悪いと感じて、
いつも
return NULL;
としているのですが、
やはり変ですか?
0081nobodyさん
2008/08/19(火) 09:21:35ID:???returnなしでvoidになるから深く気にしない方がいい
どうしても返したいなら成功時true、失敗時falseみたいにしてはどうか
少なくともNULLはないと思う
0082nobodyさん
2008/08/19(火) 09:36:03ID:+fWBJARSお返事ありがとうございます。
phpの場合、型があいまいで、コンパイルエラーもない
値を返却しないとセキュリティー的にまずいかなぁとも思ったのですが、
true/falseならいいですね。それで実装してみます。
ありがとうございます。
0083nobodyさん
2008/08/19(火) 10:36:47ID:???0084nobodyさん
2008/08/19(火) 11:07:28ID:???ハイライトくらいしか求めるものがないから、軽量なのを選択したって感じ
一応コード補完も自動じゃないにしろあるし(ctrl+space
eclipseの機能の豊富さと拡張性はいいな
メモリ食いなのがどうもなぁ・・・JavaのGCが嫌いと言う個人的な意見だが(スレ違い割愛
0085nobodyさん
2008/08/19(火) 11:43:59ID:???個々ファイルをちまちま編集するのに結構便利だったりするんだよね。
逆に得意とすべきプロジェクト部分が弱い感じ。。
Zend Studioの新版はEclipseベースでプロジェクトメインって感じだから乗り換えるにはちょっと勇気がいる。
0086nobodyさん
2008/08/19(火) 12:02:03ID:???一括して他のクラスが参照しているメソッドの名前を修正してくれたり、
警告を出してくれるようなものはないのかな?
実行時に参照してやっとエラーが出るのが、ちょっっと。
0087nobodyさん
2008/08/19(火) 12:15:32ID:???0089nobodyさん
2008/08/19(火) 12:18:53ID:???0090nobodyさん
2008/08/19(火) 12:26:25ID:???だったら楽になるのを作ればいいんじゃね?
0093nobodyさん
2008/08/19(火) 12:42:32ID:???ほっとけ、どうせ>>90は暑さで頭がおかしくなっているか、もしくは元々おかしい。
なんでも自分でやろうして自滅するタイプ。
他人の作った物を信用せず、自分が一番だと思っているんだろ。
つまり、猜疑心が強く、逆にいえば、自己顕示欲が強い奴だ。
この手のタイプはプログラマーに多いが、
こういう奴は、大概ドキュメント書くのが下手。そしてプログラムにもコメントを書かない。
三項演算子を多用してプログラムを短くことに執着心と美学を感じている。
うざい、うざすぎる。暑いのが、更に暑くなる。
0094nobodyさん
2008/08/19(火) 12:43:42ID:???0096nobodyさん
2008/08/19(火) 12:59:50ID:???それはともかく、面倒なのも嫌、作るのも嫌なら自分で探してくるか
お金を払って誰かに作ってもらいなさいね
もしかして自分で探すのも時間がかかって本末転倒?
0098nobodyさん
2008/08/19(火) 13:13:43ID:???> レッテルを貼りたいお年頃ってやつですね、わかります
お前自身がレッテル貼ってんじゃんw
自己矛盾にも気づかないんだろうなぁ。それとも新手の釣りですかw?
0099nobodyさん
2008/08/19(火) 13:28:58ID:???0100nobodyさん
2008/08/19(火) 13:47:24ID:???文章書く時に癖に気をつけないとね
0101nobodyさん
2008/08/19(火) 15:10:20ID:???希望を満たしたIDEを知ってるなら教えてやればいいし、ないならないでいい
まとめ厨の俺乙
0102nobodyさん
2008/08/19(火) 15:35:33ID:???$array = array(
1 => array("田中", 38),
2 => array("吉田", 67),
3 => array("渡辺", 11),
);
これを数値の低い順番に
$array = array(
3 => array("渡辺", 11),
1 => array("田中", 38),
2 => array("吉田", 67),
);
のようにソートしたいんですがどのようにすればよいのでしょうか
0104nobodyさん
2008/08/19(火) 15:37:43ID:2hCJvM5XPHP 5.2.1を使用しています。
$handle = file("http://www.yahoo.co.jp/");
を実行すると
Warning: file(http://www.yahoo.co.jp/) [function.file]: failed to open stream: HTTP request failed! <!doctype html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> in C:\Program Files\xxxxx\xxxxx\test.php on line 2
とエラーになります。
php.iniのallow_url_fopenはOnです。
どうすれば外部urlを読み込めるのでしょうか?
何卒宜しくお願い致します。
0105102
2008/08/19(火) 15:39:03ID:5mUkQ2xD宜しくお願いします。
0107104
2008/08/19(火) 15:54:09ID:2hCJvM5Xxamppです。
0108nobodyさん
2008/08/19(火) 16:02:11ID:???0110nobodyさん
2008/08/19(火) 16:28:03ID:???0112nobodyさん
2008/08/19(火) 17:08:24ID:rbkh+xPC0113nobodyさん
2008/08/19(火) 17:09:43ID:???phpinfo()で「Registered PHP Streams」にhttpはあるのか?
>>102
多次元配列だな
array_multisortを使え
数値列を1次元配列で取得してarray_multisortの最初の引数にSORT_ASCフラグと一緒に指定
第2引数に元の配列を入れる
これで出来んか?
0114nobodyさん
2008/08/19(火) 17:15:36ID:???header関数が使えないってどういう状況だろう
既に送信済みなんじゃないのか?
スーパーグローバルも使えるはずだが・・・
var_dump($_GET);とかで見れないか?
まさかregister_globalsのことじゃないだろうな
0115nobodyさん
2008/08/19(火) 17:23:40ID:VxtPs/tVどうしたらいいんでしょうか。
0116nobodyさん
2008/08/19(火) 17:26:20ID:???http経由か?
それなら 「ttp://ユーザ名:パスワード@ドメイン/URL」でイインダヨー!!
ユーザ名とパスワードをrawurlencodeするのを忘れんな!
0117nobodyさん
2008/08/19(火) 17:42:25ID:???----index.cgi-----------
#!/usr/local/bin/php
Content-type:text/plain
<?php phpinfo();
------------------------
こういう状況です
phpは5.2.6でコンパイルオプションに--enable-force-cgi-redirectをつけてみたりしましたが、headerではなくContent-typeをそのまま書かないと動きません。
0118nobodyさん
2008/08/19(火) 17:53:10ID:???--enable-force-cgi-redirectはモジュール版からCGI版へのリダイレクトだから関係ないっと
普通は一行目の宣言でphpにスクリプトが渡されるからphpで処理されるよな
Content-typeはブラウザへの宣言だからぶっちゃけPHPとは関係がなかったりする
さぁどこに原因があるか分かるやつカモン!
0119nobodyさん
2008/08/19(火) 17:55:02ID:???headerつかうとどうなるの?
0120nobodyさん
2008/08/19(火) 17:57:56ID:???ブラウザには何もソースが送られてないとかか?それともエラーになってるのか?
0121nobodyさん
2008/08/19(火) 18:06:16ID:???<?php
header('Content-type:text/html');
これでヘッダが出力されてないのでInternal Server Errorになります
0123nobodyさん
2008/08/19(火) 20:14:18ID:PaGmE6kQ「私は韓国人だよ。」という文字列と「私は日本人だよ」という文字列を比較して、
その差分(上記でしたら「日本」という文字)を表示させる処理を行いたいですか、
そのやり方に苦戦しています。
「文字列から文字列を引き算すれば〜」「forの入れ子で一文字ずつ比較して〜」等
いろいろと考えてみたのですが、どれも上手くできません。
何かアドバイスをいただけますでしょうか・・・・
0124nobodyさん
2008/08/19(火) 20:25:37ID:???0125nobodyさん
2008/08/19(火) 20:29:29ID:/yAc2/hi何か便利な標準関数はありませんか
0126nobodyさん
2008/08/19(火) 20:41:42ID:???0127nobodyさん
2008/08/19(火) 21:03:23ID:???今のところwikiも行単位の差分だもんなぁ
文字列比較になると文字数の違いをどう吸収するかが悩みどころだろう
諦めて行単位のdiffがいいと思うぜ?
俺だとarray_diffとarray_intersectを使って文字自体の違いと共通を出してそこをヒントにフレーズを導く、
とか考えるが難しいことには変わりない
0128nobodyさん
2008/08/19(火) 21:21:13ID:6/c1nOwy//各レコード内容を表示する表を組み立てます
$body .= "<TR>
<TD>
<INPUT type='text' name='categname[]' value=\"$col[categoryname]\" size='70'>
<INPUT type='submit' name='btnedit$cnt' value='更新'>
<INPUT type='submit' name='btndel$cnt' value='削除'>
<INPUT type='hidden' name='categid[]' value='$col[categoryid]'>
</TD>
</TR>";
$cnt++;
}
というプログラムで、データを渡したいんですけど、
$categname[]=$_POST['categname'];
$btnedit=$_POST['btnedit$cnt'];
$btndel=$_POST['btndel$cnt'];
$categid[]=$_POST['categid'];
foreach($_POST['categname'] as $value){
$categname[]=$value;
}print_r($categname."<br>");
foreach($_POST['categid'] as $value){
$categid[]=$value;
}
でデータを受け取っています。でも、更新ボタンや削除ボタンが複数ある時に、nameが一緒なのでどのように判別すればいいかがわかりません。どのようにすればいいでしょうか?
0131nobodyさん
2008/08/19(火) 21:32:25ID:6/c1nOwyやはりこのやり方ではできないんでしょうか?
0132nobodyさん
2008/08/19(火) 21:51:08ID:???$btndel=$_POST['btndel$cnt'];
ここをループさせて更新とか削除という値が入ってる$cntを探せばいいんじゃないのだろうか?
>通常1formにsubmitは1つ
んなこたーない。
nameは統一してvalueで区別するとラジオボタンと同じ感覚で使える。
とはいえvalueってのがそのままボタンのラベルになるからどうも使いづらいんだよな。
0133nobodyさん
2008/08/19(火) 22:06:49ID:???せめてbuttonタグが思い通りに動いてくれればいいのにな
下みたいなヤツ
<button type="submit" name="action" value="regist">登録</button>
inputタグでやるとマルチバイトでswitchやifするのが気持ち悪いんだよなぁ
0134nobodyさん
2008/08/19(火) 22:11:30ID:6/c1nOwyこのようにしてみたんですが、ダメでした。
for($cnt = 0; $cnt < $reccnt; $cnt++) {
if(isset($_POST['btnedit$cnt'])){
$btname=$btndedit.$cnt;
break;
}
}
更新が入っている$cntを見つけたら$btnnameにbtnedit$cntという値を保存したいんです。どうすればいいかわかるでしょうか?
0135nobodyさん
2008/08/19(火) 22:18:21ID:???----------------
categname[]
categid[]
----------------
を
----------------
categname[$cnt]
categid[$cnt]
----------------
にしたらいいんじゃないか?
btnedit$cntの$cnt部分から目的のデータを正確に取れる
0136nobodyさん
2008/08/19(火) 22:22:52ID:6/c1nOwy0137nobodyさん
2008/08/19(火) 22:57:55ID:6/c1nOwyボタンを押しても送られてくる$cntは最後の値しか入ってないんですが、そこはどうにかならないですかね?
0138nobodyさん
2008/08/19(火) 23:21:48ID:???0139nobodyさん
2008/08/19(火) 23:25:02ID:/yAc2/hiforをぶんぶん回すのがいやだなーと思ったのですが、仕方ないですね。
失礼しました
0140nobodyさん
2008/08/19(火) 23:36:15ID:6/c1nOwyvar_dump($_POST)してみたんですけど、結果は
["btnedit1"]=> string(4) "更新"
となりました。この結果のbtnedit1だけ取り出せないですかね?valueは更新なので、そっちだけなら受け取れるのですが。
>>139
具体的にどのように使えばいいんでしょうか?今調べてみたんですが、どのように、どこで使えばいいのかよくわからなくて・・・
0141nobodyさん
2008/08/19(火) 23:55:15ID:???0142nobodyさん
2008/08/19(火) 23:58:20ID:6/c1nOwyそれはどのボタンを押すかによって変わるんじゃないんですか?例えば3番目のボタンを押したら$cnt=3になってほしいんですが
0143nobodyさん
2008/08/20(水) 00:35:06ID:MvAneMVr0144nobodyさん
2008/08/20(水) 00:37:56ID:???$body .= "<TR>
<TD>
<form>
<INPUT type='text' name='categname[]' value=\"$col[categoryname]\" size='70'>
<INPUT type='submit' name='btnedit$cnt' value='更新'>
<INPUT type='submit' name='btndel$cnt' value='削除'>
<INPUT type='hidden' name='categid[]' value='$col[categoryid]'>
</TD>
</form>
</TR>";
$cnt++;
0145nobodyさん
2008/08/20(水) 00:39:15ID:???0146nobodyさん
2008/08/20(水) 00:44:06ID:MvAneMVrそれは>>128で書いたんですが、nameの値が同じなので、複数ボタンがある時に、どれが押されたかの判定をしたいんです。
そこでvar_dump($_POST)してみると["btnedit1"]=> string(4) "更新" という値が渡せていたので、これのbtnedit1だけ取り出せないかなと思って・・・
0147nobodyさん
2008/08/20(水) 00:45:46ID:???$mode = 'edit';
}
0148nobodyさん
2008/08/20(水) 00:47:09ID:MvAneMVrボタン1を押したときはbtnedit1になるんですが、ボタンがいくつもあるので、$cntにするとうまくいかないんです
0149nobodyさん
2008/08/20(水) 00:55:24ID:MvAneMVr0150nobodyさん
2008/08/20(水) 01:08:50ID:???他人にも分かるように説明してくれ。
<form>
<input type="text" name="textbox" value="<?php echo $text; ?>">
<input type="submit" name="edit" value="更新">
<input type="submit" name="del" value="削除">
<input type="hidden" name="id" value="<?php echo $id; ?>">
</form>
でいいだろ。
駄目なら何が駄目なのか簡潔に。
俺ならsubmit2つは使わないけど。
0151nobodyさん
2008/08/20(水) 01:10:22ID:???<INPUT type='submit' name='btnedit$cnt' value='更新'>
<INPUT type='submit' name='btndel$cnt' value='削除'>
なんだから3番目の更新ボタンはbtnedit3になると思ったんだが・・・
俺たちはとんでもない思い違いをしているのか?
0152nobodyさん
2008/08/20(水) 01:17:47ID:MvAneMVrそこでnameを'btnedit$cnt'にして$cntの部分で変えているのですが、それをどうやって受け取るかがわからないんです。
受け取るのはvalueの値(更新)ですよね?でも判別するときはnameがいるので、そこを何とかできないかなと
0154nobodyさん
2008/08/20(水) 01:36:54ID:???0155nobodyさん
2008/08/20(水) 01:37:51ID:MvAneMVrこれはどういったことをしているのでしょうか?
もともと<?php ?>でつくっているのですが、2重に囲んでもいいんでしょうか?
0156nobodyさん
2008/08/20(水) 01:40:16ID:???0157nobodyさん
2008/08/20(水) 01:49:51ID:MvAneMVr$id=$_POST['id'];で受け取ってみましたが、echoしてみると;?>が表示されて、更新ボタンを押すたびに増えていくんですが、これはどういうことでしょう?
0158nobodyさん
2008/08/20(水) 01:58:48ID:4SgzBP1u基礎からやりなおせ。
0159nobodyさん
2008/08/20(水) 02:00:28ID:MvAneMVr0160nobodyさん
2008/08/20(水) 02:12:04ID:???0161nobodyさん
2008/08/20(水) 02:13:47ID:???ここにかかないとだめなん?
0162nobodyさん
2008/08/20(水) 02:16:27ID:MvAneMVrすいません、ほんと初心者なんでわからないことだらけで・・・
0163nobodyさん
2008/08/20(水) 02:31:59ID:???0164nobodyさん
2008/08/20(水) 02:34:31ID:MvAneMVr■ このスレッドは過去ログ倉庫に格納されています