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

【PHP】下らねぇ質問はID出して書き込みやがれ 127

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/03/19(火) 22:13:49.76ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 126
http://kohada.2ch.net/test/read.cgi/php/1359808868/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
04134022013/04/05(金) 19:24:49.12ID:39+wkXdW
勉強不足でした。。入門書通読して勉強してきます。

>>407
なるほど、普通はそういった方法を使うのですね。
ありがとうございます、勉強になります。
0414nobodyさん2013/04/05(金) 19:47:44.44ID:???
このスレ、まじで和むな。
0415nobodyさん2013/04/06(土) 02:00:26.72ID:???
このスレは他の質問スレより回答がわかりにくく、厳しいと思いました。
0416nobodyさん2013/04/06(土) 04:21:01.34ID:???
質問は?
0417きら ◆Kira.u9zNc 2013/04/06(土) 04:50:16.93ID:???
さきゅばすがあるフォルダに移動して
さきゅばすCLI版を起動させるバッチファイルを作ったんですが
名前を指定して実行などでは普通に出来るのにPHPのexec();でだけ出来ません。
どうすればexecで起動出来ますか?
0418きら ◆Kira.u9zNc 2013/04/06(土) 04:53:09.41ID:???
【OS名】Windows
【PHPのバージョン】5.3.18
【連携ソフトウェア】MySQL VertrigoServ
【質問内容】>>417
0419nobodyさん2013/04/06(土) 05:04:37.52ID:???
>>418
>>1
0420nobodyさん2013/04/06(土) 06:37:26.53ID:???
>>417

>出来ません。
ってだけで、
エラーメッセージとかコマンドの詳細を書かないってことは、
エスパーできる範囲で質問せざるをえないわけだが。

イベントログかPHPのエラーログ見た?
セーフモードは?
フルパスで起動してる?
パスに空白入ってない?
権限は?
0421nobodyさん2013/04/06(土) 09:33:39.67ID:???
exec('test.bat'); とでもやってんだろ
0422nobodyさん2013/04/06(土) 18:25:33.81ID:yOARrNMO
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL

<?php
$hoge = intval($_GET["hoge"]);

$q=<<<eot
select * from table where id = $hoge;
eot;

$re=mysql_query($q);
$hairetu=mysql_fetch_array($re);

?>
<body>
<?= $hairetu["taijuu"] ?>

これで実行すると下のようなエラーが出てしまいます。
Notice: Undefined variable: taijuu in C:\xampp\htdocs\xxxx.php on line 100

3行目を追加($taijuuを定義)して、<?= $hairetu ?>に変更すると、

(途中省略)
$re=mysql_query($q);
$hairetu=mysql_fetch_array($re);
$taijuu = $hairetu["taijuu"];
?>
<body>
<?= $hairetu["taijuu"] ?>

正常に<?= $hairetu["taijuu"] ?>が処理され表示されます。
なぜ、<?= $hairetu["taijuu"] ?>ではエラーが出るのでしょうか。
0423nobodyさん2013/04/06(土) 18:42:09.69ID:???
>>422
下のほうに$taijuu変数があるんでしょ。
そちらを書き換えればいい。
100行目って出てるよ。
0424nobodyさん2013/04/06(土) 19:04:29.97ID:yOARrNMO
>>423
ありがとうございます。そこが問題だったようです。
そこを書き換えて、あと100行目前後の変数の部分が変な記述になっていたので
これも直したら正常に処理することが出来ました。
0425nobodyさん2013/04/07(日) 10:05:58.96ID:???
◆真夜中のじゃあのさん◆
http://hissi.org/read.php/news4vip/20130407/T29ZaG1nNGow.html


◆じゃあのさんまとめ◆
http://jyaanowww.wiki.fc2.com/
0426nobodyさん2013/04/08(月) 09:47:10.31ID:Hgt8t7EN
【OS名】CentOS 6.0
【PHPのバージョン】5.1.6
【連携ソフトウェア】なし
【質問内容】
ファイルを圧縮・解凍したいと思っています。
PHPが5.1.6なのでZipArchiveがありません。
phpMyAdminなどの追加も出来ない環境なのでモジュールを使ってするということができません。
コマンドも権限が無いので叩けない状態です。
こういった状況で圧縮・解凍する方法がPHPであればアドバイスもらえないでしょうか。
0427nobodyさん2013/04/08(月) 10:04:42.45ID:???
ピュアphpのコードで自力でやる
0428nobodyさん2013/04/08(月) 10:24:46.31ID:???
5.1.6でも標準でgz使えるんじゃないのか。
調べてサーバーで使用禁止の設定を確認したか。
0429nobodyさん2013/04/08(月) 10:44:26.70ID:???
>>426
つまり、zlib関数も使えないってこと?
04304262013/04/08(月) 11:39:04.03ID:Hgt8t7EN
みなさん回答ありがとうございます。

検索ワードが悪かったせいか、上位にZipArchiveに関する事が多く出ていました。
zlib関数があることを知りませんでしたので、そちらで汎用的なzipファイルを作成できるという
ことであればそちらを使ってみたいと思います。
0431nobodyさん2013/04/08(月) 21:14:28.36ID:???
https://www.google.co.jp/search?q=php+zip
目の錯覚か
0432nobodyさん2013/04/08(月) 23:33:19.67ID:w0n+quq7
【OS名】CentOS 5.3
【PHPのバージョン】5.1.6
【連携ソフトウェア】なし / モジュール追加不可
【質問内容】
2038年を超える日付計算をしたいのですが、PHP5.1系のためDateTimeも使えず
モジュールも追加出来ないためPearで計算することも出来ません。
こういった状況で2038年を超える日付計算をするにはどのようにすればいいのでしょうか?
0433nobodyさん2013/04/08(月) 23:51:09.14ID:???
>>432
unixタイムのマイナス値使わないなら マイナス値対応させれば2106年くらいまでけそうだな
独自ファンクション作ってしまえ
そしてここで公開しよう
0434nobodyさん2013/04/09(火) 00:11:04.43ID:???
64bit使えばいいじゃん?
0435nobodyさん2013/04/09(火) 01:17:58.80ID:???
日付計算が具体的に何をさすかで自分で実装可能なんじゃね
0436nobodyさん2013/04/09(火) 03:56:46.64ID:???
>>406
亀だがありがとう。
出くわしたときに助かります
04374262013/04/09(火) 09:05:47.21ID:Bv2LP4mI
そういえばPearとかはdatetime使えなくても使えるけど
マイナス値になったら2038年以降とみなして計算するとかそういう作りになってんのかね。
0438nobodyさん2013/04/09(火) 12:06:53.35ID:???
マイナスを考慮してるといっても2106年で限界が来るだろ
根本的解決になってないけどそれでいいのかよ
0439nobodyさん2013/04/09(火) 12:11:35.33ID:???
ここは9999年まで使えるユリウス通日をだな
0440nobodyさん2013/04/09(火) 12:59:59.55ID:???
class MyDate {
 private $year;
 private $month;
 private $day;

 public function addYear($year) {
  $this->year += $year;
 }

 public function addMonth($month) {
  $this->month += $month;
  if ($this->month === 12) {
   $this->year++;
   $this->month = 0;
  }
 }
}
とかのクラス作ればいいんじゃないかと思うんだが、違うのかな。
0441nobodyさん2013/04/09(火) 13:17:42.58ID:???
>>439
そのころにはユリウスさん死んでるだろ
0442nobodyさん2013/04/09(火) 17:49:22.79ID:???
>>432
pearはただのPHP
0443nobodyさん2013/04/09(火) 19:25:12.90ID:Bv2LP4mI
2106年まで計算出来れば十分だよ
そんときゃ俺はもういないし
0444nobodyさん2013/04/09(火) 19:30:24.16ID:???
俺はいるかもしれない
0445sage2013/04/09(火) 20:32:27.31ID:???
2106までいるってなにもんだよ
0446nobodyさん2013/04/10(水) 00:15:03.20ID:???
新人類
0447nobodyさん2013/04/10(水) 00:34:11.60ID:???
今俺ハタチだろーあと93年だろー
113・・・ギリギリセーフだろー
0448nobodyさん2013/04/10(水) 01:21:33.51ID:V2usnkco
【PHPのバージョン】5.3
【連携ソフトウェア】MYSQL
画像で説明となって失礼します。
http://brunhild.sakura.ne.jp/up/src/up590551.png
(ミラー)http://www.07ch.net/up2/src/lena8917.png

画像の洞くつ結果表、海上結果表、山道結果表を得るのに、
下のSQL文のように、スキルテーブルを一つのphpファイルのSQL文で
何回も必要として呼び出しているのですがDBの負荷が心配です。(正規化にも問題あるような気もしますが。。
何か効率的な書き方や、使い回しやバッファにため込む(?)等、出来ればいいなと思うのですが、何か良い方法はあるでしょうか。
0449nobodyさん2013/04/10(水) 01:22:41.12ID:V2usnkco
>>448の続き
phpのソース部分です。

$doukutu=<<<EOM
select
洞くつ.レベル
洞くつ.技
スキル.攻撃力
スキル.消費MP
from 洞くつ
join スキル
on 洞くつ.技 = スキル.技
where 洞くつ.敵 = 'スライム';
EOM;
$query_doukutu=mysql_query($doukutu);
$kaijou=<<<EOM
select
海上.レベル
海上.技
スキル.攻撃力
スキル.消費MP
from 洞くつ
join スキル
on 海上.技 = スキル.技
where 海上.敵 = 'スライム';
EOM;
$query_kaijou=mysql_query($kaijou);
0450nobodyさん2013/04/10(水) 01:25:17.10ID:???
http://dev.mysql.com/doc/refman/4.1/ja/variables.html
0451nobodyさん2013/04/10(水) 02:33:34.60ID:???
>>449
敵テーブルに場所列を付ければ?
0452nobodyさん2013/04/10(水) 08:28:04.93ID:V2usnkco
>>450
ありがとうございます、ユーザ変数を使うと後で参照出来るのですね。
さっそく活用してみます。

>>451
なるほど、書いていませんでしたが前の行で敵名を別で読み込んでいるので、
それをwhere 敵=に読み込んでいたのですが、
敵テーブルに場所列を付けるというやり方もありますね、検討してみます。
ありがとうございます。
0453nobodyさん2013/04/10(水) 08:39:55.65ID:???
伝わっているとは思うけど、洞窟、海上、山道テーブルを敵テーブルとして統合するってことね

そもそも何を心配しているかによるけど。
スキルテーブルを何度もjoinするのが心配?
それより地形ごとに何度もクエリを発行するほうが負荷。
てか1リクエスト事に地形は1種類だけでいいのでは?だったら参照する地形テーブルを動的に変えるか、上で書いたように統合すればいい
0454nobodyさん2013/04/10(水) 08:44:18.91ID:???
どうせ、キャッシュに入ってるだろ。
心配なら、自分でキャッシュすればいい。
この件でSQLの書き方工夫したところでたいした効果はない。
0455nobodyさん2013/04/10(水) 11:01:42.44ID:???
クラスについて「オブジェクト」「new」「カプセル化」の用語を使って説明しなさい。
0456nobodyさん2013/04/10(水) 11:05:23.23ID:???
落書きは、自分のノートに
0457nobodyさん2013/04/10(水) 11:06:31.12ID:???
PHP初心者にありがちではあるが
いまさらオブジェクト指向の話題とかふるなよ
あんなのは最早知ってて当然のレベル
0458nobodyさん2013/04/10(水) 14:38:17.61ID:???
プログラミング、オブジェクト指向のどちらの初心者にとっても、やっぱり難しい話だと思うよ。
0459nobodyさん2013/04/10(水) 16:01:47.70ID:IX7jFUbJ
依存性の注入についてわかりやすく3行でまとめて下さい
0460nobodyさん2013/04/10(水) 16:03:55.18ID:???
>>459

依存性の注入とは
プログラミングの手法の一つですが
>>459 には未だ早い
0461nobodyさん2013/04/10(水) 17:01:12.23ID:???
PHP厨をもっと量産してくれ
PHP使ってる奴って安価で切りやすい労働力だからもっと社会に輩出してほしい
それ以外にPHP厨に価値はないからな
0462nobodyさん2013/04/10(水) 17:20:21.26ID:???
いまはしらんが。
昔、PSや任天堂はダメでセガというやつ、windows、unixはダメでMacというやつがいて
異常な情熱をして燃やしてるのがいたが。
同じ事で主流、メジャーに対する反抗なんだろうな。
それ自体かいいか悪いかでなく、メジャーだからという理由。
0463nobodyさん2013/04/10(水) 19:02:04.29ID:???
>>461
よし、そのためにはPHPのお仕事を今よりももっと量産してくれ
そしたら簡単な仕事がさらに増えてルーチンワークで金を稼げる
0464nobodyさん2013/04/10(水) 21:54:25.24ID:V2usnkco
>>453-454
なるほど、キャッシュに入るのでしょうか。それでしたらそれに越したことは無いのですが、
リクエストが多くなっていることと、また、ソースが複雑になっていたことも考慮して
テーブルを統合してみました。アドバイスどうもありがとうございます。
0465nobodyさん2013/04/10(水) 22:42:35.48ID:B4F75Z08
PHPで作った掲示板に書き込みがなされるたびにIPアドレスを保存するようにしている。
ここからさらにIPアドレスから自動的に国まで特定したいと思ってるんだけどいい方法無い?

ちなみにGeoIPというツールをインストールすればIPアドレスから国を調べることができるらしいけど
あいにくうちのレンタルサーバー(000webhost)はシェルの操作ができないからmake; make install;とか出来ないんだよね。

なんかもっと簡単に、どこかにIPアドレスを投げると国名を返してくれるネットサービスとかあればいいんだけど。
0466nobodyさん2013/04/10(水) 23:34:51.06ID:???
なんでPHP厨って>>465みたいにウェブの基本も分かってないゴミしかいないんだろうな。

ウェブの基本も知らずにウェブを通して利用するシステム書いてるとかありえね。

そんなことも知らないレベルならセキュリティリスクもありまくりだろうな。

悪意のあるハッカーに踏み台を用意してるゴミ=>>465
0467nobodyさん2013/04/10(水) 23:43:34.73ID:???
>>465
お前がやらなきゃならないのは国の特定ではなく今すぐ回線を切ること
0468nobodyさん2013/04/10(水) 23:48:10.26ID:???
>>465
system('make')
0469nobodyさん2013/04/11(木) 00:00:09.61ID:???
>>465
マルチ
0470nobodyさん2013/04/11(木) 00:05:39.68ID:???
>>465
叩かれたら放置でマルチか
0471nobodyさん2013/04/11(木) 01:54:53.00ID:???
>>466
> なんでPHP厨って >>465 みたいにウェブの基本も分かってないゴミしかいないんだろうな。
>
> ウェブの基本も知らずにウェブを通して利用するシステム書いてるとかありえね。
>
> そんなことも知らないレベルならセキュリティリスクもありまくりだろうな。
>
> 悪意のあるハッカーに踏み台を用意してるゴミ= >>465 

具体的に465のどこの発言からwebの基本が分かってないと判断したのだろうか?
ちなみに、IPアドレスから国を判断するというのであれば、自分で調べれば自前で実装できる。
GeoIPのメリットは都市まで調べられるところだな。
0472nobodyさん2013/04/11(木) 12:32:28.71ID:???
タイムスタンプを視認しやすい年月日時フォーマットに変換するのってプラグインつくらず標準機能でできるの?
0473nobodyさん2013/04/11(木) 12:46:48.22ID:???
strftime のことかな
0474nobodyさん2013/04/11(木) 12:52:40.88ID:???
>>472-473
なんでルールを無視しようと思ったの?
そんなに荒らしたいの?
お前らみたいなクズのせいでPHPが馬鹿にされるんだよ
0475nobodyさん2013/04/11(木) 14:58:02.81ID:???
>>474
おまえこそ2ちゃんのルールを守れよ
0476nobodyさん2013/04/11(木) 15:01:39.89ID:???
というか、ここのルールだなw
id出さずに聞くとはね。
0477nobodyさん2013/04/11(木) 15:10:55.16ID:???
>>474
質問はIDを出してね
0478nobodyさん2013/04/11(木) 15:27:42.24ID:???
>>472
秒数なんで足し算とか割り算とかしたら簡単にできるよ
0479nobodyさん2013/04/11(木) 15:34:58.04ID:???
>>478=ゴミw
0480nobodyさん2013/04/11(木) 15:44:57.58ID:???
>>472
Cロケールの可能性を考慮して、ここはdate()で。
0481nobodyさん2013/04/11(木) 16:59:28.61ID:???
365541705を
2013/04/10 (Wed) 06:08:25
に変換するという質問です
0482nobodyさん2013/04/11(木) 17:01:59.31ID:???
さすがに id 出してくれないとw
0483nobodyさん2013/04/11(木) 17:04:10.44ID:HixpqTLW
すみません、なんのことかわかっていませんでした
sageを削除するんですね
0484nobodyさん2013/04/11(木) 17:09:45.63ID:itiKrwCW
つい最近、PHPではうるう秒が使えず、libcなんかと互換性が無いみたいな話を見かけたような気がするがきのせいか?
0485nobodyさん2013/04/11(木) 17:10:02.05ID:0KD/BzYB
IDが出ないこの板が悪い
0486nobodyさん2013/04/11(木) 17:11:56.71ID:???
うるう秒って会議で決めるもんなんだから無理に決まってんだろがクズがよー
0487nobodyさん2013/04/11(木) 17:16:41.35ID:HixpqTLW
簡単にはできないということですか?
0488nobodyさん2013/04/11(木) 17:18:44.27ID:???
お前が毎日ニュースサイトで閏秒の決定がないか監視する必要がある
0489nobodyさん2013/04/11(木) 17:28:50.22ID:???
>>483
echo date("Y/m/d (D) H:i:s", 365541705);
echo strftime("%Y/%m/%d (%a) %H:%M:%S", 365541705);

ロケールとか影響しないフォーマットにしてみたけど
この数字だと 1981/08/01 (Sat) 19:21:45 になるから元が違う?
0490nobodyさん2013/04/11(木) 17:29:36.79ID:???
まあ 60 秒が存在できるかどうか、というのもあるしなあ
0491nobodyさん2013/04/11(木) 17:36:59.62ID:???
>>489
え!元が違うことはないかと
メール送信時に同時に書き込まれてます
0492nobodyさん2013/04/11(木) 17:37:33.71ID:HixpqTLW
すみません
またsage削除を忘れました
0493nobodyさん2013/04/11(木) 17:43:40.31ID:???
元が(エポックタイムとは)違う何かなのでは。
0494nobodyさん2013/04/11(木) 17:44:58.45ID:???
>>491
頭の1抜けてるっしょ、1365541705 だろう
0495nobodyさん2013/04/11(木) 17:45:18.61ID:???
じゃなくて、単に一番上の「1」が抜けてるんだな
1365541705
0496nobodyさん2013/04/11(木) 17:45:50.66ID:???
ああかぶりました。495=493
0497nobodyさん2013/04/11(木) 17:48:38.28ID:itiKrwCW
ちょっと手元で試してみた。

test.c
--
#include <stdio.h>
#include <time.h>
int main()
{
time_t t = 915148821;
struct tm *tm = localtime(&t);
printf("%s\n", asctime(tm));
return 0;
}
--

test.php
--
<?php
echo date("Y/m/d (D) H:i:s", 915148821) . PHP_EOL;
--

うるう秒を考慮するzoneinfoを使うと…
$ TZ=/usr/share/zoneinfo/right/Japan ./test
Fri Jan 1 08:59:60 1999

$ TZ=/usr/share/zoneinfo/right/Japan php test.php
1999/01/01 (Fri) 09:00:21

うーむ…。
0498nobodyさん2013/04/11(木) 18:18:16.16ID:???
解釈の違いによって20秒くらいの誤差が出てもかまわないという考え方もある。
0499nobodyさん2013/04/11(木) 18:23:57.62ID:HixpqTLW
メールを見直しましたが頭に1はついてないみたいです

365541705は
date( substr(time(), -9) );

2013/04/10 (Wed) 06:08:25は
date( "Y/m/d (D) H:i:s", time() );

という関数で吐き出されています
0500nobodyさん2013/04/11(木) 18:42:20.92ID:???
>>499
なんでわざわざ substr で 後ろから9文字取り出してるの?
10桁あるんだから 1が落ちて当然だよね?
0501nobodyさん2013/04/11(木) 18:44:53.19ID:???
>>500
ワロタw
時刻が関係する場所だから-9がずーっと時差関係の数字に見えてたww
0502nobodyさん2013/04/11(木) 18:48:26.96ID:???
GMT+9だもんな日本時間
0503nobodyさん2013/04/11(木) 18:54:33.33ID:HixpqTLW
>>500
あれの意味はうしろから9桁なんですね
どうしてそうしたのか尋ねてみます
明日以降になると思います
0504nobodyさん2013/04/11(木) 20:01:05.11ID:???
>>500
10桁になる前に書かれたロジックとか。
0505nobodyさん2013/04/11(木) 21:13:22.64ID:???
それはすごい
0506nobodyさん2013/04/11(木) 22:45:58.95ID:yLGwf0zn
>>471
> ちなみに、IPアドレスから国を判断するというのであれば、自分で調べれば自前で実装できる。

IPアドレスの国への割り振りって動的に変動しているけどそれはそういうのに追従できる方法?
0507nobodyさん2013/04/11(木) 22:53:54.56ID:???
15桁の数字の真ん中の5桁を抜き出すの1行で書けます?
123456789123456の真ん中の67991
0508nobodyさん2013/04/11(木) 22:54:36.57ID:???
>>507
>>1
0509nobodyさん2013/04/11(木) 22:55:56.12ID:???
文字列変換とsubstr
0510nobodyさん2013/04/11(木) 22:58:49.26ID:???
文字列に変換?
0511nobodyさん2013/04/11(木) 22:59:58.02ID:???
そもそもストリップをどうするのか解らなくて 汗
0512nobodyさん2013/04/11(木) 23:13:28.27ID:???
var [ alias, dom ] = ate.split("@");
■ このスレッドは過去ログ倉庫に格納されています