【PHP】下らねぇ質問はここに書き込みやがれpart13

このエントリーをはてなブックマークに追加
423nobodyさん
>>420
ありがとうございます。
ぐぐってその方法は分かったのですが、日本語フォントをサーバに入れないと駄目みたいです。

verdana.ttf はどこにあるのでしょうか?
424nobodyさん:2005/12/04(日) 15:11:25 ID:???
phpをテストしてたんですが、
mysql_connectを使用すると
Call to undefined function: mysql_connect
が出るページもあるし、出ないページもある。
こ、この挙動は何?汗


extension=mysql.soを加えたら
ちゃんと動作するようになったが気持ち悪すぎる。
なぜ、動いたり動いてなかったりしたんだ・・・
425nobodyさん:2005/12/04(日) 15:16:09 ID:???
>>424
Webサーバが実は多重化されてねぇか?
426nobodyさん:2005/12/04(日) 15:16:22 ID:???
それだけかボケ
427あぼーん:あぼーん
あぼーん
428nobodyさん:2005/12/04(日) 16:17:28 ID:???
PHPを使ってローカル(windows)のファイルを操作したり、
テキストに書き込んだりするのは可能ですか?
429nobodyさん:2005/12/04(日) 16:37:07 ID:???
>>428
可能可能。俺はWindowsでのファイルの整理(名前変更)や
抽出とかはPHPでやってるよ。
430nobodyさん:2005/12/04(日) 17:04:52 ID:???
>>428
基本的には (PHP が動いてるマシン == ローカル) が成立する場合だけだけど
>>429 のようにできる。
431nobodyさん:2005/12/04(日) 18:33:59 ID:???
>>424
ここはお前がいるスレではない
カエレ!!
432nobodyさん:2005/12/04(日) 19:17:29 ID:???
>>428ではないが、
そうかー、ローカルでもできるんだよな。こりゃー便利だな。今気付いたよ。
433nobodyさん:2005/12/04(日) 22:46:07 ID:???
header("Content-Type: text/html;charset=UTF-8");
header('WWW-Authenticate: Basic realm="あいう"');
header("HTTP/1.0 401 Unauthorized");

という感じでベーシック認証に用いられる文字コードを指定できないのですね
他に方法あるのでしょうか?
434nobodyさん:2005/12/04(日) 22:55:29 ID:???
HTTPヘッダにmultibyteをそのまま入れるなんてオレには真似できねぇな
435nobodyさん:2005/12/04(日) 23:12:08 ID:???
http://www.faqs.org/rfcs/rfc2617.html

realmに日本語が入るケースはまずないと思うが
いずれにせよ実装依存だろ
436nobodyさん:2005/12/05(月) 13:33:37 ID:???
PHPの関数一覧どっかにない?
437nobodyさん:2005/12/05(月) 13:36:17 ID:???
>>436
プチリファレンスとかポケリファレンスとかの索引
438nobodyさん:2005/12/05(月) 13:40:09 ID:???
マニュアルに関数一覧があるだろボケ
439nobodyさん:2005/12/05(月) 13:46:01 ID:???
本当にくだらないんだけど、array_unique()使うときって、
特に配列内の順序を気にしないなら直前にarray_sort()しといたほうが速い?
全然意味ないかな?
440nobodyさん:2005/12/05(月) 14:04:09 ID:???
無し
441nobodyさん:2005/12/05(月) 14:18:34 ID:???
内部でquick sortしてるから意味無いし、下手すりゃ遅くなるね。
442nobodyさん:2005/12/05(月) 17:39:32 ID:???
>>438
あれ見づらいから聞いてんだよーお前ってばかだなあ
443nobodyさん:2005/12/05(月) 17:47:17 ID:???
あれ以上見やすいものはないよ。
444nobodyさん:2005/12/05(月) 17:51:40 ID:???
その馬鹿は騙りだろw
445nobodyさん:2005/12/05(月) 17:55:25 ID:???
PHPのマニュアルは最高だけど
バイナリセーフかどうかぱっと見て分かるともっと素敵

何か傾向はないのかな?
446nobodyさん:2005/12/05(月) 18:04:20 ID:???
信者はみづらいとは言わないもんだよね
447nobodyさん:2005/12/05(月) 18:11:35 ID:???
>>445
バリデートとかファイル操作で使う奴なら自分でちまちま調べてメモってる。
チートシートにして公開してみようかな。

>>446
どう見づらいのかは上で質問した本人にしか分からんよ。
つか >>436>>442 分かるわけねーだろwww脳みそ足りねえwww

というか見づらい見づらくないというものじゃないでしょ。
何か別のものでも見てるんじゃないの。
448nobodyさん:2005/12/05(月) 18:16:15 ID:???
バイナリセーフなファイルハンドラはねーだろ?
入力値は全部サニタイズしてしまえ
449nobodyさん:2005/12/05(月) 18:17:13 ID:???
PHPのマニュアルは、検索が使い物にならんのが一番むかつく。
ぐぐってPHPのマニュアルにたどり着くことの方が多いというのは如何なものか。
450nobodyさん:2005/12/05(月) 18:17:59 ID:???
何を言ってるかわからんね
451nobodyさん:2005/12/05(月) 18:18:57 ID:???
サイト検索するとGoogle先生にリダイレクトされるしなw
452nobodyさん:2005/12/05(月) 18:21:46 ID:???
オイラがPHPで最初に書いたスクリプトは、
マニュアルのMany HTML Files版のディレクトリを走査して
ファイル名から関数一覧を作成するスクリプトだったなぁ。
こんな関数あるのかな?って感じで単語で検索するのに重宝した。
今はchm形式のを使ってるけど。

・特定のディレクトリを開く、ファイル名取得する。
・特定の文字(function)が含まれているか調べる
・文字の置き換え(ファイル名から関数名を取り出す。リンクを作成する)
・ファイルへの書き込み(一覧htmlを作成)
453nobodyさん:2005/12/05(月) 18:26:05 ID:???
俺、最初はレッツラPHPのナマズに世話になってた。
一通り目録を見通した後は検索しなくなったけどね。
454nobodyさん:2005/12/05(月) 18:36:04 ID:???
>>453
あれは検索語の塊であるユーザノートが引っかからないのが痛い
グーグル以前なら仕方ないけれど
455nobodyさん:2005/12/05(月) 19:12:54 ID:OEVC/8Kz
全角の英数字や記号を半角に変えるには、
テキストの文字数を取得して、
一文字一文字チェックして変えるしかないんでしょうか。
456nobodyさん:2005/12/05(月) 19:15:37 ID:???
>>455
mb_convert_kana
457nobodyさん:2005/12/05(月) 19:16:33 ID:???
あれって英数字にもいけるの?
458nobodyさん:2005/12/05(月) 19:24:41 ID:???
459nobodyさん:2005/12/05(月) 19:55:56 ID:???
>>442
確かに見づらいかもしれないね。
なんつか、文字小さいからいちいち大きくしてるし、色の関係で読む気が失せる。
CSS切るか…
460nobodyさん:2005/12/05(月) 20:11:08 ID:???
>>459
ユーザーcss使えばいいじゃん
461nobodyさん:2005/12/05(月) 20:25:25 ID:???
>>460
頭の回転いいなw
しかし面倒だ罠。CSS切っちゃえっ☆
462nobodyさん:2005/12/05(月) 20:39:31 ID:???
CSS?
なんか妙な関数一覧を見てる奴が居るな。
463nobodyさん:2005/12/05(月) 20:49:27 ID:???
>>462
Cascading Style Sheets
464nobodyさん:2005/12/05(月) 20:55:31 ID:???
つか字が小さいってどこのマニュアルだろ。
大体一覧って読むとこないし。
465nobodyさん:2005/12/05(月) 21:01:26 ID:???
442=459他は左カラムのアレのことを言ってるんじゃまいか
実は索引や一覧を求めてるわけじゃないと見たが、どうよ?
466nobodyさん:2005/12/05(月) 21:10:15 ID:???
ttp://nextcode.org/scripts/php/test/test_php_skill.html

暇な質問者は、自分がどのくらい理解してるか知るためにやってみれ。
俺は、ucwords()ってのが何か分からなくてマニュアル検索したけどな('A`)
467459:2005/12/05(月) 21:11:09 ID:???
>>465
442とは別人です。
勝手にイコールで結ばないでください。
468nobodyさん:2005/12/05(月) 21:16:44 ID:SiZlFUzU
フォームメールを作成しましたが…
メールを受信しても文字化けしてしまいます。何故でしょうか?
■HTML
      <form method="post" action="./sendmail_script.php">
        <p>
        <input type="hidden" name="_email" id="_email" value="[email protected]" />
        <input type="hidden" name="_subject" id="_subject" value="アンケート" />
        <input type="hidden" name="_result" id="_result" value="<?php print($_SERVER['PHP_SELF']);?>" />
        </p>

        <dl>
          <dt>名前</dt>
        <dd><input type="text" name="name" id="name" size="50" maxlength="35" /></dd>
          <dt>メールアドレス</dt>
        <dd><input type="text" name="_from" id="_from" size="50" maxlength="255" /></dd>
          <dt>メール本文</dt>
        <dd><textarea name="memo" id="memo">本文記入欄</textarea></dd>
        </dl>
        <p>
            <input type="submit" value="送信" />
        <input type="reset" value="取り消し" />
        </p>
      </form>
469468:2005/12/05(月) 21:17:25 ID:SiZlFUzU
■PHP


<?php
$header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="「".$_POST['_subject']."」\n\n";
foreach($_POST as $key=>$value){
    if(!strstr($key,"_")){
        $body.="[".$key."]".$value."\r\n";
    }
}
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>

よろしくお願いします。
470nobodyさん:2005/12/05(月) 21:20:51 ID:H0N4uvhb
文字化けといったら文字コード
471468:2005/12/05(月) 21:31:49 ID:SiZlFUzU
>>470
PHP の方で、> text/plain;charset=ISO-2022-JP と指定してるのですが
送られてきたメールを見ると、何故か文字化けしています。
何故なのか分かりません。
472nobodyさん:2005/12/05(月) 21:31:54 ID:???
>>469
よく判らんけど、内部エンコードがSJISじゃないんじゃないかと
473nobodyさん:2005/12/05(月) 21:32:33 ID:???
>>471
それはPHPが勝手につけるから指定しなくていいでしょ。
474nobodyさん:2005/12/05(月) 21:42:51 ID:???
PHPの場合はmbstring.internal_encodingをきちんと指定しておけば、勝
手に文字コードを解釈してくれるんじゃなかったでしたっけ?
475nobodyさん:2005/12/05(月) 21:43:09 ID:???
イラストサイトでも、使えるいいギャラリースクリプトないですか?
借りてる鯖がCGIの制限あって、ttp://www.web-liberty.net/のも使えない状況です
476nobodyさん:2005/12/05(月) 21:46:34 ID:???
>>475
知らないけど「CGIの制限」について詳しく書いて↓へ行ってみたらいいかもね

【CGI】こんなCGI探してますver.18
http://pc8.2ch.net/test/read.cgi/hp/1123833110/
477nobodyさん:2005/12/05(月) 21:46:55 ID:???
windows2000、php4.4.10でXdebugを使っています。

エラー時にスタックトレースが出る場合と出ない場合があります。
これは一体なにが悪そうでしょうか?

設定としましては、
ダウンロードしたdllをextensions以下に配置し、
php.iniに記述したのみです。
phpinfo()により確認済みです。

よろしくお願いします。

478nobodyさん:2005/12/05(月) 21:47:17 ID:???
スレ違いグッバイ
479468:2005/12/05(月) 21:51:24 ID:SiZlFUzU
エラー出ました。内部エンコードは…おかしいですね。orz
Undefined variable: B in /home/hoge/sendmail.php on line 7
480>>475:2005/12/05(月) 21:56:28 ID:???
>>476
誘導・回答有難うございます。
CGIの制限は、「使えるスクリプト」が限られていて
CGIを探して使おうにも登録が必要なんですね。
が、管理人さんが忙しいなのかは知りませんが
その作業にまったく手をつけていないので結局PHPに頼ろうと思ったのです。
借りているのは
ttp://www.freespace.jp/です
481477:2005/12/05(月) 22:02:57 ID:???
>>478
まじですか。
ここが適しているかと思い質問させて頂いたのですが、
他探してみます。
482nobodyさん:2005/12/05(月) 22:08:35 ID:???
まあプログラムを書く人の板だからねえ
483475:2005/12/05(月) 22:20:52 ID:???
ああ、探してますスレはPHPでもOKなんですね。早とちりしてました
有難うございました。いってきます。
484nobodyさん:2005/12/06(火) 03:47:20 ID:???
abstractクラスのコンストラクタは
全部protectedにしておいて問題ないですか?
485nobodyさん:2005/12/06(火) 09:08:35 ID:???
array配列の値が123だったらその値を削除しようとしているのですがこれだと他の値が
消えてしまう事があるようです。どうしてなのでしょうか?。

$dat = array('000','123','457','999');

$no = in_array('123',$dat);
unset($dat[$no]);
486nobodyさん:2005/12/06(火) 09:15:40 ID:???
きっと'123'の部分が変数なんでしょ。
その値が間違って渡されてるに1票。
487軟式PHP:2005/12/06(火) 09:21:20 ID:???
そもそもin_arrayってboot値が返るのでは。
485の意図している動きをさせるならarray_searchの方を使わんと。
488nobodyさん:2005/12/06(火) 09:59:55 ID:???
>>486,487
マニュアル読んできました(^^;
487さんがおっしゃるようにboolが返ってきてきていました
ありがとうございました
489nobodyさん:2005/12/06(火) 10:09:10 ID:???
>>468
http://ns1.php.gr.jp/pipermail/php-users/2005-November/028156.html

つーことで、PHPのバージョンがわからないとなんともいえないぞ。
490455:2005/12/06(火) 10:09:20 ID:???
>>456
遅れましたが、ありがとうございました。
491nobodyさん:2005/12/06(火) 11:03:05 ID:???
携帯サイトでPHPに使用してるファイル全部SJISで書いてるんですが、フォームから送られてくる一部の文字が文字化けします。
これを解決する方法はありますか?レン鯖を使用してるのでphp.iniの設定は変えれません。ヒントだけでもお願いします。
492nobodyさん:2005/12/06(火) 11:04:10 ID:???
確かにバージョンの問題もありますがmb_send_mailはmb_languageとか設定しないと
普通に化けますよ(^^;
493軟式PHP:2005/12/06(火) 11:41:52 ID:???
>>491
その一部を教えてくれんと「表示」「ー」等が化けるとか。
Vodaの機種でUTF-8で送信されてくるやつもあるから注意せんとな。
494nobodyさん:2005/12/06(火) 11:47:49 ID:???
1つのform内に2つのボタンを設置した場合に
どちらのボタンが押されたかを判断する方法を教えてください
495nobodyさん:2005/12/06(火) 11:49:52 ID:???
>>493
レスありがとうございます。
表、能、ー、とかKENT WEBで説明されてるやつですね。
あと、半角カナでドラエモンなど長めの文字がなります。こちらは原因が違うような気がしますがどうなんでしょう?
496nobodyさん:2005/12/06(火) 11:53:15 ID:kEMoA+0o
>>494
<input type="hidden" name="hehehe" value="hohoho">
<input type="submit" name="hoge" value="fuga">

hehehe=hohoho
hoge=fuga
497nobodyさん:2005/12/06(火) 11:59:06 ID:???
>>496
ありがとうございます。
<input type="submit" name="hoge1" value="メモ1">
<input type="submit" name="hoge2" value="メモ2">
こういう場合はどうやって判断したらいいでしょうか?
498nobodyさん:2005/12/06(火) 12:07:35 ID:???
>>497
<?php print_r($_POST); ?>
やってみればすぐわかる
499nobodyさん:2005/12/06(火) 12:49:27 ID:???
>>497
nameは同じにしてvalueだけ変えたほうがよくね
500nobodyさん:2005/12/06(火) 13:05:36 ID:???
ディレクトリ内のファイルを一つ一つのサイズを取得するのではなく
ディレクトリ内のトータルなファイルサイズを
一回で取得する関数なんてありませんか?
501nobodyさん:2005/12/06(火) 13:17:10 ID:???
探してなければ作ればいいじゃない
502nobodyさん:2005/12/06(火) 13:18:14 ID:???
>>496さんみたいによく非表示の
<input type="hidden" name="hehehe" value="hohoho">
を使うのをみますが、これっての真意をしりたいというか
これってformが複数ある場合の識別に使ってるんですか?
503nobodyさん:2005/12/06(火) 13:49:45 ID:???
>>502
一つのPHPで処理するときにhiddenの値でアクションを切り替えたりするのに使ったりする。
504nobodyさん:2005/12/06(火) 13:52:06 ID:???
>>502
使う必要に迫られないってことは、君には必要ないのだと思う。気にせずスルーで。
#ってか普通にWebプログラム作ってりゃ使うんじゃね?
505nobodyさん:2005/12/06(火) 13:57:59 ID:???
>>504
知らないならレスしないで荒れるから
506nobodyさん:2005/12/06(火) 15:36:28 ID:???
>>505
知ってて言ってることが判らないのだろうか...
507nobodyさん:2005/12/06(火) 15:38:19 ID:???
マテリアルってどういう意味?
508nobodyさん:2005/12/06(火) 15:52:19 ID:???
>>506
はいはいww
509nobodyさん:2005/12/06(火) 15:55:59 ID:???
まさかと思った判らなかったのか。
510nobodyさん:2005/12/06(火) 16:32:17 ID:???
>>502
入力の必要がない値を渡す。
たとえば2ちゃんねるなら板名、スレッドキーなどがhiddenで渡される
511nobodyさん:2005/12/06(火) 16:42:56 ID:???
>>484
publicにしとけ
サブクラスがnewできないものと紛らわしい
512nobodyさん:2005/12/06(火) 16:44:54 ID:???
>>485
in_arrayの戻り値はBoolean
array_searchと勘違いしてるだろ
513nobodyさん:2005/12/06(火) 16:53:39 ID:???
>>507
アレもしくはナニ
514nobodyさん:2005/12/06(火) 19:31:28 ID:???
PHPのHTTPセッションを使ってみたのですが、IEや火狐、ネスケでは正常に動作するのにOperaでだけおかしな動作になります。
仕様の違いによるものなのでしょうか…?
設定はデフォルトのままです。
515軟式PHP:2005/12/06(火) 19:32:54 ID:???
そこでエスパーの登場ですよ。
516nobodyさん:2005/12/06(火) 20:03:44 ID:???
クッキーが拒否設定にでもなってるんじゃねーの。
517nobodyさん:2005/12/06(火) 20:04:21 ID:???
いや、おかしいが動作しているわけだ
518nobodyさん:2005/12/06(火) 20:14:44 ID:???
まぁ、なんだ、どうやってセッションを実現しているかはマニュアルに記載があるし、
それらを制御するphp.ini等の設定方法も載ってるしなぁ。
利用時の出力htmlソースを見るなり、httpヘッダを見るなりして、
自分で原因(つーかたぶん勘違いしてるんだろうと思うが)を突き止められるべ。
それが学習ってもんよ。てやんでぃ。
519514:2005/12/06(火) 21:31:01 ID:???
具体的には、「食べる」ボタンを押した際に
$_SESSION["onaka"]=ippai;
として、別ページに
<?php
if (isset($_SESSION["onaka"])){
?>
お腹いっぱい
<?php
}else{
?>
お腹すいたよ
<?php

?>

とし、食べるボタンを押した場合とそうでない場合に違う表示がされる様にしたのですが、Operaだと食べるボタンを押しても別ページではelseの表示になってしまいます。
520nobodyさん:2005/12/06(火) 21:36:30 ID:???
>>519
「食べる」以外のボタンがあるならphpじゃなくhtmlの問題かと
521nobodyさん:2005/12/06(火) 21:59:45 ID:???
ヘッダ見るのが手っ取り早い
522nobodyさん:2005/12/06(火) 22:01:21 ID:???
既に変なクッキー食わせてるとかウィンドウが別インスタンスだとか
523nobodyさん:2005/12/06(火) 22:20:18 ID:???
operaの設定の問題でしょ
524514:2005/12/06(火) 22:32:34 ID:???
すみませんごめんなさい。
オフライン作業にしてました…Д
戻したら正常になりましたー…逝ってきます…
525nobodyさん:2005/12/06(火) 22:36:23 ID:???
お、オフライン作業だってー!?
526nobodyさん:2005/12/06(火) 23:31:28 ID:???
取得したhtmlソースをテキストエディタで見るようにタグを色分け整形出来るようなライブラリ無いでしょうか?
527nobodyさん:2005/12/07(水) 00:06:02 ID:???
528nobodyさん:2005/12/07(水) 00:21:19 ID:???
それPHPソース用
529nobodyさん:2005/12/07(水) 02:28:17 ID:???
530nobodyさん:2005/12/07(水) 17:53:51 ID:qi78BylE
Windowsでphpをコマンドラインで動かす方法を教えてください
php5.0.5 Winxpです
531nobodyさん:2005/12/07(水) 18:13:42 ID:???
>>530
php.exe
532nobodyさん:2005/12/08(木) 00:04:05 ID:???
ちょっと伺いたいのですが、
php5からjavaは使えないのですか?
php4はできるみたいですが。
533nobodyさん:2005/12/08(木) 00:42:57 ID:???
>>532
まず PHP5 で Java が使えないと思った理由を教えてもらおうか。
534nobodyさん:2005/12/08(木) 03:37:29 ID:???
>>533
phpマニュアルのphp/javaの連携という項目で、
php4/ext/java/READMEに手順が書いてあるといっていますが、
存在しません。また、php4の設定方法はサイトがあるんですが、
その方法ではphp5で使えません。
535nobodyさん:2005/12/08(木) 04:44:18 ID:???
peclに移動になっただけでphp4と同じ手順でおk
ただ実用性はあんま無いと思う
536nobodyさん:2005/12/08(木) 09:36:39 ID:???
>>534
オリジナルを見た方がいいかもね
http://www.php.net/manual/en/ref.java.php
537nobodyさん:2005/12/08(木) 15:13:55 ID:IuQb+C4+
ライブラリのインストールってどうやるんすか?
マニュアル英語だし「ライブラリ インストール」などで検索かけても、
それっぽい解説サイトが見つからないので・・・。

winでgdlibraryってのを入れたいです。
538nobodyさん:2005/12/08(木) 15:15:48 ID:???
>>537
php_gd2.dllならバイナリのパッケージに入ってるだろ
539nobodyさん:2005/12/08(木) 15:27:07 ID:???
>>537
GD インストール
で検索だろう
540nobodyさん:2005/12/08(木) 15:39:13 ID:???
実行しているプログラムのファイル名を取得する関数はありますか?
541nobodyさん:2005/12/08(木) 15:43:59 ID:???
>>540
$_SERVER['PHP_SELF']
$_SERVER['SCRIPT_NAME']
あたりでは?
542nobodyさん:2005/12/08(木) 15:45:14 ID:???
プロセスは複数のソースファイルからコードをピックアップするのは
よくあることだが
543537:2005/12/08(木) 15:55:09 ID:???
>>538
インストーラの方で既にインストールしてあるんです。
追加できないものかなーって。

>>539
検索して出てくるのがLinuxのサイトばかりな気がします。
もう少し粘ってみますけど・・・。
544nobodyさん:2005/12/08(木) 16:09:01 ID:???
545nobodyさん:2005/12/08(木) 16:18:18 ID:???
GDのデベロッパに質問したおした馬鹿がいたのか
PHPに見られるとへんたいだな
546537:2005/12/08(木) 16:26:47 ID:???
>>544
うぐぅ。えいごですか・・・。
547nobodyさん:2005/12/08(木) 16:31:09 ID:???
こんなCGI捜してます って感じのスレはないですか?
548nobodyさん:2005/12/08(木) 16:31:57 ID:???
Web製作にある
549nobodyさん:2005/12/08(木) 16:35:10 ID:???
あああ そっちにありましたか!
マジ蟻がd
550nobodyさん:2005/12/08(木) 17:00:49 ID:???
>>537
dllで気づけよ。
つ php.ini
551537:2005/12/08(木) 17:32:24 ID:???
やたー!できましーたー!みなさんありがちょちょん。
552nobodyさん:2005/12/08(木) 17:54:43 ID:AkLZQBwk
特定のlinuxコマンドを特定のUnix
ユーザの権限で動作させたいのですが、
どんな方法があるでしょうか?
ちなみにUnixユーザはsshは使えませんが、
ID/PASSWORDはわかります。
またUnixユーザは複数いてphp内で状況によって切り替えるように
したいと考えています。

動作させる権限を気にしなければ、exec()とかでいいと思うのですが・・・
553552:2005/12/08(木) 18:29:56 ID:???
su使えばいけるような気がしたのですが、
passthru("su userid");
passthru("password");
passthru("whoami");
ではユーザの切り替えができませんでした。

対話形式?だから無理なのでしょうか?
ヒントだけでも貰えたら幸いです
554nobodyさん:2005/12/08(木) 18:31:07 ID:???
apache_2.0.55のWindows版でPHP5.1.1のWin版をモジュールとして読み込ませたいのですが,
設定の仕方が分かりません。PHPは解凍しただけです。

httpd.confに以下を追加したのですがまだ他に足りないのがあるでしょうか?
LoadModule php5_module "D:/tool/php_for_Win32/exe/php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "D:/tool/php_for_Win32/exe"
555nobodyさん:2005/12/08(木) 18:51:04 ID:???
>>553
スクリプトファイルを作ってexec()は?
556nobodyさん:2005/12/08(木) 18:56:25 ID:???
ワロスw
557nobodyさん:2005/12/08(木) 18:56:46 ID:???
ちょっと基本的なことを教えてくださ
$iとかに数値を入れて扱うとこれってshortつうか16ビットですか?
558553:2005/12/08(木) 19:12:45 ID:???
>>555
setuidとかsuexecにするということでしょうか?
useridを動的に変えたいので、その方法だとユーザ分スクリプトを作る必要が
出てきてかなり厳しいかなと。

色々とぐぐって見たのですが、sudoしろとかいった内容しか見つかりません。
sshでアクセスする場合などのパスワードなんかを聞いてくるような
場合の処理はphpでは不可能でファイナルアンサーでしょうか?
559nobodyさん:2005/12/08(木) 19:16:29 ID:???
>>558
PHPでスクリプトファイルを書き出す
560nobodyさん:2005/12/08(木) 19:16:57 ID:???
mail()関数のadditional_headersにFromなどを入力する際、
ヘッダの改竄を防ぐためにどのようなサニタイズを行ったら良いのでしょうか?
561nobodyさん:2005/12/08(木) 19:19:20 ID:???
>>557
http://www.php.net/manual/ja/language.types.integer.php
整数のサイズはプラットフォームに依存しますが、 約20億(32ビット符号付)が一般的な値です。
562nobodyさん:2005/12/08(木) 21:38:33 ID:uvzNzscr
>>531
ありがとうございました。
563nobodyさん:2005/12/08(木) 22:33:20 ID:???
>>559
恐ろしくアンセキュアな悪寒
564nobodyさん:2005/12/09(金) 00:57:30 ID:???
まぁ、要求は満たせるな
565nobodyさん:2005/12/09(金) 10:40:28 ID:???
for($s=0; $s<count($d_file); $s++){
 echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add$s' value='ぽち'></CENTER></FORM>";
}

とした場合、ぽちボタンが押された時〜を実行するという記述をしたいのですが、

if ($_SERVER["REQUEST_METHOD"]=="POST"){
if (isset($add$s)){
〜実行部分〜
}

としても、エラーを吐くみたいです。
$add$sあたりが怪しいと思うのですが、どう書けばいいでしょうか?
}

とした場合、ぽちボタンが押された
566nobodyさん:2005/12/09(金) 10:41:21 ID:???
表示ばぐったみたいです。

if ($_SERVER["REQUEST_METHOD"]=="POST"){
if (isset($add$s)){
〜実行部分〜
}
}

です。
567nobodyさん:2005/12/09(金) 10:46:10 ID:???
http://www.infotek.co.jp/product/pdflib/pdflib_nyumon.html
ここのサイトの簡単なプログラム例というのを実行したんですが、
エラーが出てしまいます。どなたか解決方法分かる方おられますか?
ちなみに、php.iniのextension=php_pdf.dllの部分は有効にしています。
568nobodyさん:2005/12/09(金) 10:47:15 ID:???
569nobodyさん:2005/12/09(金) 10:48:44 ID:???
>>567
どんなエラーが出てるかも分からないのに
何を解決しろと言うのか
570567:2005/12/09(金) 10:59:23 ID:???
>>569すいません、そうですよね。
25行目のdie("Error: " . PDF_get_errmsg($p));でParse Error
31行目のPDF_begin_page_ext($p, 595, 842, "");でFatal error: Call to undefined function: pdf_begin_page_ext()
33行目の$font = PDF_load_font($p, "KozMinPro-Regular-Acro", "Ext-RKSJ-H", "");で上と同じエラー
今のところこういう感じです。
571nobodyさん:2005/12/09(金) 11:11:32 ID:???
>>570
PDFlibをインクルードしてないからじゃねーの?
572nobodyさん:2005/12/09(金) 11:13:20 ID:???
>>565
おまえもどんなエラーだか明記しろよ。

つーか、POSTされたものは$_POST[]だろ。
ま、register_globals=onなら別だが。
573nobodyさん:2005/12/09(金) 11:20:47 ID:???
syntax err
574567:2005/12/09(金) 11:21:57 ID:???
>>571
すいません、どのようにすればインクルードできるのですか?
何分素人なもので、よく分からなくて…。
575nobodyさん:2005/12/09(金) 11:28:06 ID:???
>>574
あ、ちと勘違いだ。
PDF PHP インストールでぐぐってみて。
要するに、PDFlibで使えるようになる関数がundefined functionなわけ。
つまりちゃんといんすとーるされてないってことだから。

576nobodyさん:2005/12/09(金) 11:29:24 ID:???
dl("libpdf_php.dll");
577567:2005/12/09(金) 11:39:26 ID:???
>>575
ありがとうございます。それでやってみます。
578nobodyさん:2005/12/09(金) 11:48:46 ID:???
>>577
libpdf_php.dllってファイル持ってるのかよ
そもそもphp.iniを読み込めてないんじゃないの
phpinfo();で確認しろ
579nobodyさん:2005/12/09(金) 11:55:35 ID:???
>>567
そこの記述は古いのでエラーがでるのが正常です
もう使えない関数を使ってます
580nobodyさん:2005/12/09(金) 11:58:15 ID:???
他のwebから指定されたタグ以降を取得するような
サンプルソースってどこかないですかね?
581567:2005/12/09(金) 12:05:53 ID:???
>>578
libpdf_php.dllは、PHPのextensionsフォルダにあります。今確認しましたが、
認識はしてくれているようです。

>>579
そうなんですか…。では、なんとか他の方法を探ってみます。

お二人ともありがとうございました
582nobodyさん:2005/12/09(金) 12:07:39 ID:???
最初にマニュアルを読んでない時点でお前は負け組みなんだよ
583nobodyさん:2005/12/09(金) 12:12:02 ID:???
>>581
phpinfoでPDFlibのバージョンチェック

PDFlib GmbH Version が6以上ならPDF_begin_page_extが使える
5なら使えないのでDF_begin_page関数に変える
584nobodyさん:2005/12/09(金) 12:13:05 ID:???
>>580
file()で配列にしちゃえば後は簡単なんじゃ。
配列にタグ入ってるかチェックしてそれまでを削除で完了
585nobodyさん:2005/12/09(金) 12:13:07 ID:???
>>581
PDFlibでぐぐればほかにもいろいろあるから探して。
で、これって有償なのは分かっている?
586nobodyさん:2005/12/09(金) 12:20:11 ID:???
指定したサイトに自動でジャンプってphpでできますか?
587580:2005/12/09(金) 12:22:24 ID:???
>>584
d、いけそうですわ。

>>586
レッツPHP嫁
588nobodyさん:2005/12/09(金) 12:26:25 ID:???
>>586
できます。
589567:2005/12/09(金) 12:39:51 ID:HHj6b6mW
>>583
バージョンは6.0.1でしたが、PDF_begin_pageしか動かないようでした。

>>585
ありがとうございます。それは承知しています。
590565:2005/12/09(金) 13:26:31 ID:???
すみません、説明不足です。

next.php内で

if ($_SERVER["REQUEST_METHOD"]=="POST"){
for($i=0;$i<20;$i++){
if (isset($add$i)){
       実行部分

のように、POSTされてきたのが、$add0だったら〜、$add1だったら〜、$add2だったら〜・・・
としていきたいのですが、$add$iの書き方がまずいらしく、エラーが出ます。

$add[$i]と書くとエラーは出ませんでしたが、上手く作動しませんでした。

一つ手前のphpのフォームの部分は

for($s=0; $s<count($d_file); $s++){
 echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add$s' value='ぽち'></CENTER></FORM>";
}

といった感じで、ボタン毎にadd0 , add1 , add2・・・となっています。

といった感じです。
下記エラー内容です。

「Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ')' 」
ラインは、「 if (isset($add$i)){」この部分でした。

解決策があれば、教えて下さい。
591nobodyさん:2005/12/09(金) 13:31:01 ID:???
592nobodyさん:2005/12/09(金) 13:49:39 ID:hr0We1go
文字列連結すりゃいいんじゃねーの?
593nobodyさん:2005/12/09(金) 14:03:15 ID:???
>>591,592
ありがとうございます。
しかし、色々試行錯誤するも出来ないのです
もう少しヒントを下さい
594nobodyさん:2005/12/09(金) 14:06:53 ID:???
>>593
今回だけだぞ。
ヒント: $add{$i}

ホントに下らない質問だから、次回からはきちんと調べるようにwww
595nobodyさん:2005/12/09(金) 14:08:49 ID:???
>>590
確かめてないけど
for($s=0; $s<count($d_file); $s++){
echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add[$s]' value='ぽち'></CENTER></FORM>";
}

isset($add[$i])
596nobodyさん:2005/12/09(金) 14:42:56 ID:???
>>594,595
出来ました、ありがとうございましたm(_ _)m
597nobodyさん:2005/12/09(金) 14:59:48 ID:???
>>596
つーかさ、さっきも書いたけどregister_global=onでプログラムするなって。
598nobodyさん:2005/12/09(金) 15:09:37 ID:AOiVoXBq
MySQL+PHPでやってます。

SQLのint型のフィールドに放り込んである値を
mysql_fetch_arrayで取り出してそのまますぐにtypegetに入れたらstring
ってでるんですけど、これはいったい・・・。
型変換すればいいんですけど、どういう時にこういうことがおきるんすか?
599598:2005/12/09(金) 15:10:43 ID:???
あ、先にSQLの方で質問したらどうもPHPの方の問題だと言われたので、
こっちで改めて質問しなおしてます。マルチっぽくてスイマセン。
600nobodyさん:2005/12/09(金) 15:30:29 ID:???
DBからレコードを取り出すとき
601nobodyさん:2005/12/09(金) 15:43:19 ID:???
>>597
あら、PHP5で register_globalをonにした覚えが無いのでoffのはずなんですがorz
デフォでoffですよね
602598:2005/12/09(金) 15:44:28 ID:???
うへ。

じゃあDBでどのような型に入ってたとしても、
PHPに読み込むと必ず文字列になると認識をして無いと危険と言うことですね。
603nobodyさん:2005/12/09(金) 15:48:36 ID:???
>>601
じゃ、add$iでポストされた変数はを$add$iじゃなくて、
$_POST['add{$i}']だろ。
604nobodyさん:2005/12/09(金) 15:50:10 ID:???
>>603
無茶言うな
605nobodyさん:2005/12/09(金) 15:53:00 ID:???
キャストする理由が思い浮かばないが
606nobodyさん:2005/12/09(金) 15:58:07 ID:???
>>603
何故かそれだと出来なくて、 add[$i]でポストされたのを、

if ($_SERVER["REQUEST_METHOD"]=="POST"){
for($i=0;$i<count($rp);$i++){
if (isset($add[$i])){

で受け取れています・・・。
globalはoffなんですが、どうしてでしょうかorz
607nobodyさん:2005/12/09(金) 15:58:37 ID:???
失礼しました、add[$s]でポストされたのです。
608nobodyさん:2005/12/09(金) 16:16:49 ID:???
最初あたりでextractしてんじゃないの?そこらじゅうにサンプルとしてあるから真似したくなるけど、よくあるダメソース。
609nobodyさん:2005/12/09(金) 16:20:31 ID:???
>>602
危険も何もPHP自体に型がないから
610nobodyさん:2005/12/09(金) 16:32:26 ID:???
>>606
add[$i]でポストされたものなら、
$_POST['add'][$i]
だろ。
611nobodyさん:2005/12/09(金) 17:27:38 ID:???
>>610
意見ありがとうございます。
add0でポストされていても、i=2になっていたりするので、上手くいかないのですorz
breakしてないからかもですが・・・。

現状で上手く動作してるので妥協してるのですが、もう少しいじってみます。
612nobodyさん:2005/12/09(金) 17:36:35 ID:???
$fruit =array("りんご","ばなな","めろん","いちご/ぶどう/なし");
となっていて、配列$fruitにぶどうがある場合、falseにしたいんですけど、
これって、list($f[0],$f[1],$f[2]) = expload("/",$fruit[3]);
みたいに分解してからチェックするしかないですかね?
スマートなやり方があれば教えて欲しいんですけれど、公式でarrayの関数順番に見るもそういう関数が見当たらないので(´д`)
613nobodyさん:2005/12/09(金) 17:39:15 ID:???
よし俺がスルー
614nobodyさん:2005/12/09(金) 17:40:43 ID:???
>>612
配列$fruitにぶどうがある場合って、"いちご/ぶどう/なし"が要素にある場合も含めるの?
だったらpreg_grepかな。
615nobodyさん:2005/12/09(金) 17:44:56 ID:???
>>614
でもって、「ぶどう」のみならin_arrrayと。
616nobodyさん:2005/12/09(金) 17:52:21 ID:???
>>614615

ぶどうのみなのでin_arrayかな・・・。
となると、
$fruit =array("りんご","ばなな","めろん","いちご/ぶどう/なし"); で、
if(in_array("ぶどう","$fruit)){
echo "ぶどうあり。"
}

だと、trueって事ですか・・・。
しらなかったです。ありがとう!
617nobodyさん:2005/12/09(金) 17:54:16 ID:???
先生、ぶどうありって出ません゜ + 。・゜・(ノД`)
618nobodyさん:2005/12/09(金) 18:04:33 ID:???
HAHAHA!
in_array()のマニュアルよく読んでみ
619nobodyさん:2005/12/09(金) 18:06:49 ID:???
>>617
だから、
614が"いちご/ぶどう/なし"が要素にある場合も含めるのかって書いてるじゃん。

620nobodyさん:2005/12/09(金) 18:30:08 ID:???
正規表現まだ勉強してなかったんですけれど、これむずいですね(ノД`)
特殊な法則みたいなの覚えないと駄目みたい・・・。
取り合えずはexploadで分解してチェックする事にしますorz
621nobodyさん:2005/12/09(金) 18:42:56 ID:JUWxzeIo
ImageCopy関数で、
画像のサイズは指定し縮小はできますが、画像の容量を指定し
縮小する方法はありませんでしょうか?

50KB 横240 縦180

10KB 横* 縦*
622nobodyさん:2005/12/09(金) 18:43:28 ID:???
無い
623nobodyさん:2005/12/09(金) 19:32:08 ID:???
>>620よ expload じゃない。explode だ。英語頑張ろうな。
624nobodyさん:2005/12/09(金) 22:18:50 ID:???
設置したsubmitボタンをある条件を満たすと他のボタンに取り替えるという事はできますでしょうか?
ご存知の方やり方を教えて頂けると幸いです。
625nobodyさん:2005/12/09(金) 22:24:25 ID:???
>>624
小人さんにでも頼んでください。
626nobodyさん:2005/12/09(金) 22:24:29 ID:???
>>624 Ajax
627nobodyさん:2005/12/09(金) 22:24:52 ID:???
$_GETや$_POST、$_SESSIONなどの変数の値に応じて変更させるとか。
628nobodyさん:2005/12/09(金) 22:39:06 ID:???
>>621
MLでの回答を気長に待ってください。
629nobodyさん:2005/12/09(金) 22:42:42 ID:???
ありがとうございます。
既にボタンを設置した後だと駄目なんですかねぇ・・・。
630nobodyさん:2005/12/09(金) 22:45:31 ID:???
(゚Д゚)ハァ?
631nobodyさん:2005/12/09(金) 22:58:44 ID:???
いえ、submitのようなボタンにも、str_replaceのような関数があればいいなと思ったんです。
意味不明な事言ってたらすみませんm(._.)m
632nobodyさん:2005/12/09(金) 23:20:00 ID:???
>>631
それはJavaScriptでできるだろうが
633nobodyさん:2005/12/09(金) 23:46:12 ID:???
あぁぁ、JavaScriptですか、なるほど!
ありがとうございます!
634nobodyさん:2005/12/10(土) 00:39:08 ID:???
アホだ・・・
635nobodyさん:2005/12/10(土) 01:46:07 ID:???
ログイン後の各ページで、ログイン状態か否かをセッションで
判定してます。

[login.php]
ini_set('session.gc_maxlifetime', "3600");
session_start();

$_SESSION["lid"] = $hogehoge;
header("Location: index.php");

[各ページ]
ini_set("session.gc_maxlifetime", "3600");
session_start();

if (!isset($_SESSION["lid"])){
header("Location: login.php");

}

gc起動して掃除→login.phpへリダイレクトされるまで 3600秒のハズですが、
なぜかデフォルトの1440秒でセッションが切れ、login.phpへリダイレクトしてしまいます。

session.gc_maxlifetimeの内容をdumpしてみたのですが、ローカルでは3600に
なっているようです。

共用サーバーなのでphp.iniの直接変更はできません。
どうにも原因がつかめません。
解決の糸口はありますでしょうか…

636nobodyさん:2005/12/10(土) 03:30:32 ID:???
>>635
連鯖だとセッションを同じところに保存するかもしれないので無理かも
phpinfoでsession.save_path見てみれ。/tmpなんぞになってると他人に
GCされてる可能性蟻
.htaccessでphp_valueが設定できるならsession.save_pathを指定するか
session_save_path()して変更して確認してみれ
637nobodyさん:2005/12/10(土) 05:18:00 ID:???
>>633-634ワロス
638nobodyさん:2005/12/10(土) 12:03:17 ID:A5Y35bGz
GDライブラリを使って動的に画像を変更させたいです。
(例えば生徒の点数を入力すると点数の分布の折れ線グラフが出るとか)

イメージを表示するファイルの変数をdefineとかで記して、
直接ファイルを書き換える以外に方法はありますか?

できたらファイルを弄らずに関数みたいに出来たらと思うんですが。
639nobodyさん:2005/12/10(土) 12:23:40 ID:???
>>638
画像ファイルをいじるのではなく、その都度生成すれば?
640nobodyさん:2005/12/10(土) 12:28:52 ID:???
Win版 PHP5 + Apache2で環境作っててハマってます。

症状:
GDやMb_Stringなど追加モジュールが、Apacheから php5apache2.dllモジュール経由だとロードできてないが、
同じスクリプトを、コマンドラインから php.exeで実行すると追加モジュールのロードはできる。

環境: Apache 2.0.55 + PHP 5.1.1および5.1.2-dev

※httpd.conf
LoadModule php5_module D:\php\php5apache2.dll
AddType application/x-httpd-php .php

※php.ini #php.ini-distからの変更点
magic_quotes_gpc = Off
extension_dir = "D:/php/ext"
upload_tmp_dir = "C:/tmp"
extension=php_exif.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mbstring.dll

Linuxで自分でビルドする方が楽だと思う今日この頃。
641nobodyさん:2005/12/10(土) 12:34:10 ID:???
>>638
グラフ作りたいならjpgraph
ttp://www.aditus.nu/jpgraph/
642nobodyさん:2005/12/10(土) 12:36:29 ID:???
>>640
php.ini自体が読み込めてないんじゃないの
phpinfo()で確認してみ
643nobodyさん:2005/12/10(土) 12:45:10 ID:???
>>642
さんくす、ビンゴだった。
Win版は、C:\WinNT に php.ini 置かないといけないのね…。
Linux, Unixでしか環境作ったことないから、php.ini は、
インストールディレクトリで良いとばっかり思ってたよ。
644nobodyさん:2005/12/10(土) 13:01:37 ID:???
>>643
俺はいちいちコピーするのがめんどくさいので
httpd.confに
PHPIniDir "C:\php5.1"
と書いてる
645nobodyさん:2005/12/10(土) 13:02:21 ID:9PXirItw
参照渡しについて質問なのですが
仕事で見せられた規約には「なるべく参照渡しを使え、理由は値渡しよりパフォーマンスがあがるから」ということです。
理由付けはどうでもいいのですが、既存の他の人のコードを見ると参照渡しの実際の書き方についていくつか方法があるようで私なりに意味を考えたのですがおかしいところがあればつっこんで欲しいのです

1番 $obj = &new Object();
$objには(どこかに実体が存在している名前無しのnew Object()の)参照が入る

2番 function &getValue() { return $obj;}
$objは実体(インスタンス)だが $retObj = getValue();で取得した$retObjは$objの参照となる

3番 function &getValue(){}を呼び出すとき
$retObj = &getValue();
$retObj = getValue();
のどちらでも変わらない 両方とも結果の参照が入る(2番と同じ状態になる)

4番 function getValue(){}を呼び出すとき
$retObj = &getValue(); は結果の参照が入る(2番と同じ状態になる)
$retObj = getValue(); は結果のコピーが入る

5番 $strVal1 = &$strVal2; 参照が入る?

6番 function setValue(&$strVal){$this->val=$strVal} 5番と同じ状態になる?

7番 function setValue(&$strVal){$this->val=$strVal} となっている状態で
$strMyVal = "abc"; setValue($strMyVal); とやると、$strMyValの参照が自動的に渡される

8番 上記7番の状態で setValue(&$strMyVal); を呼び出すと・・・?どうなる?
646645:2005/12/10(土) 13:06:23 ID:9PXirItw
という風に、双方向から&を使うとわけがわからなくなるので

関数の引数はdefineで定義したものも入れたいこともあるでしょうから
すべて function setValue($strValu)と&無しで書いて
呼び出し元の方で参照を渡すのか参照を取得のか↓したほうが混乱しないと思うんですが・・・
// 呼び出し
setValue(&$strTest);
// 取得
$strVal = &getValue();
647nobodyさん:2005/12/10(土) 13:09:35 ID:???
>>644
そっちの方がスマートなんで、それ採用。
ありがとです。
648nobodyさん:2005/12/10(土) 13:51:16 ID:???
>>646
call_time_pass_reference はそのうちサポートされなくなるらしいよ。
その呼び出し時に参照を渡すって奴ね。
649nobodyさん:2005/12/10(土) 14:26:17 ID:???
>>646
マニュアルにもそう書いてあるしね。
一番の解決法はPHP5を使う
650638:2005/12/10(土) 14:40:59 ID:???
>>639
やー、何かファイル作ったりとか怖いんで。
初心者につきビビリーです。

>>641
便利そうなのかな。ちょっと試してみますね。
651nobodyさん:2005/12/10(土) 15:49:35 ID:???
>>45
1番参照
2番はコピー
3番は上は参照、下はコピー
4番どちらもコピー
5番参照
6番コピー
7番コピー
8番コピー

マニュアルにある通り、参照を受け取っても=演算子を使えばコピーされる
>>646はphp4で書くなら悪くない選択

ちなみに「リファレンスが高パフォーマンス」はよくあるガイセビア
これが正しいのはメソッド内でパラメータを「書き換える」場合のみ

その他の場合ではコピーオンライトなPHPでは参照を使ったほうが
遅いしメモリ喰い

参照で受けたパラメータをコピーすると(6番のケース)値コピーで
渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
ありがち

駄目なコーディング規約を嘆きつつ、次のプロジェクトでは規約の
改定に挑みましょう
652nobodyさん:2005/12/10(土) 16:15:27 ID:???
> >>646はphp4で書くなら悪くない選択

えぇぇぇぇ!?
653nobodyさん:2005/12/10(土) 16:17:13 ID:???
同じ理由でこれも遅い。

 setValue($strVal) {
  $this->val =& $strVal;
 }
}

$obj->setValue($strMyVal); or $obj->setValue(MY_CONST);

まあ実行コストの話は置いておいて、関数がなぜデフォルトで
値渡しなのか小一時間考えたほうがいいかもね。
654645:2005/12/10(土) 16:19:23 ID:???
皆さん
ありがとうございます

>参照で受けたパラメータをコピーすると(6番のケース)値コピーで
>渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
>ありがち

あーなんか始めたばっかりのころ、
ぜんぜん画面が出ないなぁと思って 「&」 消したら直ったことがあったのですが
そういう理由だったんですねぇ
そのときから、「&」に対して避けて通ってきた

関数に渡すときに、その値を関数内で変更する必要があるとき以外は普通に書いておいたほうがよいのでしょうかね?
655nobodyさん:2005/12/10(土) 16:36:01 ID:???
マニュアルにはそう書いてある
http://php.net/manual/ja/language.oop.newref.php
> 逆に多くの場合、参照を使うよりも単純にコピーを使った方が良い結果となります

破壊的関数はデバッグしにくい原因になるし、パフォーマンスの
改善が見込まれる部分だけ参照に変更するのが一般的だと思う
基本的に参照を使うのはオブジェクトの受け渡しのみ

ただしコーディング規約がある以上そっちが優先だけどね
656nobodyさん:2005/12/10(土) 16:48:52 ID:???
半角スペースを区切り文字としてそれぞれ文字列に格納したいのですが、
(例:「1 2 3」を$a=1,$b=2,$c=3といった具合)
半角スペースが区切り文字だと何か不安です。
環境によっては上手く動作しないような。杞憂でしょうか?
657nobodyさん:2005/12/10(土) 16:49:21 ID:vDRN2V5d
http://www.kent-web.com/pwd/login.html

ここのログイン、解説通りに設定したけど。ログインしようとすると、ソースが表示されてしまうん
だけど。原因なんだろ。?
658nobodyさん:2005/12/10(土) 16:59:01 ID:???
>>656
不安って…EBCDIC環境とかか?
ASCIIコードが使えない環境まで考慮するのは考えすぎじゃないのか?
659nobodyさん:2005/12/10(土) 17:00:32 ID:???
>>657
なんでPerlスクリプトの質問をここでするん?
660nobodyさん:2005/12/10(土) 17:01:01 ID:???
なんだったら\x20で書き出せば
661nobodyさん:2005/12/10(土) 20:05:54 ID:UVx/Wp+9
phpのインストールについてはこのスレでいいんでしょうか?
もし、専用のスレがあれば誘導をお願いします。

現在、RedHatEnterpriseLinux3 ES を使っています。
Apache : 2.2.0
php : 4.4.1
をソースからのコンパイルでインストールしています。

上記環境で、SimpleXMLを使用したく、phpのconfigureオプションに--enable-simplexmlを追加して
コンパイル→インストールを行ったのですが、simplexml_load_file(FILE)関数が"undefined function"となってしまいます。

コンパイル時やインストール時には、エラーの類は出ておりません。

phpinfo()のConfigure Commandにもちゃんと--enable-simplexmlが表示されています。
PHP4でのSimpleXMLの情報が少なく行き詰ってしまいました。

php-4.4.1にてSimpleXMLを使用するにはどうすればいいのでしょうか?
宜しくお願いします。
662nobodyさん:2005/12/10(土) 20:30:09 ID:???
>>661
SimpleXMLってPHP4にバックポートされたの?PHP5のみだと思うけど。
マニュアルのsimplexml_load_file()の項とか
configureオプション(マニュアルじゃなくてソースの方)を確認してみな。
663nobodyさん:2005/12/10(土) 20:41:55 ID:???
>>662
configureオプションのソースにはありませんでした・・・

しかし、SimpleXMLを調べている時に
http://sb.xrea.com/showthread.php?t=10288
を見つけて、PHP4でもインストールできるような感じがしたので、、、

また、手持ちのPHP本にもPHP5からデフォルトでインストールされるが、
PHP4系ではconfigureオプションで指定するように書いてあります。

使えないのでしょうか??
664nobodyさん:2005/12/10(土) 21:28:03 ID:???
>>663
質問者の勘違いというより勉強不足による間違いだと思うよ。
因みに「手持ちの本」って何?

PHP4でのSimpleXMLライクな試みは、あるにはあるみたいだけどね
http://www.ister.org/code/simplexml44/index.xhtml
http://minixml.psychogenic.com/
中身見てないけど。
665nobodyさん:2005/12/10(土) 21:39:40 ID:???
>>664
すみません。ありがとうございます。
今、手持ちの本を見返して見た所、
「SimpleXMLを使用するにはconfigureオプションで組み込むか、PHP5からは標準で組み込まれた・・・」
というような書き方がされていまして、てっきりconfigureオプションで組み込めるものだと思い込んでいました。

>>663のサポートボードの質問に対して、
xreaのWebmasterが4.4.2に入れ替える時に検討します。って返事かいているもんで、完全に勘違いしておりました。
そのサポートボードにも、他のPHP4系へのSimpleXML導入してください。ってメッセージもありました・・・
666nobodyさん:2005/12/11(日) 00:07:12 ID:CWApnEja
667nobodyさん:2005/12/11(日) 00:11:00 ID:CWApnEja
失敗
xreaにhttp://php.s3.to/net/kusi.phpsをアップしてパーミッションもちゃんと設定したんですが
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen().
If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer.
in /virtual/アカウント名/public_html/kusi3.php(ファイル名) on line 76
とエラー表示されてしまいます。使用はできるんですが動作が重いような気がします。tok2などの鯖では正常に動作しました。
何が原因でしょうか?スクリプトに文法的な間違いがあるのでしょうか?
668nobodyさん:2005/12/11(日) 00:16:15 ID:???
  _, ._
(;゚ Д゚) 俺にはwarningに見えるんだが?
669nobodyさん:2005/12/11(日) 00:16:35 ID:???
warningってなに?
670nobodyさん:2005/12/11(日) 00:17:07 ID:???
>>667
エラーメッセージに書いてあるそのまんまなんだけどな。英語読めないとか言うなよ。
元々xreaではその手のCGIは歓迎されておらず、制限が厳しめになっている。
671nobodyさん:2005/12/11(日) 00:21:12 ID:CWApnEja
頑張ってよんでみたんですが
allow_call_time_pass_referenceを設定すればOK?ただし推奨しない?
わからん・・・つまりxreaに嫌われてて対処法はないってことですか?
672nobodyさん:2005/12/11(日) 00:24:04 ID:???
warningってことはつまり無視して良いよって事だよ
673667:2005/12/11(日) 00:25:07 ID:???
本当はおまえらわかんないだけだろ?直せないなら最初から正直に言えよな。
674nobodyさん:2005/12/11(日) 00:34:38 ID:???
WinXP+Apache2.0.54.0+PHP5.1.1でapacheを停止させるとphp_mysql.dllで
エラー吐いてる人って居ない?。必ずエラーはくんだが・・・・。
675667:2005/12/11(日) 00:36:01 ID:CWApnEja
>>674
いねーよ。
676nobodyさん:2005/12/11(日) 00:38:37 ID:???
>>673
エラーのまんまじゃん、そのソースの76行目
$fp = fsockopen($host, 80, &$errno, &$errstr, $time_out);

実体参照使っている。xreaのPHPは実体参照時にWarningがでる。
実体参照を使わずに、一時変数を使って場を凌げ。
677nobodyさん:2005/12/11(日) 00:45:13 ID:???
じ、実体参照ぉ?
一時変数っていうか、&とればいいのでは?
678nobodyさん:2005/12/11(日) 00:50:47 ID:???
>>677
本当だありがとう
>>676もありがとう
ふひひh
679nobodyさん:2005/12/11(日) 01:18:40 ID:???
微妙に香ばしいな >ID:CWApnEja
680nobodyさん:2005/12/11(日) 01:24:29 ID:???
2ちゃんで自演でもしようとたくらんでんじゃね?
まぁどのみち>>667のスクリプトでは、改良しない限り書き込みできないがw
681635:2005/12/11(日) 01:55:45 ID:???
>>636
THX!
試してみます。
682nobodyさん:2005/12/11(日) 02:58:35 ID:???
変数$a = 1,2,3,4
で1〜4をランダムに削除したい場合どんな方法があるでしょうか?
例:$a = 1,3,4

考えたのが$aを配列に返還して、要素を抜き取るって
再度結合というのなんですが、一部の要素を抜き取る方法がわかりません。
お助けを。
683682:2005/12/11(日) 02:59:30 ID:???
日本語ごちゃごちゃですな、深夜なのでスマソ
684nobodyさん:2005/12/11(日) 03:08:25 ID:???
$a = '1,2,3,4';か?
それならexplode。
685nobodyさん:2005/12/11(日) 03:16:16 ID:???
>>682
配列から一部の要素を削除するには
array_splice(), array_shift(), array_pop(), unset()
のいずれかを使えばOK
686nobodyさん:2005/12/11(日) 03:22:35 ID:???
$a = "1,2,3,4";
$b = explode(",",$a);
array_splice($b,array_rand($b),1);
$c = implode(",",$b);
687nobodyさん:2005/12/11(日) 07:06:00 ID:???
計算機のようなものを作っているんですけど、
1度入力したものが計算と同時にリセットされてしまいます。
クッキーを使う以外の方法で直前にポストしたものを、
また表示するというようなことはできないでしょうか?
<option>タグでプルダウン形式にしてるので、
クッキーを使う方法だと難しそうなのでできないのです。
688nobodyさん:2005/12/11(日) 07:28:40 ID:???
>>687
どうやっているのかが書かれていないので想像するしかないんだが、
> 計算と同時にリセット
つーのが考え違いしてるんじゃないかな?
フォーム要素に初期値(デフォルト値)を設定していないものを
単に"新しく"読み込んでいるだけっしょ。
ならば、"適切に"初期値を設定してやればいいっしょ。これはHTMLレベルの知識っしょ。
689687:2005/12/11(日) 07:42:22 ID:???
>>688
レスどうもありがとうございます。
わかりづらくてすみません。
入力フォームと、結果を表示するフォームをわけているんですが、
計算実行のボタンを押して、
結果を表示しつつも、入力フォームを残すようにしています。
計算実行のボタンをおした時に、
入力フォームの値がデフォルト値に戻ってしまうので困っています。

ソースですが
$a=$_POST['a'];
$b=$_POST['b'];
$c=$a+$b;
print $c;

html側は
<form method="post" action="$_SERVER['PHP_SELF']">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
+
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>

こんな感じです。
デフォルトでは1+1になりますが、
2+2を選択して計算を実行したあとに、1+1に戻ってしまいます。
これを2+2のままにしたいということです。
690nobodyさん:2005/12/11(日) 07:49:44 ID:???
フォームの出力の際に、<option 〜 selected>のようにして、適切なoptionを選択状態にすればいいよ。
そうすれば、まるで選択したものが残っているかのように見えるから。
691nobodyさん:2005/12/11(日) 07:52:12 ID:???
>>689
688さんが言われるとおり,HTMLの問題だよ.
option要素にselected属性を使う.
a,bの値で条件判定して,初期選択にしたい方に
<option value="N" selected="selected">N</option>
となるようにPHPを書けばOK.書き方はいろいろあるから,考えてみて.
692687:2005/12/11(日) 07:57:30 ID:???
>>688 >>690 >>691
皆様どうもありがとうございます。
1をselectedにして、2を選択したところ、
selected(1)に戻ってしまいました。
どうも考え方が間違ってるようなので
頑張って考えて方法を探したいと思います。
693691:2005/12/11(日) 08:03:41 ID:???
>>692
>1をselectedにして、2を選択したところ、
>selected(1)に戻ってしまいました。
…当たり前じゃん.1が初期選択になっているんだから.
$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
2だったら,1じゃなくて,2にselectedを指定しなきゃ.
694687:2005/12/11(日) 08:06:11 ID:???
>>693
>$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
これはいいヒントをどうもありがとうございます!
頭が固いもんでorz
早速書き直してみたいと思います。
695nobodyさん:2005/12/11(日) 08:34:13 ID:???
関係ないけどSELECTのデフォ指定ってベタ書きするのめんどくさいよね
696nobodyさん:2005/12/11(日) 11:20:07 ID:???
もしかして、クラスメンバの宣言でPHP4互換のvarではなく
publicやprotected、privateと宣言した方がパフォーマンス良いの?

書き換えていったら動作が機敏になった・・・
697nobodyさん:2005/12/11(日) 11:33:42 ID:???
<OPTION VALUE="1"<?php if ($a == 1) { echo " checked"; } ?>>あ</OPTION>
698nobodyさん:2005/12/11(日) 13:34:34 ID:???
みにくーい
699nobodyさん:2005/12/11(日) 13:39:28 ID:???
埋め込みは嫌いなのでタグの出力は全部echoなりで括るのがマイルール
700nobodyさん:2005/12/11(日) 14:03:12 ID:???
<?= ($a==1) ' checked' : ''?>でいいじゃないか。
701nobodyさん:2005/12/11(日) 14:59:39 ID:???
>>689
いっそ入力フォームのページと結果のページを分けてしまって、
別targetのウインドウで結果ページを出してしまうとか。
そうすれば入力側のリロードは発生しないから入力内容を再現する必要なし。
ブラウザが別に立ち上がってしまうのがイヤならframeかiframeで。
702nobodyさん:2005/12/11(日) 15:06:13 ID:???
>>699
俺はむしろPHPコードの中にHTMLタグが埋め込まれてるのが嫌いなので
echoでHTMLタグを出力するのは絶対禁止派。
あと、HTMLの中に<?〜?>を埋め込むスタイルならPeggyとかで
閉じタグジャンプが使えるので、閉じ忘れなどのミスも防ぎやすい。
703nobodyさん:2005/12/11(日) 15:19:14 ID:???
>>697が何百行もあると鬱になるなあ。
JSPでこれをやったら半殺しの刑にされるけど。
704nobodyさん:2005/12/11(日) 15:28:44 ID:???
>>697
俺は普段こう書いてる
<OPTION VALUE="1"<?php if($a == 1) { ?> checked<?php } ?>>あ</OPTION>
705nobodyさん:2005/12/11(日) 15:44:25 ID:???
>>703
たくさん必要なら関数作るだろうからあんなの何行も書くことはないだろ。
プルダウンやテキストボックスなんかはフォーマットが決まっているから関数にし易いし。
706nobodyさん:2005/12/11(日) 16:07:05 ID:???
おれ、Smarty使ってるんで関係ないや
707nobodyさん:2005/12/11(日) 17:27:24 ID:???
checkedじゃなくて
selectedじゃね?
708nobodyさん:2005/12/11(日) 17:31:46 ID:???
>>707
>>697が馬鹿
709nobodyさん:2005/12/11(日) 19:26:18 ID:???
一度の読み込みで画像の容量、横縦サイズを取る方法はありませんか?

$file_name = "sample.jpg";
$size = filesize("$file_name");

$im_in = ImageCreateFromJPEG("$file_name");
$ix = ImageSX($im_in);
$iy = ImageSY($im_in);

print "サイズ:{$size} 横縦:{$ix}x{$iy}";
710nobodyさん:2005/12/11(日) 19:37:38 ID:???
getimagesize
大きさだけ
711nobodyさん:2005/12/11(日) 19:42:06 ID:???
>>709
「一度で」ってのは無い。
filesize

getimagesize
二回やってもたいしたこたねぇよ。

(少なくともimageオブジェクトつくるよりゃ)
712nobodyさん:2005/12/11(日) 19:47:53 ID:???
>>710-711 参考になりました。ありがとうございます。
713nobodyさん:2005/12/12(月) 03:44:34 ID:???
>>705
サンプルきぼんぬ
714nobodyさん:2005/12/12(月) 07:43:40 ID:???
サンプルプルプルプルップルッ!
715nobodyさん:2005/12/12(月) 13:50:36 ID:???
別窓でリンクを開く方法を教えてください
716nobodyさん:2005/12/12(月) 13:58:26 ID:???
HTMLだろ
717nobodyさん:2005/12/12(月) 14:02:45 ID:???
そうなんですけどheader関数でheader( "Location: URL" );で開く場合に
別窓で出す方法を教えてください
718nobodyさん:2005/12/12(月) 14:11:17 ID:???
>>613
あり得ない。
より良い理解のために、サーバーでの処理とクライアントでの処理を分けてよく考えた方がいい。
ヒント:別窓を開くのは誰の仕事なのか?なにをキーに別窓を開くのか?
719nobodyさん:2005/12/12(月) 14:52:40 ID:???
スルー出来てないぞ
720nobodyさん:2005/12/12(月) 15:13:43 ID:???
move_uploaded_file($_FILES['a']['tmp_name'][$i],uniqid());だとファイルが生成されないのは
何故でしょうか?。uniqid()の代わりに'test.dat'とすると正しくファイルが生成されます。
uniqid()で生成される文字列にファイル名に利用出来ない文字が含まれているのでしょうか?。
721nobodyさん:2005/12/12(月) 15:25:01 ID:???
>>720
おそらく、uniqid() の時点でエラーになっている物と思われ。
move_uploadfileする前に、
$outfile = uniqid();
ってやってみ。
※エラー出力はonにしてからね。
722nobodyさん:2005/12/12(月) 15:56:12 ID:???
error_reporting(E_ALL);
ini_set('display_errors',1);

echo uniqid();

結果
439d1ea43d094

それがエラーも出ない
「439d1ea43d094」という文字列に問題があるとも思えないし・・・
723nobodyさん:2005/12/12(月) 16:04:11 ID:???
>>720
$file = uniqid();
touch($file);
move_uploaded_file($_FILES['a']['tmp_name'][$i], $file);
724nobodyさん:2005/12/12(月) 16:40:46 ID:???
「速効!図解プログラミングPHP + MySQL」PHP5対応

この本買おうと思ってるんだけど、
今使ってる鯖は3,4までしか対応してないみたい。(xreaの34鯖)

まったくphp触ったことないので
試しながらやる時に、バージョン違いによる不具合とか出て
困ること多いのかなぁ〜と心配なんですが、だいじょーび?
725nobodyさん:2005/12/12(月) 17:15:30 ID:???
>>723
だめですね。それでもファイルが作成されません。
WindowsXP+PHP5.1.1+Apache2.0.54.0かな。

move_uploaded_file($_FILES['a']['tmp_name'][$i],$_FILES['a']['name'][$i]);
ではsjis環境で日本語ファイル名ですら作成できるのですけどね。
726nobodyさん:2005/12/12(月) 17:29:20 ID:???
>>725
>>723のコードでファイルが作成されない、ってことはmove_uploaded_file以前の問題だよね。
先の結果の439d1ea43d094を使って
<?php
touch('439d1ea43d094');
?>
とか、エクスプローラで問題のディレクトリに439d1ea43d094という名前のファイルを作ってみるとか
別のディレクトリに作るとどうなるかとか、調べてみれば?
ファイルシステムの制限とかあるのかな。。。
そのディレクトリが存在するドライブはNTFS?
727nobodyさん:2005/12/12(月) 17:32:33 ID:???
共有鯖でテストイクナイ
728nobodyさん:2005/12/12(月) 17:47:36 ID:???
WindowsXPの共有鯖なぞ希少だな
729nobodyさん:2005/12/12(月) 18:35:08 ID:???
>>724
PHPはバージョン違いによる苦しみが他の言語の数倍多い。
おまけに質問時に本と環境でバージョン違うんですがとか言ったら
バカジャネーノ?とタコ殴りにあうことうけあい。

バージョン間で何が違うのかをまず勉強して、把握した上でその本を使うならOK
730nobodyさん:2005/12/12(月) 18:36:04 ID:???
>>717
それ、リンクじゃないし
731725:2005/12/12(月) 18:51:34 ID:???
touch('439d1ea43d094'); ← ファイル作成成功

$name = uniqid();
echo $name; ← 結果 : 439d471cc9f9c
touch($name);  ← 結果 : ファイル作成失敗
touch($name+'add');  ← 結果 : 439というファイル名が生成出来た・・・d以降は何処に・・・

どういうこっちゃねん。エロイ人、理由を教えてっ!!。
共有鯖ではないよ



732725:2005/12/12(月) 19:00:26 ID:???
move_uploaded_fileをコメントアウトして気づいたのですがmove_uploaded_fileがファイルを
削除してくれるみたいです。

touch($name+'add'); 間抜けだった・・・ touch($name.'add');でしたね(^^;

touch($name); ← ファイル作成されてた
move_uploaded_file($_FILES['a']['tmp_name'][$i],$name); ← どういうわけか、ここでファイルげ消されてる



733nobodyさん:2005/12/12(月) 19:14:52 ID:???
>>731
+ は 文字列の結合演算子では無い。
なので前後のオペランド($nameと'add'の事)は数値(整数値)として評価される。
$nameは、有効な数値部分439がその値として使われ、
'add'は有効な数値部分が無いので 0 として使われる。
そして、その結果は 439 + 0 = 439となる。
734nobodyさん:2005/12/12(月) 19:32:03 ID:???
割り算したら少数になるんですが、これをCみたいに切り捨てする方法を教えてください
735725:2005/12/12(月) 19:35:27 ID:???
>>734
そんな貴方にはfloorをあげよう
736nobodyさん:2005/12/12(月) 19:43:46 ID:???
>>734
多数派?少数派?
737nobodyさん:2005/12/12(月) 21:21:09 ID:???
アンケート等でラジオボタンを使用するとき送信を押した後、
選択したラジオボタンが選択されたまま、ラジオボタンを表示させるにはどうすればいい?
738nobodyさん:2005/12/12(月) 21:22:58 ID:???
エスパーキボンヌ
739nobodyさん:2005/12/12(月) 21:35:09 ID:???
選択したいラジオボタンに checked を付けて出力する
PHPではなくHTMLの話でしょ?
<input type="radio" name="hoge" value="xxx" checked>aaaa
740nobodyさん:2005/12/12(月) 21:36:13 ID:???
>>689- あたりと同じ事じゃね?
見た目が「あたかも」選択されたままになっているだけで、
実際には全く新しいページとしてラジオボタンが表示される。
選択状態のラジオボタンを表示したいなら、checkedを付けたradioを出力すればいいだけ。
741nobodyさん:2005/12/12(月) 22:14:27 ID:???
>>689と同じということで
とりあえず>>704をみて
<input type="radio" name="SEX" value="1"
<?php if($SEX == "男性"){ ?>
checked
<?php } ?>
>男性
<input type="radio" name="SEX" value="2"
<?php if($SEX == "女性"){ ?>
checked
<?php } ?>
>女性
って書いたんだけど間違ってる?
742nobodyさん:2005/12/12(月) 23:22:33 ID:???
a.phpに<?include("http://hogehoge.hoge/b.php");?>と記述すれば
b.phpの中身が全部a.phpの中へ挿入されます。
しかし全部ではなく一部を挿入させたい場合はどのようにすればよいのでしょうか?
例えばb.phpの中に
<div id="a">
 <p>ほげほげほげほげ</p>
</div>
<div id="b">
 <p>HOGEHOGEHOGE</p>
 <p>hogehogehogehoge</p>
</div>
<div id="b">
 <p>ホゲホゲホゲホゲ</p>
</div>
という内容があって、<div id="b">のdivボックスだけ抜き出してa.phpに挿入するにはどうしたらよいのでしょうか?
スクリプトを教えてください。m(_ _)m
743nobodyさん:2005/12/12(月) 23:33:36 ID:???
>>742
質問文がなんかヤラシイ(*^^*)
それはともかく、b.phpはphpである必要はなさそうだし、
includeの使い方としては方向性が違っている。
file()とか、file_get_contents()とかで読み込んで、
eregとかpregとかでゴニョゴニョするのがよかろう。
744742:2005/12/12(月) 23:51:51 ID:???
>>743
そのゴニョゴニョを教えてください。
745nobodyさん:2005/12/13(火) 02:52:30 ID:???
>>744
[a.php]
<html>
<body>
<?=preg_replace('/(<div id="b">.*?div>)/', '\\1', file_get_contents("http://example.com/b.php"))?>
</body>
</html>
746nobodyさん:2005/12/13(火) 10:19:42 ID:???
PHP4でクラスのメソッドを呼び出す時、
同じクラスの場合は$this->
親クラスの場合はparent::
をメソッドの頭に付けて呼び出しますよね。
PHP5では$this->ではなくself::使って呼び出すのが正しいやり方なんでしょうか?
747nobodyさん:2005/12/13(火) 13:30:45 ID:???
%php -i | grep mbstring
mbstring.http_output => UTF-8 => UTF-8
mbstring.internal_encoding => UTF-8 => UTF-8
mbstring.language => Japanese => Japanese

こういう設定のサーバで、以下のスクリプトを実行すると、

<?php
$str = "システム";
echo mb_internal_encoding() ."\n<br>";
echo mb_detect_encoding($str) ."\n<br>";
$str2 = trim($str, ' , ');
echo mb_detect_encoding($str2) ."\n<br>";
mb_convert_variables(mb_internal_encoding(), mb_detect_encoding($str2), $str2);
echo mb_detect_encoding($str2) ."\n<br>";
?>

$str2 = trim($str, ' , '); の行で(trimの対象は半角と全角空白です)文字列が
壊れるらしく、

%php test.php
UTF-8
UTF-8
SJIS
UTF-8

とSJISとみなされてしまいます。
全角空白をtrimするにはどのように書くのが良いのでしょうか。
748742,744:2005/12/13(火) 13:42:20 ID:???
>>745
ありがとうございます。m(_ _)m
749nobodyさん:2005/12/13(火) 13:48:00 ID:???
>>746
そのとおり!
750nobodyさん:2005/12/13(火) 13:49:20 ID:???
>>747
PHPのバージョンが4.1.0以上なら
trim

(PHP 3, PHP 4, PHP 5)
trim -- 文字列の先頭および末尾にあるホワイトスペースを取り除く
説明
string trim ( string str [, string charlist] )

注意: オプションのcharlistパラメータは、PHP 4.1.0で追加されました。
charlistパラメータにより、削除する 文字を指定することも可能です。
削除したい全ての文字をリストに してください。..を文字の範囲を指定する際に 使用可能です。

だってさ
751nobodyさん:2005/12/13(火) 13:50:04 ID:???
>>746
俺は、基本的には$thisで呼び出す。但し、定数だけは、わかり易くするためにself::を使用。
752nobodyさん:2005/12/13(火) 13:51:22 ID:???
>>747
正規表現で対応すれば?
753nobodyさん:2005/12/13(火) 14:36:04 ID:???
>>747
trimにマルチバイト文字は指定できないよ
754nobodyさん:2005/12/13(火) 14:41:23 ID:???
755747:2005/12/13(火) 15:25:02 ID:???
trimにはマルチバイト文字は指定できないんですね。
正規表現かMLの方法で対応したいと思います。
ありがとうございました。
756nobodyさん:2005/12/13(火) 18:59:43 ID:???
コンボボックス(selectタグ)で項目が変更されたときに処理をしたいのですが
どのようにして変更を察知すればいいでしょうか?
757nobodyさん:2005/12/13(火) 19:01:40 ID:???
>>756
そういうのはクライアントサイドスクリプトのお仕事。
758nobodyさん:2005/12/13(火) 19:10:40 ID:???
>>757
PHPではできないですか?
759nobodyさん:2005/12/13(火) 19:13:03 ID:???
>>758
AJAXみたいに操作するたびにJavaScript経由で毎回通信させれば
PHPも挟めなくはないが、基本的にブラウザで操作中はPHPは動いてもいない。
760nobodyさん:2005/12/13(火) 19:28:43 ID:???
メール(pop3)のユーザ名とパスワードでサーバに接続し、認証できるかどうかという仕組みを作ってるんですが。
パスワード用のサニタライズはどの文字をすべきでしょうか。
また簡単に出来る関数は無いでしょうか?
761nobodyさん:2005/12/13(火) 19:36:43 ID:???
とりあえず「サニタライズ」は突っ込むところ?それとも釣?
それは兎も角、専用の関数は無かったかと。
一番簡単な方法は、ID/パスワードに使えない文字は通さないようにする。
762nobodyさん:2005/12/13(火) 19:45:05 ID:???
>>758
出来るけど、PHPはクライアントサイドスクリプトとしてはメジャーじゃないので
そういうのはJavaとかJavascript/VBScriptとかActionScriptとかの
メジャーで、クライアントに実行環境が既にあると期待できる言語を利用するのが常套。
763nobodyさん:2005/12/13(火) 20:01:46 ID:???
PerlScriptは見たことあるけど、
PHPもクライアントスクリプトとして
HTMLに記述とかできるんだっけ?
764nobodyさん:2005/12/13(火) 20:15:36 ID:???
存在はするようだがまともに動かないという情報あり
ttp://blog.livedoor.jp/p-1956050/archives/12733770.html
765nobodyさん:2005/12/13(火) 20:16:36 ID:???
>>763
いや、JavaやActionScriptと一緒でプラグインされた別エンジンが実行。
だからコンボボックスをhtmlでやらせてる場合には、Javascript等の介在が必要だね。
インラインで記述されたPerlを解釈できるブラウザは存在するの?
766nobodyさん:2005/12/13(火) 20:20:19 ID:???
ActiveStateがそういうの用意してるんだ。
自分が見た事のあるのとは違うな。
まあ、どっちも実用には…なのは同じような感じだったが。
767nobodyさん:2005/12/13(火) 20:21:44 ID:???
ActivePerlをインストールすればIEはインラインで扱えるようになるとオモタ
768nobodyさん:2005/12/13(火) 20:22:34 ID:???
確かに実用では疑問。
個人用かイントラ用だよな。
769nobodyさん:2005/12/13(火) 20:51:37 ID:???
$a[0] = orange;
$a[1] = apple;
$a[2] = peach;
$a[3] = banana;

でkey順に並べる時、
ksort($a);
で、key逆順に並べる時
krsort($a);
で合ってますよね?

krsort($a);が反応しないのですがorz
770nobodyさん:2005/12/13(火) 20:56:53 ID:???
>$a[0] = orange;
>$a[1] = apple;
>$a[2] = peach;
>$a[3] = banana;
      ↑何が定義されている?

>krsort($a);が反応しないのですがorz
反応って?
771nobodyさん:2005/12/13(火) 21:05:29 ID:???
>>769
> krsort($a);
> で合ってますよね?
合ってる。

> krsort($a);が反応しないのですがorz
多分、確認方法が間違ってる。

foreach($a as $d) print "$d\n";
なら逆順で出てくるのが確認できると思う。

恐らく
for($i = 0; $i < 4; $i ++) print $a[i]."\n";
みたいな確認方法をしてるんじゃないか。
順番がひっくり返っても、キーで呼び出してたら意味ないぞ。
772nobodyさん:2005/12/13(火) 21:12:48 ID:???
>>770
すみません、
大きな勘違いでしたorz

$result_data = file($result_file);
  krsort($result_data);
       for($i=0; $i<count($result_data); $i++){

としていて、何故逆順に表示されないんだろうと思ってたんですけれど、

        $result_data = file($result_file);
         $result_data = array_values($result_data);
   krsort($result_data);
        for($i=0; $i<count($result_data); $i++){

でした・・・。
お陰で長く悩んでいた事から開放されましたorzありがとうございます。

773nobodyさん:2005/12/13(火) 21:13:45 ID:???
>>771
全くその通りでした・・・。
失礼しました(汗
774nobodyさん:2005/12/13(火) 21:14:57 ID:e5VQAK41
        $result_data = file($result_file);
          krsort($result_data);
            $result_data = array_values($result_data);
              for($i=0; $i<count($result_data); $i++){


しかも、こうですし(´□`)
スレ汚し申し訳ないです。
   
775nobodyさん:2005/12/13(火) 21:17:51 ID:???
>>772
> $result_data = file($result_file);

>         $result_data = file($result_file);
>          $result_data = array_values($result_data);
って何が違うんだこれ?
776nobodyさん:2005/12/13(火) 21:19:29 ID:???
>>775
焦ってしまい、間違えてしまいましたorz
>>774のです。
777nobodyさん:2005/12/13(火) 21:20:35 ID:???
>>772
そんな面倒なことしなくてもこれでいいと思うんだが。
$result_data = file($result_file);
for($i=count($result_data)-1; $i>=0; $i--){

どっちにしろ、そのケースならkrsort()でなくrsort()の方が速いと思う。
778nobodyさん:2005/12/13(火) 21:25:59 ID:e5VQAK41
>>777
なるほど、そうした方が行も減ってスマートですよね。
どうして思いつかなかったのか悔やみます・・・。
勉強になりましたm(__)m
779nobodyさん:2005/12/14(水) 11:32:35 ID:CwjBoKRv
文字を エンティティコードに変換する関数はありますでしょうか?
例えば…

& を &#38; に変換するとか…
780nobodyさん:2005/12/14(水) 11:43:29 ID:???
781nobodyさん:2005/12/14(水) 11:47:17 ID:CwjBoKRv
>>780
おお、ありがとうございます。
マニュアルを探してて検索してたら 403 Forbiddenが出ててこまっておりました。
感謝です。
782nobodyさん:2005/12/14(水) 11:48:10 ID:???
Googleの検索エンジンロボットがキリバン踏んでしまいました。
783nobodyさん:2005/12/14(水) 12:44:05 ID:???
htmlspecialchars("[email protected]");

こうやってもエンティティ化されないのは何故でしょうか?
本当なら &#109;&#97;&#105;&#108;&#64;&#104;&#111;&#103;&#101;&#46;&#99;&#111;&#109; となるはずなのですが。
htmlspecialchars関数もやってみたのですが…駄目でした。
784783:2005/12/14(水) 12:44:48 ID:TiHY5j3U
ID表示します。
785nobodyさん:2005/12/14(水) 12:49:52 ID:???
数字が出現した以降の文字列を取得したいのですが、
strstr($data,"[0-9]*")
ではだめでした。
なにかよい方法はないでしょうか。
786nobodyさん:2005/12/14(水) 12:54:55 ID:???
>>785
strstrでは正規表現使えない。
自分で関数を書く
787nobodyさん:2005/12/14(水) 13:08:05 ID:???
>>783
ヒント:引数
788nobodyさん:2005/12/14(水) 13:10:37 ID:???
>>783
だから、一部だって書いたのに……。
mb_encode_numericentity
789785:2005/12/14(水) 13:15:21 ID:???
>>786
やはりそれしかないですか。
ありがとうございました。
790725:2005/12/14(水) 13:29:00 ID:???
move_uploaded_fileの件なんだけどファイル名に数字入るとだめなんですね
バグと言って良いのかなぁ・・・
誰か検証頼みます

Apache2.0.54.0+PHP5.1.1+WindowsXP PS2

move_uploaded_file($_FILES['a']['tmp_name'][$i],'./test.jpg'); ← 成功

move_uploaded_file($_FILES['a']['tmp_name'][$i],'./test1.jpg'); ← 失敗
791nobodyさん:2005/12/14(水) 13:40:16 ID:???
>>790
お前、まさかその2行を同時に書いてるわけじゃないよな
moveは移動だから一回移動したら元は無くなるからね
792725:2005/12/14(水) 13:55:55 ID:???
>>791
それはない(^^;
なんかmove_uploaded_fileの前に他の処理をすると影響を受けている感じかな
793725:2005/12/14(水) 14:19:12 ID:???
わかった!!
apacheをインストールしたディレクトリに作成されてた(笑
apache入れ替える時に気づいたよ・・・
って、これって問題ないのか(−−;
794nobodyさん:2005/12/14(水) 16:12:36 ID:???
>>785
preg_replace('/([0-9].*)/)', '\\1', $data);
795794:2005/12/14(水) 16:13:24 ID:???
書き間違った
preg_replace('/([0-9].*)/', '\\1', $data);
796nobodyさん:2005/12/14(水) 16:15:27 ID:???
>>793
環境変数TEMPの設定ミスじゃないの?
797nobodyさん:2005/12/14(水) 16:40:39 ID:???
>>796
TEMPじゃなくTMP
798725:2005/12/14(水) 17:22:09 ID:???
>>796
いや、tmpにしてもアップロードフォルダにしても弄ってないからc:\woindows\tmp or tempだよ
それに一時ファイルはPHPの処理が終了した時点で消えるしファイル名も違うから間違いないよ
絶対パスを指定しない時に問題があるファイル名とそうでないファイル名があるみたい。
絶対パスで指定したら問題ないみたいだし、まぁ良いかなぁ。
799nobodyさん:2005/12/14(水) 18:13:36 ID:???
>>793
カレントディレクトリの問題?
DOCUMENT_ROOTはどこになってるんだそれ
800725:2005/12/14(水) 18:29:23 ID:???
ServerRoot "C:/Server Files/Apache2"
DocumentRoot "C:/public_html"

おそらくカレントディレクトリの問題。
あぁ、これってroot権限で動いてるような馬鹿鯖でスペース提供してたり
するとはっくれるかもね。私は興味ないから挑戦しないけど(^^;。
801nobodyさん:2005/12/14(水) 19:00:12 ID:???
┐(´ー`)┌
802nobodyさん:2005/12/14(水) 21:12:10 ID:???
phpでディレクトリ作ってそのディレクトリの中にlogファイルをこしらえようとした。
mkdirでディレクトリの生成には成功したものの、その中にlogファイルをfopenの
"a"モードで作成しようとしたらエラーが返された。

Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 11040
is not allowed to access /tmp/directory_A owned by uid 1000

よく調べてみると、mkdirで生成したdirectory_Aというディレクトリの所有者がapacheに
なっていて、他のuploadしたファイルの所有者が自分のアカウント名だったのと比べて
違っていることが分かった。もうひとつ気になった点は属性が755(rwxr-xr-x)となっていた点かな。

なんとかこのディレクトリの中にファイルを生成できるようにならないかな?
803nobodyさん:2005/12/14(水) 21:31:32 ID:???
CGI版PHPまたはFTP
804nobodyさん:2005/12/14(水) 21:47:40 ID:???
>>803
なんで素のPHPじゃディレクトリ作ってその中にファイル作れないかね・・・?
805nobodyさん:2005/12/14(水) 22:56:50 ID:???
XREAスレの人ですか?
806nobodyさん:2005/12/14(水) 23:03:05 ID:???
>>804
Apacheさんが作ったディレクトリをどこの馬の骨とも知れない
お前なんぞに弄らせるかよwww ってこと
807nobodyさん:2005/12/14(水) 23:31:12 ID:???
>>804
つーかsafe_modeの方が素では無い罠
808802:2005/12/14(水) 23:48:49 ID:???
>>805
( ´∀`)ノ < そうそう、あっちのスレから島流しにあってきた

>>806-807
xreaに限らずレン鯖はどこもsafe_modeでの運用が多いってことかね( ゚Д゚)?

cgiならディレクトリつくってその中にいくらでもファイル作成できるっていうのに
なんかPHPだけ不公平って感じやな。ディレクトリ作って中にファイル作りたい
なんて需要は結構あるやろ。つ〜か何層も入れ子にしてディレクトリを作りたい
なんて贅沢なことは言わないから、せめて1層のディレクトリを作ってそのなかに
ファイルを生成することくらい許可してくれってことよ、俺が言いたいのは(´ー`)y−~~~
809nobodyさん:2005/12/14(水) 23:57:11 ID:6RnHukHD
簡単そうに思えて、全然思いつかないです。
変数内に$hoge='"hoge1" . "hoge2"'
と入っていて、$hogeから、最終的に
hoge1hoge2
を得たいのですが、どのようにしたら良いでしょうか?
810nobodyさん:2005/12/14(水) 23:59:01 ID:???
ディレクトリもファイルも好きなだけ作れる
UIDかGIDでの同一性が要求されるだけ

要は「他人のファイルが覗ける」状態をどう考えるか
811nobodyさん:2005/12/15(木) 00:05:51 ID:???
>>809
それだけなら余計なものを空白に置換するだけでいい
どういうデータを前提してるのかわからんから答えようが無い
CSV的なものなら正規表現で拾ったら?
812nobodyさん:2005/12/15(木) 00:14:05 ID:???
正直safe_modeなんていう怪しい動きのする機能は使わないのが正解では?
813nobodyさん:2005/12/15(木) 00:14:18 ID:???
>>808
1個くらいなら自分で作れ
814nobodyさん:2005/12/15(木) 00:14:50 ID:???
>>812
具体的に
815802:2005/12/15(木) 01:09:42 ID:???
>>813
> 1個くらいなら自分で作れ

残念ながら月毎に一つフォルダが作られる。
年に1個くらいならそりゃ自分でフォルダくらいつくってもいいですよ、って思えるが
流石に月一は(;´Д`)・・・
816nobodyさん:2005/12/15(木) 01:11:47 ID:???
そんな物Perlと併用すれば良いだけだろ
817nobodyさん:2005/12/15(木) 01:12:05 ID:???
読んでないけどまたエスパー希望のアホ質問か
ディレクトリの有無なんて設計でどうとでもなるだろうに
818nobodyさん:2005/12/15(木) 01:16:40 ID:???
読め
即行解答でてる
819nobodyさん:2005/12/15(木) 01:17:46 ID:???
>>815
今日12個作れよ
820802:2005/12/15(木) 01:31:58 ID:???
>>810
> ディレクトリもファイルも好きなだけ作れる
> UIDかGIDでの同一性が要求されるだけ
>
> 要は「他人のファイルが覗ける」状態をどう考えるか

user権限でPHPにアクセスした結果作られるディレクトリの所有者はapacehだったけど
さらにその中に作られるファイルの所有者もapacheということにすればUID/GIDは同一
だから問題ない気がするけど・・・

>>819
> 今日12個作れよ

( ゚д゚)・・・

(゚Д゚)ハッ!
821nobodyさん:2005/12/15(木) 01:33:47 ID:???
そのファイル作成を実行してるスクリプトが誰のものか考えろ
つーかまずマニュアル読め
822nobodyさん:2005/12/15(木) 01:35:25 ID:???
>>820
こっち見んなw
823nobodyさん:2005/12/15(木) 01:42:58 ID:???
まあぶっちゃけこんなとこで聞くよりマニュアル読んだほうが速いよな
824nobodyさん:2005/12/15(木) 02:29:19 ID:???
プログラム以前にやる気ぐらい出せよ
825802:2005/12/15(木) 02:33:07 ID:???
やる気か・・・
ニートの俺が今一番欲しいものの中の一つだな(´・ω・`)・・・
826nobodyさん:2005/12/15(木) 02:38:49 ID:???
systemでmkdir→chmod 777ってのは無理?
827nobodyさん:2005/12/15(木) 02:46:08 ID:???
chmodしてもumaskの影響があるしなぁ。
まぁ、それ以前にchmod自体が許可されない場合もあるが。
828nobodyさん:2005/12/15(木) 02:48:13 ID:???
>>809
$hoge='"hoge1" . "hoge2"';
eval('$hogehoge = ' . $hoge . ';');
print $hogehoge;
829nobodyさん:2005/12/15(木) 02:49:52 ID:???
>>816
せめてCLI版PHPとの併用にしよーぜw
830nobodyさん:2005/12/15(木) 02:51:44 ID:???
セーフモードでsystem?
だいたいパーミッション関係ないし
831802:2005/12/15(木) 02:55:55 ID:???
>>826
chmodでアクセス権は変更できたけど、ファイルを生成する段階でやはり
「UIDが違う」という理由で失敗するみたい(´・ω・`)ショボーン
832nobodyさん:2005/12/15(木) 03:00:29 ID:???
mkdir→chown…はさすがに無理か?
833nobodyさん:2005/12/15(木) 03:06:50 ID:???
>>829
すでにある資源を使えばいいと思うが
XREAがオフィシャルで用意してるものがあるわけで
834nobodyさん:2005/12/15(木) 04:58:52 ID:???
>>802
だからさ、mod_phpのsafe_modeはそういう仕様なんだから諦めろっての。
CGIで動かすなり何なり手段は残されてるんだからさ。
835nobodyさん:2005/12/15(木) 05:18:35 ID:???
>>808
> なんかPHPだけ不公平って感じやな。
実行速度を高速にする代わり共有で使うにはセキュリティ的に危険な
Webサーバーのモジュールとして動かそうとしてるための措置。
別に、Perlと同じCGIで動かすようにすればその辺の弊害はなくなる。
その代わり、PerlなCGIよりもっと遅いけどw
836nobodyさん:2005/12/15(木) 05:27:51 ID:???
プロセスとスレッドで実行速度が変わるというのは新説だな
837nobodyさん:2005/12/15(木) 05:30:46 ID:???
CGIはシェル経由で呼び出すんだから
レスポンスが当然遅いだろが
838nobodyさん:2005/12/15(木) 05:37:41 ID:???
実行速度
839nobodyさん:2005/12/15(木) 05:39:11 ID:???
処理速度は一緒。実行速度は遅い。ってことじゃねーの?
840nobodyさん:2005/12/15(木) 05:47:44 ID:???
>>837
パスを解釈してバイナリ叩いてるのはWeb鯖じゃないのん?
841nobodyさん:2005/12/15(木) 05:53:02 ID:???
もしかしたらSynchronizeのコストのことを言ってるんです
842nobodyさん:2005/12/15(木) 05:53:40 ID:???
あー。Winodwsサーバーだとそういう動きになるのか。
843nobodyさん:2005/12/15(木) 05:54:24 ID:???
Winodwsってなんだw
844nobodyさん:2005/12/15(木) 06:13:00 ID:???
>>840
いやWinの話じゃないよ
845nobodyさん:2005/12/15(木) 06:37:41 ID:TFBuiRij
女という生き物は、大体、シャワーついでに風呂場でシッコもしてて
便秘で、パンツにウンスジが付いてて、パンツはオムツみたいにオールウェイズ汚くて
めこが臭くて、男より足も臭くて、寝起きが別人で、寝起きの息が臭くて
隠し事が好きで、オパーイがデカイと喜んで、オケーツがデカイと悲しんで
愚痴、陰口、人の噂話が好きで、相談が趣味で、基本的に甘えん坊将軍で
基本的にMっ気があって、取り扱い危険物で、基本的にちょっとアホで
泣き虫で、ムッツリスケベで、変なところで深読み、裏読みして自爆して、男に振り回されるのが趣味で、一喜一憂するのが好きで
お金が好きで、基本的に臆病だけど反面、冒険が好きで、芋系統が好きで
男によく騙されるのが趣味で、でもそのかわり、化粧と詰め物と補正下着で男を騙すのが趣味で
ダイエット中らしいのに何故か甘い物とかお菓子食ってて、イベントごととか行事ごと、記念ごととかが好きで
Hしたい時は恥ずかしいから基本的に自分からHしたいとは言わず、Hな下着を装備して
男から言わせたり、誘導したりするのが趣味で、実はよくおならします
846nobodyさん:2005/12/15(木) 07:32:55 ID:???
そうだったの( ̄□ ̄;)!!
847nobodyさん:2005/12/15(木) 07:33:53 ID:???
>>845
シッコまで読んだ
848nobodyさん:2005/12/15(木) 07:49:08 ID:dK1AjZcq
すれ違いかも知れないですが、受信したメールの整形の仕方を解説したサイトを知ってる方いませんでしょうか。
もしくはpearのNet/POP3の使い方を説明してるサイトでもいいんですが。。
849nobodyさん:2005/12/15(木) 08:25:50 ID:???
もっとボーイッシュな女の子に出会いたい(´・ω・)
850nobodyさん:2005/12/15(木) 08:28:34 ID:???
俺の彼女もうんこついてたけど愛してやったぞ。昔ね。
851nobodyさん:2005/12/15(木) 11:33:24 ID:UeTwmalZ
異なるパスに相対参照でincludeしているライブラリにさらに別のパスからincludeするとうまくいかないです

例:

~user/public_html/hoge/hoge.php
-----------------------
<?php
include '../library.php';
-----------------------

~user/public_html/library.php
-----------------------
<?php
include '../db/db_control.php'';
-----------------------
↓ ここ失敗 failed to open stream: No such file or directory in ...
~user/db/db_control.php
-----------------------
<?php ...
-----------------------

しかし~user/public_html/library.phpから同じディレクトリのファイルはincludeできます。
何が原因なのでしょうか・・・
852nobodyさん:2005/12/15(木) 11:38:28 ID:???
>>851
最初に実行したファイルのディレクトリをカレントディレクトリとして、
そこからの相対パスで探すから。
853nobodyさん:2005/12/15(木) 11:39:31 ID:???
どのファイルでもhoge.php(include元)からのパスを記述する

インクルードされる側のスクリプトからの相対パスを指定したいなら
dirname(__file__)を使う

定数を使って設定ファイルでパスを管理


のいずれか
854nobodyさん:2005/12/15(木) 11:45:05 ID:???
呼び出し元である
user/public_html/hoge/hoge.php
が基準となるからでしょ。
855nobodyさん:2005/12/15(木) 11:53:59 ID:???
やっぱり呼び出し元が基準なんですね・・
だとすると
~user/public_html/library.phpから同じディレクトリのファイルなら呼び出せるのは何故なのでしょうか。
include_pathに./が含まれてるとしても変な感じがする

ともかくdirnameなど試してみます、ありがとうございました

856nobodyさん:2005/12/15(木) 11:55:06 ID:???
呼び出し元つーかワーキングディレクトリね
857nobodyさん:2005/12/15(木) 17:12:18 ID:???
こんにちは。
少しお聞きしたいのですが、textに書き込む処理をするプログラムを作った時、
txtに書き込まれたものが文字化けするのですが、どうしてでしょうか?

euc-jpモードでtxtを読み込むときちんと表示されましたが、
普通に開くと文字化けという感じです。

実際、euc-jpで言語書いてるので仕方ないんですかねぇ・・・(´・ω・`)
858nobodyさん:2005/12/15(木) 17:18:06 ID:???
>>857
普通に開くってのはどういう意味さ。

euc-jpで書き込まれたテキストを
euc-jpに対応してないエディタで開いたなら、
文字化けしてあたりまえだぞ。
859nobodyさん:2005/12/15(木) 17:18:36 ID:???
>>857
他の文字エンコードで書き込みたいのなら、mb_convert_encodingしたものを書き込みましょう。
860nobodyさん:2005/12/15(木) 17:20:51 ID:???
>>858,859
即レスありがとうございます。
確かにそうですよね・・・。
失礼しましたorz

mb_convert_encoding勉強してきます。
861nobodyさん:2005/12/15(木) 17:43:03 ID:x48kBhXK
メモ帳とかじゃ見れねえよ。
862nobodyさん:2005/12/15(木) 17:58:13 ID:???
includeとかで他のPHPファイルとか読み込むととたんに変数の扱いが難しくならない?
PHPって基本的に変数はグローバルだから読み込み先のPHPファイルとかでいきなり
見ず知らずの変数とかが登場したりするじゃん。
「この変数は一体どのファイルで定義されたんだろう」
ってことで探したり把握するので一苦労って経験無い?
863nobodyさん:2005/12/15(木) 18:15:40 ID:tNJHcKWR
配列Aと配列Bがあるとします。
このAからBと重複する部分を削除した配列Cを出したいのですが、
簡単な方法などはないでしょうか?

イメージとしては 配列C=配列A-配列Bという感じです。
配列Aの中から配列Bの要素を消したいと思っています。
864nobodyさん:2005/12/15(木) 18:16:49 ID:???
>>862
>基本的に変数はグローバル

includeでベタソース読もうとするからそうなるんだろ。
functionにまとめるとか、ちゃんと考えて作れば何も苦労しないけど。
865nobodyさん:2005/12/15(木) 18:19:33 ID:???
>>863
array_diff
じゃだめか?
866nobodyさん:2005/12/15(木) 18:44:29 ID:z/EbHORg
掲示板の書き込みなんかで20行より多いのを20行まで縮めたりするで、
改行ごとに区切って配列に入れて上から20個取り出すより良いやり方ありますか?
867nobodyさん:2005/12/15(木) 18:52:08 ID:???
868nobodyさん:2005/12/15(木) 19:08:32 ID:???
書き方が悪かったのですが
その掲示板の書き込みというのは
$kakikomi = "あ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ";
みたいなデータです。
この$kakikomiを
$kakikomi = "あ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ\nあ";
こんな風にしたいんです。
869nobodyさん:2005/12/15(木) 19:14:09 ID:???
>>868
1:explode
2:数合わせ
3:join

でどう?
870nobodyさん:2005/12/15(木) 19:16:59 ID:???
>>869
それにします
ありがとうございました
871nobodyさん:2005/12/15(木) 19:26:36 ID:???
PHPでは画像やFLASHなど作れますが、将来的にMIDIも作れるようになるんでしょうか。
872nobodyさん:2005/12/15(木) 19:31:19 ID:???
>>871
今でも作ろうと思えば作れますぜ
873nobodyさん:2005/12/15(木) 19:33:46 ID:???
>>871
PHPでFlash作れるの?知らなかった・・・。
874nobodyさん:2005/12/15(木) 19:35:12 ID:???
ファイルの生成だけならphpに限らず大概の言語で出来るがな
875nobodyさん:2005/12/15(木) 20:26:42 ID:???
>>873
CGIったら、ああPerlスクリプトのことが言いたいんだなと同程度には
Flashムービーファイルだと理解してやれよ。
876nobodyさん:2005/12/15(木) 21:08:55 ID:lIkliCzn
Smartyのテンプレートにカタカナの「マ」が入っていると
エラーがでてしまいますorz...

文字コードの問題なんだと思いますが、池沼なのでどうす
ればいいか分かりません。

アドバイスおねがいします。
877nobodyさん:2005/12/15(木) 21:10:22 ID:???
MIDIってFlashのことなのか?????
878nobodyさん:2005/12/15(木) 21:19:41 ID:???
>>875
さすがエスパー伊達じゃないぜ
879nobodyさん:2005/12/15(木) 21:21:06 ID:???
エスパー伊東に見えた
880nobodyさん:2005/12/16(金) 00:44:30 ID:???
$dateが23か0じゃなかった場合にaaaを出力して、それ以外の場合はbbbを出力します。

if (($date !== 23)or($date !== 0)){
echo "aaa";
}else{
echo "bbb";
}

これだと$dateが23の場合でもaaaが出力されてしまうのですが、どこが間違っているのでしょうか。
881nobodyさん:2005/12/16(金) 00:56:20 ID:???
ANDじゃろ
882nobodyさん:2005/12/16(金) 01:01:37 ID:???
>>880
$date が 23 の時

$date !== 23 は false
$date !== 0 は true

false or true = true

∴どんな数字を入れても成り立つ。

基本中の基本、というかこんな事で悩むなら作るの向いてないんじゃないか・・?
883nobodyさん:2005/12/16(金) 01:07:43 ID:???
>>881-882
ありがとうございました解決しました。
前にも向いてないって言われました…。でも好きなんです。
884nobodyさん:2005/12/16(金) 01:10:23 ID:???
>>883
わからないことを他人に頼るってのを直さないと何時までたっても上達しないよ
885nobodyさん:2005/12/16(金) 01:19:40 ID:???
まぁ、生暖かく見守ってやるからガンガレ

煮詰まった時は、コーヒーでも飲んで小休止すると、悩んでたのが馬鹿みたいにあっさり解けたりするぞ
886nobodyさん:2005/12/16(金) 01:27:10 ID:???
>>882
どーでもいいことだがPHPでは普通の論理は通用しないぞ

反例:

null == 0 は true
null == array() は true
しかし
0 == array() は false
887nobodyさん:2005/12/16(金) 02:00:39 ID:???
!== だからいいんちゃう?
888nobodyさん:2005/12/16(金) 02:17:13 ID:???
型チェックとかじゃなくて論理的な推移性の話だお
889nobodyさん:2005/12/16(金) 02:49:47 ID:???
マニュアル読めよ
890nobodyさん:2005/12/16(金) 03:08:29 ID:???
>>888
だから?
891nobodyさん:2005/12/16(金) 03:20:18 ID:???
まったくしょうがねえなこいつらw
892nobodyさん:2005/12/16(金) 05:29:21 ID:Tb6x4DJs
>>876
ああそれは正常な動作ですな
893nobodyさん:2005/12/16(金) 06:26:17 ID:???
$dateが23または0 -> $date == 23 or $date ==0
!($dateが23または0) -> !($date == 23 or $date == 0)
                ↓ ド・モルガ〜ンッ!!
               $date !== 23 and $date !==0
894nobodyさん:2005/12/16(金) 09:17:47 ID:???
>>876
デリミタを <{ , }> とかに変えればいいんじゃないかな?
ってか、なんのエラー出るのか確かめてないが。
895nobodyさん:2005/12/16(金) 11:20:26 ID:FlVjXK6k
<input type='file' name='hoge'>でファイルをアップすることまではできたのですが、
ファイルが指定されてなかった場合という分岐を作りたいのですが、
そのやり方が分かりません。

if(empty($_FILES['hoge']['name'])){
  print("エラー")
}
とやってみましたが、どうもファイルが指定してない場合は
$_FILES['hoge']['name']は1を返してしまうようです・・・涙

よろしくお願いします。
896nobodyさん:2005/12/16(金) 11:31:15 ID:S7k/7Vdp
move_uploaded_file()かis_uploaded_file()を使え
897nobodyさん:2005/12/16(金) 11:32:08 ID:???
>>895
switch ($_FILES['hoge']['error']) {
case UPLOAD_ERR_OK: echo "うp成功"; break;
case UPLOAD_ERR_INI_SIZE: echo "over upload_max_filesize"; break;
case UPLOAD_ERR_FORM_SIZE: echo "over MAX_FILE_SIZE "; break;
case UPLOAD_ERR_PARTIAL: echo "うp失敗"; break;
case UPLOAD_ERR_NO_FILE: echo "ファイルがありません"; break;
case UPLOAD_ERR_NO_TMP_DIR: echo "テンポラリフォルダがないよ"; break;
case UPLOAD_ERR_CANT_WRITE: echo "ディスクにかけない"; break;
default: echo "未定義エラー";
}
898nobodyさん:2005/12/16(金) 13:56:04 ID:QT9mtH4K
htaccessになにか簡単に文字を追加すると任意のイメージファイル名
例:sample.jpg
を読み込んだときに任意のイメージ群
例:sample1.jpg , sample2.jpg , sample3.jpg
からランダムに生成してくれるようのがあったの思うのですが
思い出せません。誘導お願いします。

たしかなんかphpかなんかで記述したファイルの拡張子を.jpgに
サーバー上で変えたような記憶があります。よろしくおねがいします。
899nobodyさん:2005/12/16(金) 14:05:58 ID:???
なんか分からない。
記憶を辿ってググるかなんか、エスパー降臨なんかを待つしかないな。
900898:2005/12/16(金) 14:10:14 ID:???
すいません。sample.***をphpかなんかで書いて、サーバー上で拡張子を
jpgに戻したってわけです。そいでもって、読み込むときsample.jpgと呼び出すと
>例:sample1.jpg , sample2.jpg , sample3.jpg
から適当に読み込んでくれるって感じです。
901nobodyさん:2005/12/16(金) 14:10:48 ID:???
ランダムな画像を返すコードをhoge.jpgとかに書いて
スクリプトとして実行させたいってことでしょ。
902898:2005/12/16(金) 14:14:33 ID:???
記憶が不確かですが、.htaccessにはsample.jpgをsample.phpと認識するように
指示する記述をしたようなしなかったような気がします。
903nobodyさん:2005/12/16(金) 14:17:16 ID:???
pathinfoで拡張子消すときによくやるやつね
904nobodyさん:2005/12/16(金) 14:21:45 ID:???
>>902
mod_rewrite

RewriteEngine On
RewriteRule sample\.jpg sample.php
905nobodyさん:2005/12/16(金) 14:35:00 ID:???
ついでにsample.phpだ
<?php
$files = array("sample1.jpg", "sample2.jpg", "sample3.jpg");
$file = $files[array_rand($files)];
header("Content-Type: image/jpeg");
header("Content-Length: ".filesize($file));
readfile($file);
exit;
?>
906898:2005/12/16(金) 14:53:33 ID:???
無事できました!ありがとうございます。
すばやいレス助かりました。(n‘∀‘)η
907nobodyさん:2005/12/16(金) 15:52:47 ID:IKuokGUw
URLを取得するときにgetの内容も一緒に取得する方法ってありますか?

たとえば、
http://map.yahoo.co.jp/pl?nl=35.39.52.635&el=139.42.44.010&la=1&sc=3&CE.x=466&CE.y=278
のように"?"以降の文字列も取得したいのですが。
908nobodyさん:2005/12/16(金) 16:12:17 ID:???
>>907
つ$_SERVER["REQUEST_URI"]
909nobodyさん:2005/12/16(金) 16:15:26 ID:IKuokGUw
>>970
dクス
助かりました。
910nobodyさん:2005/12/16(金) 16:38:43 ID:???
>>909
?以降のみがほしければ
$_SERVER['QUERY_STRING']
911nobodyさん:2005/12/16(金) 18:06:13 ID:???
一言掲示板を作ったのですが
ブラウザの更新をすると直前に書いた内容がそのまま渡されてるっぽくて
二重登録になってしまいます。
これって、ボタンを押されたか更新されたかを区別する方法を教えてください
912nobodyさん:2005/12/16(金) 18:06:43 ID:???
>>911
つセッション
913nobodyさん:2005/12/16(金) 18:30:44 ID:???
>>911
ここみたいに書き込み後にRefreshやLocationで表示しなおす
914nobodyさん:2005/12/16(金) 18:50:54 ID:???
>>912-913
詳しく
915軟式PHP:2005/12/16(金) 18:58:04 ID:???
>>914
頭悪いやつはこれだから。他の板と同じノリでレスすんな。
913なんか十分に詳しいじゃないかwww
916nobodyさん:2005/12/16(金) 19:00:02 ID:???
>>915
禿同
これでダメなら、丸投げスレいけ
917nobodyさん:2005/12/16(金) 19:17:56 ID:???
>>915-916
その程度のレスなら俺にもできるんだって馬鹿。
知らないならレスしないで荒れるから
918nobodyさん:2005/12/16(金) 19:26:36 ID:???
二重投稿防止のためだけにセッション使うのは大げさじゃね
919nobodyさん:2005/12/16(金) 19:36:17 ID:???
携帯の1568万色表示って、正確には何色でしょうか?
16777216ではないですよね?
920nobodyさん:2005/12/16(金) 19:41:24 ID:???
hogemoehage
という文字列中のmoeを取得したいのですが(moeは文字数不特定、hogeとhageは固定)
どうやって取得するのか教えて下さい。
921919:2005/12/16(金) 19:44:55 ID:???
$str = "hogemoehage";
$hoge = explode("hoge", $str);
$hage = explode("hage", $hoge[1]);
$result = $hage[0];
echo $result;
922nobodyさん:2005/12/16(金) 19:45:57 ID:???
hogeとhageを削除すればmoeが残るべ。

str_replace( )
923919:2005/12/16(金) 19:47:46 ID:???
>>922
…かしこいっすね。
924nobodyさん:2005/12/16(金) 19:55:13 ID:VdLHldFd
array_mapは二次元配列には使えないの?
925919:2005/12/16(金) 19:55:43 ID:???
>>919は完全にスレ違いなので放置でお願いしますorz

>>920
>>921より↓の方が速そうですorz
moeの部分にhogeやhageが入る可能性があるなら正規表現使った方がいいんだろうけどわかりません。

$str = "hogemoehage";
$str = str_replace("hoge", "", $str);
$str = str_replace("hage", "", $str);
echo $str;
926nobodyさん:2005/12/16(金) 20:40:58 ID:???
>>925
$str = "hogemoehage";
$str = preg_replace("/~hoge/", "", $str);
$str = preg_replace("/hage$/", "", $str);
927nobodyさん:2005/12/16(金) 20:41:55 ID:???
>>925
926はちょっとタイポ。

$str = "hogemoehage";
$str = preg_replace("/^hoge/", "", $str);
$str = preg_replace("/hage$/", "", $str);
928nobodyさん:2005/12/16(金) 21:26:16 ID:???
$str = "hogemoehage";
$str = preg_replace("/^hoge(.*)hage$/", "$1", $str);
929920:2005/12/16(金) 22:03:48 ID:???
大変申し訳御座いません。
後付け氏ねと言われそうですがhogeとhageの前後には文字があります。

このような文字列です。値が固定なのはhogeとhageのみです。
hdfjhhogemoehagejkfkj
上記についてご回答宜しくお願いします。
930919:2005/12/16(金) 22:14:28 ID:???
>>929
じゃあ>>919でどうぞ。
931nobodyさん:2005/12/16(金) 22:15:15 ID:???
違った、>>921ですorz
932nobodyさん:2005/12/16(金) 23:11:41 ID:???
>>929
hogeとhageはその場所以外にでてこないの?
それでいいなら、

$str = "hogemoehage";
$str = preg_replace("/.+hoge(.*)hage.+/", "$1", $str);
933nobodyさん:2005/12/17(土) 01:04:26 ID:???
preg_match('/hoge(.*)hage/', $str, $pattern);
$result = $pattern[1];
934nobodyさん:2005/12/17(土) 02:19:09 ID:???
>>933
…match?
935nobodyさん:2005/12/17(土) 02:30:36 ID:???
>>934
なんか変か?
936nobodyさん:2005/12/17(土) 02:31:56 ID:???
>>934
937nobodyさん:2005/12/17(土) 02:34:34 ID:???
>>935
934じゃないけど、変じゃない。

ってか、なんでみんな replace 系にこだわってんの?
元の質問から考えると、preg_match または preg_match_all のほうが良いのでは?
938935:2005/12/17(土) 02:37:19 ID:???
>>937
俺もそう思う。
939nobodyさん:2005/12/17(土) 08:39:30 ID:???
変数への代入が=じゃないから、個人的にはあまり好きじゃないなぁ
940nobodyさん:2005/12/17(土) 09:48:42 ID:???
>>929
丸投げ死ねよ
941nobodyさん:2005/12/17(土) 09:51:00 ID:???
くだ質だからいんじゃね?
942nobodyさん:2005/12/17(土) 09:52:08 ID:???
そんな論理は通用しない
943nobodyさん:2005/12/17(土) 10:07:30 ID:???
まぁしたりしなかったり、だな
944nobodyさん:2005/12/17(土) 10:30:39 ID:???
>>939
意味がわからん?
PHPは=で代入だよ
945nobodyさん:2005/12/17(土) 10:32:35 ID:???
釣りだろ。スルーを覚えよう。
946nobodyさん:2005/12/17(土) 10:56:39 ID:???
>>944
preg_matchの話だしょ
第三引数はoutパラメータ
947nobodyさん:2005/12/17(土) 11:15:30 ID:???
preg_matchの返り値が検索結果ではない(返るのは合致件数)から、って事だろ
948939:2005/12/17(土) 12:36:24 ID:???
フォローサンクス
この変数はどこから来たんだ?と思った時、replaceの方が直感で分かるんじゃね?といいたかった
949nobodyさん:2005/12/17(土) 13:25:55 ID:???
replaceとmatchのそれぞれの目的の違いが返り値の違い
replaceは置き換えが目的なので、返り値は置き換えた文字列
matchは合致するかを調べるのが目的なので、返り値は合致数
>>932は「全体を一部の文字列で置換」したパターンだな

preg_match_allがあるので、preg_matchは合致した文字列を返してもいい気はするけど。
950nobodyさん:2005/12/17(土) 14:18:39 ID:???
>>948
受け取りの変数名を引数で指定してるんだから迷うようなものでは無いと思う。
よっぽど$1とかの自動生成されるシステム変数の方が不気味。
その上、replaceは元の文字列の編集も行うので処理コストが無駄に高い。
951nobodyさん:2005/12/17(土) 15:03:43 ID:???
セッションを使ったサイトを作ろうとしているのですが、
ページをxhtmlで書き出すと、セッションに入れた値が表示されたりされなかったり不安定で、
htmlのhead内のtitle以外(meta等)を削除すると、なぜか正常に表示されます。
これって、どんな原因が考えられますか?
バージョンは4.3.11です。4.3.10では、正常に動作しました。
952nobodyさん:2005/12/17(土) 17:48:46 ID:???
同じく、セッションの質問になりますが、
新規セッションでのページアクセスは、
値が代入されていない場合、

if($_SESSION['name'] == ""){

}

で防げるのですが、うちの借りているレンタルサーバーのセッション保持時間が24分でして、この時間が切れた後の確認が
上記の記述では出来ていないようなのです。

「一度ログインして、24分経過→$_SESSIOIN['name']が空になる」

この空の状態でもアクセスする事が出来、$_SESSION['name'] は、Arrayとなっています。
セッション切れあとにアクセスすると、ログイン画面に飛ばしたいのですが、どのようにすればいいでしょうか。
宜しければ、アドバイスお願い致します。
953nobodyさん:2005/12/17(土) 18:12:46 ID:???
empty()かisset()、好みの関数を使って条件式を書き直すと良いと思う。
954nobodyさん:2005/12/17(土) 18:14:33 ID:???
駄目だと思う。
955725:2005/12/17(土) 18:16:17 ID:???
>>952
$_SESSION['name'] がArrayになってる時点で何かゴミが入ってるですよ。
だから当然アクセスできるでしょうね。
956nobodyさん:2005/12/17(土) 18:21:33 ID:???
レスありがとうございます。

>>954さん
953さんのやり方だと出来ないのでしょうかね・・・。

>>955さん
ゴミですか・・・。Arrayと表示されるって事は空では無いんですね。
少し記述を見直してみます。
957nobodyさん:2005/12/17(土) 18:42:14 ID:???
Arrayの中身はvar_dump()かprint_r()すれば確認できるかと
958nobodyさん:2005/12/17(土) 18:45:31 ID:???
一応、名簿のtxtがあるので、
名前一覧を配列 $meibo に入れて、

if(in_array(!$_SESSION['name'],$meibo){
ログイン画面にheaderで飛ばす
}

で緊急対処してみました。
これから957さんのおっしゃっているprint_r()辺りで探りたいと思います。
ありがとうございます。
959nobodyさん:2005/12/17(土) 19:33:27 ID:???
sleepで寝かせて醗酵させたい。
960nobodyさん:2005/12/17(土) 20:23:17 ID:???
$a->b;ではなくa::$bみたいにclass aの変数bを直接?参照する方法はないでしょうか?。

class a{
var $b;
}

$a = new a();
echo $a->b;
961nobodyさん:2005/12/17(土) 20:32:34 ID:???
>>960
あるよ。
962nobodyさん:2005/12/17(土) 23:31:38 ID:???
メソッドならともかく、メンバ変数の直接呼び出しなんてできたっけ??
963nobodyさん:2005/12/17(土) 23:31:43 ID:???
フレームを使ったサイトのアクセス解析をしたい。
PHPでプログラムされたアクセス解析を埋め込むとき、PHPのコードをそのまま埋め込む方法と、
JavaScriptでコードを埋め込む2つの方法があると思う。

後者のJavaScriptの場合
document.referrer
というところを
parent.document.referrer
に変更すればフレームのサイトでも正常にreferを取ることが出来るけど、
前者のphpのコードをそのまま埋める方法でreferを正常にとるにはどうしたらいい?
964nobodyさん:2005/12/17(土) 23:36:08 ID:???
>>962
寝ぼけてた。

でも直接呼び出すということは、値が固定なんでしょ?
定数で良いんじゃね?
965nobodyさん:2005/12/17(土) 23:38:55 ID:???
>>963
ヒント
print_r($_SERVER);

966nobodyさん:2005/12/17(土) 23:44:04 ID:???
>>963
フレーム部分のHTMLをPHPにして、そこでアクセス解析する。
967nobodyさん:2005/12/17(土) 23:45:39 ID:???
>>964
まー、クラス内での定義内容を知りたいんだろうけどね。
968963:2005/12/17(土) 23:47:44 ID:???
>>965
それだとrefer取っても自サイトのフレームが検出されちゃって意味無くない?

>>966
フレームだとどのページを読んだのか判別がつかなくなるような・・・
自分のサイトの中の複数のページを解析しているんだけどそれぞれ独立して
解析したもので・・・
969nobodyさん:2005/12/17(土) 23:55:54 ID:???
>>968
どこのサイトから飛んできたのかを知りたいのなら
referer取るのはフレーム部分だけでいいんじゃないの?
「複数のページを解析」の中の1つとしてフレームも含めればいいだけのような。
各ページでまでいちいちreferer取る必要ないじゃない。

そこをあえて各ページでもフレームのrefererを取得したいと思うなら、
セッション、クッキー、各ページへの引数、などでデータをたらい回せば?
セッションやクッキーの方式ならリンク元が一緒でも別々のユーザとして特定できるから
ユーザ別の完全な行動履歴が記録できるかもね。
970nobodyさん:2005/12/18(日) 00:12:21 ID:???
最近phpを勉強し始めたものですが
ereg_replaceと正規表現が良くわかりません・・・

DBに電話番号を登録させていて
取得した電話番号が9999999999(10桁)として
それを999-999-9999という風にハイフンを付加して表示させたいのですが
ereg_replace("([0-9]{3})\([0-9]{3})\([0-9]{4})","\\1-\\2-\\3",$DB[tel])
とコーディングしましたところ無変換になって困っています…
よろしければご教授ください
971nobodyさん:2005/12/18(日) 00:15:08 ID:???
>>970
> ereg_replace("([0-9]{3})\([0-9]{3})\([0-9]{4})","\\1-\\2-\\3",$DB[tel])
途中の「\」が余分なだけかと。
972970:2005/12/18(日) 00:23:21 ID:???
>>971
おかげで解決しました
ありがとうございました 精進します
973nobodyさん:2005/12/18(日) 05:48:58 ID:???
チェックボックスに入れたデータは、どのように保持すればいいですか?
974nobodyさん:2005/12/18(日) 05:54:07 ID:???
<input name="変数名">で指定した名前でPHPでは
$_REQUEST["変数名"]で受け取れるから
それを使って好きなように処理すればいい
975nobodyさん:2005/12/18(日) 08:09:35 ID:???
携帯ってセッション使えるの?
976nobodyさん:2005/12/18(日) 08:19:24 ID:???
セッションの実装にはcookieとURL書き換えがあって、
URL書き換えの方なら携帯でも使えるべ
977nobodyさん:2005/12/18(日) 08:38:39 ID:???
使える。
使ってる。
978960:2005/12/18(日) 08:43:58 ID:???
おはようございます。

やはりグローバルなインスタンス化は難しいみたいですね(^^;。
スーパーグローバル変数は使いたくありませんし、defineにはオブジェクト入りませんし・・・。
979nobodyさん:2005/12/18(日) 08:57:01 ID:???
>>978
> スーパーグローバル変数は使いたくありませんし、
こっちは分かるけど

> defineにはオブジェクト入りませんし・・・。
こっちの意味が分からない。

$a = new a(); define("定義名", $a->b);
じゃダメなの?
オブジェクトを入れるって言うけど、a::$b ってことはクラス内で定義されてる
初期値を参照したいだけで、オブジェクト内での値の変化は無視してるわけでしょ?
だったら1度newして直後の値をdefineに使っても結果は同じなんじゃないかと。
980nobodyさん:2005/12/18(日) 09:28:54 ID:???
> グローバルなインスタンス化

この用語の使い方が意味分からん
PHP4にクラス変数がないってことが問題なんじゃなかったのかよ
981nobodyさん:2005/12/18(日) 09:29:20 ID:???
単に、$a-> ってのを書くのが面倒とかいう話じゃないのかな?
んでも、$a->を書かない事にはどのインスタンスを指してるのか分からんしなぁ。。
それとも、$ref = & $a->b; てな感じでリファレンスを使えば気に入るのかな?
982960:2005/12/18(日) 09:33:25 ID:???
>>979
値も欲しいのですがインスタンスそのものも欲しいです。
つまりdefine("定義名", new a())と同じ事がしたかったわけです。
通常、メンバ変数は定数の為にあるのですが長いセッション名を=&していたりする事や
インスタンスをあちこちに$a = new a(); の function($a)と使いまわしているうちに$this->
が使いにくくなったりしてきたのでグローバル化出来ないかと考えた次第です(^^;。

結局、インスタンス生成用のfunctionを作ってstaticする方向で使いまわす事にしたの
ですがもっとスマートな方法があれば教えて頂けないでしょうか?。
983nobodyさん:2005/12/18(日) 09:35:12 ID:???
なるほど。設計上静的なメンバが必要という話じゃないのか
それならグローバル変数やDefineが出てくるのも分かる気がする
PHP4でやるならゲッターにstatic仕込んでプロパティに見せるとか
やるしかないね
984nobodyさん:2005/12/18(日) 09:38:06 ID:???
>>982
どこから突っ込めばいいのか困るほどだ
985nobodyさん:2005/12/18(日) 09:39:12 ID:rUQVAAhd
IDE使え。終了
986nobodyさん:2005/12/18(日) 09:40:22 ID:???
単に
$GLOBALS["a"] = new a();
すればいいだけじゃないのか?
スーパーグローバルを使いたくないと言ってるが、
すでにやってることが同じことになってる気がするぞ
987nobodyさん:2005/12/18(日) 09:42:09 ID:???
インスタンス化という概念を根本から否定してるよな
988nobodyさん:2005/12/18(日) 09:44:08 ID:???
スレの終盤はいつも何かが起こる・・・ッ!!
989nobodyさん:2005/12/18(日) 09:46:37 ID:???
過去スレは>>2以降にリストアップしてほしいです
フトモモまぶしい半ズボン少年からのお願いでした
990nobodyさん:2005/12/18(日) 09:51:18 ID:???
何故?
991nobodyさん:2005/12/18(日) 09:52:52 ID:???
削除人か?
992nobodyさん:2005/12/18(日) 09:54:27 ID:???
IEな人だと思う。
993nobodyさん:2005/12/18(日) 09:58:37 ID:???
何故冬なのに半ズボンなの?変態じゃないの?
994nobodyさん:2005/12/18(日) 10:00:31 ID:???
以下のサイトのように、
Webページのキャプチャ画像をPHPで生成することはできますか?

http://webscan.jp/
995nobodyさん:2005/12/18(日) 10:01:51 ID:???
さとるはPHPは使わないよ
996nobodyさん:2005/12/18(日) 10:02:16 ID:???
萌え
997nobodyさん:2005/12/18(日) 10:06:05 ID:???
>>994
不可能じゃないと思うが相当難しいと思う
998nobodyさん:2005/12/18(日) 10:10:54 ID:???
_________________________
    <○√
     ‖ 
     くく
999nobodyさん:2005/12/18(日) 10:11:41 ID:???
1000ならアラビックのマニュアルができる
1000nobodyさん:2005/12/18(日) 10:12:09 ID:???
1000!
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。