【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/27(日) 18:17:59ID:jK32tI//PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0583582
2008/02/02(土) 00:03:55ID:qL81uK5h0585582
2008/02/02(土) 00:12:15ID:qL81uK5h{$item.string|mb_strimwidth:0:100:"...":"UTF-8"|escape}
ceil関数使うのってどうすればいいんですか?
{ceil($item.id/$item.id2)}
じゃエラーが・・・・
0586nobodyさん
2008/02/02(土) 00:18:02ID:???ここ最近多すぎる。
0587nobodyさん
2008/02/02(土) 00:21:30ID:???【PHP】 Smarty 隔離スレ 【テンプレート】
http://pc11.2ch.net/test/read.cgi/php/1201879269/
0588nobodyさん
2008/02/02(土) 00:39:57ID:???これ機能使わなくても入れておくだけでメモリ消費しますよね?
0589nobodyさん
2008/02/02(土) 03:00:39ID:???呼び出したときに初めて使われるわけで
0590nobodyさん
2008/02/02(土) 03:09:51ID:???アパッチの子プロセスがえれえ多い場合にはSSLとか削ったほうがいいこともあるちゃが
削ってもバイナリは大して小さくならんし起動時間も短くならんけん放置推奨ばい
0591nobodyさん
2008/02/02(土) 03:41:32ID:???関数でいつでも呼び出せる状態にしておくための
関数テーブルのようなものをメモリに読み込んで
その部分だけ消費するって感じでしょうか。
関数がやたらに多いライブラリもあるので
アイドリング時の消費がどの程度なのかちょっと気になります。
0592nobodyさん
2008/02/02(土) 04:42:25ID:???size=フォントサイズ。GD のバージョンに依存し、ピクセルサイズ (GD1) もしくはポイントサイズ (GD2) で指定する必要があります。
って改悪では?
webで扱う時に問題になるのはほとんど常にピクセルサイズなのに
ポイントサイズって何?
何でこんな改悪が行われたの?
0593nobodyさん
2008/02/02(土) 11:12:21ID:???カンマ区切りの数値にするにはどうしたらよい?
たとえば「1234567」なら「1,234,567」みたいに出力したいです。
0596nobodyさん
2008/02/02(土) 12:44:39ID:???同じリソースIDが返るが、異なるプロセスだと
偶然重なるとこはあり得るし判別には使えないな。
mysqlだったらTEMPORARYテーブルに何か書き込んで
それが残ってるかで見たら?あれは接続毎に独立してる領域だから。
0597nobodyさん
2008/02/02(土) 12:50:28ID:???。とか、を縦書きすると位置が不自然になります
いい方法はないですか?
0598nobodyさん
2008/02/02(土) 12:51:15ID:???0600nobodyさん
2008/02/02(土) 16:00:43ID:f9Zd2DDP$sex
$age
$com
の3つをcsvに書き込むのにはどうしたらいいでしょうか?
また、次に書き込む際に一度書き込んだデータを消さずに
次の行に書き込んでいくにはどうしたらいいでしょうか?
以下のような感じです
A B C
1 男 34 1
2 男 24 2
3 女 45 1
4 男 38 1
よろしくお願いします
0601nobodyさん
2008/02/02(土) 16:13:29ID:???form.htmlのformタグを以下のように書く。
<form method="POST" action="test.php">
[test.php]というファイルを作り、以下の内容を記述する。
<?php
$line = $_POST["sex"] . "," . $_POST["age"] . "," . $_POST["com"] . "\n";
$fp = fopen("test.dat", "a");
fwrite($fp, $line);
fclose($fp);
?>
[test.dat]というテキストファイルを作り、何も書かずに保存する。
test.phpとtest.datをform.htmlと同じディレクトリに置き、
ブラウザからform.htmlでデータを入力する。
0602600
2008/02/02(土) 16:49:50ID:???早速ありがとうございます。
そのままの記述でテストしたところ
Warning: fopen(test.dat) [function.fopen]: failed to open stream: Permission denied in /var/www/vhosts/localhost/httpdocs/test.php on line 3
Warning: fwrite(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 4
Warning: fclose(): supplied argument is not a valid stream resource in /var/www/vhosts/localhost/httpdocs/test.php on line 5
とのエラー文が出てしまいます。
0603nobodyさん
2008/02/02(土) 16:52:31ID:???パーミッションに関するエラーが出ているので、[test.dat]もしくは
そのディレクトリのパーミッションを見直してみるといいよ。
書込みが禁止になってないかな?
0606nobodyさん
2008/02/02(土) 16:58:57ID:???$LoginID = strip_tags($LoginID);
$LoginID = htmlspecialchars($LoginID);
$LoginIDはログインID&名前みたいなもので、
サイトで表示したりPostgreSQLで使用するのですが、こんな対策で大丈夫なんでしょうか?
0607nobodyさん
2008/02/02(土) 17:04:58ID:???ゆとり用の隔離スレなのだから、仕方ないw
>>606
一般的にはそれでおk。
SQL実行が不安だったら、ログイン部分をデータベース参照する
処理じゃないようにして、テキストファイルの中身との一致を
確認する処理にしてしまうのも手だ。
それをやれば、中身は文字列一致しかしないのだから、どんな
記号を入れてこられてもおk。
0609nobodyさん
2008/02/02(土) 17:27:46ID:???必要な時に必要な分必要なだけチェックする方がいいよ
ひろみつ先生に怒られるし
0611nobodyさん
2008/02/02(土) 18:18:18ID:???0612nobodyさん
2008/02/02(土) 18:19:36ID:???0613nobodyさん
2008/02/02(土) 18:19:46ID:pDDEbWQ1一般ユーザーからの直リンクで一切表示させない方法ってありますか?
index.phpファイルの実行時のみlog.txtを操作出来るようにしたいのですが、
パーミッションの設定など試してみましたが無理でした。
0614nobodyさん
2008/02/02(土) 18:23:17ID:???0615nobodyさん
2008/02/02(土) 18:23:29ID:???PHPレベルでそれをやるのは無理。
ファイル名を長くしたり、ランダムに自動で変えたりして、対処するしかないだろうね。
PHPより下のレベルでならば外部からのアクセスを遮断するのは可能だが。
0616nobodyさん
2008/02/02(土) 18:51:05ID:pDDEbWQ1一般ユーザがアクセス出来ない場所というのは同時に、
一般ユーザがPHPの実行でアクセス出来ない場所ではないんでしょうか?
下のレベルというのがよく分からないで、参考になるページとか単語があればお願いします。
0619nobodyさん
2008/02/02(土) 19:07:54ID:UI6Nac8M要するにlogをブラウザがアクセスできないディレクトリにおいて、そこをphp経由で使用する
Webに公開されないディレクトリに置くか/public_htmlの代わりに/private_htmlを使うとか、Web上でもブラウザで見ることができないようにアクセス制限をかけるとか
0620nobodyさん
2008/02/02(土) 19:18:47ID:pDDEbWQ1よく分かりました、ありがとうございます。
今のレンタル鯖では制限のため出来ないようなので、また別の鯖を利用してやってみます。
0621nobodyさん
2008/02/02(土) 19:24:42ID:???0623nobodyさん
2008/02/02(土) 20:21:30ID:+LXVTbfmその配列をtotal.phpへhiddenで渡そうとしても上手く渡せません。
hiddenでは配列を渡せないのでしょうか?
SESSIONを使うのでしょうか?
どなたかやり方をお願いします。
0624nobodyさん
2008/02/02(土) 20:32:31ID:???そのコードを示さないと判断は出来ないと思う。
あと、ページをまたがってデータをやり取りする場合は、
SESSIONのほうがいいとされている。
0625nobodyさん
2008/02/02(土) 20:44:10ID:???0626nobodyさん
2008/02/02(土) 20:50:02ID:???それ、俺も思った。恐らくこんな感じでは?w
<input type="hidden" name="$a[3]" value="{0,1,2}">
0627nobodyさん
2008/02/02(土) 21:01:25ID:???0628nobodyさん
2008/02/02(土) 21:01:44ID:???0629nobodyさん
2008/02/02(土) 21:06:30ID:???0630nobodyさん
2008/02/02(土) 21:07:18ID:+LXVTbfmありがとうございます。
SESSIONでやり取りできました。
二つあるSESSIONのお互いの配列はどうやって最後に一つにしたらいいですか?
何度もすみません。
>>625>>626
無茶な事をしてたみたいです。すみません。
0632nobodyさん
2008/02/02(土) 22:17:42ID:DhduKq9O0633nobodyさん
2008/02/02(土) 22:17:43ID:???<input type="hidden" name="nanka[]" value="1">
<input type="hidden" name="nanka[]" value="2">
これで配列渡せると思うけど
0635nobodyさん
2008/02/02(土) 22:39:51ID:???ありがちなのは
<input type="hidden" name="nanka" value="Array">
だろうな
0637nobodyさん
2008/02/03(日) 00:43:42ID:ogX/8gGfvar_dump($gNameAry2);
echo "ggg>".$gNameAry2[1]."<br />";
としたとき、上のvar_dumpで配列の中身がちゃんと表示されるのに、
下のechoでの出力は何もされません
どんな理由が考えられるでしょうか? この2行の間にはなにもありません
0639nobodyさん
2008/02/03(日) 01:18:05ID:ogX/8gGfどうもです エラーは出ていないんです。var_dumpの結果は以下です
array(2) { ["グループ1"]=> string(24) "シュープリームス" ["グループ2"]=> string(21) "クルセイダーズ" }
0640nobodyさん
2008/02/03(日) 01:21:50ID:???echo "ggg>".$gNameAry2["グループ1"]."<br />";
echo "ggg>".$gNameAry2["グループ2"]."<br />";
0641nobodyさん
2008/02/03(日) 01:36:17ID:???あとデバッグ時にはE_NOTICEまで出力すると分かることが多い
0642639
2008/02/03(日) 01:37:34ID:ogX/8gGfあ、それだとちゃんと表示されました(ggg>シュープリームス)
>>639の形の配列って$gNameAry2[0]の形でアクセスできないんですか?
やばい、相当恥ずかしいこと聞いてますか?orz
0643nobodyさん
2008/02/03(日) 01:41:12ID:rw9YKxIr縦書きフォントを含んでいるttfファイルも
縦書きと横書きが一つのファイルになっていますよね?
そしてimagettftextには縦と横の指定をするオプションがないようです。
縦書きしか含まれていないttfファイルを何らかの方法で作るしかないでしょうか?
一文字ずつ回転させる方法は、一応できましたが、
負荷的に、合成を一度で済ませた方が軽いと思うので
縦書きフォントの方もさぐっています。
0644639
2008/02/03(日) 02:05:53ID:???解決しました ほんとにありがとう
0645nobodyさん
2008/02/03(日) 02:07:19ID:???http://www.php.net/manual/ja/language.types.array.php
か入門書の配列文を読んでからまた質問してください。
配列の「キー」と「値」について勉強しましょう。
0646nobodyさん
2008/02/03(日) 02:14:19ID:???配列と呼ばれてるのはハッシュ
0649nobodyさん
2008/02/03(日) 03:29:09ID:???0650nobodyさん
2008/02/03(日) 03:45:51ID:???PHPでは入れた順番に値を取り出すことが出来る。
だから配列のようにも使えるし、ハッシュのようにも使える。
結構便利だよ。データベースのフィールドとか、
定義した順番に取り出すことが出来るから。
0651nobodyさん
2008/02/03(日) 03:47:39ID:???0652nobodyさん
2008/02/03(日) 03:52:05ID:???0653nobodyさん
2008/02/03(日) 04:12:33ID:???0654nobodyさん
2008/02/03(日) 11:10:45ID:???格納するのと取り出すのを優先するのがハッシュだと思うんだけど。
0655nobodyさん
2008/02/03(日) 11:50:01ID:???0656nobodyさん
2008/02/03(日) 11:53:31ID:???0657nobodyさん
2008/02/03(日) 11:58:45ID:???ギャップを埋めたりするわけでなし、実装コードのどこを見て言ってるのか分からん
0658nobodyさん
2008/02/03(日) 12:18:05ID:???OrderedHashが遅いのではなく配列が遅い
といっても今のPHPはチューニングされてるから一概に言えない
0659nobodyさん
2008/02/03(日) 12:28:41ID:???ハッシュに追加したキー順番データを保持しておけば良いだけ。
キーで取り出すときは、キー順番データを参照しないから変わらない。
foreachで順番に取り出すときは、ハッシュの内部順番データを取得する代わりに
キー追加順番データを見るだけ。
順番データを保持するだけでいいのだから、キーの数×数バイト のメモリ容量と
追加時にわずかな処理低下しか発生しない。
0661nobodyさん
2008/02/03(日) 16:50:41ID:???これなんで?
0662nobodyさん
2008/02/03(日) 19:39:59ID:???0663nobodyさん
2008/02/03(日) 19:40:31ID:ogX/8gGf/user/1002/img/event20080203.jpg
って風に保存されてる画像があるとして、eventの後に続く数字はアップロード日時
なんですが、この日時から半年過ぎたら削除されるようにしたいと思います。
どうしたらいいんでしょう?
今考えてるのは、ユーザID(1001…)がふえてくのをループをまわして対応しつつ、
該当ファイルがあるのを確認したらunlinkで消してくことなんですが。
for($i=1001;$i<=$userCount;$i++){//こんな感じです 荒っぽいですが
if(getimagesize(該当ファイル *日時抽出と比較もここ)){unlink(該当ファイル);}
}
しかしこれだと、ほんとに削除処理できてるのか一目瞭然でわかりづらいので
なんとなく不安です。(全部のユーザのイメージフォルダを開かなきゃいけない)
アップロード領域を一箇所にまとめて処理すればすぐ確認できると思うんですが、
事情がありそれは難しい状況です。
・定期的に不要なファイルを削除できて、削除の確認がすぐに出来る方法ないでしょうか?
0664nobodyさん
2008/02/03(日) 20:09:15ID:???他にやりようはあるけど、それで問題ないなら十分かと
0665663
2008/02/03(日) 20:36:58ID:ogX/8gGf>なんとなく不安です。
こういうのを不安に思うのがおかしいんですかねー?
逆に言ったら、アップされたときにちゃんとアップされてるか
いちいちディレクトリ開いて見るのと同じってことかな…
0666nobodyさん
2008/02/03(日) 20:37:46ID:+kFg/DIc配列$_SESSION('a')中身はArray ( [id] => 1 [name] => 山田 [etc] => 右 ) に
配列の$b中身はArray ( [id] => 5 [name] => 田中 [etc] => 右 )を
入れたいのですがarray_pushではきれいに入れる事が出来ないのですが
やり方を教えてください。お願いします。
0669nobodyさん
2008/02/03(日) 20:54:29ID:???0670nobodyさん
2008/02/03(日) 20:56:07ID:+kFg/DIcショッピングページの様に最初に情報を入れたカート($_SESSION('a'))に
ページをまたぎ次に選択した情報($b)を追加していきたいのですが
やり方がわかりません。お願いします。
0671nobodyさん
2008/02/03(日) 21:00:30ID:???おそらく
$_SESSION = array(
'a' => array([id] => 5 [name] => 田中 [etc] => 右)
)
で
$_SESSION['b'] = $b;
ってしたい。もしくはマージしたいんジャマイカ?
0672nobodyさん
2008/02/03(日) 21:03:08ID:???ま、確かに「役不足」の正確な意味を知らなかったとかは
あるけどさ、ここまでひどくなるのを見ると驚くよ。
ゆとり世代ってすさまじいな。
0673nobodyさん
2008/02/03(日) 21:07:09ID:???やりたいようにやればいいんじゃないの
0674nobodyさん
2008/02/03(日) 21:12:05ID:???$_SESSION['cart'][] = 追加したいアイテム
$_SESSION['cart'][] = 追加したいアイテム
$_SESSION['cart'][] = 追加したいアイテム
0675nobodyさん
2008/02/03(日) 23:24:59ID:zqPVhuXnとしたらversion1が1.6以下だと怒られた
http://www.aubetec.com/hiruneko/blog/archives/2007/10/pear.html
ググるといいサイトが見つかったので手順とおりに進む
pear listでPEARが1.7であることを確認後もう一度installを試みるも同じように怒られた。。。
0677nobodyさん
2008/02/04(月) 00:13:57ID:jFq8zh8H0678nobodyさん
2008/02/04(月) 00:26:16ID:???0679nobodyさん
2008/02/04(月) 01:05:35ID:vecMkQ0bうまく出来ました
ありがとうございました
0680nobodyさん
2008/02/04(月) 01:09:25ID:???0682nobodyさん
2008/02/04(月) 03:53:04ID:???これもweb2.0が復旧した陰の部分なんだろうなぁ。
パソコンの向こうにいるのは、人間だということを理解してくれ。
テレビゲームのキャラ相手にメッセージしていると錯覚してんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています