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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0152nobodyさん2008/02/12(火) 17:57:38ID:rr+doGz+
>>145
ですよね、やっぱり。
何でPEAR入門とか見ると結構Authが出てくるのか疑問。
これ不完全なセキュリティじゃん。

ありがとうございました。
0153nobodyさん2008/02/12(火) 18:00:10ID:???
>>152
>これ不完全なセキュリティじゃん。
w
0154nobodyさん2008/02/12(火) 18:09:39ID:???
>>152
いい子だからもう少し勉強してこようね。
01551522008/02/12(火) 18:17:44ID:???
スマソ、別にPEARを責めてるわけじゃなくて解説ページとかを責めてるんだ。
01561512008/02/12(火) 18:27:02ID:???
そもそも"./"、".hoge.com"と追加すると
簡単なカウンターすら動かないですね…あれぇ…

www.hoge.com/aaaa/のクッキーを
www.hoge.com/bbbb/で呼び出したいだけなんですが…ううーん
0157nobodyさん2008/02/12(火) 18:29:52ID:???
確かに152のような解釈をしてしまうような、ろくでも無い解説本が大量にあるのは事実。
0158nobodyさん2008/02/12(火) 18:37:17ID:???
>>156
pathに.はいらん
0159nobodyさん2008/02/12(火) 19:03:40ID:???
>>150
高木先生から脅しを受けるのでいやです><
0160nobodyさん2008/02/12(火) 19:06:03ID:???
$hoge = new Hoge();
$array->each($hoge,"methodName");
→$arrayの各要素にHogeオブジェクトのmethodNameメソッドを適用

こういうことをしたいのですが、
SPLの拡張されたArrayにもそのようなものはないようです
こういうことができるようになるエクステンションなどがあれば教えて下さい
0161nobodyさん2008/02/12(火) 20:36:43ID:???
>>160
array_map
0162nobodyさん2008/02/12(火) 20:40:59ID:???
>>157
そんなので金取ってるやつがいるんだよな。
俺もそう解釈してた時があった。
0163nobodyさん2008/02/12(火) 21:09:29ID:???
セッションを作った際に、セッションが不正だと思われる場合
現在のセッションを新たに作り直したいのですが、下のコードでやると、
次のようなエラーができます。

session_start();
// セッションが不正だったので、新しいセッションを作成する
session_destroy();
session_start();

Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: user
0164nobodyさん2008/02/12(火) 21:17:47ID:???
>>163
二度session_start()書かなくて良い
0165nobodyさん2008/02/12(火) 21:39:17ID:???
session_regenerate_id
0166nobodyさん2008/02/12(火) 22:50:53ID:qqWX9YxW
PHPにRubyのriみたいなのってない?
0167nobodyさん2008/02/12(火) 23:20:27ID:???
riの機能を説明してくれ。
0168nobodyさん2008/02/12(火) 23:30:22ID:???
このスレで日曜プログラマの人どれくらい?

( ´・ω・)ノ
0169nobodyさん2008/02/12(火) 23:35:27ID:qqWX9YxW
>>167
ドキュメントをコマンドラインから検索できる。
0170nobodyさん2008/02/12(火) 23:40:19ID:???
Perlのpodみたいなやつ?
それならない
0171nobodyさん2008/02/13(水) 00:06:31ID:54ukxXOg
無いのか…
みんなドキュメントはブラウザで見てるのかなあ。
0172nobodyさん2008/02/13(水) 00:30:36ID:???
www.php.net/[function_name]
ってアクセスすれば出るから楽だよ
0173nobodyさん2008/02/13(水) 01:15:39ID:mapjp2bH
PHPのmailではメールが遅れますがPEAR Mailだと送れません。なぜでしょうか、よろしくお願いします。
maillog
localhost postfix/smtpd[3625]: connect from localhost.localdomain[127.0.0.1]
localhost postfix/smtpd[3625]: disconnect from localhost.localdomain[127.0.0.1]
0174nobodyさん2008/02/13(水) 01:27:51ID:???
>>173
postfixの設定
0175nobodyさん2008/02/13(水) 02:29:55ID:???
フォルダをコピーする関数てないよね?
0176nobodyさん2008/02/13(水) 02:34:10ID:???
ない。
システムコマンドを実行するか、再帰処理でゴリゴリやるかしかない。
0177nobodyさん2008/02/13(水) 02:34:48ID:???
サンクス
01781732008/02/13(水) 03:11:28ID:???
>>174 mail関数は送れるのにPEARだと送れない。この違いはなんなんでしょうか。
0179nobodyさん2008/02/13(水) 05:19:34ID:PSygS72K
連想配列を指定したインデックス番号で取り出したい時はどうしたらいいですか?
キー名でなく、「n番目」と指定する形で取り出したいです
0180nobodyさん2008/02/13(水) 07:02:12ID:???
foreach でカウンター使えば?
0181nobodyさん2008/02/13(水) 07:47:56ID:???
yumで入れたPHP5で
ある種のフォント(古いのとか、フリーで配布されているもの)が
imagettftextで文字化けしたり、エラーになったりします。
いろいろ調べたところ、
--enable-gd-jis-conv
のオプションを付けていないのが原因っぽいです。
これを有効にするには、yumで管理するのをあきらめて
ソースからインストールしなおすしかないでしょうか?
0182nobodyさん2008/02/13(水) 07:51:22ID:???
dl
0183nobodyさん2008/02/13(水) 08:35:43ID:???
PHP5といってもバージョンふるいだろうし、
最新のをソースからインストールしたほうがいいとおもふ。
0184nobodyさん2008/02/13(水) 08:51:05ID:s61mWt+C
PHPに限った問題ではないのですが、どこで聞けばいいかわからなかったのでよろしくお願いします。

定数と変数の違いがよくわかりません。
解説サイトなどをみると、富士山は定数だなんていうのをよく見かけます。
しかし遠い未来にもしかしたら別名になってるかもしれないと考えると変数でもいいんじゃないかと思ってしまいます。
そんなこんなで両者の違いがよくわからず・・・
どなたかこんなバカな私が納得できる解説していただける方いらっしゃいませんか?
0185nobodyさん2008/02/13(水) 08:53:49ID:???
>>184
定数は不動な・不動であるべき値を入れるもの
変数は可変的な値を入れるもの
それ以上でもそれ以下でもない
0186nobodyさん2008/02/13(水) 09:20:15ID:???
富士山の名前はドーム球場やビルの名前ほど変わりやすくはないだろう?
そんだけの違い。
富士山の名前も変えたければ変数にすればいい。
ただ、変わることが当分ないだろう名前を変数にする意味があるかどうかは知らない。
0187nobodyさん2008/02/13(水) 09:25:49ID:???
>>184
関数のオプション指定とかでよく定数を使う
例えば

define("TYPE-A", TRUE);
define("TYPE-B", FALSE);

function type($var, $type = TRUE)
{
 if($type === TRUE)
 {
  return "TYPE-Aの{$var}です。";
 }

 if($type === FALSE)
 {
  return "TYPE-Aの{$var}です。";
 }

 return FALSE;
}

echo type("テスト", TYPE-A);

こんな感じで、オプション名を分かりやすくとかかな
0188nobodyさん2008/02/13(水) 09:38:49ID:???
意味は通じるだろうけど定数名にはハイフンじゃなくてアンダーバーじゃないとダメじゃない?
01891872008/02/13(水) 09:50:51ID:???
ごめん、定数なんて滅多に使わないから名前付けわからなかったorz
0190nobodyさん2008/02/13(水) 10:37:39ID:???
boolじゃ表現できないステータスは定数にするなぁ
define("NG", 0);
define("OK", 1);
define("DELETED", 2);
define("CANCELED", 3);
なかんじ
0191nobodyさん2008/02/13(水) 11:53:52ID:???
普段使ってないアヤフヤな状態で教えるなよ。
0192nobodyさん2008/02/13(水) 11:56:19ID:???
誰も教えないより全然マシだろ
0193nobodyさん2008/02/13(水) 12:49:07ID:???
間違った情報教えるよりいいと思うけどw
0194nobodyさん2008/02/13(水) 12:51:10ID:???
何もない→間違った情報→正しい情報

必ずしも正しい情報が手に入るはずがないのは承知だろ
0195nobodyさん2008/02/13(水) 13:27:43ID:???
解答者から貰った解答を検証、または応用を利かすぐらいの事をしないとな…
0196nobodyさん2008/02/13(水) 15:42:39ID:???
基本的に定数って複数人開発で書き換えられないような値を維持したいときだろ。
だから個人で書いてるとあまり存在意義が感じられないんじゃない。
0197nobodyさん2008/02/13(水) 15:54:31ID:???
>>196
クラスで決まった変数を使いたいときとかにつかわね?
0198nobodyさん2008/02/13(水) 16:17:39ID:???
PHPはたのしいんだけどさ
SQL関係でダルくなった・・・
質問しようにもDB板過疎ってるしなぁ
0199nobodyさん2008/02/13(水) 16:29:49ID:???
携帯電話向けのサイトやコンテンツのプレビューサイトを作り
たいと思っています。

1:ブログ的に簡単に記事を投稿できる機能
2:紹介した記事のサイトのURLを簡単にメールで閲覧者に送る
機能
3:拍手ボタン的なユーザー評価システム

の3つを必須要素としています。

これらを満たしたおすすめのBLOGやPHPなどがあれば教えてく
ださい。

更に下記機能が可能であれば理想です。

4:閲覧者が読者登録することによりログイン時はワンボタン
で気に入ったコンテンツのURLを送信できる機能

無料が理想ですが有料サービスでもかまいません。

よろしくお願いします。
0200nobodyさん2008/02/13(水) 16:30:18ID:???
>>199
>>1
0201nobodyさん2008/02/13(水) 16:30:44ID:???
>>198
ああ、俺もそんな時期あったよ
仕事でSQL詳しい奴と組んで色々教わってから、
よほど凝った設計やら最適化が要るサブクエリでも必要にならん限りは手間感じなくなったけど。

そういやDB板ってあるんだな。行った事ねえw
0202nobodyさん2008/02/13(水) 16:35:13ID:???
DB詳しい知り合い・・・まじでほしい
0203nobodyさん2008/02/13(水) 16:37:58ID:???
ORMばっかじゃなくて、SQLはきちんと勉強した方が後々タメになるよ。
普段自分が使うDBだけでもいいんだけど。
0204nobodyさん2008/02/13(水) 16:39:44ID:???
SQLが難しいというより、無駄なSQLを実行しないようにしようとすると、プログラムの構造が
複雑になりがちなのがつらい。
0205nobodyさん2008/02/13(水) 17:26:21ID:w/tgHaTQ
「秒」を「時間/分/秒」に変換するようなものありませんでしたっけ
date("H:i:s", 秒)だと、1970/1/1からの時間になってしまいますよね
0206nobodyさん2008/02/13(水) 17:34:48ID:???
>>205
違う。
time(); とか mktime(); で返って来るのが1970年1月1日からの経過秒数。
だから、date("h:i:s",time()); とやれば、今の時間が返って来る。

てか、マニュアル読めよ。
0207nobodyさん2008/02/13(水) 17:40:46ID:w/tgHaTQ
ごめ、書き方が悪かった
2行目はなしにしてください

秒をカウントしていって、あと●時間と●分と●秒
みたいにしたいのですが、そういう関数はありませんか?
dateだと時間じゃなく日付になります
0208nobodyさん2008/02/13(水) 17:59:59ID:???
>秒をカウント
それを60で割れば分、更に60で割れば時間が出るが
0209nobodyさん2008/02/13(水) 18:00:34ID:???
一度unixタイムにして、そこで引き算してから表示すれば?
0210nobodyさん2008/02/13(水) 18:07:16ID:w/tgHaTQ
$time = 123456;
$hour = floor($time / 3600);
$minute = floor(($time - ($hour * 3600)) / 60);
$second = floor($time - ($hour * 3600) - ($minute * 60));

今はこうしてますが、それを一発で変換するような関数があればと思いました。
自分で関数化させてみます、ありがとうございました
0211nobodyさん2008/02/13(水) 18:47:11ID:euh5fNCJ
SQL使うとき、某セキュ本でサニタイズには addslashes(); 使うのがいい、って書いてあったけど、
本当にこれで十分なの?特にMySQLの場合。

マニュアルには確かに、
"データベースへの問い合わせなどに際してクォートされるべき 文字の前にバックスラッシュを挿入した文字列を返します。"
って書いてあるけど、いまいち不安で仕方がない。
0212nobodyさん2008/02/13(水) 18:52:13ID:f/Ao3h5z
どなたか、>>100は分かりませんか・・・
0213nobodyさん2008/02/13(水) 18:57:41ID:???
>>211
addslashesだと一部のケースできちんとエスケープできない場合があるから不十分だよ。
DB毎に用意されたエスケープ用の関数(mysql_real_escape_stringとか)を使ったほうがいいよ。
0214nobodyさん2008/02/13(水) 19:08:32ID:euh5fNCJ
>>213
ありがとう。
おとなしく、専用関数使うことにします。
0215nobodyさん2008/02/13(水) 19:32:56ID:???
>>213
一部のケースってどんなケース?
0216nobodyさん2008/02/13(水) 19:43:11ID:???
たぶん magic_quotes_gpc が on の時の事じゃないかな。
重複してエスケープされちゃう。
0217nobodyさん2008/02/13(水) 19:47:49ID:???
サアバアの人がPHP5.2とかいうの勝手にしたらしいんですけど
ぼくのさいとのプログラムがうごきなくなりました。助けてください
0218nobodyさん2008/02/13(水) 20:17:57ID:???
>>217
じゃあ君はPHPを元のバージョンに戻すんだ
0219nobodyさん2008/02/13(水) 20:42:02ID:???
>>212
「PHPでサイトを構築」じゃさっぱりわからない。
PHP使ってれば全部そうなんだから。
0220nobodyさん2008/02/13(水) 21:55:05ID:???
php5.25にバージョンアップしたら
今まで動作していたものが動作しなくなりました。

どこで引っ掛かっているか確認したところ
どうやら
mb_send_mailやmb_language("Ja")など
mb_で始まるものが利用出来なくなっているようです。

mb_を利用するにはどうすればよいでしょうか?
もしくは
他に代替となるものがありますでしょうか?

宜しくお願いします。
0221nobodyさん2008/02/13(水) 21:58:52ID:???
>>220
>>1
0222nobodyさん2008/02/13(水) 22:16:21ID:BLl4JBTg
失礼しました。
php5.25にバージョンアップしたら
今まで動作していたものが動作しなくなりました。

どこで引っ掛かっているか確認したところ
どうやら
mb_send_mailやmb_language("Ja")など
mb_で始まるものが利用出来なくなっているようです。

mb_を利用するにはどうすればよいでしょうか?
もしくは
他に代替となるものがありますでしょうか?

宜しくお願いします。
0223nobodyさん2008/02/13(水) 22:20:15ID:mapjp2bH
echo では<a>とかて使えれないの?
0224nobodyさん2008/02/13(水) 22:26:53ID:???
>>222
多分>php.iniで組み込んでないせいだと思うけどこのへんが無いからわからん。
>・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
0225nobodyさん2008/02/13(水) 22:27:41ID:???
>>223
やってみればわかるんじゃない?
0226nobodyさん2008/02/13(水) 22:33:44ID:???
echoで<a>を「使う」の意味がよく分からん
0227nobodyさん2008/02/13(水) 22:35:10ID:mapjp2bH
echo "<a href="">link</a>";
ってことなんだけど、どうもエラーが出てしまう。<p>ならイケるのに。
0228nobodyさん2008/02/13(水) 22:42:41ID:???
>>227
面白い事してるね。
<a href="">を<a href=\"\">にしてみようか。

とりあえず、参考書を1冊買って熟読する事をオススメする。
0229nobodyさん2008/02/13(水) 22:47:14ID:mapjp2bH
エスケープかー、ありが�d
0230nobodyさん2008/02/13(水) 22:52:07ID:???
次からは何をしたいか、実際何をしたか、どういうエラーが出たかを明示しないとだめよ。
0231nobodyさん2008/02/14(木) 01:02:45ID:???
すみません。誰か>>100をお願いします。
しつこくてごめんなさい。
0232nobodyさん2008/02/14(木) 01:18:58ID:???
>>231
スレ違いしつこい
0233nobodyさん2008/02/14(木) 02:06:46ID:???
>>212
自分でアクセスしたときはそうならないならPHPの問題ではないのでは?
特定のユーザというならUser Agentでも調べてみればいい。
スレチガイっぽいのでもう諦めてログなりアクセス解析なりで頑張ってくれ。
0234nobodyさん2008/02/14(木) 02:17:29ID:???
>>231
答えようがないと言ってるだろうに。
HTMLでサイト作ったんですがなんかエラーでますってレベルの質問だぞそれ。
0235nobodyさん2008/02/14(木) 02:34:26ID:fWt27fIe
SQLで複数のレコードをinsertするときに
values以下をつなげて全ての行を同時にinsertする書き方がありますが
PDO(MySQLです)のプリペアードステートメントはどれだけSQL文が長くても問題ないんでしょうか?
0236nobodyさん2008/02/14(木) 03:11:36ID:???
どれだけ長くてもって…、そら限界あるだろw
0237nobodyさん2008/02/14(木) 03:46:35ID:???
javascriptしか使えないブログのページ情報を
PHPを置いてるサーバーにsrcで読み込んで、そのページの情報を取得して対応の
データをサーバーから返したいのですがどういった関数やライブラリを利用すればいいでしょうか?
0238nobodyさん2008/02/14(木) 03:47:53ID:???
>>8
0239nobodyさん2008/02/14(木) 04:10:37ID:???
順番がよくわかんないんだけどサーバから返って来るデータを
javascriptしか使えないブログで表示したいってこと?
GETかPOSTか何かでトリガー作ってやって
それをサーバで受けてスクレイピングして結果をjsonか何かで返してやればいいんじゃねえの?
0240nobodyさん2008/02/14(木) 07:08:49ID:???
>>8
0241nobodyさん2008/02/14(木) 07:33:04ID:1Zo3u+Bq
mb_send_mailを使ってるんですが失敗します
サーバにsendmailとか入ってないんですが
メール送信にMTAは必須ですか?
0242nobodyさん2008/02/14(木) 08:29:36ID:1Zo3u+Bq
postfixインストールしたら受付だけはするようになりましたが
プロバイダのアウトバウンドポート25ブロッキングで送信不可でしたorz
メールを使うテスト環境ってみなさんどうやってますか?
今ほとんどのプロバイダがOP25Bやってますよね?
0243nobodyさん2008/02/14(木) 09:03:24ID:???
>>242
プロバイダのSMTPサーバを経由させる。
0244nobodyさん2008/02/14(木) 09:35:01ID:???
op25b対策としてポートを変える。
または外部のsmtpサーバをアプリケーションレベルで指定する。
0245nobodyさん2008/02/14(木) 10:35:57ID:???
PHPとMySQLってお似合いだよな
PHPも型の指定必要ないし、MySQLもbool型を自動的にINT型に変えてくれるんだぜ?
PGSQLでやろうと思ったら独自で関数作成しなきゃいけないのにな
まぁ、それだから使いやすいんだけどあまりそういうのに頼るのはよくないな
0246nobodyさん2008/02/14(木) 10:52:31ID:???
自分語りウゼェ
0247nobodyさん2008/02/14(木) 11:22:02ID:???
>>235
ここは、phpのスレだからMYSQLのこと聞いても>>236のような何の価値もないレスしかかえってこない。
MYSQLなら「max allowed packet」がSQLの最大長だよ。

しかし、このスレに期待して2日も待ったのに、>>232-234って、全く何も役に立たなかった。
0248nobodyさん2008/02/14(木) 11:47:30ID:???
二日も待つならその時間で調べた方がよほど有益だろうに…
0249nobodyさん2008/02/14(木) 11:59:58ID:???
247が>>100のことを言ってるなら自分のせい。
アクセスログって何?どういうどういう内容のログ?
PHPのサイトって何?PHPでどういう内容でどういうコードを走らせてるんだ?
自分の説明不足でスルーされてるのに気づいてくれ。
0250nobodyさん2008/02/14(木) 12:13:47ID:???
>>100
>どこ当たりがおかしいと思われますでしょうか?
プログラムは書かれたとおりにしか動かないので
自分で作ったならお前自身がおかしい
フリーなものなら設置の仕方がおかしいかそういう仕様

これでいいか?
0251nobodyさん2008/02/14(木) 12:15:33ID:kPTFt31F
テキストの中に
!"#$%&'()-=^~\|,./\;:@[]<>?_+*`{}
が含まれていたら弾きたいのですが、


エスケープがめんどくさいです・・・。


質問じゃないね、ごめん。
0252nobodyさん2008/02/14(木) 12:38:04ID:???
正規表現ではじけば面倒じゃないだろ
■ このスレッドは過去ログ倉庫に格納されています