トップページphp
1001コメント332KB

【PHP】下らねぇ質問はここに書き込みやがれ 69

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/05/27(火) 18:04:33ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0356nobodyさん2008/06/08(日) 00:06:36ID:???
>>328
組み込み等に使われるmysqlはライセンス証のみ
Webサービスなんかの場合はmysql enterpriseとなってバイナリ自体が違うものになる
こっちの方が一般で配布されてる物より早い

>>340
mod_rewriteなんか使わなくてもできるぞ

0357nobodyさん2008/06/08(日) 00:08:40ID:???
>>355
書き方次第で出きる
0358nobodyさん2008/06/08(日) 00:13:08ID:???
>>357
>>355じゃないが、どうやればいいのか気になる。

例えば、ファイルポインタを使用したとしても、
内部的にはどうやっても全行読み込むと思うんだが。
03593552008/06/08(日) 00:26:11ID:???
>>358
そうなんです。どうやっても全行読み込まないと行けなくなります。
しかも、1度だけではなく、読み込んで参照して書き込んで…
っと、3回は同じファイルを全行読み込んで操作する。

この方法が非常に非効率に感じ、質問しました。
03603282008/06/08(日) 00:29:35ID:???
>>356
勉強になった。ありがとう。

>>355
固定長じゃなければ、それと同等な事になるんじゃない。
簡易DB的に使いたいなら SQLiteも良いよ。
0361nobodyさん2008/06/08(日) 00:32:47ID:???
昨日から今日にかけて、SQLite房ウゼーーー
素直にMySQLにしろよ。なんで、SQLiteなんてマイナーなDBすすめるんだよwww
0362nobodyさん2008/06/08(日) 00:34:45ID:???
>>359
それこそSQL使えば?って話だと思うんだけど。
0363nobodyさん2008/06/08(日) 00:35:24ID:???
× それこそSQL使えば?
○ それこそMySQL使えば?
0364nobodyさん2008/06/08(日) 00:36:31ID:???
>>361
インストールもいらないし、ライセンスもラクだからね。
手軽なわりに結構使えて良いよ。
0365nobodyさん2008/06/08(日) 00:39:02ID:???
>>356
>mod_rewriteなんか使わなくてもできるぞ
どうやんのさ?
http://hoge/test/test
は、
http://hoge/test/test/
として認識されるはずだぞ?

0366nobodyさん2008/06/08(日) 00:42:34ID:???
>>361
まぁ、GoogleGearsとかでも採用されてるみたいだし、SQLite
PHP5で標準搭載とか、汎用性のあるDBらしいじゃないの。
0367nobodyさん2008/06/08(日) 00:47:38ID:???
BDBの延長と考えてればSQLiteも悪くない
でもMySQLが使えないから代用とかで使おうとすると、できない事も多いから評価をちゃんとしとけ
0368nobodyさん2008/06/08(日) 09:44:02ID:???
こういう使い方しても問題はありませんか?

-A.php-
$tmp="test";
require_once 'B.php';

-B.php-
print $tmp;
0369nobodyさん2008/06/08(日) 10:12:52ID:???
オッケー
0370nobodyさん2008/06/08(日) 10:13:09ID:???
それだけ問題はないけどね・・・

print吐くものを_onceはちょっと気持ち悪い
0371nobodyさん2008/06/08(日) 11:10:33ID:???
http://collexy.com/
これと似たようなソフトご存知ありませんか?
↑and検索がうまく機能していないので他探してます。

トップページに全件表示、検索ピックアップ、csv管理、 ぐらいの機能でいいのですが
あと出来ればフリーで探してます。
0372nobodyさん2008/06/08(日) 12:55:24ID:???
>>1
0373nobodyさん2008/06/08(日) 13:18:34ID:???
最近質問者滅茶苦茶だな
回答者はスルーでいいよ
ID表示しろとかそれ以前の問題
0374nobodyさん2008/06/08(日) 13:24:35ID:yZTiWUeO
>>372さん
>>1を良く読まずに書き込んでしまいました。申し訳ないです。
サーバーはCORESERVER.JPを使用しています。php5.2.5です。

collexyのサンプルでは[メダカ グッピー]でand検索しても0件と表示されてしまい使用に思い切れないです。
(ちなみに製作目的はある商品の発売スケジュールサイトです。)
0375nobodyさん2008/06/08(日) 13:28:00ID:???
>>371
なんでお前のためにソフトを探してあげないといけないの?
0376nobodyさん2008/06/08(日) 13:33:24ID:???
>>369-370
ありがとう

>>370
なにか問題があるのでしょうか・・・
ページの上部や下部とか各部分を
require_onceで読み込んでもいるんだけど
0377nobodyさん2008/06/08(日) 13:37:34ID:yZTiWUeO
>>375さん
ご存知でしたら教えて頂きたいとお伺いしただけです。
勘違いなされて不快に感じたなら謝ります。
0378nobodyさん2008/06/08(日) 13:43:41ID:???
>>376
>>370じゃないけど _once だと、複数回表示に使用できないからだと思う。

自分の場合は、関数・クラス定義・定数以外を include / require するのも趣味じゃないけど。
0379nobodyさん2008/06/08(日) 13:48:44ID:???
>>370じゃないけど、こんな感じ?

require_onceは設定ファイルの読み込みとか、
一回しか読み込まれないものに使うべきじゃね?
0380nobodyさん2008/06/08(日) 15:01:49ID:???
>>377
ほれ建ててやったからこっちいっておくれ

http://pc11.2ch.net/test/read.cgi/hp/1212904818/

散々言われてるが探してますはスレ違い
スレタイで何でも質問していいと勘違いされやすいが
ここは作る方を対象としたスレです
0381nobodyさん2008/06/08(日) 15:13:48ID:???
>>380 GJ!
0382nobodyさん2008/06/08(日) 20:33:28ID:???
はじめまして、ご教授下さい。
$a = 2008; $b = 06; $c = 08;
上記が入っている場合、
$z = ($a$b$c)を入れたい。
どうすれば$z = 20080608となるでしょうか?
変数をくっつけたいです
よろしくお願いいたします。
0383nobodyさん2008/06/08(日) 20:35:33ID:???
>>382
.
0384nobodyさん2008/06/08(日) 20:43:22ID:???
>>383
ディスプレイにゴミがついてるかと思ったw
03853822008/06/08(日) 20:51:05ID:???
$z = ($a+$b+$c)
と実行したら$zが2022と出てしまいました。
0386nobodyさん2008/06/08(日) 20:54:02ID:???
>>385
>>383
0387nobodyさん2008/06/08(日) 20:54:06ID:???
>>383のヒントに気がつかないか・・・
文字列の結合は「.」。
03883822008/06/08(日) 21:03:53ID:???
ゴミみたいなのに気づきませんでした。
ありがとうございます。
文字列の結合は「.」で行うとできたのですが、
問題が発生いたしました。

$today = getdate();
$b = $today['mon'];
$c = $today['mday'];
$a = $today['year'];

で下記の変数を入れたのですが
$a = 2008; $b = 06; $c = 08;

結合すると「200868」となり、月と日の0が無くなっちゃいました。どうすれば0もありで結合できますか?
もう少しお力を貸して下さい
0389nobodyさん2008/06/08(日) 21:22:52ID:???
>>388
$z = sprintf( "%04d%02d%02d", $a, $b, $c );
03903822008/06/08(日) 21:26:25ID:???
>>389
ありがとうございます。
試してみます
0391nobodyさん2008/06/08(日) 21:34:49ID:???
>>388
$z = date("Ymd");
0392nobodyさん2008/06/08(日) 21:37:20ID:???
すいません、非常にスレ違いかも知れないんですが質問させてください。
今両親がネットで中古販売を始めるということで
ダヴィンチ・カートという市販のソフトを使っていろいろ作っているのですが
その中の転送先フォルダという項目が分からないせいか、
404エラーでショッピングカートのページが表示されず困っています。

調べてみると
http://www.netdeoshigoto.com/cart/support/troubleshoot/trouble_nso.html#answer_shop_2
のような手順を踏めと書いてあるのですが、
いろいろ試してみてもバージョンが違うのか、はたまたわたしが滅茶苦茶なことをしているのか、
一向に表示できず、参っています。
どなたかもし知っている人がいたら教えてもらえてください・・・orz
0393nobodyさん2008/06/08(日) 21:44:58ID:???
すいません、思わず書き込んだけどものっそい勢いでスレ違いですね。
失礼しました。
0394nobodyさん2008/06/08(日) 21:55:09ID:???
>>388
せっかく教えてもらった人の回答をゴミみたいと言うなんて・・・最低だな
0395nobodyさん2008/06/08(日) 21:56:08ID:???
>>388
そもそも$bに06なんて入ってないじゃん。6だろ。どっから06なんて出てきたんだ?
03963842008/06/08(日) 22:02:47ID:???
>>394
ごめん、たぶん俺が振ってる。
0397nobodyさん2008/06/08(日) 22:11:53ID:???
んなこと分かってるが質問者がそう言ったらお終いだろ
0398nobodyさん2008/06/09(月) 00:17:25ID:???
>>327
今のところ同じ物だろ?
ソースいじるのに相談乗るぐらいで

mysqlは真顔で「商用だと使用できない」とか嘘つくやつがいるから困る。

今後はGPL版と有料版を分けるらしいから他のDBが伸びてくるだろうね。
03993822008/06/09(月) 08:37:18ID:???
はじめまして、下記のように変数を入れて
$timestamp = mktime(0, 0, 0, $a, $b, $c);
$timestampより日付情報(Ymd)を抜き取る方法を教えて下さい。
どうかよろしくお願いします。
0400nobodyさん2008/06/09(月) 08:50:49ID:???
>>399
はじめまして、じゃないだろw
date()関数に$timestampを入れてみ。
先ずはマニュアル見てみようか。
0401nobodyさん2008/06/09(月) 08:59:24ID:???
>>1
0402nobodyさん2008/06/09(月) 09:20:17ID:???
>>398
webからDLするものに関しては同じ
バイナリは別物
0403nobodyさん2008/06/09(月) 11:07:18ID:???
どこに質問していいのか分からないのでここで質問させてください。

<?php
$conn = mysql_connect("localhost", "usr", "passwd");
mysql_select_db("kisop", $conn);
$res = mysql_query("SHOW TABLES",$conn);
if($res){
print ("データ獲得に成功しました。");
}
mysql_free_result($res);
?>

でやってみると
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in 〜
と表示されてしまいます。
また、mysql_free_result($res); の部分を削除すると今度は何も表示されません。

一応、本を見ながらやっていてコマンドプロンプトではDBに接続できてます。

お願いします。
0404nobodyさん2008/06/09(月) 11:17:41ID:???
$conn, mysql_select_dbの返り値, $res それぞれprint_rしてみれば、
どこでエラー吐いてるかわかるべ?
0405nobodyさん2008/06/09(月) 11:28:40ID:???
>403
mysql_error()
0406nobodyさん2008/06/09(月) 12:10:03ID:???
つか、
× SHOW TABLES
○ SHOW TABLES;

こういう低次元なお話じゃないの?w
0407nobodyさん2008/06/09(月) 12:14:17ID:???
>>406
0408nobodyさん2008/06/09(月) 12:15:25ID:???
>>406
低次元
0409nobodyさん2008/06/09(月) 12:24:29ID:???
どうせテーブル名間違えてるとか
ユーザー名とパスワードが本当は変数だとか、
そういう答えですよ。
0410nobodyさん2008/06/09(月) 12:31:54ID:???
エラーメッセージというのはコピペしてここに貼るためのものじゃないんだぜ?
04114032008/06/09(月) 13:47:05ID:???
どうやらMySQLでユーザーの作成がうまくいってなかったようです。

一度アインストールして最初から設定したらきちんと表示されました。
04122632008/06/09(月) 15:30:03ID:???
>>269
遅レスですが>>266を参考にさせてもらい

/^\d+$|^n?$/

で自分なりに期待する動きはできました。
ありがとうございました。
間違っていたら指摘していただけると助かります。
0413nobodyさん2008/06/09(月) 15:37:46ID:???
/^n?$/
だと空文字列でも引っ掛かる。
/^n$/
↑ nのみの場合は、これ。

つか、PHP関係ないじゃん。
正規表現スレ行けよ。
04142632008/06/09(月) 15:53:14ID:???
>>413
おっと失礼。
そしてありがとうございました。
0415nobodyさん2008/06/10(火) 00:25:50ID:???
PHPでもダック・タイピングってできますよね?
0416nobodyさん2008/06/10(火) 00:46:12ID:???
ただ覚えたてのその言葉を使いたいだけだろ。
ポリモーフィズムとの違いを説明できるか?

質問のレベルで回答のレベルも決まるんだから、もっと意識して書いて欲しい。
答えはできる。以上。
0417nobodyさん2008/06/10(火) 01:02:30ID:yqKKYTz7
$sql="SELECT * FROM test";
$res = mysql_query($sql,$conn);
while($row = mysql_fetch_array($res)){
echo $row["id"];
}

こういうPHPからMySQLにアクセスして、テーブル一覧を表示しています。
同じデータをもう一度実行する場合、whileの後に
$res = mysql_query($sql,$conn);
として、もう一度SQLコマンドを実行しなければ行けません。

1度、SQLを実行して$resで取得したクエリを
何度もwhileで出力する事は出来ないのでしょうか?
0418nobodyさん2008/06/10(火) 01:12:35ID:???
>>417
出力する内容がそんなに長くないなら、一回配列に書き出しちゃえば?

$sql="SELECT * FROM test";
$res = mysql_query($sql,$conn);

$rows = array();
while($row = mysql_fetch_array($res)){
$rows[] = $row;
}

//出力時には出力したいタイミングで
foreach($rows as $row){
echo $row["id"];
}

とか。
04194152008/06/10(火) 01:27:16ID:???
>>416
ありがとうございます。
ぶっきらぼうな聞き方でしたね。すいません。

PHPでも全然問題無くできるとは思ってたんですが、
RubyがやたらDuck Typingを強調しているので、何か知らないすごい機能が
あるんじゃないかと思って、一応こっちで聞いてみました。

そうなると、使いどころによってはインターフェイスだって使えるPHPって
なかなかいいなと思いました。
04204172008/06/10(火) 01:37:13ID:???
>>418
なるほど。一度配列に入れてから使い回すわけですね。

参考にします。ありがとうございました。
0421nobodyさん2008/06/10(火) 01:51:04ID:???
基本的にfetch系のMySQL関数って、
mysql_query();で、リソース型で保存された変数にアクセスしてるだけで
SQL文を実行してるわけではないと思ってたけど。
04224212008/06/10(火) 02:05:19ID:???
http://jp.php.net/manual/ja/features.persistent-connections.php
正直、よく分からん……。
MySQL関数を使ったときのログを、SQL文で保存するような方法ってないかなぁ?
内部の仕組み知りたい。
0423nobodyさん2008/06/10(火) 21:38:23ID:sCtgQ3vr
インターネット上にある1GB級のファイルをダウンロードして、
ローカルにコピーしたいのですが、
これを、
$htmldata = file_get_contents($URL);
$htmldataを元にローカルにファイルを作って書き込み処理

のようにしますと、物凄くメモリーが食います。
ファイルをダウンロードしながら、逐次ローカルにファイルを作るようなことはできないでしょうか?

アドバイス宜しくお願いします。
0424nobodyさん2008/06/10(火) 21:52:08ID:???
copy()
0425nobodyさん2008/06/10(火) 21:52:32ID:???
PHPでやるこっちゃないような・・・
0426nobodyさん2008/06/10(火) 21:55:33ID:???
url_openが許可されてればfopenでやれそうな気はするけど
使えなきゃsocket開いて自前で全部書けばできるんじゃない?
0427nobodyさん2008/06/10(火) 23:31:43ID:???
require_once 'thread.inc';

ず っ と 待 っ て ま す 。
0428nobodyさん2008/06/10(火) 23:50:06ID:???
Movabletypeについては何処で質問したらいいの?
0429nobodyさん2008/06/10(火) 23:52:16ID:???
>>428
http://pc11.2ch.net/test/read.cgi/blog/1188704566/

検索くらいしようぜ・・
0430nobodyさん2008/06/10(火) 23:57:26ID:???
MovableTypeなんてWebプログラム板の話題でもない上にperlで書かれてるのに
なんでこのスレに来るのか激しく疑問だ
0431nobodyさん2008/06/11(水) 00:09:42ID:???
サーバー上で動くものだからあながち板違いでも無いと思うけど。
んでこのスレをこの板の総合質問スレと思ったとか?
0432nobodyさん2008/06/11(水) 01:28:09ID:???
次スレではスレタイを「PHPの下らねぇ―」に。
墨付き括弧内はただの修飾として読み飛ばされやすい
0433nobodyさん2008/06/11(水) 02:44:31ID:???
OOP-PHPでグローバルっぽい変数を使いたい場合は、
メイン処理部分でメンバ変数のアクセサ作るのが定石なのかな?

デザインパターンもっと勉強しておくんだったな。
0434nobodyさん2008/06/11(水) 02:49:26ID:???
Configクラスでも作っておけば
0435nobodyさん2008/06/11(水) 04:51:30ID:???
グローバル変数を使える言語なので、グローバル変数を使えばよい。
後々の管理がどうたらこうたらほざく痴呆のために、>>434が言うようにまとめておけばよい。
0436nobodyさん2008/06/11(水) 06:49:49ID:???
$GLOBALってなんで$_GLOBALじゃないの?
0437nobodyさん2008/06/11(水) 10:49:25ID:???
>>429
ブログ板か・・・ありがとう
0438nobodyさん2008/06/11(水) 11:03:07ID:???
志村〜
0439nobodyさん2008/06/11(水) 12:15:45ID:FwH5w6fU
mysqliでDBに接続してデータのやり取りをしたいのですが
マニュアルを見る限りinsertやupdateの際に
beginを宣言していないようなのですが、明示的に宣言しなくても
関数が勝手にやってくれているのでしょうか?
0440nobodyさん2008/06/11(水) 12:27:14ID:???
>>439
つAUTOCOMMIT
0441nobodyさん2008/06/11(水) 12:37:07ID:FwH5w6fU
>>440
ありがとうございます
0442nobodyさん2008/06/11(水) 12:51:14ID:???
mysql_query('BEGIN;');

mysql_query('COMMIT;');
0443nobodyさん2008/06/11(水) 15:20:36ID:dkaR05Is
Googleの検索結果ように、URLからhttp://https://の部分を省いて
表示するにはどうすればいいのでしょうか?
やはり、str_replaceなどでの置き換えでしょうか?
0444nobodyさん2008/06/11(水) 15:24:28ID:???
ereg 系が便利
0445nobodyさん2008/06/11(水) 18:50:21ID:???
ファイルのアップロードに関して、ファイルの実体はどの時点でサーバーに送られるんでしょうか?
スクリプトの実行前なのか、実行中なのか。
実行中ならどの時点なのか知りたいです。
04464452008/06/11(水) 18:51:05ID:zOqFVLX/
ID忘れ
0447nobodyさん2008/06/11(水) 19:16:57ID:???
実行前
0448nobodyさん2008/06/11(水) 19:19:31ID:???
>>447
ありがとう
0449nobodyさん2008/06/11(水) 19:21:50ID:???
いえいえ
0450nobodyさん2008/06/11(水) 19:42:57ID:xqxU9BrJ
フォームを実行したら、実行結果と共に、
入力結果が反映されて値に入っているフォームも同時に返したいんだが、
これをいちいちプログラムで書かずに実行するライブラリとかありませんかね?

イメージ:

<form method="post" action="/">
<input type="text" name="foo" value="" />
</form>

で「こんにちは」と検索したら、

<form method="post" action="/">
<input type="text" name="foo" value="こんにちは" />
</form>

検索結果と共に↑をそのまま出力してくれる感じ。

いちいち手書きで値を入力したプログラム書くのが
なんだかバカバカしくなって……。
0451nobodyさん2008/06/11(水) 19:45:12ID:???
postで検索?
0452nobodyさん2008/06/11(水) 19:51:29ID:???
imagecreatefromjpegとimagecreatefrompngの代わりになる関数ってなんかありますか?

なんかサイズが大きいとエラーもはかずにスクリプトがとまっちまう。
0453nobodyさん2008/06/11(水) 19:51:55ID:???
>>451
何か問題が?

ちなみに、今はフォームを書き出す関数を作り、
引数なしだったら、デフォルト書き出し。
引数付きだったら、値付き書き出し、
という処理で対処してますが、
なんだか美しくないです。
0454nobodyさん2008/06/11(水) 19:55:09ID:???
検索とかクエリー投げるものは普通getですね
別にpostでもいいけど
0455nobodyさん2008/06/11(水) 20:03:07ID:???
>>452
Imagemagick
■ このスレッドは過去ログ倉庫に格納されています