【PHP】下らねぇ質問はここに書き込みやがれpart17
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50
過去スレは>>2
0752nobodyさん
2006/03/11(土) 17:44:19ID:???対応が必要なんだったら、そのだるい方法しかないよ。
前以てフィルタワードを各エンコーディング毎に用意しとくてもあるけど。
0755nobodyさん
2006/03/12(日) 00:18:43ID:???セキュリティ的にはローカルのFTPにアクセスするだけなら安全なのかな
ネットワークを介すとFTPってのはちょっと怖いよね・・
0756nobodyさん
2006/03/12(日) 09:25:46ID:???Assigning the return value of new by reference is
deprecated in PEAR.php on line 557
line 557: $a = &new $ec($code, $mode, $options, $userinfo);
line 558: return $a;
PEAR/Auth.phpを読み込んだら、上記のようなエラーが複数出力されました。
これは、どのような意味のエラーなのでしょうか。
また、E_STRICT設定でもエラーが出ないようにするための対処方法も教えて
いただけると助かります。ご回答よろしくお願いします。
0757756
2006/03/12(日) 10:05:41ID:???失礼いたしました。
0758nobodyさん
2006/03/12(日) 10:30:23ID:???大垣本で調べたけど、Postgreの関数しか見つかりませんでした。
MySQLでは配列を配列のまま格納することは出来ないんでしょうか・・・。
もしそうなら、みなさんは配列のデータをどう分解してMySQLに収めるのがベストだと思いますか?
僕が考えているのは、たとえば$hairetu[1]〜$hairetu[50]まで50個の値が入ってるとして、
順にfor文で添え字1から取り出していって、DB格納用の変数$DBに入れて「:」などの記号を挟んで
「.」で連結していき、その$DBをMySQLテーブルの「text」フィールドに入れます。
もっとスマートなやり方などはありますでしょうか?
0759nobodyさん
2006/03/12(日) 10:32:15ID:???連想配列やキーが連続した数字ではない配列では
使えない手法ですよね。
0760nobodyさん
2006/03/12(日) 10:36:46ID:???0761nobodyさん
2006/03/12(日) 10:50:11ID:???説明
bool isset ( mixed var [, mixed var [, ...]] )
のような表記があります。
この場合は単純なのですが、こういった表記の 「mixed var」や括弧の意味などの凡例は
どのページに明記されているのでしょうか?
0764nobodyさん
2006/03/12(日) 11:49:30ID:???どっかのversionからnewがデフォルトで参照を返すようになったらしい
つまり & new の & が余分
0765nobodyさん
2006/03/12(日) 12:20:38ID:LBgD1ivZクッキーが有効ならクッキー、
有効でないなら、URLに自動的に付加されますが、
スクリプト側で、セッションにクッキーが使用されているか否かを知るには
どうすればいいですか?
0767765
2006/03/12(日) 12:28:39ID:???$_COOKIE[session_name()]の有無を調べればいいんですね。
今までセッションの挙動がいまいち分からなかったのですが
PHP側で裏でいったんリダイレクトしてたんですね。
0768nobodyさん
2006/03/12(日) 13:02:06ID:???> URLに自動的に付加
ってことだから、use_trans_sidを使ってると思うけど、
初回のレスポンスはcookieとURL付加の両方をやって
次のアクセス時のリクエストにcookieが含まれていればcookieだけ使うって感じじゃなかったっけ?
0770768
2006/03/12(日) 14:11:57ID:???なるほど、最初は両方するんですね。
クッキー判定をするために裏でやっているのだと思ったのですが
そういうことでしたか。
ありがとうございました。
0771nobodyさん
2006/03/12(日) 14:38:24ID:???その次「us001000」を取り出したいのですが、
スマートな方法はないでしょうか?
現在は、力ずくで、文字を分解して、+1して、桁数を数えて…。
見たいな事をしています。
よろしくお願い致します。
0772nobodyさん
2006/03/12(日) 14:59:59ID:???<?php
$str = 'us000999';
echo $str, PHP_EOL;
$str++;
echo $str, PHP_EOL;
?>
結果
us000999
us001000
0773nobodyさん
2006/03/12(日) 15:03:46ID:???なんか、苦労してたのがバカみたいです…。
PHP万歳
0775nobodyさん
2006/03/12(日) 15:20:19ID:???逆に怖い気もする
0776nobodyさん
2006/03/12(日) 15:44:43ID:???そんなに怖がることもない。
0777nobodyさん
2006/03/12(日) 15:45:33ID:whEzuZdEこのように</a>のスラッシュはエスケープした方がいいですか?
0779nobodyさん
2006/03/12(日) 15:52:00ID:???似た様な事をやろうとして頭を悩ませてる。
serialize()でやった場合、そのデータをphpmyadminなんかでちょっといじりたいって時にそのserializeしたデータはどんな風に見えるんだろう?
「はてなブックマーク」のタグ的な仕組みを作ろうとしてるけど、こんな場合はやっぱり、区切り文字入れてフィールドに格納。
読み出したときにばらして配列に入れてごにょごにょ、っていうほうが楽そうな希ガス
0782nobodyさん
2006/03/12(日) 15:54:49ID:???実際にserializeしたのを出力してみればいいじゃない。
区切り文字でくっつけたのと似たような感じで文字列化されてるよ。
0786nobodyさん
2006/03/12(日) 16:34:26ID:???それ、$strが'us999999'までいくと次が'us000000’になるのか。
挙動をちゃんと覚えりゃ、なかなか使えそう。
0787786
2006/03/12(日) 16:36:24ID:???'us000000’→'ut000000’。戻ってどないすんねん
0788nobodyさん
2006/03/12(日) 16:53:19ID:???0790nobodyさん
2006/03/12(日) 17:19:10ID:???前に質問スレでその話題でベンチ計ったけど、エスケープや変数展開がない場合は全員ダブルの方が僅かに速かったよ。
0791nobodyさん
2006/03/12(日) 17:22:50ID:???処理量はシングルの方が少ないから
テストの方法が悪いか、その他の要因が働いたとしか思えないのだが。
0792nobodyさん
2006/03/12(日) 17:45:55ID:???とりあえず、100桁の文字(エスケープも変数も含まない)を
10000回printする、ってやつを30回くらい交互に実行させてみた。
結果としては
「不定期に一方が誤差程度に勝つだけで毎回勝敗が違う。故に両者に速度差はほぼ無いと言える」
となったよ。
>>791
なんかPHPってそこの処理はちゃんと最適化してないのかダブルがよっぽど最適化されてるのか
変数の有無で同じ関数使うようにしてるのか知らないけど、シングルだから処理少ないってことはなさげ。
0793792
2006/03/12(日) 17:53:12ID:???ってベンチマークもやってみた。(printの方が処理コスト大きいんで誤差が把握しにくかったので)
でもいずれも結論としては同じ。どっちが速いみたいな差は全然ない。ほんとに誤差しか違わない。
0794nobodyさん
2006/03/12(日) 18:39:00ID:???0795nobodyさん
2006/03/12(日) 19:02:50ID:???値に何らかの問題や未入力部分があったときにブラウザの「戻る」ボタンで戻らせたいです。
このとき、あるサーバでは、「戻る」でフォーム画面に戻ると、さきほど入力した値が残っています。
しかし別のサーバで同じスクリプトを置いてみたら、「戻る」でフォームの値がクリアされてしまっています。
これは恐らくphp.iniの設定の違いだと思うのですが、どの設定を直せばいいのでしょうか・・・??
0796nobodyさん
2006/03/12(日) 19:20:07ID:???残ってる場合 -> ブラウザのキャッシュが使われている(つまり、鯖へのアクセスも無し)
クリアされている場合 -> 鯖から新規取得されている(鯖へのアクセス有り)
てなわけで、キャッシュ周りの設定をチェック(やポリシーの決定を)すれば良いよ。
0797nobodyさん
2006/03/12(日) 19:27:48ID:???キャッシュ周りというと「session.cache_limiter」でしょうか??
戻るボタンでも入力した値が残るサーバをA、クリアされちゃうサーバをBとしますと、
AとBのphp.iniを比べてみましたが、「session.cache_limiter」など
怪しいところはみんな同じ値(nocache)なんです・・・。
いったいどの設定を直すのでしょう。
0798nobodyさん
2006/03/12(日) 19:29:11ID:???0800nobodyさん
2006/03/12(日) 19:55:39ID:???たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間
これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0801nobodyさん
2006/03/12(日) 20:10:11ID:???たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間
これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0802質問
2006/03/12(日) 20:17:10ID:OTf6vXB0その上のディレクトリの中身もリストに出すやり方がわかりません。
説明が分かりにくくてすみません。
簡単に言うと「りすてぃんぐ」というフリーソフトと同じ機能を持つphpが作りたいんです。
(http://www.oohara.jp/ppp/listing.html)
作りかけソース貼ったほうがいいですか?
0804質問
2006/03/12(日) 20:44:05ID:OTf6vXB0<html>
<head>
<title>PSPデータベース音楽</title>
</head>
<body bgcolor=black>
<table border=1 bgcolor=white>
<tr>
<td bgcolor=lightblue>タイトル</td>
</tr>
<?php
if ($dir = opendir("Music/")) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != "..") {
echo "<tr><td><a href=/Music/$file>";
echo "$file\n";
echo "</a></td></tr>";
}
}
closedir($dir);
}
?>
</table>
0805質問
2006/03/12(日) 20:55:13ID:OTf6vXB0http://ccfa.info/cgi-bin/up/src/up25666.html
理想はこれです。
http://ccfa.info/cgi-bin/up/src/up25665.html
0806質問
2006/03/12(日) 21:01:03ID:OTf6vXB0理想のほうは
一番下にスクロールするとomaというフォルダの中身もリストに表示されます。
こういうふうにしたいんです。
何度もすまんです。
0807nobodyさん
2006/03/12(日) 21:06:12ID:???じゃだめなん?
0808nobodyさん
2006/03/12(日) 21:07:00ID:???まずその直接埋めこんでるものを$dirが引数になる関数にする。
次にechoする前のところにディレクトリの判別を入れてディレクトリだったら
それを引数にして再帰呼出しする。
ヒントは与えた。がんばれ。
0809nobodyさん
2006/03/12(日) 21:13:12ID:???0810質問
2006/03/12(日) 21:16:47ID:OTf6vXB00812nobodyさん
2006/03/12(日) 21:17:08ID:???色々悩むの面倒だから、漏れはこうしてる
ブラウザの戻るで戻ろうが、こっちの用意した戻るボタンを使おうが値が読み戻されるようにしたいなら、
if($ぽすと){$せっしょん=$ぽすと}
で、$せっしょん['なまえ']でうめこんでおけばいいんじゃね?
いろいろな場面で汎用性もたせたいなら、
$はんよう=$せっしょん
にしといて$はんよう['なまえ']にしといたほうが楽。
0813nobodyさん
2006/03/12(日) 21:19:08ID:???下のディレクトリを辿っていく必要があるわけじゃなくて
1つ上のディレクトリだけやればいいだけのようだから
(そういう仕様が便利なのか知らないけど)
再帰はいらんと思う。
0814nobodyさん
2006/03/12(日) 21:22:43ID:???関連してるのかわからないけど,POST使ったページに対してブラウザで「戻る」を選択すると
「データを再送信しますか?」って出るんだけど,これを防ぐ方法あるいはデフォルトで再送信にする設定とかないですか?
0815質問
2006/03/12(日) 21:30:53ID:???その通りです。というか引数はちょっと苦手だから
一つ上のディレクトリまでだけの引数なしプログラム
を組もうと企んでいます。
しかしながら、それすらよく分からないていたらく。
本音を言うと、答えを教えてもらいたいです。
0816nobodyさん
2006/03/12(日) 21:36:10ID:???どのRFCだったか忘れたが、POSTを使ったページをreloadした時には
confirm dialogを出さなければいけないという決まりがあった希ガス。
0817nobodyさん
2006/03/12(日) 22:17:54ID:???ttp://www.phpweb.jp/accelyzer/ をダウンロードして設置手順通りに設置
解析したいウェブページの、カウンターを表示したい場所に、次の文字列を記述します。コピペ推奨。
<?include("./accelyzer/store.php");?> ←index.phpに挿入
HTMLファイルの拡張子を「.php」に直します。
movableのテンプレート index.htmを index.phpに変更
さくらの鯖と独自ドメインを取得
http://homoaniki.com/ にアクセスすると
http://homoaniki.sakura.ne.jp/blog/index.phpに転送するように設定
ブログを見るとアクセス解析が反映されていません、何が問題だったのでしょうか教えてください
0818nobodyさん
2006/03/12(日) 22:33:33ID:???提示されたソースを読んでないから何とも言えんが、
カレントディレクトリの処理が出来てるなら
>>807に示されてるのが、回答のひとつ
0819nobodyさん
2006/03/12(日) 22:38:41ID:???<?include("./accelyzer/store.php");?>
パスは本当にこれで合ってるんだろうな
0820nobodyさん
2006/03/13(月) 00:20:10ID:???IEとfirefoxでも動作が違うよね
IEだとformのselectedの状態に戻る。
firefoxでキャッシュが効く状態だとユーザが選択した状態を保持する
だったような気がする
0823nobodyさん
2006/03/13(月) 02:03:55ID:???0824nobodyさん
2006/03/13(月) 02:18:42ID:???0825nobodyさん
2006/03/13(月) 02:33:33ID:???$hage = "値";//普通の変数
function kansu(){
ここ
}
引数は使わずに、globals宣言も使わずに、function内の「ここ」って書いてある位置からグローバルスコープの中にいる「$hoge['name']」を参照したい時はどうしたらいいのでしょうか?
グローバルの普通の変数「$hage」を参照したい場合は「$GLOBALS['hage']」というのは解るんですが、添字付きの配列の場合はどうしたらよいのでしょうか?
0827826
2006/03/13(月) 03:02:06ID:???0828nobodyさん
2006/03/13(月) 05:16:01ID:???>>822
俺もセッションを使うことを考えたけど、これがたとえば選択肢5個のラジオボタンが
計100個もあるようなフォームだったら、気が遠くなるコーディング作業になるわけで・・・。
もちろんループ文でHTMLを生成するように組むんだけど、複雑でややこしくなる・・・。
単にブラウザがキャッシュしてくれてりゃそれで簡単に済む話なのに、
どうしてあるサーバではそれが可能で、別のあるサーバではそれが不可能なんだぁ〜!!
両者のphp.iniの設定を見比べてもほとんど違いが無いように思えるし。。。
0829nobodyさん
2006/03/13(月) 06:11:45ID:???php.iniの内容じゃなくて、HTTP上で実際にどういうデータ(特にヘッダ)が
やり取りされてるか調べる。
0831nobodyさん
2006/03/13(月) 08:37:24ID:???そういう環境変数(?)ってありましたっけ?
で、仮にそのデータを調べたとしても、それを修正するのはphp.iniの設定なのでは??
見当違いのこと言ってたらごめんなさい。
>>830 「リンクしたら」??? すみません、ちょっと意味が分からない…
0832nobodyさん
2006/03/13(月) 08:51:54ID:???文字化けします。 直りますでしょうか。
0834nobodyさん
2006/03/13(月) 09:00:26ID:q2braTai処理が止まってしまうようなのでmail関数を実行する前にmail関数でメール送信できるか調べ
できない場合はエラーメッセージを出すようにしたいのですが、うまくいきません。
function_exists関数では設定ミスまでは調べてくれないようでした。
どうすればうまくいくでしょうか?
0836nobodyさん
2006/03/13(月) 10:51:13ID:???記述をしているのですが、かなり面倒です。
もっと簡単な方法があったらぜひ教えてください。
$_COOKIE['example'] = isset($_COOKIE['example']) ? $_COOKIE['example'] : NULL;
0837nobodyさん
2006/03/13(月) 11:05:51ID:nCSNQGQcチームで開発してて、本番環境がすでに稼働している状態で、
新機能を開発し、テストに上げ、システム管理者やユーザにメンテナンスを連絡し本番に適用する、
という流れを詳しく知りたいです。
0841nobodyさん
2006/03/13(月) 13:59:50ID:???0842nobodyさん
2006/03/13(月) 14:03:43ID:???if (isset($_COOKIE['example'])) $_COOKIE['example'] = $_COOKIE['example'];
if (isset($_COOKIE['hogehog'])) $_COOKIE['hogehog'] = $_COOKIE['hogehog'];
素直にこうするといいかも。
スペースで縦をそろえると結構ソース読みやすいし。
三項演算子は(〜?〜:〜);か(〜)?(〜):(〜);と括弧で括られてないと何故か不安な俺が居る。
0843nobodyさん
2006/03/13(月) 14:33:50ID:19XzlIjZURLが、クエリの連なった形になります
?module=hoge&action=fuga&id=piyo
getで投げたい場合、
formタグのaction属性にこのようなURLを書いても、
うまく投げられません。
みなさんはどうやっていますか?
0844nobodyさん
2006/03/13(月) 14:41:36ID:???method="get"
PHP5を使ってます。
正規表現で&(アンパサンド)をヒットさせたいのですが、
preg_match ("/\&/", $src, $match)や"/&&/"とやってもヒットしません。
どのようにすればヒットさせられますか?
0845nobodyさん
2006/03/13(月) 14:49:29ID:???というかここまではできたんですが、これとは別に、コメント中にURLがある場合に自動的にリンクになるようになっており、
省略のリンク部分が↑のリンクタグと重なるとおかしくなってしまいます。
これをウマーく回避したいのですが、どうしたらいいでしょう?
今はコメントの文字数が多い場合にstrip_tagsしてるんですがそれだとURLの自動リンクも無しになってしまうので困ってます。
0847nobodyさん
2006/03/13(月) 14:58:49ID:???&の部分が打ち間違えで$になってました…
>846に同じく、
strip_tagsを先にやって、その後自動リンクを張るのはどう?
もしくはstrip_tagsで<a>タグを有効にするとか。
0849nobodyさん
2006/03/13(月) 15:08:59ID:???いやいや、俺も打ち間違えで1時間半は時間つぶしてたから気にすんな。
かなりぐぐったけど全然情報出てこないで新手のバグ?なんて無駄な詮索してしまったよ。
0850nobodyさん
2006/03/13(月) 15:12:20ID:uoSdweNm0851nobodyさん
2006/03/13(月) 15:37:20ID:???0852nobodyさん
2006/03/13(月) 16:14:48ID:???それ意味ないよ
やりたいのは
if (!isset($_COOKIE['example'])) $_COOKIE['example'] = NULL;
と未定義変数を定義したいのだと思う
■ このスレッドは過去ログ倉庫に格納されています