5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :nobodyさん:05/03/03 22:41:23 ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
 http://www.php.net/
■日本 PHP ユーザ会
 http://www.php.gr.jp/
■PHP マニュアル
 http://www.php.net/manual/ja/
■PEAR マニュアル
 http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り

2 :nobodyさん:05/03/03 22:44:18 ID:???
前スレ
【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/l50

関連スレ
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50


3 :nobodyさん:05/03/03 22:44:40 ID:???
PHP系blogツール part2
http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/l50
【PHP】処理能力向上テクニックスレ
http://pc5.2ch.net/test/read.cgi/php/1088823837/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50


4 :nobodyさん:05/03/03 22:45:14 ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。 
1. ハードウェア、OSのバージョン等には一字一句触れない。 
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。 
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。 
  目の前で生じている現象をそのまま具体的に書くなどもっての外。 
  事実より俺様の脳内解釈を優先すべし。 
4. 独り言文体で必勝。 
  「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」 
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。 
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。 
  「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」 
  "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。 
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。 
  「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」 
  示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので 
 絶対に避ける。 
8. 情報は小出しに。 

「エスパーきぼんぬ」 補足 
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。 
そのような悪い質問に対して答えられるのは, 
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ, 
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。 
まちがっても「エスパーの方,回答お願いします」 
なんて痛い質問するな。つうか氏ね。

5 :nobodyさん:05/03/03 22:46:04 ID:???
こんなもんかな?
補足ヨロ

6 :nobodyさん:05/03/04 01:00:13 ID:3xlEv0k9
PHP5のクラスの話なんですが、
下記のように、プロパティでpublic宣言してないものを、コンストラクトしても、別に問題ないのでしょうか?
一応、エラーは出ないのですが、気持ち悪いような気がして。。。
// クラス
class Category{
  // プロパティ
  public $aCategory;
// コンストラクタ
    function __construct()
    {
        global $g_hDB;
        while(1){
            $sSQL = "select * from category where categoryname = '" . $_REQUEST['categoryname'] . "'";
            $result = pg_exec ($g_hDB, $sSQL);
            $pg_num_rows = pg_num_rows($result);
            if ($pg_num_rows >= 1){
                $this->aCategory = pg_fetch_array ($result, 0, PGSQL_ASSOC);
                break;
            }
            else{
                $_REQUEST['categoryname'] = "top";
            }
        }
        //★★★↓ここが気持ち悪い・・・★★★
        foreach ($this->aCategory as $key => $val){
            $this->{$key} = $val;
        }
        unset($this->aCategory);
        
    }
(後略)

7 :nobodyさん:05/03/04 01:27:42 ID:???
>>6
おれとしては
>$_REQUEST['categoryname'] = "top";
ってスーパーグローバル変数に代入しちゃってるのがきもちわるい。

8 :6:05/03/04 01:46:21 ID:???
>>7
ギク、そのとおり、あとでなおすつもりです・・・orz

9 :nobodyさん:05/03/04 09:10:17 ID:JryQONc+
ふと疑問に思ったのですが、ファイルに書き出すとき
桁数の制限ってあるんでしょうか?
変数に格納できる桁数の制限も知りたいです。

10 :nobodyさん:05/03/04 10:49:45 ID:???
めもりのつづくかぎり

11 :nobodyさん:05/03/04 11:39:10 ID:???
ハードディスク(外部記憶装置)の許す限り

12 :11:05/03/04 11:40:07 ID:???
あるいはquotaが許す限り

13 :nobodyさん:05/03/04 13:12:11 ID:???
かみさんが許す限り

14 :nobodyさん:05/03/04 13:24:43 ID:???
うちのかみさんがね、桁数の制限を気にするんですよ

15 :nobodyさん:05/03/04 13:49:05 ID:???
おまいの給料じゃ気にもなるさ

16 :nobodyさん:05/03/04 13:56:36 ID:???
>>9
よーしパパへそくりしちゃうぞー

$i=2;
while(1){
$i*=2;
echo$i,"\n";
if(is_infinite($i))break;
}

17 :11:05/03/04 15:18:36 ID:???
>>16
8.98846567431E+307
1.#INF
で終了しました(Win XP)

18 :nobodyさん:05/03/04 15:44:14 ID:???
8.98846567431E+307
INF
で終了。@32bitなLinux

19 :nobodyさん:05/03/04 16:29:47 ID:???
>>16
Fatal error: Call to undefined function: is_infinite()

自分には、かみさんがいませんから。
残念!

20 :nobodyさん:05/03/04 16:35:56 ID:???
8.98846567431E+307
妊婦

で終了。予定日:3月12日


21 :nobodyさん:05/03/04 18:28:58 ID:???
もっとまぶいコンピューター使ってる奴はいないのかよ。

22 :nobodyさん:05/03/06 03:31:13 ID:pz614Rae
phpスクリプトで unzipを実行したいのですができません。
具体的には、ブラウザでサーバー内ファイルの圧縮・解凍操作を行いたいと思っています。
どうすればよいのでしょうか?

【実際のテスト結果】

phpファイルと解凍したいファイルは同じフォルダ内で以下のようにすると・・・

<?php
echo system("pwd\n");
echo system("unzip file.zip\n");
?>
-->(phpファイルの置かれた場所がちゃんと表示される)
-->127
(unzipコマンドの返り値が”127”のみでで解凍されている様子はない)

<?php
echo system("echo hello\n");
?>
-->hello
(正常)

<?php
echo system("rm file.zip\n");
-->0
(正常に削除される)

【環境】
FreeBSD 4.7
PHP4.3.9(apacheのモジュールとして動作)
Apache/1.3.33

23 :nobodyさん:05/03/06 04:30:41 ID:???
apacheが動作しているユーザ/グループで、file.zipを操作できるかどうか
アクセス権限を確認しる。


24 :nobodyさん:05/03/06 04:37:48 ID:???
>>22
system('unzip file.zip 2>&1')

みたいにして標準エラーの内容を見る、とかしてみたら?
あとはエラーが127だからunzipがちゃんとパスの通った場所にあるのか確認

25 :22:05/03/06 05:19:00 ID:pz614Rae
>>23
答えになってないかもしれませんが・・・

とあるレンタルサーバーのVPSプランを利用しているんですが、ユーザー名を username とすると

phpinfo()で見る限り、apacheのユーザーと _SERVER["USER"] は usernameになっています。
sshで usernameでログインした場合、 unzip , zip ともに可能です。
念のためですが、 >>22 の 【実際のテスト結果】 はブラウザからのアクセスでの結果です。

>>24

> system('unzip file.zip 2>&1')
を実行すると 1127が帰ってきました。
googleで検索してるんですが検索の仕方が悪いのか このエラーの意味がわかりません。

unzipのパスについては、sshでログインした場合にunzipは可能なのですが、それとはまた違うのでしょうか?


26 :nobodyさん:05/03/06 05:48:59 ID:???
>>25
>unzipのパスについては、sshでログインした場合にunzipは可能なのですが、
>それとはまた違うのでしょうか?
違う。両方でwhoamiしてみ。


27 :22:05/03/06 08:33:52 ID:pz614Rae
>>23
>>24
>>26

感謝!解決しました!

実行権限、コマンドのパス、VPSであることあたりがからんでたようです。
(VPSがからんでるかは微妙ですが)

【結果報告】
whoamiも両方試すと ブラウザからはwhoamiができませんでした。
よく確認してみると、同じディレクトリでもブラウザからとSSHではpwdの出力が違うことに気づきました。
apacheで見えてない(ブラウザからのpwdでは見えてない)上位のディレクトリに whoamiとunzipの実行ファイル(?)があったのでそれをapacheで見えるディレクトリにコピーして、権限設定。
phpのsystemでそのコピーした実行ファイルのパスを指定したら、実行できました。

*表現がおかしいところがあると思いますが、そこはごめんなさい

皆様の助言のおかげで解決しました、ありがとうございました!

28 :nobodyさん:05/03/06 18:14:42 ID:pWV0LcHN
Flash用に読み取るファイルは
name=AAA&from=BBB&age=CCC
というようになっているのですが
これをPHPで各値を取得するために

$yomi = mb_split("&", $text);
for($i=0;$i<5;$i++){
if(mb_ereg("name=", $yomi[$i])) $ad_name = mb_ereg_replace("name=", "", $yomi[$i]);
if(mb_ereg("from=", $yomi[$i])) $ad_from = mb_ereg_replace("from=", "", $yomi[$i]);
if(mb_ereg("age=", $yomi[$i])) $ad_age = mb_ereg_replace("age=", "", $yomi[$i]);
}
というようにしてます・・
がこれだとスマートじゃないですよね・・

皆様はどうやっていますか?m(_ _ )m


29 :nobodyさん:05/03/06 21:45:58 ID:???
>>28
parse_str

30 :nobodyさん:05/03/06 23:18:40 ID:???
くだらない質問させてください。
if(ereg("[^._0-9A-Za-z]+", $_FILES['userfile']['name'][0])) {
と記述されている部分があるのですが、
この場合、「ハイフン」も含めるにはどう書けばいいでしょうか?


31 :nobodyさん:05/03/06 23:25:13 ID:???
すみません、スレ違いでした。
くだらない質問スレに行ってきます。


32 :nobodyさん:05/03/07 09:34:01 ID:???
require 'hoge.inc' ;

としたときに hoge.inc が自分のいるパスを知ることができますか?

33 :nobodyさん:05/03/07 11:46:58 ID:???
>>32
__FILE__。定数一覧は見ておけよ

34 :32:05/03/07 15:08:02 ID:???
>>33
希望通りの結果を得ることができました。

> 定数一覧は見ておけよ
見ときます。

35 :nobadyさん:05/03/07 15:33:31 ID:???
質問です。

session_start();
と記述した後に
header("Content-type: application/octet-stream;");
を使用したいのですが思うように使用できません。
ダウンロードダイアログが表示されるのですが、
"開く"を選択してもファイルを開くことができません。

sessionとheaderは同時には使用できないのでしょうか?
よろしくお願いします。

36 :nobodyさん:05/03/07 15:55:21 ID:???
保存はできるのか?

37 :nobodyさん:05/03/07 16:05:42 ID:???
なんだかよく分かりませんが、小さなスクリプトなら問題無く動きましたよ?
session_start();
if($_SESSION[go] == 'ok'){
 header("Content-type: application/octet-stream");
 print "session value is ".$_SESSION[go];
}else{
 $_SESSION[go] = 'ok';
 print "<a href='$_SERVER[PHP_SELF]'>a</a>";
}

38 :nobodyさん:05/03/07 16:34:18 ID:???
過去にhttps+session+IEでダウソ出来ないバグがあったなぁー。

39 :nobadyさん:05/03/07 16:38:54 ID:???
>>36
保存は正常にすることができました。
保存したファイルを開くこともできました。

>>37
session_start()で取得した情報に基づきファイルをreadfile()で出力し、
それらを保存、及び開こうとしているのですが、
session_start()を使用した後にheader()を使用すると
保存ができて、開くことができません。

session()とheader()はなにか相性が悪いのでしょうか?
ご教授いただきたいです。


40 :nobodyさん:05/03/07 16:46:42 ID:???
保存出来るってことはブラウザとかクライアントの環境依存の問題じゃん
PHP関係無い

41 :nobodyさん:05/03/07 16:56:01 ID:???
>>39
保存できるならそれでいいんじゃないのか?何のためにヘッダ吐いてるんだか

42 :nobodyさん:05/03/07 17:39:59 ID:???
>>35
マニュアルのheader()の項を読む。
session_start()時にどんなパケットが流れるか見てみる。
対策は確かマニュアルにあったと思うし、メーリングリストに回答がある。


43 :nobodyさん:05/03/07 23:17:18 ID:PL7b7WJg
OSはMeでxamppをインストールしてPHP4に切り替え使用しています。
PHPエディターを使ってWebサイトでの使用を目的としたPHPの勉強をしようとしているのですが、
文字コードについてよく判りません。

エディタでEUCを指定するとブラウザがISOの欧州フォントなどに切り替わり日本語部分が文字化けし、
Shift_JISで保存すると今度は自動的にEUCに変わり文字化けします。
動作確認をIE6.0とFirefox1.0で行っているのですがどちらも同様の反応が出ます。

PHPの保存時の文字とPHPをhtml内で表示させる場合のmeta内での文字コードなどはどのような関係になっているのでしょうか?
どなたか御教授お願いします。


44 :nobodyさん:05/03/07 23:29:30 ID:???
xamppのPHPは、SJISで書いたスクリプト処理には対応してないと思われ。

45 :nobodyさん:05/03/07 23:38:41 ID:???
>>43
PHPで文字エンコーディングを意識する必要があるのは3個所あって、
1. HTTP入力 - POST,GET等
2. 内部文字エンコーディング - スクリプト自体の文字エンコーディング
3. HTTP出力 - 結果の出力時の文字エンコーディング
詳しい内容は、ttp://www.php.net/manual/ja/ref.mbstring.php

その他に、apacheが付加するcharsetも関係してくる。AddDefaultCharset等。

46 :nobodyさん:05/03/08 00:08:13 ID:zgtI7JIE
>>44
>>45
回答有難うございます。
示されたリンク先を見ましたが、ISO-8859-*, EUC-JP, UTF-8の何れかで記述して、
php.iniを書き換えれば良いということなのでしょうか?

47 :nobodyさん:05/03/08 00:23:16 ID:???
>>46
その程度で思考回路を停止するならPHPと言えど
プログラミングに向いてなさそうだな。

48 :nobodyさん:05/03/08 01:05:36 ID:/emJr0GT
程度が低くてすみません。

以下の3行が書き込まれている test.txt
 あいうえお
 かきくけこ
 さしすせそ
からデータを読み出す際は、$data = file("text.txt"); で読み出せたのですが、末尾の改行が邪魔です。
Perl でいうところの、
 open(IN,"text.txt"); chomp(@data = <IN>); close(IN)
を実現しようとすれば、
 $fp = fopen("test.txt","r");
 while( ( $x = fgets($fp) ) ){
  $data[] = chop($x);
 }
とするしかないのでしょうか?

49 :nobodyさん:05/03/08 01:09:06 ID:???
Warning: などのエラーを表示させない方法はあるのでしょうか?
(エラーメッセージを画面に出さない)

50 :nobodyさん:05/03/08 01:09:15 ID:???
>>46
見て読んで理解しろ。(貴方の既存の知識量等により)場合によっては
理解には別の情報が必要かもしれん。その場合はまたWebとか本から入手。

答えのひとつとして
「理解できなければ、全部'EUC-JP'に統一する」
を挙げておく。

51 :nobodyさん:05/03/08 01:11:29 ID:???
>>49
くだ質レベル。display_errors

52 :nobodyさん:05/03/08 02:59:07 ID:???
>>48
$data = array_map('rtrim', file('test.txt'));

53 :nobodyさん:05/03/08 05:23:03 ID:???
5つのテキストフィールド($a〜$e)があり数値を入力し
submitで計算をさせるページを作っています。
cookie?などでこの$a〜$eを保存・読み込みをしたいのですが
(出来れば過去数回分を記憶してテキストフィールド以外の場所に表示させたい。)
php初心者で計算させるので精一杯で・・・
検索してもカウンターとかは見つかるんですがこういう手法がみつかりませんでした。
どのような記述で出来るのかご教授お願いします。

54 :nobodyさん:05/03/08 06:37:29 ID:???
プログラミング初心者でいい加減な回答が精一杯なんですがセッションってのを使うと簡単らしいです。

55 :nobodyさん:05/03/08 07:36:11 ID:???
>>54
セッションはブラウザ閉じると消えちゃうから。

56 :nobodyさん:05/03/08 07:55:52 ID:???
cookieを使いたいなら、setcookie()使えばええんでないの?
マニュアルには使い方の例も結構載ってるので悩むことは無いかと。
ttp://jp2.php.net/manual/ja/function.setcookie.php

57 :28:05/03/08 13:05:07 ID:QMVO20O7
>>29
返答遅くなってすいません。
そんな便利なコマンドがあったなんて・・有難う御座いますm(_ _)m

58 :nobodyさん:05/03/09 01:11:34 ID:???
PHP4.3.10 MySQL 4.0.21です。
id,name
1,a born
MySQLに以上のデータが入っているとして、
$sql="select * from hoge where id=1";
$result=$db->query($sql);
$row=$result->fetchRow(DB_FETCHMODE_ASSOC);
でデータを呼び出すと、name列がaしか出てきません。
半角スペース以降も認識させる方法を教えてください。
必要な情報があれば出しますので!

59 :nobodyさん:05/03/09 01:29:35 ID:???
>>28
関数です。

60 :58:05/03/09 01:35:32 ID:???
ごめんなさい、>58の修正レスです。
×でデータを呼び出すと、name列がaしか出てきません。
○でデータを呼び出すと、name列が正しく出てきますが、フォームのtextエリアに入れるとaしか出てきません。

でした。ごめんなさい。よろしくお願いします。

61 :nobodyさん:05/03/09 02:01:08 ID:???
こんなことになってる予感
<input type=text value=a born>

62 :nobodyさん:05/03/09 02:24:45 ID:???
そこでW3C信者の勝利ですよ。

63 :nobodyさん:05/03/09 02:32:54 ID:???
>61
その通りでしあ
<input type=text size=50 name=\"name\" value=\"",$row["name"],"\">
ダブルクォーテーションで囲えば正しくフォーム部分にも出てきました。
でもこれで正解なんです?なんか野暮ったい気もするんですが

64 :nobodyさん:05/03/09 10:05:24 ID:???
>>61
エスパー級の回答だな。すげーよ。


65 :nobodyさん:05/03/09 10:29:04 ID:???
RSSのUTF-8で「&」が入るとエラーになってしまうのですが、
&を使用する事はできないのでしょうか?

<link>http://〜/a.php?abc=1&def=b</link>


66 :nobodyさん:05/03/09 10:39:24 ID:???
& は実体参照の開始とみなされるので
& そのものを書くなら & と書かなければならない。
これは HTML でも同じ事

67 :66:05/03/09 10:40:39 ID:???
>>66
& そのものを書くなら &amp; と、ね。
……&amp; が解釈されてしまったよ。

68 :65:05/03/09 10:42:13 ID:???
>>66
あ、そうですよね。失礼しました。
細工をするならリーダーの方で行うしかないのでしょうか?。
また、RSSで&を使用する事はモラル違反とはならないのでしょうか?。

69 :65:05/03/09 10:43:32 ID:???
私も&は考えたのですが&自体含まれていますよね;。
どうにもならないのでしょうか。

70 :65:05/03/09 10:47:44 ID:???
今、試してみたら&は使えるのですね
ありがとうございますm(_)m
&が見えると先入観が^^;;

71 :nobodyさん:05/03/09 12:44:45 ID:???
&amp; と表記したいときは &amp;amp; と書きませう

72 :nobodyさん:05/03/09 12:48:45 ID:???
&amp;amp;

73 :11:05/03/09 13:14:22 ID:???
>>71
じゃあ&amp;amp;と書きたいときは&amp;amp;amp;ですね

74 :nobodyさん:05/03/09 13:15:44 ID:???
>>66-70
ちっと餅付け。わけがわからん


75 :nobodyさん:05/03/09 13:18:58 ID:???
機種依存文字にマッチする正規表現を知りたいのですが、
Perlの正規表現で有名なサイト(Perlメモ)にある正規表現を
preg_match で使用したところ、

Compilation failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset

と怒られてしまいました。
内容から察するに、preg_match でサポートしていない
正規表現だったためのエラーだと思うんですが、
どなたかPHPで動くものをご存知の方いらっしゃいますでしょうか?

文字コードはEUCを想定しています。

76 :11:05/03/09 13:39:10 ID:???
>>75
多分 \X -> \x

77 :75:05/03/09 17:36:34 ID:???
>>76

有難うございます。
\X を \x にしたところ、
Compilation failed: nothing to repeat at offset
という警告が出ました。

正規表現中のグループ化のカッコ(?: 〜 )
を外したところ、警告はなくなったのですが、
正常な文字でもひっかかるようになってしまいました。。

78 :nobodyさん:05/03/10 10:51:45 ID:BLVfW5EX
フォームから送信したデータが「表示」が「表¥示」に化けてしまいます。
今はstripslashesで¥を取り除いて処理しています。
ただサーバによっては文字化けしないので、stripslashesを使うと逆に文字化けするので、
stripslashesを使うのはちょっと怖いです。
これって正しいやり方なんでしょうか?ほかになにかいい方法があるのでしょうか?
よろしくお願いします。

79 :nobodyさん:05/03/10 10:55:42 ID:???
>>78
magic_quotes_gpcのOn/Offを見てから処理をする。
get_magic_quotes_gpc();

80 :78:05/03/10 11:21:56 ID:???
>>79
有難うございます。ということは

function convert($str){
$result = htmlspecialchars($str);
if(get_magic_quotes_gpc()) {
$result = stripslashes($result);
}
return $result;
}

こんな感じでよろしいんですよね。

81 :nobodyさん:05/03/10 16:07:59 ID:???
mojavi解凍するとディレクトリの中にwebapp.newとか
.newというバイナリが入っているんだけど、これは
何なんでしょうか。

82 :nobadyさん:05/03/10 16:17:18 ID:???
質問です。


<?php
$fp = fopen("log.dat", "a");
fseek($fp, 0);
flock($fp, LOCK_EX);
fwrite($fp, "xxxxx");
flock($fp, LOCK_UN);
fclose($fp);

?>


とやると、ファイルの最後に文字列が追記されていきます。
ファイルオープンモードを"a"で開いて、ファイルの最後ではなく、
最初に文字列を追記することはできますか?

83 :nobodyさん:05/03/10 16:40:11 ID:???
>>81
バージョン管理用のゴミか差分じゃないかなぁ。
削除して問題ないですよ。

>>82
関数1つではできませんので、そういう処理をするロジックを書いてください。

84 :nobodyさん:05/03/10 16:57:22 ID:tcK+MKqw
質問です。

dbから一定時間経っても反応が無いとき(例えば5秒)、
タイムアウトさせる方法ってどうやるのでしょうか??

85 :nobodyさん:05/03/10 17:12:06 ID:krxtmGDV
includeを使う際に
もとになるファイルの拡張子は
incでもhtmlでも何でもいいですよね?
この中で、この拡張子だと他のよりも読み込みが早い!
なんてのはないですか?

86 :nobodyさん:05/03/10 17:37:08 ID:???
マニュアル読んだのか?

87 :nobodyさん:05/03/10 17:47:38 ID:???
世の中にはいろんな考えがあるもんだ。感心する。
「ファイルネームによって読み込みの速度が違うのではないか?」
なんて、頭が固い私には全く思いつかなかった。

88 :nobodyさん:05/03/10 18:44:56 ID:???
>>87
「a01」
というファイル名と
「a000000000000000000000000000000000000〜0000000000000000000000001」
というファイル名ではスクリプト全体としての速度は違うかもよ。
読み込み自体は変わらんと思うけど。

89 :nobodyさん:05/03/10 19:13:10 ID:???
>>84
そのデータベースアクセス関数にタイムアウトが
実装されてないとやりようがないんじゃないかな。

90 :nobodyさん:05/03/10 19:15:55 ID:???
おいおい、ファイル名で速度が違うと言うのは常識だろw
まさかそんな大事なことを無視してDBの使い方に終始してんじゃねーだろうな

91 :nobodyさん:05/03/10 23:22:12 ID:???
ttp://www.linux.or.jp/JF/JFdocs/XML-RPC-HOWTO/xmlrpc-howto-php.html
を参考に XML-RPC を勉強してます。
例のように渡す値は 2 つだけ、と固定の場合は分かりましたが、
渡す値が可変の場合はどうしたらいいでしょうか?

例えば、果物の名前と個数を複数個渡す、という場合です。

92 :nobodyさん:05/03/10 23:54:48 ID:???
>>88
読み込み速度はどうだか知らんが、
メンテナンスは確実に時間が増す。

93 :nobodyさん:05/03/11 00:36:54 ID:???
ファイル名に関してはディレクトリエントリの状況や
ディレクトリエントリキャッシュあたりのような
偶然に左右される要素が影響してくるので、
キニスルナつーか気にしてもどうしようも無いって感じだろうね。

元質の話に戻ると、
拡張子は何でもいい、つーか拡張子が無くてもいい、
PHPの中の人はそのファイルに<?phpがあるかどうかだけ気にしている。
つー所でいいんでなかろうか?

94 :nobodyさん:05/03/11 03:33:23 ID:???
http://script.lovely.to/bbs/infolng.cgi?print+200205/02050004.txt
ここを参考に機種依存文字を判定するFunctionを作っているのですが、
どうしても機種依存文字以外の文字も検出してしまいます。

$str = '文字列';
if (is_kisyu_sjis($str)) {
print "true";
} else {
print "false";
}
function is_kisyu_sjis($str) {
$ascii = '[\x00-\x7F]';
$sjis_twoBytes = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
$sjis_pattern='[\xA0-\xDF]|[\x87\xED\xEE\xFA-\xFC][\x40-\x7E\x80-\xFC]';
if (preg_match("/(($ascii|$sjis_twoBytes)*?)($sjis_pattern)/", $str)) {
return true;
}else {
return false;
}
}
正規表現がマズってますかね?

95 :nobodyさん:05/03/11 22:42:09 ID:???
なんで()で括ってるの?

96 :nobodyさん:05/03/11 23:43:35 ID:???
| の優先順位を明示したいだけでしょ

つか、正規表現はスレ違いかと

97 :nobodyさん:05/03/12 00:44:49 ID:???
テスト用に用いている文字列はほんとにSJISなのかと。

98 :94:05/03/12 16:03:01 ID:???
もうちっとがんばってみます。
検索ですか・・

99 :nobodyさん:05/03/12 23:00:23 ID:???
正規表現スレってテンプレ入れてもいいと思うんだけど
現スレまでに入って無いのって何か理由あったっけ?

とりあえず
正規表現道場@2ch Part4
http://pc5.2ch.net/test/read.cgi/php/1105930285/

100 :nobodyさん:05/03/13 04:53:03 ID:???
xml/xsl 変換後のエンコード指定がうまく動いてくれません。
PHP Version 4.3.10
EXPAT Version 1.95.6
XSLT support enabled
Sablotron Version 1.0.1

$data = xslt_process($xslt, $xml, $xsl, NULL);
上記からコンバートはできるのですが、書き出されたhtmlの
文字コードがutf-8になってくれません。

xslt_set_encoding($xslt, "UTF-8");
と指定すると、
Fatal error: Call to undefined function: xslt_set_encoding()
となりおかしいです。
PHP 4.3.10ではxslt_set_encoding()が使えると思うのですが。


101 :nobodyさん:05/03/13 05:22:51 ID:???
こっちのPHP 4.3.10(FreeBSDのportsでインスコ)では、
Fatal error: Call to undefined function: xslt_set_encoding()
にならなかった。何が違うだろ。

102 :nobodyさん:05/03/13 05:24:36 ID:???
>>101
redhat9 sourceからです。

103 :nobodyさん:05/03/13 07:23:25 ID:???
ext\xslt\sablot.c の中で
|#ifdef HAVE_SABLOT_SET_ENCODING
|PHP_FE(xslt_set_encoding, NULL)
|#endif
みたいになってるし、マニュアルには
|Sablotronバックエンドを使用する際、このオプションは
|Sablotronにエンコーディングサポートを付けて
|コンパイルした場合のみ利用可能です。
とあるよ。xslt使ったこと無いから具体的にどうするのか知らないが。


104 :nobodyさん:05/03/13 07:30:56 ID:???
あとext\xslt\sablot.c のxslt_set_encoding関数のところに
こんなコメントも付いてた。
|The user has to explicitly compile sablotron with sablotron encoding functions
|in order for SablotSetEncoding to be enabled. config.m4 automatically checks for this...

105 :nobodyさん:05/03/13 12:46:53 ID:owz6Nafx
menu.phpというのを作成して、
includeを利用して、メニューを埋め込むようにしたんですが、
階層が変わると、menu.php内に書かれたリンクが相対パスでは
上手くいかなくなるんですが、
絶対パス以外でなんか良い方法はありますか?


106 :nobodyさん:05/03/13 13:08:42 ID:IhUUdOoo
・各種項目を設定している「a.php」
・実際の動作を司っている「b.php」

という2つのファイルがあります。

b.phpはinclude("a.php");でa.phpの設定を受け継いでいます。
そのb.phpで出力された変数「$2ch」をa.phpで使うにはどうすればいいでしょうか。

107 :nobodyさん:05/03/13 13:11:58 ID:???
1文字目が数字の変数は使えませんよ。

108 :nobodyさん:05/03/13 13:17:23 ID:???
>>105
詳しく

>>106
b.phpで「出力された」変数 ですか?
returnを使えば値を返せることは返せますが。。

109 :nobodyさん:05/03/13 13:32:40 ID:j3cG5KiD
誰かttp://pya.cc/みたいなスクリプトありましたら教えてください。

110 :nobodyさん:05/03/13 13:49:30 ID:???
>>109 板違い

111 :106:05/03/13 13:51:11 ID:???
>>107
変に例を作ったのが墓穴を掘りました。実際には文字から始めてます。

>>108
すいません忘れてください。
変数に変数を代入することは可能でしょうか?

例)

<form>

-略-

<input type=text name=yyyyy value=>

</form>

$zzzz = "<a href=$yyyyy>";

というように。

112 :105:05/03/13 14:02:04 ID:4ktgufgk
>>108
menu.phpにサイトマップやヘルプなどへのリンクを張って
includeを使用して、全ファイルで共有したいのですが、

サイトマップなどへのリンクを相対パスで記述した場合、
フォルダの階層が変わると、上手くいきません。

menu.phpのincludeは
<?include($_SERVER['DOCUMENT_ROOT'] . 'menu.php') ?>
を使用して、階層が変わっても対処できたんですが、
同じような感じでmenu.php内のリンクに対しても対処方法はないでしょうか?


113 :nobodyさん:05/03/13 14:13:13 ID:???
>>112
・htmlでbase要素を用いる
・メニュー内のリンクを/からのパスにする
・menu.phpに相対パスを計算させる

114 :105:05/03/13 14:29:21 ID:4ktgufgk
>>113
menu.phpに相対パスを計算させる
とはどういう事ですか?

115 :nobodyさん:05/03/13 14:39:11 ID:???
>>114
REQUEST_URIから各リンク先への相対パスを求め、リンクに埋め込む。

116 :105:05/03/13 14:45:16 ID:???
>>115
base要素でできました。
ありがとうございます。
あと、お手数ですがその方法をもう少し詳しく教えて欲しいのですが。


117 :nobodyさん:05/03/13 16:16:46 ID:???
>>116
お手数過ぎるからヤダ

118 :105:05/03/13 19:08:02 ID:???
>>117
そうですか^
まーでも目的は果たせたので、
いずれにせよ、ありがとうございました!

119 :100:05/03/13 19:14:17 ID:???
configureにSablotSetEncodingを
どうやって指定するのでしょうか。
--with-xslt-sablot以外になさそうなのですが。
./configureの中身は読んでみましたがさっぱりでした。

120 :nobodyさん:05/03/13 21:02:24 ID:???
>>119
読むのならむしろ libsablotron の configure とか /usr/include/sablot.h かと。

121 :nobodyさん:05/03/13 21:15:58 ID:???
>>119
だからexpatはともかく、sablotは使っとらんので知らんがな。

>--with-xslt-sablot以外になさそう
それはPHPのconfigureオプションであって、PHPで該当するオプションは
sablotの設定を見て自動で設定するからいらない。
コメントで書いてあるのは、それ故「必要ならsablotの設定をちゃんとしろ」ってこと。

122 :100:05/03/14 03:18:42 ID:???
Sablotにencoding関係の configure オプションは
ないみたいです。
gingerall にいったら、新しい1.0.2が出てたのでそれをインスコ中

123 :100:05/03/14 05:32:21 ID:???
先生だめでつ。
http://bugs.php.net/bug.php?id=21427
これを参考にしたんですけど。

●Sablot-1.0.2
$ ./configure --with-expat=/usr/local --with-iconv=/usr/local

●php-4.3.10
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-zend-multibyte \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-zlib-dir=/usr/lib \
--with-gd \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-xml \
--with-dom=/usr/local \
--enable-xslt \
--with-xslt-sablot=/usr/local \
--with-iconv-dir=/usr/local \
--with-expat-dir=/usr/local

expatとiconvのインストールディレクトリ合わせてるんですけど
だめなんですよ。

124 :nobodyさん:05/03/15 02:58:15 ID:hZ3yLB9y
質問です。
携帯で着メロのダウンロードサイトを作成しているのですが、
開発環境のWindows版ではうまく動作するのですが、
本番環境のLinux版ではダウンロードしようとするとで502エラーを返してきます

fopen(ファイル)
fput(ファイルの中身吐き出し)
fclose

って方法で接続端末に着メロを出力しているのですが、
なぜかうまくいきません。
502エラーってことはApacheの設定が悪いのでしょうか?
そして、対処法はどのようにすればよろしいでしょうか?

125 :nobodyさん:05/03/15 06:41:46 ID:???
>>124
ケータイにダウンロードさせるなら、適切なContent-Type吐いてechoしてはどうだろう?

126 :nobodyさん:05/03/15 12:43:52 ID:???
>>124
着信音については
Content-Type
拡張子
HTTPリクエストの末尾
に注意する必要がある

127 :nobodyさん:05/03/15 21:24:22 ID:???
description attachmentって携帯で使えないのかな?

128 :nobodyさん:05/03/16 22:49:46 ID:???
一時間に一回自動でデータベースから情報を読み込みファイルを出力したいのですがどのように考えればいいですか?
00分になりアクセスがあったらファイルを出力し次の00分になるまで出力はなし。見たいな考え方でいいですか?
この考え方だと一回もアクセスがないと出力されないことになりますが、何か便利な関数があるんですか?

129 :nobodyさん:05/03/16 23:10:09 ID:???
定期的に実行しなければならないなら、OS側が提供しているcronやtask scheduler。
これが使えないようなら、データ投入時や表示時になんとかするしかない。
表示時(アクセス時)に必要なデータをかき集められるものなら、表示時に時間をチェックして誤魔化す。
データ投入時にあらかじめページを作成しておいて、表示時の時間チェックと組み合わせるのもありだな。

実行環境ややりたい事が分からんことには、可能か不可能かさえも分からんよ。

130 :nobodyさん:05/03/16 23:49:33 ID:???
イメージ関数について質問です。
背景が透過gifな画像をリサイズした場合に透過ではなくなるのですが、
これを透過のままリサイズ出来ないのでしょうか?。
出来るのであれば参考になるサイトまたは方法を教えてください。

131 :nobodyさん:05/03/17 10:53:09 ID:???
>>128
基本は、>>129が言うように、OSの自動処理を使う。
連鯖などでcrontabが使えない場合、いかにしてトリガを引くか、それを考える。

・WEBアクセスの際に前回処理時間と比較しトリガ発生→アクセス無ければ無意味
・自宅のPCのタスクスケージュラや、DiCE等で定期的にトリガプログラムへアクセス →PC付けっぱなし必須
・携帯電話などで自分でトリガプログラムに定期的にアクセス → 鬱陶しい、眠れない、パケ代かさむ

さぁ、どれにする?

132 :128:05/03/17 11:48:17 ID:???
ありがとん
リナックスのことワカメだから本買ってしらべてみます


133 :nobodyさん:05/03/17 15:28:44 ID:???
cronが楽だが使えないとなれば、>>131の書いてる3つの内の2つ目が一番一般的かな?

134 :nobodyさん:05/03/17 17:42:24 ID:???
>>130
こんな感じ。フルカラーじゃないから汚いけど。

$src_info = getimagesize ($src_path);
$src_image = imagecreatefromgif ($src_path);
$dst_image = imagecreate ($dst_width, $dst_height);
$trans = imagecolortransparent ($src_image);
if ($trans) {
 imagepalettecopy ($dst_image, $src_image);
 imagefill ($dst_image, 0, 0, $trans);
 imagecolortransparent ($dst_image, $trans);
}
imagecopyresized ($dst_image, $src_image, 0, 0, 0, 0, $dst_width, $dst_height, $src_info[0], $src_info[1]);
imagegif ($dst_image, $dst_path);

135 :128:05/03/17 18:11:56 ID:???
すまんポコやっぱりわからないや

使ってるサーバーがカゴヤなんだけど
cron設定はノーサポートでおしえてくれないや
自分なりに考えてみたんだけど
カゴヤ管理画面のCRON設定 で
*/1 * * * * /home/カゴヤアカウント/public_html/count.php
のみ入力してみたんだけどでなにがちがうんですかね?
/bin/sh: /home/カゴヤアカウント/public_html/count.php: cannot execute binary file
ってなのがメールで送られてくるんだけど
エロイ人教えてください

136 :nobodyさん:05/03/17 18:24:21 ID:???
>>135
エロくはないけど、
たぶん、
*/1 * * * * php /home/カゴヤアカウント/public_html/count.php
だろうね。
それでもエラーが出るようなら、phpのパスを調べれ。・

137 :128:05/03/17 18:41:56 ID:???
だめぽよ
/bin/sh: php: command not found
のエラーのメールがきますわ
count.phpのパーミッソンハ705
中身は
<?/* シンプルカウンタ by ToR tp://php.s3.to 2000/10/18 */
$fp = @fopen("count.txt","r+") or die("ファイルが開けません");
$count = fgets($fp, 64);
$count++;
rewind($fp);//set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $count);
fclose($fp);echo $count;?>
何がちがうんですかね?


138 :nobodyさん:05/03/17 18:45:35 ID:???
>>137
>>136 wrote
> それでもエラーが出るようなら、phpのパスを調べれ
環境変数、特にコマンドの検索場所を指すPATHが違う。

139 :nobodyさん:05/03/17 18:53:46 ID:???
>>137
CLI用PHPへのパスは?
1行目に
#!/usr/local/bin/php
とか書いてる?

140 :nobodyさん:05/03/17 18:58:22 ID:???
>>137
ttp://www.kagoya.net/cgi/
の、「コマンドパス」項目を穴が開くほど睨んでみ。

141 :128:05/03/17 19:10:27 ID:???
おまいらすげー
できたよありがとうぅ
こんなん何処でおしえてもらうん?
専門学校かね?
んまありがとー

142 :130:05/03/17 19:11:49 ID:???
>>134
ありがとうございます。
imagecolortransparent()の返り値が0の場合があるのでif ($trans) {の分岐を外して
実行しているのですが、返り値が0以外の場合には透過になりません。

$trans = imagecolortransparent ($src_image);
imagepalettecopy ($dst_image, $src_image);
imagefill ($dst_image, 0, 0, $trans);
imagecolortransparent ($dst_image, $trans);

パレットをコピーし透過になる色で塗りつぶし、その色を透過に指定しているので
正しく透過出来そうだと想うのですが、これはフルカラーではないという所が問題
なのでしょうか?。
imagecreatetruecolor()で作成した場合は正しく利用できないのでしょうか。

塗りつぶしをしているので問題がある場合もありそうですが、とりあえず
$trans = 0で指定しています。

143 :nobodyさん:05/03/17 19:52:29 ID:???
自宅サーバ上での質問です。

AnHttpDでISAPI経由でPHPを動かしているのですが
ISAPIだと設置した掲示板やチャット等で、IPやHOSTの情報を取得してくれません。
CGI経由だと取得してくれるのですが、この問題を解決する方法はありますか?

■バージョン
PHP 5.0.3
AnHttpD1.42n

144 :nobodyさん:05/03/17 20:22:09 ID:???
>>143
PHPのバージョンを変えてみるという手がある。
が、「問題を解決する方法」としては選択しづらいだろうね。

つか、なんでバージョンでその辺が変わるのかねぇ>PHP
サーバ側とのAPIが変わってるわけでもないのに。


145 :143:05/03/17 20:25:16 ID:???
>>144
スクリプト上で取得の方法を変えたら出来ました。
(前)$ip = getenv("REMOTE_ADDR");
(後)$ip = $_SERVER["REMOTE_ADDR"];

お騒がせしますた(;´д`)

146 :nobodyさん:05/03/17 20:36:26 ID:???
>>128
はてなあんてな使う手もある。

147 :nobodyさん:05/03/17 21:12:04 ID:PAcs7vRb
open_basedir を設定している状態で、
require_once('../main.inc');

と相対パスで一つ上を指定したいんだけど、open_basedirをどう設定すればいい?

148 :nobodyさん:05/03/17 21:12:14 ID:???
>>145
ちゃんとマニュアルに
getenv
注意: この関数は、ISAPIモードでは動作しません。
書いてあるじゃん

149 :nobodyさん:05/03/18 03:12:21 ID:???
>>143-4は池沼


150 :nobodyさん:05/03/18 10:44:51 ID:0xXwO3mo
formからpostされた値を、改行コードを統一してから
AUTO指定でEUCに変換すると

preg_replace("/(\r\n|\r)/","\n",$str);
$str = mb_convert_encoding($str,"EUC","AUTO");

毎回ではないのだが、頻繁にエンコードに失敗するのですが
Warning: mb_convert_encoding(): Unable to detect character encoding in hoge.php on line ○○

何故?改行コードでエンコードの判断してるの?
エンコードしてから改行コードの変換をすれば良いって問題なんかな?

formはSJISで、PHPのバージョンは4.3.4です。

151 :nobodyさん:05/03/18 11:00:56 ID:???
おまいら!
SJISでスクリプト掻いてますか
EUCですか?

152 :nobodyさん:05/03/18 11:27:32 ID:???
>>151
外に出す時はUTF-8
普段はASCII

153 :nobodyさん:05/03/18 11:44:31 ID:???
>>150
formがSJISならSJISで来る確率が高かろうから'auto'じゃなくて
'SJIS, EUC-JP, UTF-8, JIS, ASCII'とでも指定してみれば

私はhiddenに判定文字列入れてmb_detect_encodingやってるけども

154 :nobodyさん:05/03/18 11:50:37 ID:???
>>152
外に出すときは生
普段は極薄

155 :nobodyさん:05/03/18 12:23:49 ID:???
>>153
ありがとう、AUTOやめてSJISの優先度上げたら落ち着いたよ

156 :nobodyさん:05/03/18 14:09:11 ID:???
E・U・C!E・U・C!

157 :nobodyさん:05/03/18 15:47:30 ID:H8eZrdKt
.htaccessで

ErrorDocument 404 /404.php

として404をPHPに飛ばしてるのですが
このPHPで本来どこにアクセスされたのかを
知ることってできますか?




158 :nobodyさん:05/03/18 16:06:59 ID:???
$_ENV["REQUEST_URI"] かな

159 :157:05/03/18 16:44:12 ID:???
>>158
あ、ありがとうございます
$_SERVERで試してました。。。orz

160 :nobodyさん:05/03/18 17:05:03 ID:???
$_SERVERでも問題ないと思うが

161 :157:05/03/18 17:08:04 ID:???
>>160
あれ? ほんとだ・・・
なんか全然関係ないとこで勘違いしてたみたいです。
たいへん失礼しました

162 :nobodyさん:05/03/19 00:12:12 ID:???
質問です。
ファイルの行数を取得したいのですが、
極力負荷を低くやりたいです。
ファイルのサイズはデカくて、
1行の文字数は不定なのですが
なにかウマい方法はないでしょうか?

163 :nobodyさん:05/03/19 00:34:00 ID:???
>>162
wc。要するにバイナリーとしてファイルを舐めて[改行]の数をカウント

164 :nobodyさん:05/03/19 00:53:10 ID:???
fileで読み込んでcountで参照って手も。

165 :nobodyさん:05/03/19 00:57:40 ID:???
ありがとうございます。

>>163
す、すみません…
バイナリは扱ったことがないので分からないのですが
もう少し詳しく教えていただけませんか?

>>164
ファイルがかなりデカいので、fileで読み込むと悲惨なことになりそうです…

166 :nobodyさん:05/03/19 00:58:41 ID:???
>>165
まず試せ。
wcはUNIX系OSのシステムコマンド。

167 :nobodyさん:05/03/19 01:00:14 ID:???
え、、と…
PHPでできないと少々具合が悪いのですが…

168 :nobodyさん:05/03/19 01:04:41 ID:???
>>167
fileで読み込む以外不可能だとおもうよ。
悲惨なことになったらまたおいで。

169 :nobodyさん:05/03/19 01:05:17 ID:???
>>168
わかりました…
どうもありがとうございます、試してみますね(。・ω・。)ノ

170 :nobodyさん:05/03/19 01:06:21 ID:???
>>167
でかいってどれくらい?
具体的な数字をどうぞ。サイズと行数くらいかな?
あと平均カラム数も。

171 :nobodyさん:05/03/19 01:11:39 ID:???
>>167
あとファイルで使ってる文字コードも。

172 :nobodyさん:05/03/19 01:14:24 ID:???
>>170
7万行くらいで、50MBくらいです。
文字コードはSJISです

173 :nobodyさん:05/03/19 01:18:16 ID:???
fopenしてfgetsを繰り返して(取った内容は棄て)カウントでもいいと思うよ。
1行がよっぽど長くなければメモリも食わん。

174 :nobodyさん:05/03/19 01:21:03 ID:???
>>173
なるほど!!
そうすれば効率的ですね。
どうもありがとうございました<(_ _)>

175 :nobodyさん:05/03/19 07:56:37 ID:???
>そうすれば効率的ですね。


∠( ゚д゚)/「え?」


釣りですかそうですか
λ..........

176 :nobodyさん:05/03/19 08:27:15 ID:???
>>169
>>168みたいなうそつきの言うことは聞かないで
<?php
$file = 'C:\Program Files\Apache Group\Apache2\logs\access.log';
$fp = fopen($file, "r");
$count = 0;
while(!feof ($fp)) {
if ($line = fgets($fp) and substr($line, -1) == "\n") $count++;
}
fclose($fp);
echo $file."の行数は".$count."です";
?>
最後の行に改行が無いと1行少なくなる

177 :nobodyさん:05/03/19 10:32:13 ID:???
たぶんちょー基本的な質問なんだけど、
ここに出て来る @ ってなに?

$fp = @fopen($file, "w");
$write = @fputs($fp, $contents);
@fclose($fp);

178 :nobodyさん:05/03/19 10:41:48 ID:???
そのまま$fileの部分を$filesにして試してみ
@があるとないの違いがわかる。

179 :177:05/03/19 10:45:34 ID:???
ttp://us2.php.net/manual/ja/function.fopen.php
で見つけたけど、warning を出さなくする修飾子ってこと?


180 :にーchan:05/03/19 10:54:51 ID:XBx83jBt
phpにてメールを送信するプログラムで送信テストをしているのですが
Warning: mb_send_mail(): Failed to connect to mailserver at "192.168.11.100" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\home\mail\a.php on line 10
とエラーが出てしまいます。
portはwebで開いているか確認できるページで確認したら開いてました。
php.iniでもsmtp_port = 25と記述もしてみたのですがだめでした。
php.iniのSMTPをniftyのSMTPサーバー名にしても同じく・・・
他に考えられる原因は何があるでしょうか?

181 :nobodyさん:05/03/19 11:21:46 ID:???
>180
・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
のどちらか。

182 :nobodyさん:05/03/19 11:40:40 ID:???
>>180
>portはwebで開いているか確認できるページで確認したら開いてました。
例示がローカルアドレスなのに、webでのチェッカーで確認したというのが怪しい。

183 :にーchan:05/03/19 12:06:15 ID:???
>181
・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
とはメールサーバを立てているのですがそれの設定が違ってるってことでしょうか?

>182
外部へポートが開いていた場合でもローカルは閉じている場合はあるのでしょうか?

184 :nobodyさん:05/03/19 12:07:10 ID:0sO4bGN4
php の error log に任意を文字列を出力する方法ってある??

185 :nobodyさん:05/03/19 12:19:00 ID:???
>>184
使ったことないけど、trigger_error()あたり。

186 :nobodyさん:05/03/19 12:40:14 ID:???
>>184
マニュアルの
XXX. エラー処理およびログ記録関数

187 :nobodyさん:05/03/19 14:05:22 ID:oXb2sDzY
個人情報だのパスワードだのって、暗号化とかしてる?
暗号化してDBに保存、読み出して複合化とかしたいんだけどPHP中やDBに複合化の
Keyとかプレーンで書いておいたら意味が無いかとも思うしかといってKey暗号化しておいたら
Keyの複合化どーすんのよっつーか

188 :nobodyさん:05/03/19 14:12:54 ID:???
復号しなくていいようにすればいいじゃない

189 :nobodyさん:05/03/19 14:20:54 ID:oXb2sDzY
>>188
比較だけなら暗号化したもの同士で行えば良いんだろうけど
例えば会員がパスワード忘れて問い合わせてきた場合は?
もっかい登録しなおせって訳にもいかないだろうし、個人情報についても
保護法絡みで共有サーバなんかの場合暗号化しときたいんだけど

190 :nobodyさん:05/03/19 16:04:52 ID:???
>>189
もう一回登録させるのに何か問題でも?

191 :nobodyさん:05/03/19 17:43:17 ID:???
>>189
そういう時は、自動生成したパスワードを再発行してやり変更が必要ならそっちで勝手に変えてね
とすればよい。


192 :nobodyさん:05/03/19 18:21:51 ID:Mh3YU28A
ISAPIでHTTP_REFERERとHTTP_USER_AGENTが取得出来ないんですが
なぜでしょう?

193 :nobodyさん:05/03/19 18:35:39 ID:???
>>192
基本的には通常通りサーバが吐いてれば取れるはずだが、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/21b3be8f-d4ed-4059-8e21-6cba2c253006.asp
AN-httpdとISAPI版PHPとではバージョン違いの組み合わせで
取れたり取れなかったしてた時があったな。
CGI版だと取れたり。

194 :nobodyさん:05/03/19 18:37:27 ID:???
>>192
anhttpdだろ?
作者に聞け

195 :nobodyさん:05/03/20 03:54:17 ID:34HEFa63
FAQがなかったのでよくある質問っぽいんですが書きます。

Ver.4.3.10を使っていてphpinfoをみると
--enable-mbstring=shared
という一文があるのですが、mb_string系の関数がundifinedといわれて困っています。

どうすればmb_string系の関数を使用できるのでしょうか?

196 :nobodyさん:05/03/20 04:12:49 ID:???
>>195
たぶん dl()

197 :nobodyさん:05/03/20 04:21:53 ID:34HEFa63
>>196
ちょっと意味がわからないのですがどういう意味でしょう?

198 :nobodyさん:05/03/20 04:28:43 ID:???
>>197
関数を使って動的にロードしろってことだろ。

199 :nobodyさん:05/03/20 04:32:48 ID:34HEFa63
>>198なるほど。
ちなみにロードするファイル名は何でしょうか?
教えて君ですいません

200 :nobodyさん:05/03/20 05:39:18 ID:???
>>199
すみません、マニュアルって知ってますか?

201 :nobodyさん:05/03/20 05:45:12 ID:???
>>199
http://jp2.php.net/manual/ja/function.dl.php

*mbstring*なファイル名。最もmbstringはdlできたんだっけ?

202 :nobodyさん:05/03/20 17:42:42 ID:???
みかんと林檎と梨の値段を計算するプログラムを作ってみようと試みています。
最初にチェックボックス形式でチェックした品名だけをドロップダウンリスト形式で表示させ
ドロップダウンリストから選択した品名の個数を入力して値段を計算させる、という感じで作ろうとしています。
↓-----index.phpの一部-----↓
<form method="POST" action="test.php">
<input type="checkbox" name="check[]" value="みかん">みかん<br>
<input type="checkbox" name="check[]" value="林檎">林檎<br>
<input type="checkbox" name="check[]" value="梨">梨<br>
<input type="submit" value="OK">
↑----------↑
↓--test.phpの一部--↓
echo "<form method=POST action=" . {$_SERVER['PHP_SELF']} . ">\n";
echo "<select name=name>\n";
for( $i=0; $i<count($_POST['check']); $i++) {
echo " <option value=$_POST['check'][$i]>$_POST['check'][$i]\n";
}
echo "</select><br>\n";
echo "個数:<input type=text size=6 name=pieces value=" . {$_POST['pieces']} . ">\n";
echo "<input type=submit value=計算>\n";
echo "</form>\n";
↑----------↑

ドロップダウンリストから選択して計算までは出来るのですが、
計算を実行したあとドロップダウンリストの中身が空っぽになってしまいます。
このドロップダウンリストの中身を保持して欲しいのですが、どの様にすればよいのでしょうか?

203 :nobodyさん:05/03/20 17:58:06 ID:???
>>202
> ドロップダウンリストから選択して計算までは出来るのですが
いや、どうみても出来てないっしょ、そのソースを見る限り。
それは置いておくとして、
1回目のtest.phpで<select name="name">の指定があるので
2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。

204 :202:05/03/20 19:06:41 ID:???
>>203
速レス有り難うございます。
すいません、よく分からなくなってしまったのでソース全部晒します。
################test.php################
<?php
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_POST['pieces'])):
$_POST['pieces'] = "";
endif;
display_input_area();
if (!empty($_POST['pieces']) && input_is_valid()):
$result = calc_mikan();
display_result($result);
endif;
?>
################item_data.inc################
<?php
$check = $_POST['check'];
$item_data = array(
"みかん" => array(
"price" => "26",
"tax" => "0"
),
"林檎" => array(
"price" => "30",
"tax" => "0"
)
);
?>

205 :nobodyさん:05/03/20 19:08:08 ID:???
################display.inc################
<?php
function display_input_area()
{
require("item_data.inc");
print <<<__EOD1__
<form method=POST action="{$_SERVER['PHP_SELF']}">
<table><tr><td>
__EOD1__;
echo "<select name=name>\n";
for( $i=0; $i<count($check); $i++) {
echo " <option value=$check[$i]>$check[$i]\n";
}
echo "</select>\n";
print <<<__EOD2__
</td><td>個数:<input type=text size=6 name=pieces value="{$_POST['pieces']}">
</td><td>税率(%):<input type text size=4 name=tax value="{$_POST['tax']}">
</td></tr></table><br><input type=submit value="計算"></form>
__EOD2__;
}
################calc.inc################
<?php
function calc_mikan()
{
require("item_data.inc");
$name = $_POST['name'];
$char_tax = $_POST['tax'];
$base_price = $item_data[$name]['price'];
$mikan = $base_mikan * (1 + $char_tax / 100);
return (integer)$mikan;
}
?>

206 :nobodyさん:05/03/20 19:13:18 ID:???
################input.inc################
<?php
function input_is_valid()
{
if ($_POST['pieces'] > 0):
return TRUE;
endif;
return FALSE;
}
?>
################result.inc################
<?php
function display_result($result)
{
require("item_data.inc");
print <<< __EEE__
<table border=0 cellpadding=2 cellspacing=1 bgcolor=#696969><tr>
<td width=120 align=center bgcolor=#e6e6fa>品名</td>
<td align=center bgcolor=#e6e6fa>個数</td>
<td align=center bgcolor=#e6e6fa>値段</td></tr><tr>
<td width=120 bgcolor=white>{$_POST['name']}</td>
<td bgcolor=white>{$_POST['pieces']}</td>
<td bgcolor=white>{$result}</td></tr></table>
__EEE__;
}
?>
徹底攻略見ながら作ったのがバレバレで恥ずかしい・・・
>2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
>従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
なぜ、2度目以降ではforループの内部が実行されないのでしょうか。

207 :nobodyさん:05/03/20 19:27:47 ID:???
endif; ???

208 :nobodyさん:05/03/20 19:40:30 ID:???
>>207
制御構造に関する別の構文
ttp://www.php.net/manual/ja/control-structures.alternative-syntax.php
これって、マニュアルでしか見た事なかったよ。。実際に使っている人がいたのか(笑)

209 :nobodyさん:05/03/20 19:43:11 ID:???
>>208
おぉ、そんなのが有ったのか、一つ賢くなった。

210 :nobodyさん:05/03/21 00:42:45 ID:???
出力する際にHTMLを書くのが面倒になってきたのですが、
連想配列を渡すとリストとして返ってくる関数とか無いですか?

211 :nobodyさん:05/03/21 00:44:11 ID:???
そういう関数作ってみてはいかが?

212 :nobodyさん:05/03/21 01:23:52 ID:???
>>210
配列渡すとテーブルとかリストで吐くような機能を持った
テンプレートクラスがあった気がする。

213 :nobodyさん:2005/03/21(月) 09:29:01 ID:???
ある web から引っ張ってきた文字列から
例えば strip_tags()した後、  だけ取り除きたい時って
どうすればいいの?

214 :213:2005/03/21(月) 09:33:40 ID:???
アフォでした。

例えば strip_tags()した後、&ンBSP;だけ取り除きたい時って

って書きました…

215 :nobodyさん:2005/03/21(月) 09:37:09 ID:???
>>214
str_replaceでも使えば?

216 :214:2005/03/21(月) 09:42:15 ID:???
だね。自分でも発見した。

ttp://www.softinn.jp/doc/lib/
これって使った事ある人いる?ググったらでてきた。
今んとこ str_replace で充分そうだけど、もしかしたら後で使いたいかも。
どう?

217 :202:2005/03/21(月) 10:44:09 ID:???
セッション使ってみたらとりあえずドロップダウンリストが空っぽにならなくなったよ。
少しだけど前進した。スレ汚しスマンカッタ

218 :nobodyさん:2005/03/21(月) 20:52:21 ID:???
Vodafoneで着メロのダウンロードさせたいんだけど
音楽ファイルよみこんでバイナリで吐き出しても
音楽は聴けるけど保存できません・

header("Accept-Ranges: none");
header("Content-Length: $filesize");
header("Content-Type: application/x-smaf");
header("Content-Disposition: attachment; filename=".$strMusicname);
i18n_http_output("pass");

$fp=fopen($strPath,"rb");
fpassthru($fp);
fclose($fp);

こんな感じで書いてるけどDocomoは再生・登録ともにできました。
何かヘッダー情報たりないんでしょうか?



219 :218:2005/03/21(月) 20:53:20 ID:???
ちなみにメールで同じファイルを
Vodafone端末に送付したら登録はできました

どなたか宜しくお願いします;−;

220 :nobodyさん:2005/03/21(月) 21:34:19 ID:???
phpじゃないじゃない。

221 :nobodyさん:2005/03/21(月) 21:53:40 ID:???
じゃないじゃないじゃない

222 :218:2005/03/21(月) 22:33:01 ID:???
もうちょっと調べてみます
ありがとうございました

65 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)