【PHP】下らねぇ質問はID出して書き込みやがれ 82
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/03/09(月) 02:14:28ID:HyrthkeE過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0723nobodyさん
2009/03/30(月) 12:12:19ID:ObvykTshhttp://www.gen-x-design.com/projects/php-thumbnailer-class/
このサイトのthumbnail.inc.phpを使って画像をリサイズしてサムネイルを生成したのですが
いまいち仕組みがわからずにいます。
リサイズされた画像はどこかに保存されているんでしょうか?
0724nobodyさん
2009/03/30(月) 12:16:26ID:???0725nobodyさん
2009/03/30(月) 12:28:05ID:ObvykTsh実際にサイトにアップして表示させてみました。
そしたらリサイズされた画像が表示されたんですが
サイトのどこをみても画像が増えた形跡がありません。
リサイズした画像を別に保存するわけではないのですか?
0726nobodyさん
2009/03/30(月) 12:41:43ID:???0727nobodyさん
2009/03/30(月) 12:49:44ID:ObvykTsh画像のアドレスをみても
show_image.php?filename=sample.jpg&width=250&height=250
と書いてあるだけなんです
0728nobodyさん
2009/03/30(月) 13:07:26ID:???0729nobodyさん
2009/03/30(月) 13:09:40ID:???$thumb->save('path/to/file.jpg',80);
0730nobodyさん
2009/03/30(月) 13:13:48ID:ObvykTshそれをしないとただ大きい画像を縮小してるだけで意味ないんでしょうか?
0731nobodyさん
2009/03/30(月) 13:26:05ID:???0732nobodyさん
2009/03/30(月) 13:53:38ID:???サイズも容量も小さくして表示ができるってことでいいのでしょうか。
サムネイル画像の保存をせずに
0733nobodyさん
2009/03/30(月) 14:28:36ID:Nai97eUHデータベースを用いてアプリケーションを作る際
例えば該当するIDを選んでupdate、deleteする時に、
該当するIDがある時は正しく削除され、削除されました。
とメッセージを返すんですが何らかの形で該当しないIDが
投げ込まれた時は一般的にはどのような処理をされていますか?
まず該当するIDがあるかselectで調べて、ある場合はupdateもしくは
deleteで処理みたいな形ですかね?
アドバイスよろしくお願いします。
0734nobodyさん
2009/03/30(月) 14:50:52ID:???0735nobodyさん
2009/03/30(月) 15:01:56ID:???http://jp.php.net/manual/ja/pdostatement.rowcount.php
とか類似関数で。
0736733
2009/03/30(月) 15:12:04ID:???返信ありがとうございます。
これまでなんとなくしか理解できてなかったのですが
今スッキリしました。
本当にありがとうございました。
0737nobodyさん
2009/03/30(月) 18:45:52ID:Gjy/ZAJ6【PHPのバージョン】5.2.6-2ubuntu4.1
【連携ソフトウェア】Apache/2.2.9
【質問内容】
PHPをさわり初めて一日目の初心者です。
header ( "HTTP/1.0 404 Not Found" , true , 404 );で、.htaccessで指定した404エラーページを
表示させたいのですが、ブランクページになって表示されません。
確かに404エラーページはファイル自体が存在していない場合のみ表示されますので、Location:で
存在しないファイルにリダイレクトさせて見たところ、見事404エラーページが表示されました。
しかし、この方法はアドレスが変更されてしまうので、できればそのPHPのアドレスで、404エラー
を表示させたいのですが、何か方法はございませんでしょうか。
よろしくお願いします。
0738nobodyさん
2009/03/30(月) 23:26:09ID:???readfileでエラーページの内容をそのまま流しちゃダメなの?
http://jp.php.net/manual/ja/function.readfile.php
0739nobodyさん
2009/03/31(火) 06:15:24ID:???ttp://www.m-fr.net/study/object/object04.html
このサイトで、
>で、こうします。
>
>obj = new 三角クラス;
>適当な変数 = obj->get_1辺の長さ(); // データの取得
>obj->set_1辺の長さ(適当な値); // データの設定
とあるのですが、下の二行は順序が逆の方がよいのでは?と思いました。
setしてからそのsetした結果得られる値をgetする、みたいに。
その方がしっくりくるというか・・
もしかしたら、何か理由(もしくは自分の勘違い)があって、
getをまず書いておいて、そのsetする一行を書く、という形式にしてるのか
よくわからないので、教えていただけないでしょうか
よろしくお願いします。
0740nobodyさん
2009/03/31(火) 08:44:30ID:???getとsetの別々の事例かと
あとスレタイ
0741nobodyさん
2009/03/31(火) 10:26:43ID:MdY2FCLhWindowsの絶対パスでrequireで読み込むとエラーになります。
require_once("C:\htdocs\test.php");
↓
failed to open stream: Invalid argument
どうしたら読み込めるようになるのでしょうか?
0742nobodyさん
2009/03/31(火) 10:35:59ID:???0744nobodyさん
2009/03/31(火) 11:14:25ID:???>>681さんおすきなほうどうぞ
その1
function cale($a,$b) {echo "<p>" .($a * $b). "</p>";}
$a = 2;
$b = 2;
cale($a,$b);
$a = 4;
cale($a,$b);
その2
function cale($a,$b) {echo "<p>" .($a * $b). "</p>";
}
// $aと$bはそれぞれ別の値を持てる
$a = 2;
$b = 2;
$cale($a,$b);
// $aと$bは常に同じ値になる
$b = &$a;
$a = 100;
cale($a,$b);
$a = 5;
cale($a,$b);
0748nobodyさん
2009/03/31(火) 15:08:08ID:H7khy467++りんご
++バナナ
++ぶどう
↑の4行を↓のようにhtmlタグとして出力したいのですが
wikiみたいなことがやりたいのですがどなたかヒント頂けないでしょうか?
<ul>
<li>食べ物</li>
<ul>
<li>りんご</li>
<li>バナナ</li>
<li>ぶどう</li>
</ul>
</ul>
0749nobodyさん
2009/03/31(火) 15:12:34ID:???0752nobodyさん
2009/03/31(火) 15:27:12ID:qal8dqXuありがとうございます。
>>746-747
本当はファイルが存在しているのに無理矢理サーバーにファイルが存在していないことにして、エラーページを表示させるところが
でしょうか。それとも、「header ( "HTTP/1.0 404 Not Found" , true , 404 );」がおすすめできないのでしょうか。
もし、そうであれば、「header("HTTP/1.0 301 Moved Permanently") ;header("Location: http://www.example.com/") ;」
などのリダイレクトであれば大丈夫ですか。
0753nobodyさん
2009/03/31(火) 15:27:13ID:WkuOnscP【PHPのバージョン】4.3.11
【連携ソフトウェア】Apache2
【質問内容】
auto_prepend_fileで指定したファイルが動いてくれません。
.htaccessで、「php_value auto_prepend_file "ap.php"」と記述しました。
ap.phpの中身は「<? echo("test"); ?>」です。
これでhttp://hostname/index.phpを開くと、
画面上部に「test」と表示されることを期待しているのですが、
TurboLinux + PHP4.3.11のサーバーでは実際は何も表示されませんでした。
もうひとつUbuntu + PHP5.2.4のサーバーがあるのですが、
そちらに同様のコードを設置したところ、意図したとおりに動きました。
何か設定の問題だとは思うのですが、何が問題なのか分からずに困っています。
ひとまず以下のことを試しました。
・phpinfoを確認 ⇒ auto_prepend_fileのLocal Valueは「ap.php」になっている
・auto_prepend_fileの設定をわざと"ap2.php"にした ⇒ ファイルが読み込めないエラー
・ap.phpの中身をわざと文法エラーにした ⇒ 何のエラーも出ない(display_errorsはon)
・ap.php、index.phpの両方でWarningが出るようにした ⇒ index.phpのWarningのみが表示される
・ap.phpの一行目(<?〜?>の外側)に「aaaaa」を追加 ⇒ 何も表示されない
どうもauto_prepend_fileでap.phpを読み込んではいるものの、
ap.phpのコードが実行されていないようです。
この現象について分かる人がいらっしゃいましたらご教示下さい。
0754nobodyさん
2009/03/31(火) 15:50:33ID:???>ap.phpの中身は「<? echo("test"); ?>」です。
<?使えるなら<?=使えよ
ていうか<?phpって書く方を推奨
0755nobodyさん
2009/03/31(火) 15:53:09ID:???よくわかんないけど全てのページのヘッダに挿入するならmod_layout
ttp://d.hatena.ne.jp/hogem/20090321/1237569005
0756nobodyさん
2009/03/31(火) 19:15:21ID:???質問に対する答じゃないけど、HTMLは
<ul>
<li>食べ物
<ul>
<li>りんご</li>
<li>バナナ</li>
<li>ぶどう</li>
</ul>
</li>
</ul>
こう書いた方がいいと思う。
0758nobodyさん
2009/03/31(火) 22:31:20ID:???今日めっけた
ttp://d.hatena.ne.jp/anatoo/20090320/1237530764
function ref($obj){ return $obj; }
ref(new Hoge)->doSomething();
良し悪しはともかく、発想は面白い。
0759nobodyさん
2009/03/31(火) 22:32:52ID:???0760nobodyさん
2009/03/31(火) 23:09:23ID:???0761nobodyさん
2009/03/31(火) 23:32:57ID:???このためだけにgetInstance()とかfactory()とか定義したら、関数増やすよりタチ悪いしな。
ただ、一般的な書き方じゃないので、ref()の定義を探さないと読めない=コードの可読性が落ちるのが難点。
JavaScript界の$()みたいに、一般的なハックになったらアリかな。
0762nobodyさん
2009/03/31(火) 23:35:38ID:???0763nobodyさん
2009/03/31(火) 23:38:29ID:???Hoge::new()->doSomething();
ってできるのにな
0764nobodyさん
2009/04/01(水) 00:05:10ID:???0765nobodyさん
2009/04/01(水) 01:36:40ID:???0768nobodyさん
2009/04/01(水) 02:20:35ID:???0769nobodyさん
2009/04/01(水) 02:32:15ID:???0770nobodyさん
2009/04/01(水) 02:51:42ID:???0771nobodyさん
2009/04/01(水) 03:16:29ID:???1行で書きたいって理由だけでstaticなクラスメソッドを増やすのは流石にナシだろ
だいたい1つや2つならともかく、そういう書き方がしたくなるようなJavaっぽい書き方をしてたら抽象データ型なんて死ぬほどできるわけで
そういうクラス全部にstaticメソッド定義すんのかって話になる。継承も使えないし
コンストラクタが引数を取るような場合さらに面倒くせえしな
まあ、そもそもJavaっぽい書き方なんかするなよ、って言うのが多分正解だけどな
$tmp = new Hoge(); $tmp->fuga();でいいだろ
使いもしない一時変数が増えるのがキモいって気持ちは分かるが
0772nobodyさん
2009/04/01(水) 07:15:56ID:zGetu19rサーバ側のPHP(5.2.6/Windows)がタイムアウトしちゃうんですが、そういうもんなんでしょうか。
タイムアウト伸ばすしかないのかなぁ。
ファイルが壊れるだけで、一見したところ気がつかないのが、またいやらしい。
0773nobodyさん
2009/04/01(水) 07:21:55ID:???0774nobodyさん
2009/04/01(水) 07:26:35ID:???ひとつひとつのクラスにstaticメソッドを実装するってことではなく
rubyみたいにすべてのオブジェクトの先祖になるクラスにstaticを実装するって意味。
今でもrunkit使えば可能なのか、どうか知れないが、
標準で出来たらいいなぁ
0775nobodyさん
2009/04/01(水) 08:25:46ID:wwrEQ3GFecho realpath(".");
とすると、C:\Program Files\Apache Group\Apache2\htdocs
のように\が付きます。これを/に置換すれば良いだけでしょうが、
最初から\ではなく/にして、ディレクトリ名を取得する方法はないでしょうか?
0777nobodyさん
2009/04/01(水) 08:43:29ID:???たまにMysqlへの接続数が多すぎてエラーになります。
そこで、
if(){
通常通りMysqlへ接続}
{接続エラー時の対処}
こんな感じにしたいと思ってるんですが、いい関数ありますか?
0780nobodyさん
2009/04/01(水) 09:29:50ID:???staticで十分か、コンストラクタに仕事させすぎ。
0783nobodyさん
2009/04/01(水) 11:04:49ID:???こっちのほうおすすめ
function errorMysql() {
エラー処理
exit;
}
if (!接続) errorMysql
0784nobodyさん
2009/04/01(水) 11:49:45ID:???0785nobodyさん
2009/04/01(水) 17:33:12ID:???貴様らなにしてんのかね
0786nobodyさん
2009/04/01(水) 18:09:20ID:???0790nobodyさん
2009/04/01(水) 23:06:31ID:???絶対言われると思った。俺もそれは考えたが、5.3.0より前のPHPでは無理。
親クラスで定義された静的メソッドで、子クラスのインスタンスは生成できない。つまり
class Parent{
static function getInstance(){
//do something
}
}
class Child extends Parent{}
とあった場合、Parent::getInstance()の実装がどんなだろうと、Child::getInstance()がChildのインスタンスを返すのは不可能。
Childというクラス名すら取得できない。
>780
{ new UrlString("http://pc11.2ch.net/test/read.cgi/php/1236532468/") }->domain();
コンストラクタによる依存性注入をしてる場合も、newしてすぐメソッドを呼ぶだけでじゅうぶんな事がある。
引数なしのコンストラクタならばたいていの場合不要ってのは同意。
0791nobodyさん
2009/04/02(木) 09:51:30ID:ij3728ylこれって日本語は対応してないの?
0792nobodyさん
2009/04/02(木) 10:31:00ID:???0793nobodyさん
2009/04/02(木) 10:35:42ID:ij3728ylいやいや、、、
まだそこまでレベルいってないですよ
だからあなたが代わりに見て判断してください
0794nobodyさん
2009/04/02(木) 10:44:44ID:???0795nobodyさん
2009/04/02(木) 10:56:23ID:???原理的には日本語でも計算は可能だろうけど、日本語ではMecabとかないと大変だし、
多分計算式に定義されてる係数は日本語の場合を考慮していないので、
信頼出来る結果のためには自分で文献にあたるとか実地調査して決定する必要があるべ。
0796nobodyさん
2009/04/02(木) 11:12:51ID:CfxT7le3【PHPのバージョン】php5ぐらい
【連携ソフトウェア】mysql
【質問内容】
フォームのセレクト項目で悩んでいます。
form.phpを表示させるとき、セレクト項目を
mysqlから取り出して表示させているのですが
(idとその名前)
セレクト項目が4つもあるので、何か一気に取り出す方法が
あったりするのですか?それとも、一個一個4つのセレクト用に
select genre_id,genre_name from genre;
(genreはジャンル)
というふうにするしかないですか?
0797nobodyさん
2009/04/02(木) 11:30:18ID:4VqTVZ/0以下のようなデータをデータベースに登録してます
id,name,age
1,田中,20
2,木村,31
3,坂下,43
このデータをテーブルに書きだしたいのですが
pearなどのライブラリを使用しない場合、どのようなコードを書くのが効率いいでしょうか?
mysql以外のデータベースは使用しないのでmysqlに特化した書き方をどなたかご教示お願いいたします
0798796
2009/04/02(木) 11:40:45ID:???$link = mysql_connect('localhost','ユーザ名','パスワード名');
mysql_select_db('データベース名');
$sql = "select * from テーブル名";
$result = mysql_query ( $sql );
while ( $data = mysql_fetch_array ( $result ) ) {
$data['id'];
$data['name'];
$data['age'];
}
じゃないの?
0799nobodyさん
2009/04/02(木) 11:48:45ID:e2MYzFKZ>>797さんのデータで
id,name,age
1,田中,20
2,木村,31
3,坂下,43
とありますが、たとえばID2の木村さんの行だけを取得する場合、
while ( $data = mysql_fetch_array ( $result ) ) {
if (2==$data['id']) {
$id = $data['id'];
$name = $data['name'];
$age = $data['age'];
break;
}
}
とやってきたのですが、MYSQLではピンポイントで取得することができないってことでしょうか?
0800796
2009/04/02(木) 11:59:21ID:???嘘だよね? select * from テーブル名 where id=2;
あるいは、 where name='木村';
0803nobodyさん
2009/04/02(木) 12:29:08ID:???MySQLにパスワードを設定しようとphpmyAdminでuser テーブルを表示させましたが
Hostが%のレコードがありません。localhost と127.0.0.1というのだけです。
パスワードを設定するのはlocalhost と127.0.0.1でいいのでしょうか?
0804796
2009/04/02(木) 12:40:16ID:???$xxx[1] = "property";
$xxx[2] = "actress";
$i=0;
$g=0;
while ( $i < count($xxx) ) {
$sql = "select $xxx[$i]_id,$xxx[$i]_name from $xxx[$i]";
$result = mysql_query ( $sql );
while ( $data = mysql_fetch_array ( $result ) ) {
$xxb[$g][$xxx[$i]]['id'] = $data[0];
$xxb[$g][$xxx[$i]]['name'] = $data[1];
$g++;
}
$i++;
}
これでいい?
0805nobodyさん
2009/04/02(木) 12:56:43ID:???0807nobodyさん
2009/04/02(木) 13:01:43ID:vfSwYPOW【PHPのバージョン】php5.26
smarty使用
【連携ソフトウェア】mysql
【質問内容】
初めての質問です。
よろしくお願いします。
登録フォームが都合上ページの下部にあるのですが
PHPで入力エラーを同じページの同じ登録フォームのある部分に表示しております。
ページ上部に登録フォームのアンカーへ移動するリンクはありますが
PHPではいたエラー文言付画面の表示時に下部のアンカーへ移動して表示するには
javascript以外に方法はないでしょうか?
要はhttp://www.etc.com/touroku.php#a
みたいにやるにはどうすればいいのか、よろしくお願いいたします。
0808796
2009/04/02(木) 13:05:48ID:???かな
for($i=0;$i<count($xxb['genre']); $i++)
で各セレクト分でしよう
0810nobodyさん
2009/04/02(木) 13:51:13ID:???0812nobodyさん
2009/04/02(木) 19:09:54ID:vfSwYPOWありがとうございます、できました!!
0813nobodyさん
2009/04/02(木) 21:54:38ID:SbciSXr8pukiwikiとかの既存ソースを使ってるのですが
PHPがサバの設定でポート指定されていて
既存ソースだと、リンク先がPHPの場合、ポート指定が外されてしまうのです
TOPページが :7070 で実行してたら
遷移先が :7070 が外れてしまうという状態です
解決方法とかご教授願えますか。
質問場所が悪ければ、聴ける場所なども教えていただけると助かります
0814nobodyさん
2009/04/02(木) 21:56:16ID:???0815nobodyさん
2009/04/02(木) 22:33:32ID:SbciSXr8ちょっと探してみます。
ただ、pukiwikiに限らず、他のPHPでも
同じ状況になってしまうので根本解決するための方法など
ご存知でしたらお願いします。
0816nobodyさん
2009/04/02(木) 22:33:55ID:???0817nobodyさん
2009/04/02(木) 23:10:28ID:???コールバック関数を指定して出力内容を全部受け取り、URLを全部置換する。
0819nobodyさん
2009/04/03(金) 01:14:27ID:QmVSt/Vd【PHPのバージョン】php5.29
【連携ソフトウェア】mysql
【質問内容】
$val = NULL;
$query = "insert into test (id, comment) value ($val, 'test')";
上記のSQLをダンプしてみると
NULLを代入した変数$valがNULLとして展開されていません。
もぬけの殻となってしまっています。
※ダンプしたクエリ
insert into test (id, comment) value (, 'test')
なのでクエリーを投げるとエラーとなってしまいます。
NULLをinsertしたい場合は変数にいれず、
直接クエリの文に記述しないといけないのでしょうか?
0820nobodyさん
2009/04/03(金) 01:28:48ID:???現代人ならプリペアドステートメントを使え。プレースホルダ使える状況でクエリを直接組み立てる奴は原始人。
PDOStatement::bindValue()の第3引数にPDO::PARAM_NULLを指定すれば、NULLをDBに入力できる。
つうか、何もinsertしなければ、デフォルト値であるNULLが入るけどな。
(カラムにnullが許可されており、他のデフォルト値を指定していない場合に限る)
0821nobodyさん
2009/04/03(金) 01:33:38ID:???0822nobodyさん
2009/04/03(金) 01:33:52ID:???$val = 'NULL';
■ このスレッドは過去ログ倉庫に格納されています