【PHP】下らねぇ質問はここに書き込みやがれpart11
レス数が900を超えています。1000を超えると表示できなくなるよ。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
0821nobodyさん
2005/10/28(金) 23:08:03ID:deFUSwPyほんとにお願い。
0823nobodyさん
2005/10/28(金) 23:21:20ID:???というただの配列を
array('a'=>'1', 'b'=>'2')
て感じに連想配列に変換してくれる標準関数というのはありますか?
マニュアルの配列のところをざっと見てみたんですけどそれらしいのは無かったので・・
0825nobodyさん
2005/10/28(金) 23:33:59ID:deFUSwPyないのだ。
黄色い、外人がよく使うオーバーな顔文字しかないのだ・・・。
0826nobodyさん
2005/10/28(金) 23:38:27ID:???そうですか(´・ω・`)
SEO対策に、'PATH_INFO'で受け取った文字列を配列にしたかったんですけど、自分で書くしかないですね。
0827nobodyさん
2005/10/28(金) 23:38:31ID:???ないけど、速攻書けるでしょ。
$src = array('a', '1', 'b', '2');
$dst = array();
for ($i = 0; $i < count($src); $i++, $i++)
$dst[$src[$i]] = $src[$i + 1];
0828nobodyさん
2005/10/29(土) 00:51:55ID:???俺のテレパス能力を駆使したところ、おまえは「そのページにある
"2ch風のスマイリー画像"が欲しいのだがどこにあるのか?」と読めた。
管理人に聞けよ。問い合わせフォームあるんだからさ。
0830nobodyさん
2005/10/29(土) 04:59:06ID:hGe3IwmV0832nobodyさん
2005/10/29(土) 05:29:46ID:???JavaScriptなら手動でthrowしなくても、try中のエラーを拾ってくれるんですが、
PHPではそういうことはできませんか?
0834nobodyさん
2005/10/29(土) 06:04:52ID:???0835nobodyさん
2005/10/29(土) 06:06:14ID:???0841nobodyさん
2005/10/29(土) 07:08:42ID:???0843nobodyさん
2005/10/29(土) 07:29:43ID:???だからログへの書き込みが発生しないと削除という動作も発生しないわけで
例えば24時間誰もアクセスしなくても削除されるようにしなきゃならないためには
アクセスしなくても常に動作してなくちゃいけないわけで、それってできるのかなって段階です
0845nobodyさん
2005/10/29(土) 08:34:34ID:IUjor8kw遅いと聞いたことがありますが、
ということは
$$hogeという変数の書き方をした場合もやはり遅くなるのでしょうか?
それともPHPでは変数はもともと動的に
型付けされているから遅くならない…?
0846nobodyさん
2005/10/29(土) 10:48:43ID:hGe3IwmV管理者にメールで通知送信することはできますか?
0848nobodyさん
2005/10/29(土) 11:05:25ID:???↓のエラーはset_error_handler() ではフックできないので・・・
>注意: 以下のエラー型はユーザ定義関数では扱うことができません。
>E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING,
>E_COMPILE_ERROR, E_COMPILE_WARNING
0849nobodyさん
2005/10/29(土) 11:11:10ID:???848にあるように、パースエラーはフックできない。だから、たぶん無理と思われ。
てか、何でこんなことやりたいんだ?
パースエラーをメールで通知して、楽しい?
0850nobodyさん
2005/10/29(土) 11:15:41ID:???あ,そうか・・
パースエラーってのはそもそもコードが実行できない状態なわけだから
フックできるわけないか・・
0851nobodyさん
2005/10/29(土) 11:16:00ID:???0852nobodyさん
2005/10/29(土) 11:20:49ID:???ライブラリなどいろいろ使っていると、サーバ環境に変更があったときなどに、
どこかで思わぬ影響が出る可能性もあるので、念のため、保険的な役割です。
0855nobodyさん
2005/10/29(土) 11:55:04ID:???必要なライブラリが入れ忘れたりしたら、パースエラーは出ます。
まあ、保険ですから、なければそれに越したことはないんですが。
0856nobodyさん
2005/10/29(土) 12:08:59ID:???ただし、未定義の関数を呼び出した場合など、
set_error_handler()でフックできないFatal errorが出ることはあります。
他にはメモリ制限を越えるケースなどもありますし・・・。
0857nobodyさん
2005/10/29(土) 12:16:14ID:???ライブラリがなかったからってパースエラーにはならんよ。
構文解析してんのはライブラリなんかがロードされるより先だし。
0858nobodyさん
2005/10/29(土) 13:34:30ID:???ignore_user_abort(2)
で閲覧者からのブラウザ操作を無効にする
ignore_user_abort(0)
で有効にする
という認識でファイル操作時に使ってるんですが…違ってたら教えていただきたいです。
0859nobodyさん
2005/10/29(土) 14:04:28ID:oQPmcAu1それ筋に詳しいサイトとか教えてもらえないでしょうか?
smartyのような外部スクリプトに頼るのは極力避けたいと思ってます。
0860859
2005/10/29(土) 14:10:04ID:???例えば、mysqlからデータひっぱってきて表示させる場合など、
どうしてもテーブル周りのhtmlとphpが混在してしまってごちゃごちゃ
する感じが非常に鬱です。
0864nobodyさん
2005/10/29(土) 14:54:57ID:???0865nobodyさん
2005/10/29(土) 15:27:45ID:???セッション変数の利用では
session_start
でセッションを読み込み
session_write_close
で(もしくはそのPHPを抜けると)書き出すようなのですが、
「読み込んだけど、やっぱり書き出したくない」という我がままさんな時に利用できそうな関数が見つかりません。
そんなものは存在しないのでしょうか?
ttp://manual.xwd.jp/ref.session.html
の一覧の中にそれっぽいものが無かったのです。
session_destroy
が近いかなと思ったら、セッションファイル自体が「削除」されてしまいました。
0866nobodyさん
2005/10/29(土) 15:33:48ID:???0867nobodyさん
2005/10/29(土) 15:42:21ID:cNmjzv6xフォームで送ると必ず文字化けしてしまいます。
phpMyAdmin上で追加するとちゃんと表示されるんですが・・・
0868nobodyさん
2005/10/29(土) 15:45:59ID:???セッション変数の値を変更しなければ、たとえ書き出されても
内容は変わっていないので問題ないと思うんだけど…
0869nobodyさん
2005/10/29(土) 15:47:29ID:???お返事ありがとうございます。
ファイルの更新日時を別のPHPが参照しているので、更新されると困ってしまうわけです。
また、書き込みにもパワーを使うでしょうから書き込まないにこしたことはないかなと。
0872nobodyさん
2005/10/29(土) 15:54:01ID:cNmjzv6xコード変換で調べてみます
できなかったらまた来ちゃいます
0873nobodyさん
2005/10/29(土) 15:57:51ID:???0874nobodyさん
2005/10/29(土) 16:05:04ID:???仕事だと頻繁に使うだろ。特に金がからむとこ。
0876nobodyさん
2005/10/29(土) 16:05:59ID:???ページ間で渡すデータが多い時、
ページ間で渡すデータにある程度の信頼性が必要な時、
ページ間の移行に自由度or制限を持たせたい時
等々・・・考えれば色々あると思うが
0877nobodyさん
2005/10/29(土) 16:07:19ID:???ありがとうございます。
unset試してみました。
だたセッションファイルの中身が0バイトになってしまい、望んでいた効果ではなかったようです。
0878nobodyさん
2005/10/29(土) 16:08:54ID:???> ページ間で渡すデータが多い時
それなら
tmp.php?val1=hoge1&val2=hoge2&val3=hoge3・・・
といった感じでデータ渡していけない?
0879nobodyさん
2005/10/29(土) 16:10:32ID:???ブラウザ側にデータを持たせると、どう改竄されるかわからない。
その点実データがサーバー側にあるセッション変数は楽ちん。
0880nobodyさん
2005/10/29(土) 16:16:07ID:???まさかunset($_SESSION)とかやったんじゃないだろうな・・・・?
そうでないなら何がしたいのか良く分からん
>>878
もし渡すデータが1Mバイトとかに及んでも問題ないと思う?
0881nobodyさん
2005/10/29(土) 16:19:26ID:cNmjzv6x調べてみると、mb_convert_encoding();という関数を使うのが見つかったんですけど、
これはわざわざインストールしないといけないみたいなんですが、他に方法はありますか?
0882868
2005/10/29(土) 16:20:19ID:???ざっとPHPのソースを追ったみたけど無理じゃないかなぁ。
session_start() で内部の(外部から操作できない)アクティブフラグがオン、
スクリプト終了時にアクティブフラグがオンであればセッションファイルを更新しているみたいだし。
自前でsession_set_save_handlerを書くしかないのかな…
他のPHPからセッションファイルの更新日時を参照してゴニョゴニョするって仕様を
何とかした方がいいようにも思うけど。
0883nobodyさん
2005/10/29(土) 16:23:09ID:???session_unset();
とやった結果、セッションファイルが0バイトに上書きされました。
今
unset();
で試してみましたが、セッションファイルの中身はそのままですが、
更新日時が更新されているので書き込まれてしまったようです。
やりたいことをあらためて説明しますと
「session_start()したあと、セッションファイルに書き込みをすることなくcloseしたい」のです。
イメージ的に言うと
sessin_no_write_close();
のような命令が欲しいのです。
0884nobodyさん
2005/10/29(土) 16:25:42ID:???なるほど。了解しました。
セッションファイルに持たせているファイルが多めなので、いったん読ませるのを避けたかったのです。
何か別のファイルに更新情報だけもたせ、それを見るようにしてみたいと思います。
ありがとうございました。
0885nobodyさん
2005/10/29(土) 16:26:18ID:???・cgiが出力するHTMLの文字コード(作りによっては = スクリプトの文字コード)
・MySQLクライアントが使用する文字コード
・MySQLのバージョンによっては、MySQLサーバーが使用する文字コード
が合っていれば、特に文字コード変換をしなくても化けないと思うけど。
0886nobodyさん
2005/10/29(土) 16:26:35ID:???なるほど・・・
となると今後は
tmp.php?val1=hoge1&val2=hoge2&val3=hoge3・・・
というデータの渡し方は急速に過去の手法になってしまうわけ?
0888nobodyさん
2005/10/29(土) 16:36:40ID:???んな訳ない。セッションはページ間の受け渡しに使うものであって、
他の関係ないページにデータを渡す手段としてのGETやPOSTが無くなるとは
とても思えない。
例えばここ(掲示板等)からgoogleにだってデータ受け渡せるでしょ
http://www.google.co.jp/search?q=the+answer+to+life+the+universe+and+everything
0889nobodyさん
2005/10/29(土) 16:45:31ID:62Wo0hD90890nobodyさん
2005/10/29(土) 16:51:45ID:???あとここはPHPスレだから、htmlスレにいったほうがいいかと
0891nobodyさん
2005/10/29(土) 17:51:01ID:cNmjzv6x<?php
function header($title) {
print <<< _HTML_
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
〜〜〜
<body>
_HTML_;
}
?>
-----------------
header.incをメインのphpで読み込んで、使いたいんですが、エラーがでます
<?php
require_once("header.inc");
function html() {
header("登録完了");
print <<< _HTML_
〜〜〜〜
_HTML_;
}
?>
0893nobodyさん
2005/10/29(土) 23:55:06ID:???や
system("mkdir /var/www/html/hoge");
を動かそうとすると前者はFALSE
0894893
2005/10/29(土) 23:59:51ID:oJpOHanRもう一度最初から
Fedoracore4、apache2でphpを動かしています。
mkdir("/var/www/html/hoge");
や
system("mkdir /var/www/html/hoge",$aho);
echo $aho;
を動かすと前者はFALSE、後者は1が帰ってきて
hogeフォルダが作れません。
windowsの場合だと上記の方法でうまく行っていたのですが
linuxではsystem関数やmkdir等を使う場合は特別な設定が必要なのでしょうか
0896nobodyさん
2005/10/30(日) 00:20:33ID:1KfOrRxK[form.html]
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
フォームから送られてきたものを処理するphpではデータをそのままSQLに送ってます
で、SQLの照会順序は
sjis_japanese_ci
テーブルの照会順序も
sjis_japanese_ci
なんで文字化けするんでしょう??
他どこをいじったらいいですか?
0897nobodyさん
2005/10/30(日) 00:23:55ID:???0898nobodyさん
2005/10/30(日) 03:28:29ID:1KfOrRxKちなみにどうやるんでしょう・・・
0899nobodyさん
2005/10/30(日) 03:45:54ID:???文字コードって知ってる?
SQLにデータを入れるときに、SQLのキャラクタにあわせて文字コード変換してる?
とりあえずSQLに入れる前にmb_convert_encording汁。
0900nobodyさん
2005/10/30(日) 09:42:35ID:???MySQLと接続後(mysql_connect() を呼び出した後)に
mysql_query('SET NAMES sjis');
を実行したら直らないか?
0901893
2005/10/30(日) 11:18:12ID:os3jjLkZだー!そんな基本的なこと何忘れてんだろう・・
ありがとう!
0902nobodyさん
2005/10/30(日) 13:26:35ID:oTdkkAz2ごちゃごちゃしてきて、
どの{}かさっぱり分からなくなってくるんだけど、
何か分かりやすい記述方法ないでしょうか?
インデントとか使ってるが全く俺には効果なしです。
0903nobodyさん
2005/10/30(日) 13:30:59ID:???0904nobodyさん
2005/10/30(日) 13:32:20ID:???ショートカットで現在指定している始点・終点括弧に飛ぶやつとか
範囲色が出るやつとか色々あるからエディタを変えなさい。
0906nobodyさん
2005/10/30(日) 13:46:58ID:???中の処理を適度に関数化。
後は while の中で if 〜 else なんかの処理は continue を使って else を
排除する(インデントを浅くする)ことができる場合もあるし。
まぁ賛否両論だろうけど、好きずきで。
0908nobodyさん
2005/10/30(日) 14:11:21ID:???どう使い分けてる?
0909nobodyさん
2005/10/30(日) 14:22:32ID:???Cookieだと以下のようなことが起きるのでURL埋め込み or HIDDEN渡しにしてCookieは使用していない。
ブラウザAを起動してユーザー名 xxx でログオンしてセッションに xxx を保存
別にブラウザBを起動してユーザー名 yyy でログオンしてセッションに yyy を保存
ブラウザAでログオンしたユーザー名が yyy になってしまう
0911nobodyさん
2005/10/30(日) 14:27:21ID:???$_POST[abc]
どっちが正しい表記だっけ?
0913nobodyさん
2005/10/30(日) 14:48:12ID:???0915nobodyさん
2005/10/30(日) 15:49:34ID:???やりたいことは、複雑な入れ子になった配列にたいしてある関数を適用させるのですが、
すでに関数を適用した配列に対して2回以上の適用を避けるために、配列のIDみたいなのを取得して記録しておこうと思っています。
$hash = array();
function foo($array) {
global $hash;
$id = object_id($array);
if ($hash[$id]) return;
$hash[$id] = true;
foreach ($array as $item) {
if (is_array($item)) {
foo($item);
} else {
...
}
}
}
よろしくお願いします。
0917915
2005/10/30(日) 16:01:16ID:???データである$array自体に変更を加えるわけにはいかないんです。
この制約があるために、配列のIDみたいなのがないかなーと。
0918nobodyさん
2005/10/30(日) 16:32:01ID:???出力用の変数に出力する内容をぶちこんでサイズを見て分割、受け渡しはセッションで。
っていう方法しか思いつきません。他になにか方法があればヒントだけでも知りたいです。
レス数が900を超えています。1000を超えると表示できなくなるよ。