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

【PHP】質問スレッドpart34【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/21(火) 10:19:14ID:???
PHP全般の質問スレです。>>2-10も参照。

【ガイドライン】
質問の前にgoogleやマニュアルを検索してください。
http://www.php.net/manual/ja/
http://php.s3.to/namazu/


◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
2. ハードウェア、OSのバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。


◆質問後の注意
・質問者は必ずIDを表示させてください。
  書き込む場合はメール欄に何も記述しないでください。
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)

過去スレ、関連リンク、FAQ等>>2-10辺り
0712nobodyさん2006/05/06(土) 19:47:44ID:???
>>705>>709
バカかお前。
「中身よりも〜」などと自分で勝手に決め付けるのなら、ここで質問なんかするなボケ。
お前が勘違いしてるだけかもしれないだろう。

必要なソースを全部見なきゃこっちは分からん。エスパーじゃないんだから。
0713nobodyさん2006/05/06(土) 19:58:09ID:???
>>705
> 意味不明な文字群
ってのは具体的になんだ?ちょっとコピペして見せてみ。
実はNoticeエラーの類だったりしないか?
0714nobodyさん2006/05/06(土) 20:36:16ID:CLVxxZvd
$arrに
array(1 => 'a' => 'b', 2 => 'c' => 'd');
という配列が入っています。

foreachで$arrを回して値を変数に代入しているのですが、先頭の数字(1と2)が必要ないため
スキップさせたいのですが、何かよい方法はありませんか?

現在はforeach一回で第二引数までしか取得できないため、foreachで2回処理しています。
よろしくお願いします。
0715nobodyさん2006/05/06(土) 20:37:54ID:???
>>714
なんか配列がそもそもおかしいぞ。
0716nobodyさん2006/05/06(土) 20:40:09ID:o9+nMx/2
>>713
こんなやつ
????唯???正效????????湯散???瑣??条?獵?桃??橢?????????湯散?潮???橢??????楮却慥?????植据
??潟据???????瑣??慳?慫敢?畴???歡?慨?????????湯散?潮???潯?潮??敷?牡??歡健灯???????慴??
????瑳牡????花菌腹???誉鋺???卓???????????欧?慳????卓??????????????????湯散?牡档???????
なんて感じで画面いっぱいにでる。
0717nobodyさん2006/05/06(土) 20:51:38ID:???
>>716
お前は適切な質問の仕方も知らなければマナーも知らない、
おまけにエンコードの基礎知識すら知らないのか。

精子から出直せ。
0718nobodyさん2006/05/06(土) 21:05:58ID:???
>>714
どんな形式の配列かさっぱり分からないので
$arrをvar_dumpした結果を書け。
あとforeachで取得できる「第二引数」って何のこと?
0719nobodyさん2006/05/06(土) 21:06:44ID:???
>>716
1度PHPをアンインストールしてインストールし直してみれば?
ライブラリファイルのどれかが壊れてたりするんじゃないのか。
0720nobodyさん2006/05/06(土) 21:09:11ID:o9+nMx/2
>>717
エンコードぐらいしってる。
他のページは普通に動く(このページも、case 2:の部分を完全に削除すれば普通に動く)
ただ、コメントアウトしただけだと、上記のような文字化けしたような文字で、画面がいっぱいになる。

全くもって始めての出来事。
>>717は、こんな事なったことあるの??
0721nobodyさん2006/05/06(土) 21:14:41ID:???
コメントアウトの前に全角スペースが入ってるとか。
0722nobodyさん2006/05/06(土) 21:21:35ID:???
>>716は「UAがShift_JISを期待してるとこへ、UTF-8を吐いてみました」に見えるけど
内緒のcase 2:にどんな謎があるのかも、>>716状態で何が困るのかもわからない。
0723nobodyさん2006/05/06(土) 21:45:15ID:???
>>720
コード晒せと言われてて晒さずにあーでもねーこーでもねー..おまえの質問の仕方最低だよ
まぁ別に解決しなくてもみんな不幸にはならないわけだが
0724nobodyさん2006/05/06(土) 21:51:59ID:/tb17VG7
初めまして。
「鏡の国」の2ch風掲示板のCGIを、
自分のレンタルサーバーにて利用させてもらおうと検討している者ですが、
投稿者のログ(投稿者のip、投稿日時、内容等を記録したもの)などは、
投稿自体が削除されても残るのでしょうか?

初歩的な質問で申し訳ありませんが、
知ってる方がいらっしゃれば、よろしくお願いいたします。
0725nobodyさん2006/05/06(土) 21:55:44ID:???
>>724
んなもん、ここで聞くより実際に試してみた方が早い
0726nobodyさん2006/05/06(土) 21:55:59ID:???
マルチはうんこ
0727nobodyさん2006/05/06(土) 21:56:03ID:???
>>724
自分で設置して試せば良いでしょ。
やってわからないことを聞く場所であって、人にやらせる場所ではない。
0728nobodyさん2006/05/06(土) 22:26:44ID:eYJY8dWg
>>722
includeしまくってるからコードさらしてもしょうがないような気がしたもので・・・
とりあえず、以下のようなコード
case '2' :
//計算実施
include_once('nomade/object/keisan/answerObj.php');
$Aobj = new answerObj();

$Aobj -> qArr[0]['netuDendouRitu']['amt'] = $_POST['naibuNetuDentaturitu'];
if($_POST['naibuNetuDentaturituUnit'] == 'W/m2k'){
$Aobj -> qArr[0]['netuDendouRitu']['unit'] = 'W/mK';
} else {
$Aobj -> qArr[0]['netuDendouRitu']['unit'] = 'kcal/h・m・℃';
}
$Aobj -> qArr[0]['zaiAtu']['amt'] = '1';
$Aobj -> qArr[0]['zaiAtu']['unit'] = 'm';

$Aobj -> qArr[0]['netuDendouRitu']['unit'] = $_POST['naibuOndoUnit'];
//本文が長過ぎるみたいなので、一部省略
include_once('nomade/tool/keisan/netu/ondoPart.php');
$calcObj = new ondoPart();
$calcObj -> doKeisan($Aobj);
$Aobj -> printCalc('ondoPart0');
break;

これみてもわかんないでしょ。
0729nobodyさん2006/05/06(土) 22:33:00ID:???
>>728
>これみてもわかんないでしょ。
だったら聞くなよ。ソース晒せって言ってる人がいる、晒してもわからないでしょ
とあなたはほざく。なんか噛み合って無い

includeで何やってるかが問題だと思うのだがそういうことは考えないのね。
デバッグの手法も自分なりに考えるのが基本だと思うのだけどそれすらできないのね。
0730nobodyさん2006/05/06(土) 22:34:53ID:???
>>728
switch〜case'1':の部分が無いとそりゃ分からん。おかしいのはそっちだろ?
0731nobodyさん2006/05/06(土) 22:47:59ID:???
>>728
> $Aobj -> qArr[0]['netuDendouRitu']['unit'] = 'kcal/h・m・℃';
ソース中に「・」なんて半角カナ文字が入ってるみたいだけど、
それとphp.iniのインターナルエンコーディングがかみ合ってないとか?
0732nobodyさん2006/05/06(土) 22:48:49ID:???
switchが無理ならif使えばいいじゃん
0733nobodyさん2006/05/06(土) 22:51:58ID:???
>>732
5.1.4ってバグあるの?って話じゃないのか
0734nobodyさん2006/05/06(土) 22:57:30ID:???
>>716
これ、ブラウザのエンコード設定をUTF-8にすると何て表示される?
0735nobodyさん2006/05/06(土) 23:16:31ID:???
なんだかんだ言って、お前ら優しいな。
けど、優しさが罪ってこともあるんだ。
0736nobodyさん2006/05/06(土) 23:27:00ID:PirDF9V7
>>731さん
その通りでした。
しかもよそからコピペしたため・だけUTF-8だったみたい。
(スクリプトはすべてsjisで書いてるのに)
ありがとう。
でも合ってないエンコードを一文字書いただけであんな画面になっちゃうんですね。
勉強になりました。
エラーメッセージにはなれてたけど、あんな文字化けだらけの画面は衝撃的でした。
>>734さん
ブラウザのエンコード換えても分けわかんない文字列の羅列でした。(ご報告まで)
お騒がせいたしました。
0737nobodyさん2006/05/06(土) 23:41:23ID:???
かなり偶然だったけど問題に該当できたようで何より。
コメントアウトしてもダメって言ってたからincludeしてるファイルは関係ないと思ってたんだけど…
(変な文字コードが入ってたために、コメントもそこで崩れる状態になってたんだろうね)
インターナルとかみ合わない文字を入れてるとそこから文法解析が狂うから何が起きるか分からんよ。

最後にこれだけ
> これみてもわかんないでしょ。
思い込みはデバッグの大敵。
全体を削除しないとダメだったのなら、さらに1行ずつ減らしていくなど
どの部分がダメなのかを徹底的に洗い直すようじゃなきゃいかんかと。
0738nobodyさん2006/05/07(日) 00:30:57ID:MBZ5M05L
>>737さん。
そうですね。ある程度経験を積んでいるというおごり(とはいえ2年程度かな?)で、
勝手に問題を絞り込んでしまっていて、その絞り込んだ中に問題が潜んでなくってうろたえたみたいです。
勉強させていただきました。ありがとう。
0739nobodyさん2006/05/07(日) 22:49:12ID:???
外のfunctionにある変数やオブジェクトを中のfunctionで利用したいのですが、
どうすれば利用できますか?

functon outside() {
$model->init();
$hoge = 'hoge';

function inside() {
global $hoge; // これはできなかった
global $model; // できなかった

$model->init(); // これがしたい
$fuga = $hoge; // ここで$hogeを使いたい
}
}
0740nobodyさん2006/05/07(日) 22:58:31ID:???
引数で渡せば
0741nobodyさん2006/05/07(日) 23:09:53ID:???
最近apache2.0.58でウェブ鯖を立ち上げ、PHP5.14をインスコした初心者です。(WindowsXP)

直接html内に<?php>〜<?>を使ってphpを動作させることには成功したんですが
例えば掲示板を設置する場合、外部の掲示板スクリプトファイルをrequireで読み込めばいいんですよね?

その場合その掲示板スクリプトファイルはどのフォルダに置けばいいのでしょうか?apacheのフォルダ?phpフォルダ?
当たり前のことだろうけど、全く分かりません。適当に教えてもらえるとありがたいです。

あるいは、そういった一連の流れが書かれてある解説サイトを教えていただけると助かります。
0742nobodyさん2006/05/07(日) 23:29:07ID:???
>>740
いじれない関数なので引数で渡せない状況なのですが、他に方法はないでしょうか?

0743nobodyさん2006/05/07(日) 23:29:15ID:???
>>739
「中のファンクション」なんてものは無いし。それは「中で定義してる」だけ。
だからこれならできるよ。
functon outside() {
global $hoge; //最初から全部
global $model; //globalにしちゃえばいいのよ
$model->init();
$hoge = 'hoge';

function inside() {
global $hoge; // これはできなかった
global $model; // できなかった

$model->init(); // これがしたい
$fuga = $hoge; // ここで$hogeを使いたい
}
}
0744nobodyさん2006/05/07(日) 23:30:41ID:???
>>742
これってクラスのメソッドなの?だったらextendすれば?
「いじれない関数」の意味がよく分からん。
容易にいじれるようにするためのオブジェクト指向じゃないのか。
0745nobodyさん2006/05/07(日) 23:31:51ID:???
>>741
> 例えば掲示板を設置する場合、外部の掲示板スクリプトファイルをrequireで読み込めばいいんですよね?
ちがう。
普通にその掲示板にリンクを張ってやるだけ。
0746nobodyさん2006/05/08(月) 04:03:57ID:???
>>736>>738
お前、自分の発言を読み返して反省しろ&謝罪しろよ。
さんざん能書き垂れといて、結局お前の思い込み勘違いが原因じゃないか。
みんなの予想通りだ。
しかもそのソースは「よそからコピペ」って・・・、お前全て他力本願だな。
0747nobodyさん2006/05/08(月) 06:08:15ID:???
ソースがコピペっつーか、表示で出す単位の記号文字だけコピペっぽいけどね。
0748みかん2006/05/08(月) 18:27:35ID:kXy5iJS4
質問させてください。

入力に応じてファイルの中身を読み込み、表示するCGIを作成しています。
ファイルの読み込みには file_get_contents を用いており、
読み込むファイルはドキュメントルートより上のディレクトリに置きたいと考えています。

ファイル置き場
/tmp/file/hoge.txt

プログラム(test.php)
<?php
$txt = file_get_contents("/tmp/file/hoge.txt");
var_dump($txt);
?>

この場合、コンソールから
# php test.php
とした場合にはhoge.txtの内容が表示されるのですが、
CGIとしてブラウザからアクセスした場合には

bool(false)

とだけ表示され、ファイルオープンに失敗しているようです。
hoge.txtをドキュメントルート以下に設置した場合は読み込むことができましたが、できればドキュメントルート下には置きたくないのです。
どのようにしたら、/tmp/file/などに置いたファイルをCGIから読み込めるように出来るのでしょうか。
0749nobodyさん2006/05/08(月) 18:32:39ID:???
権限ないんじゃね?
0750nobodyさん2006/05/08(月) 18:38:12ID:???
それか、safe_modeがon、open_basedirが制限されてるとか
0751nobodyさん2006/05/08(月) 18:39:10ID:???
>>748
>ドキュメントルートより上のディレクトリ

そりゃ読めちゃったら逆に困るでしょ。
0752みかん2006/05/08(月) 19:12:52ID:kXy5iJS4
>749
ファイルの権限
-rw-r--r-- 1 mikan
CGIの権限
-rw-r--r-- 1 mikan
こんな感じに、共に自分の所有になっています。

>750
safe_modeはOff, open_basedirはコメントアウトしてあります。

>751
やはりそうなのでしょうか。
自分がルートのマシンなので、設定さえ適切なら可能なのかと思って質問させて頂きました。

ドキュメントルート下に設置して、そちらをブラウザからは見られないように制限をかける方向で進めてみようかと思います。
皆様、回答ありがとうございました。
0753nobodyさん2006/05/08(月) 20:12:54ID:???
>>751
へ?何が困る?
0754nobodyさん2006/05/08(月) 20:34:24ID:8RW8wwlk
共有サーバとかで、PEARがデフォルトで使えない場合でも、
たとえばPEAR::DBならhttp://pear.php.net/package/DB
からまるごとダウンロードしてincludeするだけで
(つまりコンパイルとかする必要なく)
いちいちSSH接続する必要なく、共有サーバでも使えますか?
0755nobodyさん2006/05/08(月) 20:46:56ID:w88YtdTU
PHP 4.4.2をApache2で使用しています。

例えば
<?php
header('Location: http://~~~');

sleep (60);

system('touch /tmp/test');
?>

というスクリプトがあったとすると、
60秒ブラウザは待機してしまいます。

先にリダイレクトを行わせておいて、
サーバー側で処理を続行するには
どうすればよいのでしょうか?

時間のかかる処理があるのですが、
特にエラー等を表示させる必要がないため
ブラウザにリダイレクトさせておいておきたいのです。

よろしくお願いします。
0756nobodyさん2006/05/08(月) 21:18:36ID:???
>>755
試してねーけど
<?php
system('./touch.php /tmp/test > /dev/null &');
header('Location: http://~~~');
exit;
?>
にして

[touch.php]
<?php
sleep(60);
system("touch $argv[1]");
?>
とかしたらできねーか?

ひょっとしたら
system('./touch.php /tmp/test > /dev/null &');
ここは標準エラー出力も/dev/nullに捨てるようにしないとダメかもだが。
07577552006/05/08(月) 21:42:07ID:w88YtdTU
ご返答ありがとうございます。
使用するプログラムの内部なのですが、
POSTされてきたデータに変更を加えてPostgresSQLに保存ということを行っています。

なので、なるべく1スクリプトで済ませてしまいたいのですが、無理でしょうか。。

ob_start()とprintを組み合わせてみたりもしてみたのですが、全く対策にならず、、
0758nobodyさん2006/05/08(月) 22:53:51ID:???
>>757
基本的には「標準出力を閉じた」バックグラウンドプロセスを走らせた状態にして
親プログラムは即座に終了、という形を取らないと無理じゃないかと思う。

保守性を求めてスクリプトを1本にしたいだけだったら、両プログラムの機能を
同じincludeファイルの中に関数で定義しといてそれぞれで別々の部分を呼ぶとか、
あるいはsystemでの実行を自分自身をパラメータ付きで呼ぶようにして
パラメータ付加時はバックグラウンド処理を実行するよう切り替えるとか、
いくらでも手はあるんじゃない?
0759nobodyさん2006/05/09(火) 02:41:56ID:???
<?php
include 'Zend.php';
Zend::loadClass('Zend_Controller_Front');
$cnt = Zend_Controller_Front::getInstance();
$cnt->setControllerDirectory(' [Zend Frameworkのパス]/controllers');
$cnt->dispatch();
?>

とかにある :: ってなに?
0760nobodyさん2006/05/09(火) 02:43:59ID:???
子クラスから親クラスのメソッドを呼び出せる
なのね
0761nobodyさん2006/05/09(火) 02:53:47ID:???
>>760
この場合はオブジェクトを生成しない、静的なクラス関数呼び出し。
07627592006/05/09(火) 03:03:39ID:???
サンクスコ!
もうちょっと触ってみて覚えなあかんね
0763nobodyさん2006/05/09(火) 08:40:20ID:???
POSTでオブジェクトって送信できますか?
なんかいちいち<input type="text">で送るのめんどくさくて
一つのクラスにまとめて送信しちゃおうと思ったんですが、
どうもやり方がわからなくて。
0764nobodyさん2006/05/09(火) 09:12:54ID:???
>>763
あのね。POSTはHTTPの話なの。で、オブジェクトはPHPの話なの。
なんかフレームワークとか使わないと無理。
0765nobodyさん2006/05/09(火) 09:16:36ID:???
つシリアライズ
0766nobodyさん2006/05/09(火) 09:46:19ID:???
>>765
今はserialize()して、ファイルをアップロードして、
次のページでそのファイルをunserialize()するって
作業をしてるんですが、ファイルを作るのがどうも
ひっかかるんですよね。
http://jp.php.net/manual/ja/language.oop.serialization.php
07677632006/05/09(火) 09:47:59ID:???
すみません、>766=>763でした
0768nobodyさん2006/05/09(火) 10:08:39ID:???
>>766
アップロード??サーバーから同じサーバーへ??
0769nobodyさん2006/05/09(火) 10:23:13ID:???
>>766
serializeした文字列をPOSTすれば?
0770nobodyさん2006/05/09(火) 10:29:39ID:???
>>763
> なんかいちいち<input type="text">で送るのめんどくさくて
セッションに格納するとか
0771nobodyさん2006/05/09(火) 11:36:45ID:???
質問です。
文章中の特定の語句を、「str_replace」を使って別の語句に一括置換する際、
htmlタグ内部の語句についてはエスケープさせたいのですがうまくいきません。

[文章例]
<a href="ttp://abc.def/" title="リンク先">某サイト</a>へリンクします。

上記例では、「 title="リンク先">」の「リンク」については置換せずに、
「リンクします。」の「リンク」だけを置換したいのです。

どなたかヒントを含め、何か教えていただけると助かります。
07727662006/05/09(火) 11:50:43ID:???
>>768
マジ初心者ですみません。単にサーバ上でファイルに書き込むだけです。

>>769
serializeした文字列をPOSTしたあと、次のページで
http://jp.php.net/manual/ja/language.oop.serialization.php
の例の

$s = implode("", @file("store"));
$a = unserialize($s);

に対応する部分が書けず、仕方なく例と同じ手段をとってます。

>>770
まだセッションについて全く理解してないので調べてみます。

まさかこんなにレスが付くと思いませんでした。感謝です。
0773nobodyさん2006/05/09(火) 12:15:28ID:???
>>771
str_replaceでやるのは難しいんじゃないかい。
preg_replaceとかで正規表現駆使せんと。
0774nobodyさん2006/05/09(火) 12:17:38ID:???
>>766>>772
普通にやりゃいいだけの話なのに自分が未熟だからコードが書けないだけで
> ファイルを作るのがどうもひっかかるんですよね。
とか言われても回答に窮するだけだと思うんだが。
07757712006/05/09(火) 14:16:59ID:???
>>773
やはりそうですか。
少し考えたのですが、htmlタグをエスケープするのが難しいです。

置換前の語句を\wordとして、次のようなコードなどを含め何個か試したけど全滅。orz

$text = preg_replace('/^(<\/?)('.$word.')^([^>]*>)/e', '<a href="/link.php">\\2</a>', $text);

正規表現の才能が欲しいです。。
0776nobodyさん2006/05/09(火) 14:48:06ID:hIUILZCE
ディレクトリAの中のもの(ファイル&ディレクトリ)をディレクトリBに移したいのですが
、そのようなことは可能でしょうか?
ファイルはコピーできたのですが、ディレクトリのコピーができません
0777nobodyさん2006/05/09(火) 14:52:31ID:???
>>775
しますまで入れて
リンクします→○○します
にすればいいのでは?
0778nobodyさん2006/05/09(火) 15:16:13ID:???
>>776 system()
07797542006/05/09(火) 15:32:47ID:???
すいません、どなたか
>>754
を・・・。
0780nobodyさん2006/05/09(火) 15:51:24ID:???
>>779
>>754って日本語が変なんだもん。全部で1つの文になってて、
「共有サーバとかで、〜(中略)〜共有サーバでも使えますか?」
もうちょっと他人にわかるように書きなさいな。
0781nobodyさん2006/05/09(火) 15:53:44ID:???
>>780
まあ意地悪してやんなさんな。
大体わかるでしょ(間違ってたらしょんぼりだけど)

>>779
正しく設置、includeされていればいけるはず。
というか、なんで試さないの?
無料のところでもいいから試して見れば早いかと。
0782nobodyさん2006/05/09(火) 17:36:59ID:???
>>778
マニュアル見ますたが、わかんないです(;;^ω^)ノ
詳しくお願いします
0783nobodyさん2006/05/09(火) 18:32:44ID:???
UNIXのコマンド覚えればokかな
0784nobodyさん2006/05/09(火) 22:31:33ID:???
>>741に答えて
0785nobodyさん2006/05/09(火) 22:59:03ID:???
使用する掲示板のスクリプトに説明ないの?
0786nobodyさん2006/05/09(火) 23:31:47ID:???
>>784
お前、質問する態度としては最低の部類に入るクチだな。
そういう態度ではなおさら答える気にもならん。

情報はタダで手に入るのが当然だ、と思ってる感じが気に入らない。
しかも自分でもロクに検索すらしてないようだし。
0787nobodyさん2006/05/09(火) 23:45:55ID:???
>>771
基本的には該当文字の両脇が>と<で挟まれてたらマッチ対象になると考えればいい
preg_replace("/(>[^<]*)$from([^>]*<)/", '$1'.$to.'$2', $text);

>>784
>745で答え貰ってるだろ
0788nobodyさん2006/05/09(火) 23:51:41ID:???
PDO&Mysqlを使用してます。

まず SELECT COUNT(*)して全体のレコード数を取得して
その値に+1したものをPRIMARYにしているのですが、

beginTransaction();
した後にはクエリーを1回しか発行できないようです。
beginTransaction();の前にPRIMARYを求めるのが普通なのでしょうか
0789nobodyさん2006/05/10(水) 00:35:21ID:WURMeF5p
;mb_string.func_overload =0

という設定がphp.iniありますが、これはどうことをするためのものなんでしょうか?
0790nobodyさん2006/05/10(水) 00:37:12ID:???
PRIMARYというのは?
>beginTransaction();
>した後にはクエリーを1回しか発行できないようです。
どうして
0791nobodyさん2006/05/10(水) 00:38:21ID:???
>>789
ttp://www.php.net/manual/ja/ref.mbstring.phpより

>シングルバイト対応の関数を mbstring 関数の対応する関数でオーバーロード (置換)します。

ドキュメントくらい読もうよ…
0792nobodyさん2006/05/10(水) 00:51:23ID:???
>>788
回答じゃないけど、auto_incrementって何か面倒な問題抱えてるの?
07937712006/05/10(水) 01:00:35ID:???
>>787
この正規表現をベースに実現できそうです。
ありがとうございました。
0794nobodyさん2006/05/10(水) 01:23:33ID:EkcMnrpq
phpをはじめようと思いまして
xamppをインストーラーで全てインストールしました。
apacheを起動して
http://localhost/xampp/

http://localhost/
にも接続してみましたがxamppのコントロールパネルなどに接続できず、
テスト用のphpにもひょうじされません。
これはどのような原因が考えられますか?よろしくご指導ください。

環境はXP・IE6です。
0795nobodyさん2006/05/10(水) 01:34:01ID:???
PRIMARYというのはPRIMARYキーです。
PRIMARYキーとなる$idをSQL発行で取得。
そのごprepareを受け付けてくれないのです。

>>792
mysqlに依存しているので、できればauto_incrementは使いたくないですね。

07967942006/05/10(水) 01:49:33ID:EkcMnrpq
ちなみにエラーメッセージは「取り消されたアクション」
とでてしまいます。
わかりにくい説明でもうしわけありませんが、よろしくお願いします。
0797nobodyさん2006/05/10(水) 03:15:21ID:hRdDy7di
共通関数の管理について質問です。

a.phpとb.phpで共通利用する関数などは
common.php等に書いておいてincludeするものだと思いますが、
複数の共通関数があるとincludeしたものの使用しない関数もあると思います。
高アクセス条件下においてはメモリの消費も馬鹿には出来ません。

極論を言えば関数毎にファイルを分ければ良いのでしょうが、
それもなんだかめんどくさいので、何か良い知恵があれば
教えてください。
0798nobodyさん2006/05/10(水) 03:37:14ID:???
>>796
とりあえずそういう挙動は単にhttpdが動いてない時のもの
/logs/error.logに何か書いてあるかも

>>797
ベンチマークの取り方を覚えるといいんじゃないかな
0799nobodyさん2006/05/10(水) 05:26:20ID:???
>>796
Winのスタートメニューのアパッチに「Monitor Apache Servers」ってのもあるよ
アパッチがきちんと起動出来ているかこれで確認できる。
0800nobodyさん2006/05/10(水) 06:21:43ID:???
>>797
そこまで気にするなら、中間コードをキャッシュさせればいいじゃん。
0801nobodyさん2006/05/10(水) 09:19:05ID:???
>>797
共通関数を別ファイル(ライブラリ化)するメリットは、メモリ消費云々よりも後々のメンテや生産性の向上の為であると思うけどね。
最近の鯖スペックなら多少の事なら誤差の範囲。
決め付けるわけではないが、そういう細かい事にこだわる人に限って、肝心な部分が見えてない人が多いと最近特に感じる。
0802nobodyさん2006/05/10(水) 11:08:25ID:???
>>797
コードキャッシュ型のアクセラレーターを使うのがいいんじゃないかな。
でもまず、commonとかに全部押し込まないで機能カテゴリー別にファイル分けれ、って思うけど。
まさか10個やそこらの関数でメモリ消費云々言うとも思えないし。
0803nobodyさん2006/05/10(水) 12:34:18ID:ADlLU0Cj
自分で定義した関数の中で、処理に一番時間のかかる関数を特定するにはどういった方法がありますか?
0804nobodyさん2006/05/10(水) 12:38:58ID:???
>>803
ベンチマーク
08058032006/05/10(水) 13:47:10ID:ADlLU0Cj
>>804
レスありがとうございます。
関数ごとにベンチマークをとる場合、全ての関数に時間を測るコードを埋め込むしかないでしょうか?
0806nobodyさん2006/05/10(水) 18:58:52ID:???
>>805
別に呼び出し側でやってもいいんじゃないの
0807nobodyさん2006/05/10(水) 19:28:55ID:???
>>805
xdebugでプロファイルすればー

ttp://www.glamenv-septzen.net/pukiwiki/index.php?PHP%2Fxdebug
08087942006/05/10(水) 21:44:19ID:qX9rDLEh
>>799
ありがとうございます。
ApacheMonitor.exeを立ち上げましたが、
running all apache services
と表示されて特に問題はなさそうです。

>>798
ありがとうございます。
ログですが、かなり溜まっているようです。77kBありました。
下の10行ほどを抜き出してみます。

C:\Program Files\xampp\apache\logsから

PHP Warning: Function registration failed - duplicate name - openssl_pkcs7_encrypt in Unknown on line 0
PHP Warning: Function registration failed - duplicate name - openssl_private_encrypt in Unknown on line 0
PHP Warning: Function registration failed - duplicate name - openssl_private_decrypt in Unknown on line 0
PHP Warning: Function registration failed - duplicate name - openssl_public_encrypt in Unknown on line 0
PHP Warning: Function registration failed - duplicate name - openssl_public_decrypt in Unknown on line 0
PHP Warning: Function registration failed - duplicate name - openssl_error_string in Unknown on line 0
PHP Warning: openssl: Unable to register functions, unable to load in Unknown on line 0
[Wed May 10 21:39:24 2006] [notice] Child 3656: Child process is running
[Wed May 10 21:39:24 2006] [notice] Child 3656: Acquired the start mutex.
[Wed May 10 21:39:24 2006] [notice] Child 3656: Starting 250 worker threads.
[Wed May 10 21:39:25 2006] [notice] Child 3656: Starting thread to listen on port 80.
[Wed May 10 21:39:25 2006] [notice] Child 3656: Starting thread to listen on port 443.

こんなエラーが出ているのですが、原因はなんなのでしょうか?
ご存知のかたいらっしゃいましたらどうかよろしくお願いします。
0809spam業者のアドレス2006/05/10(水) 23:28:55ID:???
>>794
apacheスレ池
0810nobodyさん2006/05/11(木) 00:25:10ID:???
配列の値に対するキーを返す関数ってありませんか?
0811nobodyさん2006/05/11(木) 01:26:06ID:???
リファレンス(笑)
0812nobodyさん2006/05/11(木) 01:53:39ID:???
DBへフォームからの入力値を格納する場合
htmlspecialcharをしてから格納をしたほうがいいですか?

それとも
DBから引き出した後にhtmlspecialcharしたほうがいいですか
■ このスレッドは過去ログ倉庫に格納されています