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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2010/07/23(金) 06:24:51ID:3G71fl8i
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。


【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0807nobodyさん2010/09/16(木) 13:03:54ID:???
806はclass.php

■setting.php
<?php
$ary = array("1ch", "3ch", "4ch", "6ch", "8ch", "10ch", "12ch");
0808nobodyさん2010/09/16(木) 13:06:12ID:???
>>806
ちなみにクラスの中にincludeをする書き方は今日からやめよう
08098082010/09/16(木) 13:07:16ID:???
アンカーミス
>>801
↓みたいにクラスの中にinclude使うのは今日からやめよう

class TestModel extends AppModel{

include_once('params.php');

...

}
0810nobodyさん2010/09/16(木) 13:18:54ID:???
>>798
ttp://q.hatena.ne.jp/1143083535
これを呼んで容量を調節して
0811nobodyさん2010/09/16(木) 13:23:47ID:???
AppModelってことはcakeとか使ってたりするのか
0812nobodyさん2010/09/16(木) 13:35:15ID:???
はてなも馬鹿な解答が増えたもんだ
0813nobodyさん2010/09/16(木) 13:39:32ID:???
知恵袋とか教えて●●とかの質問系のサイトって質問とは関係ない回答してポイントを稼ぐサイトでしょ
0814nobodyさん2010/09/16(木) 13:42:01ID:???
「セッションIDの中の中身が多くなっても」なんて言い回しを見ると
あきらかに理解できてなさそうだなぁ。近くに聞ける人はいないの?
0815nobodyさん2010/09/16(木) 13:45:30ID:???
>>814
聞ける人がいない(聞きにくいも含む)からネットで質問するのだろう
08167982010/09/16(木) 14:24:21ID:/BVvHaMj
>>810

ありがとうございます。
クッキーの容量制限とセッションの容量制限は同じだと思っていました。

>>814

恥ずかしながら、今回、セッションを一から勉強している段階です。
近くに聞ける人は今いないもので。。


カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
画像の表示がぐるぐる変わるサイトを作っています。

そのページナンバーやカテゴリ、期間指定などをセッションでやりとりしていたのですが、
これを機会に全部hiddenにいれて、GETで受け渡し、それぞれのページをURLコピペできる
ようにすればいいのではないか?と考えました。

GETの制限文字数に余裕があるなら、この考えは悪くないでしょうか?
0817nobodyさん2010/09/16(木) 14:27:43ID:???
ぐるぐる変わるサイトっていうのはランダムなのか序列なのかとかもっと具体的に書いてもらえれば助言できるんだが
0818nobodyさん2010/09/16(木) 14:42:28ID:???
>>816
hiddenでやると構造もったデータはシリアライズしてエンコードデコード
してみたいな手間がかかるし、場合によっては改竄対策もいるし、
ページサイズでかくなるしといろいろあるから、あまりお勧めはしないな。
特に今回は配列いれてるみたいだし。

そもそもPHPのクッキー使ったセッション維持なんて世の中でものすごく
たくさん使われているのでIEでうまくいかないなんてことがあったら
大問題になってるはずだけどそんな話はきかんぞ。firefoxとIEじゃなくて
自分の環境の問題だったりしないか。片方にだけ変なセキュリティソフト
入れてるとかそういう類。
08197982010/09/16(木) 14:44:19ID:/BVvHaMj
>>817

ありがとうございます。序列です!

ただ、ページリストは長い配列になるので、hiddenの受け渡しにはそぐわないかもしれません。。

一応こういうやり方はあるにはあるみたいですが。
http://planetcakephp.org/aggregator/items/1532-cakephphidden%E3%81%A7%E9%85%8D%E5%88%97%E3%82%92%E6%B8%A1%E3%81%97%E3%81%A6%E3%82%B2%E3%83%83%E3%83%88%E3%81%97%E3%81%9F%E3%81%84
08207982010/09/16(木) 14:49:47ID:/BVvHaMj
>>818

なるほど。どうもありがとうございます。

一から全部hiddenで書き直そうとする瞬間だったので、本当に助かりました。

もう少し、セッション周りで自分の環境の問題を調べてみます。
0821nobodyさん2010/09/16(木) 14:57:16ID:???
>>816

>カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
>画像の表示がぐるぐる変わるサイトを作っています。

セッションもhiddenも使う必要ないと思うんだけど
08227982010/09/16(木) 15:25:14ID:/BVvHaMj
>>821

本当ですか。、というと、どうやればいいのでしょうか。
ジャバスクリプトとかかな。。 いや、そんな難しいことしなくて、なにかあるのかな。
0823nobodyさん2010/09/16(木) 15:38:43ID:???
オブジェクトの生存期間?ってリクエスト受けて表示するまでですか?
共通の処理をする場合はstaticメンバ関数でよいですかね?
08248232010/09/16(木) 15:49:38ID:???
あ、すいません書き込むスレ間違いました
0825nobodyさん2010/09/16(木) 15:59:15ID:???
>>824
偽物
0826nobodyさん2010/09/16(木) 16:06:34ID:???
class Hoge {
function __construct() {
echo "construct";
}
function __destruct() {
echo "destruct";
}
}

new Hoge();

これをしてみればわかる
0827nobodyさん2010/09/16(木) 16:30:05ID:???
>>823
お礼ぐらい書け
0828nobodyさん2010/09/16(木) 16:33:06ID:???
>>826
>>827
ありがとうございました
08298232010/09/16(木) 16:49:46ID:???
自己解決したのでもういいです。
0830nobodyさん2010/09/16(木) 17:17:08ID:???
>>829
おまえいい加減にしろよ
0831nobodyさん2010/09/16(木) 17:26:01ID:???
スレタイと>>1を読まない質問者も悪いな
0832nobodyさん2010/09/16(木) 17:26:09ID:???
ID出さないとこうなるんだよ
0833nobodyさん2010/09/16(木) 17:44:46ID:???
>>823=>>825=>>830は掲示板のルールも守れないのかい
社会でどんな生き方しているのか分かりやすいね
0834nobodyさん2010/09/16(木) 17:51:04ID:???
ああ、そういうローカルルールあんのね
0835nobodyさん2010/09/16(木) 18:11:38ID:UCptVaL2
勝手言ってすいませんが、急いでます!
任意の深さを持つ配列を作成したいのですがどうすればよいでしょうか
例えば、

$key = array( 'k0', 'k1', 'k2' );
$value = 'v';
$array = get_array( $key, $value );

とした場合、
$array['k0']['k1']['k2'] = 'v';
と言う結果を得たいのです。

こんな関数 get_array の実装がわかる方おられましたら教えてください。
※もちろん、 $key の数は可変です
0836nobodyさん2010/09/16(木) 18:18:38ID:???
function get_array($key, $value) {
$r = $value;

foreach (array_reverse($key) as $k) {
$r = array($k => $r);
}

return $r;
}
0837nobodyさん2010/09/16(木) 18:26:28ID:???
>>835
お礼ぐらい書けよ!急いでたくせに
0838nobodyさん2010/09/16(木) 18:31:39ID:???
お礼お礼うるせーな
0839nobodyさん2010/09/16(木) 18:34:15ID:cwt3W9Qn
Windowsで複数のPHP(cli)を走らせているのですが、
1つの cmd.exe が約2.5MB、1つの php.exe が約13MBメモリを消費しているようで、
大量のプロセスを立ち上げることが出来ません。
HTTPd上で走らせた方がメモリが節約できたりするのでしょうか?
よろしくお願いします。
0840nobodyさん2010/09/16(木) 18:37:24ID:???
とりあえずバージョンとかも書いたら?
thread版とnon thread版のどちらの使ってるのかも書いてくれないと回答に困るかな
0841nobodyさん2010/09/16(木) 18:39:40ID:???
835=>>838
解決したらデカイ態度になるのイクナイ
08428392010/09/16(木) 18:44:32ID:???
>>840
PHP 5.2.10 (cli) (built: Jun 17 2009 16:16:57)
php-5.2.10-Win32.zip です。thread版だと思います。
0843nobodyさん2010/09/16(木) 18:47:13ID:UCptVaL2
>>836

ありがとうございましたm(__)m
徹夜で半分気を失ってたところです。
ほんとにすいません。
本当に気絶していました。
すいません。
すいません。
0844nobodyさん2010/09/16(木) 18:48:04ID:???
>>839
ttp://bugs.php.net/bug.php?id=39438
0845nobodyさん2010/09/16(木) 18:51:44ID:???
>>843
仕事?気をつけなよ
0846nobodyさん2010/09/16(木) 19:13:55ID:???
>>844
5.3.3に変えても、約11.3MB消費します。
減った分も、Unlha などのモジュールが無効になった為ではないかと思います。
0847nobodyさん2010/09/16(木) 19:26:07ID:???
いやまだバグ直ってないよ
0848nobodyさん2010/09/16(木) 20:44:12ID:???
>>804-809
ありがとう。
では自分の例だと、こういう風になるのかな。

params.php

<?php
$test = array(
array('id' => 1, 'name' => 'yui'),
array('id' => 2, 'name' => 'mio'),
...
);

test_model.php
<?php
class TestModel extends AppModel{
public $test;
...
}

test_controller.php
<?php
function some_func(){
include "params.php";
$testObj = new TestModel();
$testObj->test = $test;
...
}

つまりクラス内部でのincludeをやめて、外から代入してやると。
クラス内部でincludeしてはいけない理由は、PHPではできないからでしょうか?
0849804-8092010/09/16(木) 20:59:07ID:???
いや、クラス内部からincludeすることはできる
constructを使えばな
でもしないほうがいい
0850nobodyさん2010/09/16(木) 20:59:56ID:1fMzrbOR
Amazon EC2 の Windows Server 2008 Datacenter に
Zend Server CE (ZendServer-CE-php-5.3.3-5.0.3-Windows_x86.exe) を入れようとしたんですが、
インストール途中で、「Error: -1622 インストールのログ ファイルを開くときに、エラーが発生しました。
指定されたログ ファイルの場所が存在し、書き込み可能であることを確認してください。」
というエラーメッセージが表示され、インストールに失敗します。
何か分かる方いますでしょうか?
0851nobodyさん2010/09/16(木) 21:01:41ID:???
権限がないからじゃねえの
0852nobodyさん2010/09/16(木) 21:10:27ID:???
>>849
試しにコンストラクタでやってみたら、できました
何故しない方がいいんでしょうか?
0853804-809=EM111-188-45-97.pool.e-mobile.ne.jp2010/09/16(木) 21:17:54ID:???
>>852
いずれ分かるときがくるさ
ぽまえならたぶん意味が分かる日はそう遠くないと思う
0854nobodyさん2010/09/16(木) 21:22:53ID:???
この流れなら貼れる
http://www.youtube.com/watch?v=P5sWncFiYnA
0855nobodyさん2010/09/16(木) 21:40:10ID:zUsTEVn5
session_start() を実行すると相対パスリンクに対しては全てsession情報が付き、絶対パスリンクに対しては
session情報が送られないという決まりがあります。

それをさらに突き進め、相対パスのリンクでも事前に指定した特定のリンクだけにsession情報を送り、
それ以外のリンクはたとえ相対パスの形であっても絶対パスのリンクと同様にsession情報は
送らないように設定することは可能でしょうか?
0856nobodyさん2010/09/16(木) 21:41:08ID:???
PEARのHTTP_Request2でWebページのレスポンスを取得した後
そのページにあるFormの〜番目にあるValue値を取得することは可能でしょうか

もし無理ならば 他の方法を教えてください
08578562010/09/16(木) 21:42:15ID:qlMmQX9a
ID出し忘れてました
>>856です
0858nobodyさん2010/09/16(木) 22:05:44ID:n8iVW5jh
連想配列のキー名をstr_replaceで一括置換する方法を教えてください。
書き方がわからなくて困っています。
foreachでキー名は取れますが、新しいキー名を連想配列に戻す方法がわかりません・・・。


array(2)
{
["Name1.id"]=> int(1)
["Name1.param"]=> int(45)
}
をこうしたい
array(2)
{
["Name2.id"]=> int(1)
["Name2.param"]=> int(45)
}
0859nobodyさん2010/09/16(木) 22:09:57ID:???
>>856
属性値を取得したいならDOM
http://www.php.net/manual/ja/book.dom.php

file_get_contentsしてDOM操作ね
0860nobodyさん2010/09/16(木) 22:12:59ID:???
>>858
配列のキーと値をひっくり返す

値(ひっくり返したキーが入っている)を置換

配列のキーと値をまたひっくり返す


ひっくり返す関数はマニュアルから探して
http://jp.php.net/manual/ja/book.array.php
0861nobodyさん2010/09/16(木) 22:17:50ID:n8iVW5jh
>>860
ありがとう
良すれすねここ
0862nobodyさん2010/09/16(木) 22:19:38ID:???
キーと要素が逆になるってことは要素が重複していた場合消えるから気をつけろよ
0863nobodyさん2010/09/16(木) 22:26:01ID:n8iVW5jh
あ、そうか確かに
結構面倒すね。気をつけます
0864nobodyさん2010/09/16(木) 22:26:24ID:???
素朴な疑問。キーを置換する事ってある?
0865nobodyさん2010/09/16(木) 23:11:01ID:???
キーを痴漢する
0866nobodyさん2010/09/16(木) 23:21:38ID:???
北野きい
0867nobodyさん2010/09/16(木) 23:35:39ID:???
mb_send_mail関数でたまーに送信されてないことがあるみたいなのですが一体何が原因でしょう
自分も一回だけ経験しましたが済度試したらうまくいって再現できずいまだに原因が分かりません

第五引数には-fオプションでリターンパスを設定してますが
送信されない時も特になにも帰ってきてません
0868nobodyさん2010/09/16(木) 23:36:06ID:???
>>867
>>1
08698672010/09/16(木) 23:40:59ID:hZDhig7v
ごめんなさい。
テンプレです。

【OS名】FreeBSD
【PHPのバージョン】5.2.14
【連携ソフトウェア】
【質問内容】
>>867
0870nobodyさん2010/09/16(木) 23:53:28ID:???
>>869
本題とは関係ないがメールを送るときにmb_send_mail関数は使わない
なぜならmb_send_mail関数は信用できない
この理由はgoogle先生に聞いてね
代わりにmail関数を利用する

ちなみに戻り値がtrueという事ならSMTPの問題でPHPの関係ではない
0871nobodyさん2010/09/16(木) 23:54:02ID:???
フルパスを渡す方法を尋ねてた人は
もう解決したの?
0872nobodyさん2010/09/16(木) 23:55:41ID:???
>>855
質問内容が漠然としてて回答しにくい
0873nobodyさん2010/09/17(金) 08:50:08ID:???
>>860
値が全て異なるって結構厳しい制約だから素直に新しい
配列作ってしまうほうがいいと思うけどな。
0874nobodyさん2010/09/17(金) 09:58:26ID:???
キーを置換しなければいけないようなコードを書くのがきもい
0875nobodyさん2010/09/17(金) 10:19:21ID:???
>>220
お礼言えよ!!!!!!!!!!!!!!!
0876nobodyさん2010/09/17(金) 10:35:50ID:???
うっせーな
0877nobodyさん2010/09/17(金) 11:04:40ID:???
チンピラ荒らすな
お前がきてから荒れてるからバレバレだぞ
0878nobodyさん2010/09/17(金) 11:24:49ID:???
荒れるような状況に持っていく>>887の方が本当はたちが悪い
0879nobodyさん2010/09/17(金) 11:27:56ID:???
黙ってられない奴が一番悪いんだよ
言わせんな恥ずかしい
0880nobodyさん2010/09/17(金) 11:29:21ID:???
なんで荒れるんだよ
レベルひくすぎるだろ
0881nobodyさん2010/09/17(金) 11:32:04ID:???
このスレに生息する人

・ちんぴら
・OCN
・自治厨のつもりだけど周りから見たら荒らしにしか見えない人
・回答もロクにしない癖に標的を見つけると待ってましたとばかりに登場する人
0882nobodyさん2010/09/17(金) 11:46:57ID:???
礼も書けないのもどうかと思うけど
0883nobodyさん2010/09/17(金) 13:31:41ID:???
>>875-882
そんな下らないレスする暇あるなら>>855に答えてやれよ・・・・
0884nobodyさん2010/09/17(金) 13:52:04ID:???
認証系のシステムを作る場合、下手に自分でセッション系の処理を組むよりも
Auth.php を使用した方がやはり安全でお手軽でしょうか?
0885nobodyさん2010/09/17(金) 13:56:25ID:???
>>884
>>1
0886nobodyさん2010/09/17(金) 14:00:46ID:zQJEoB3m
Pear::Authを使用してログインシステムを作っているのですが
"db_fields" => "*" を使用して、ログインID/PASS以外のカラム
(日本語で保存されているユーザ名)を取得しようとすると
文字化けしてしまいます。

そこでAuthを使用した場合に発生する文字化け回避策を
調べたところ

$db->query('SET NAMES sjis');

と記述すれば良いとの事でしたが、
これは、MDBパッケージを使用している場合対処方法であり、
私はMDB2を使用している為、この方法を使う事が出来ません。

因みにDB接続時のDSNの設定では、
mysql://test_user:test_pass@localhost/TEST_DB?charset=sjis

しっかりとcharsetとしてsjisを指定しています。
どうすれば文字化けを回避出来るかご教示下さい。
0887nobodyさん2010/09/17(金) 14:16:40ID:???
884と886はイコールで回答していいのですか?
0888nobodyさん2010/09/17(金) 14:22:33ID:zQJEoB3m
>>887
はい、その通りです。
IDを出すのを忘れていたので出しました。
0889nobodyさん2010/09/17(金) 14:28:04ID:???
データは何の文字コードで保存されてんの?
0890nobodyさん2010/09/17(金) 14:29:17ID:???
とりあえずここ
ttp://wiki.livedoor.jp/wanderingse/d/PEAR%3A%3AMDB2%A4%C7%A5%B5%A5%F3%A5%D7%A5%EB
0891nobodyさん2010/09/17(金) 14:35:28ID:B0xV1VRr
WindowsでPHPからsendmailが使いたいんですけどないですか?
もしくはsendmailと互換があるものってありませんか?
0892nobodyさん2010/09/17(金) 14:36:22ID:ZenZaYAa
PHPを書くときにお勧めの環境(デバックとかも含む)を教えてください
0893nobodyさん2010/09/17(金) 14:39:27ID:???
>>892
おすすめじゃないけど
netbeans+xdebugつかってる
0894nobodyさん2010/09/17(金) 14:40:05ID:???
>>886
わざわざSET NAMES sjis'とやろうとしてたという事は
PHPはsjisで作成しているという事であってる?

もしよくわかってないなら
MySQL側の文字コード関連(show variables like 'character_set%';)
PHP側の文字コード関連(phpinfo()のmbstringの設定)を確認して

ようは、MySQLの文字コード・PHPの文字コードが自分が想定している文字コードかどうかの確認。
0895nobodyさん2010/09/17(金) 15:41:11ID:???
>>892
emeditor
0896nobodyさん2010/09/17(金) 16:15:08ID:???
次スレ
【PHP】下らねぇ質問はIP出して書き込みやがれ 98
【PHP】下らねぇ質問はIDとIP出して書き込みやがれ 98
【PHP】下らねぇ質問はID出して書き込みやがれ 98
【PHP】下らねぇ質問はID出して分かりやすく書き込みやがれ 98
0897nobodyさん2010/09/17(金) 16:17:42ID:???
>>4
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。


今からEUC-JPなんて使わないしほとんどそういうサイトも見かけない
Shift_JISは携帯サイトで使うし書き換えたほうが良いと思うんだがどうだろう
0898nobodyさん2010/09/17(金) 16:26:40ID:???
内部エンコードは別にShift_JIS使う必要はない
というかUTF8一択で良いだろ
0899nobodyさん2010/09/17(金) 16:27:31ID:???
>>897
初心者が内部エンコーディングとスクリプト自体をShift_JISするとトラブルだらけになるだろ。
携帯サイトも普通はDBやPHPをUTF-8で統一した上で
出力直前でShift-JISに変換するのが良いよ
09008862010/09/17(金) 16:32:21ID:zQJEoB3m
>>889 >>894
utf-8です。PHPは、sjisです。

>>890
解決しました。ありがとうございます。


0901nobodyさん2010/09/17(金) 17:33:21ID:na186H29
>>859
ありがとうございました
0902EM111-188-12-75.pool.e-mobile.ne.jp2010/09/17(金) 18:03:43ID:rm9K3xNr
>>877
おい俺に何か用か小僧
昨日の>>804-809のレスで荒らし扱いされるとは心外だな
0903nobodyさん2010/09/17(金) 18:04:57ID:???
低レベル乙
0904nobodyさん2010/09/17(金) 18:16:51ID:???
http://hibari.2ch.net/test/read.cgi/php/1167984858/513-588

あれから1年か
久々に見たが痛いなこれはwwwww

ていうかこっちのスレに出張しなくていいから(・∀・)カエレ!
0905nobodyさん2010/09/17(金) 18:22:48ID:???
>>903
じゃあお前かわりに答えろ^^
0906nobodyさん2010/09/17(金) 18:24:30ID:na186H29
DOMでやりたいことをやろうとしていきなり詰まりました

land.toでPHPを実行したら
DOMDocument::loadHTML() expects parameter 1 to be string, array given in /省略

と出ました


$doc = new DOMDocument();

これがエラーになっているようですが 何かおかしいところがあるのでしょうか
レス数が900を超えています。1000を超えると表示できなくなるよ。