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

【PHP】くだらねぇ質問はここに書き込みやがれpart3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/02/07 21:47:15ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
0628nobodyさん05/02/26 07:28:59ID:1NcE1tZV
fopenしようと思ったら
Resource id #2
と出たんですがこれって何をうったえてるんでしょうか?

ちなみにやりたい事は↓これなんですけども…
$handle = fopen('aaa.txt', 'r');
echo $handle;
fclose($handle);
もしかしてaaa.txtのパーミッションは644じゃダメですか?
0629nobodyさん05/02/26 07:52:03ID:???
>>628
PHPは型にうるさくない言語なので普段は意識しないかも知れないが、
スカラー型 - 論理値・整数・浮動小数点数・文字列
複合型 - 配列・オブジェクト
特別な型 - リソース・NULL
の計8個の型が存在する。

リソース型の一覧は、
ttp://www.php.net/manual/ja/resource.php
に載ってるが、このうちfopenはファイルハンドルを扱うリソースを生成する。
ファイルハンドルつーのは、、、説明していくとキリが無いな・・
そのページにファイルハンドルを扱う関数の一覧もあるから、それらの説明を参照してくれ。
0630nobodyさん05/02/26 08:56:17ID:LIYJX+3j
すいません、いつのまにか、すべてのphpファイルが
Internal Server Errorになってしまいました。
なお、mod_php5, freebsd5.3,apache1.3.33です。

上記の「いつのまにか」が思い出せないのですが、
どなたか、可能性のあるコトや解決方法を教えていただければ幸いです、

なぜmod版なのにInternal Server Errorなのかも不思議ですが。。。
063163005/02/26 09:06:46ID:LIYJX+3j
なお、php.iniが原因かとおもい
mv php.ini php.ini.tmp
してみても、症状変わらずです
063263005/02/26 09:14:57ID:???
すいません、apacheのmodwriteがわるさをしてることにきづきました、すみません
0633nobodyさん05/02/26 11:02:34ID:???
while($line = array_pop($log)){

}
って使えないのですね
$lineが空になります
0634nobodyさん05/02/26 11:38:37ID:???
>>633
マニュアルによると、
mixed array_pop ( array array)
だから、$lineになんらかの値が入るよ。$logがnullや非配列だったら論外だが。

むしろ疑うならwhileの方じゃないかねぇ。
while(boolean) だから、$lineにarray_popの結果が入った後に
booleanとして評価される(型の変換)。
$lineが FALSEなら当然そこで終了になるし、数値の0や空文字''、文字列の'0'なんかもfalseになる。
063563305/02/26 11:46:04ID:???
>>634
apacheのアクセスログを\nで分割して配列に入れていたのですが
今ログを開いてみたら最後に改行が入っていました;
お騒がせしました
0636nobodyさん05/02/26 12:47:00ID:???
別ファイルの<!--- --->で囲まれた部分を読み込んで出力したいのですが
$GrabURL = "hoge.html";
$GrabStart1 = '<!--- aaa1 --->';
$GrabEnd1 = '<!--- /aaa1 --->';
$GrabStart2 = '<!--- aaa2 --->';
$GrabEnd2 = '<!--- /aaa2 --->';
$OpenFile = fopen("$GrabURL", "r");
$RetrieveFile = fread($OpenFile, filesize($open_file));
$GrabData = eregi("$GrabStart1(.*)$GrabEnd1", $RetrieveFile, $DataPrint);
fclose($OpenFile);
echo $DataPrint[1];
だと当然のことながら<!--- aaa1 --->しか出力されません。
これを<!--- aaa2 --->も一緒に出力させるにはどうしたら良いのでしょうか?

# $GrabDataとechoのあたりが怪しいと思うのですがどこをどう書き換えたらいいのかさっぱり…
0637nobodyさん05/02/26 13:02:24ID:???
>>636
$reg = "/<!-- (.+?) -->(.+?)<!-- \/\\1 -->/";
preg_match_all($reg,$RetrieveFile,$DataPrint);

こうかな?
063863605/02/26 13:33:05ID:???
すみませんなんとか自己解決しました…力技で、ですが…_| ̄|○
0639nobodyさん05/02/26 13:42:55ID:???
>>636=638
まさか、
$GrabData1 = eregi("$GrabStart1(.*)$GrabEnd1", $RetrieveFile, $DataPrint1);
$GrabData2 = eregi("$GrabStart2(.*)$GrabEnd2", $RetrieveFile, $DataPrint2);
・
・
echo $DataPrint1[1];
echo $DataPrint2[1];

じゃないよな?よな?
637が一番綺麗でスマートだと思うぞ・・・
0640nobodyさん05/02/26 13:52:37ID:zRP2Hji7
掲示板を作っているのですが、設定ファイルを別ファイルにして管理しています。

設定ファイルには掲示板のタイトルや表示件数などがあり
フォーマットは

----------
Sample BBS,10,5
-----------------

のようにカンマで区切られています。

カンマで区切ると、ユーザーがタイトルのところにカンマを入れた場合
区切り文字だと誤認してしまいます。

これを回避するには、特殊文字に変換するか、URLエンコードして保存するというの
があると思うのですが、通常はどちらの方法をとるのでしょうか?
0641nobodyさん05/02/26 15:35:04ID:???
フォーマットを変えよう
0642nobodyさん05/02/26 15:48:19ID:???
データベース使おうよ
0643nobodyさん05/02/26 16:22:16ID:???
カンマ変換すれば。
0644nobodyさん05/02/26 18:22:21ID:???
もの凄くくだらない質問でわるいのですが、教えてください。

echo $_SERVER["REMOTE_ADDR"];
echo $_SERVER["REMOTE_HOST"];
echo $_SERVER["HTTP_REFERER"];
echo getenv("REMOTE_ADDR");
echo getenv("REMOTE_HOST");
echo getenv("HTTP_REFERER");

これを試すと表示されるのは両REMOTE_ADDRだけで、HTTP_REFERERに至っては怒られます。
php.iniの設定の問題でしょうか?
どこを見れば良いのかわからないんですが、関係ありそうなところは
register_globals = OFF
register_argc_argv = On
くらいでしょうか?他に見る必要がある場所ありますか?
0645nobodyさん05/02/26 18:33:50ID:???
>>644
<pre>
<?=print_r($_SERVER)?>
</pre>

REMOTE_HOSTはサーバーからDNS逆引きしてるわけじゃなく、
クライアント側で付加するかしないかなので、
表示するやつとしないやつがいるのは仕方が無い。

んで、「怒られる」とか訳の分からない表現を使うな。
エラーが出るならそのエラーをまるまるコピペ。
あと、バージョン周りの表記も必要。

php.iniは関係無い気がする。
0646nobodyさん05/02/26 18:56:53ID:???
何となく匿名関数を使って見たのですが、string codeに<?が含められないので
絶対パスでファイルの内容が丸見えになってしまいますね。
拡張子でアクセス制限するのではなく他に良い手だてはないものでしょうか?。

>>644
E_ALLで変数が存在していないだけでは?
0647nobodyさん05/02/26 18:58:51ID:???
エラーはNotice: Undefined index: HTTP_REFERER in D:\(略)test.php on line 6です。
バージョンはPHP Version 4.3.6
Server API ISAPI
Virtual Directory Support enabled
Configuration File (php.ini) Path C:\WINDOWS\php.ini
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
こんなもんでいいでしょうか?
0648nobodyさん05/02/26 19:03:52ID:???
>>646
error_reportingですか?
確かにE_ALLにしてます。
E_ALL & ~E_NOTICEにしたらエラーは表示されなくなりました。が、REMOTE_ADDRしか表示されないのは変わらずです。
表示されないのもあるとの事なのでしょうがないんですね?HTTP_REFERERもそういうことなんですか?
0649nobodyさん05/02/26 19:32:12ID:???
>>648
しょうがないのではなく、そういうものです
環境変数が何であるのかを勉強して来た方が良いですよ
065063605/02/26 22:20:10ID:???
>639
ご、ごめ…そのまさかです…動くからいいかなって…w
>637のは大変有り難いのは分かってるんですが仕事が鮮やかすぎて
今の俺のスキルではどう使ったらいいのかすら分からなかったんだ…
現状はこのままで、試行錯誤していずれ>637のアイテムを理解できるように頑張ってきます

# 本音:マニュアル読んでも全然わかんねぇ…
0651nobodyさん05/02/26 22:35:45ID:???
>>648
REMOTE_HOST はWebサーバ自身が逆引きをしておかないと設定されない。
apacheなら HostnameLookups on。
全アクセスに対して逆引きが実行されるのであんまりお勧めできない。
(webサーバではなく)PHPが逆引きするにはgethostbyaddrという関数が用意されている。
0652nobodyさん05/02/26 23:43:58ID:zgM2ruO5
ちょっと自分の力量では無理っぽいので質問させて頂きます。
POSTでバイナリーデータを受け取り、変数に入れる場合、どのようにすれば
良いのでしょうか?どんな情報でも結構ですがので、どうかアドバイスお願い
致します。
0653nobodyさん05/02/26 23:55:56ID:???
>>652
ttp://php.s3.to/man/features.file-upload.html
065465205/02/27 00:04:35ID:Quvh5uNr
>>653 様

情報ありがとうございます!
クライアントから送られてきたバイナリファイルは、$HTTP_POST_FILES
でサーバ(PHP)側で受け取れるということであってますでしょうか?
0655nobodyさん05/02/27 00:12:08ID:G/Og0QBF
買い物カゴをperlで作成する際に、クライアントのカゴを保持したいのですが、
カゴとクライアントをどのようにつなげてよいかわかりません。

つまり、カゴにIPアドレスを付ければある程度誰の買い物籠か
わかりますが、それではproxyを経由しているPCたちはみんな同じ
カゴになってしまいます。どうしたらよいのでしょうか?
0656nobodyさん05/02/27 00:16:33ID:???
perlのスレにいけばよいかと
0657nobodyさん05/02/27 00:21:39ID:???
>>655
ここはPHP(言語)スレですよ。

買い物カゴのように複数のhttpアクセス間でデータを継続するには
セッションと呼ばれる仕組みを使います。
perlにもセッションを提供するモジュールがありますが、
簡単な物の場合は自作してしまってもよいでしょう。
自作する場合には、
1. cookieや urlの一部に データそのものを付加する
2. データ本体はサーバ上のファイルに保持しておき、
 そのデータへのIDとなるものをcookieやurlの一部に付加しておく
の2つの方法があります。
0658nobodyさん05/02/27 01:13:03ID:G/Og0QBF
>>657
なるほど、ありがとうございます。場違いな場所…すいませんでした。

クッキーを使ってみます。本当にありがとうございました!!
065965205/02/27 02:28:21ID:Quvh5uNr
なんどもすいません。
受け取ったバイナリデータを$dataに入れ
filesize($data);
とやってもエラーになるのですが、バイナリデータのサイズはfilesize()
では取れないのでしょうか・・・(T.T)
0660nobodyさん05/02/27 03:02:55ID:???
>>659
変数のバイト長ならstrlenでいいんじゃない?
アップロードされたファイルのサイズを知りたいなら一時ファイルのサイズで
filesize()すればいいだけだよ。
066165905/02/27 03:51:26ID:Quvh5uNr
>>660
そうでした。strlen()でいけました。
ありがとうございます。
0662nobodyさん05/02/27 18:49:25ID:/nNhQDUH
あるhtmlファイルを ftp_put でアップロードする際に、
内部の文字列を一部変更したいのですが、
どのようにすればいいでしょうか?
0663nobodyさん05/02/27 18:56:05ID:???
>>662
先にナメて痴漢した上でうp。
0664nobodyさん05/02/27 23:32:30ID:???
DBにアクセスするためのパスワードなど各種設定を別ファイルに保存しておいて
実行時に読み出すようにしているのですが、この設定ファイルを当該スクリプト以外から
読み出されないようにするにはどうすればいいでしょうか?

ちなみに共用サーバーなのでサーバー側の設定はいじれません。
0665nobodyさん05/02/28 00:41:54ID:???
>>664
>当該スクリプト以外から
自分の設置するスクリプト以外からってこと?

んで、サーバの情報ヽ(`Д´)ノクレヨ
0666nobodyさん05/02/28 00:53:52ID:???
>>664
無理。
0667nobodyさん05/02/28 00:54:06ID:???
>>665
そうです。
もしくは読み出されても悪用されないようにデータを暗号化しておくなどでもいいのですが。

あと、サーバー情報ってどんな事を書けばいいのですか?
0668nobodyさん05/02/28 09:08:11ID:Cd7H0ok5
Win32のApache 2.0.48と、PHP4.3.5で、問題なく動いていたのですが、
PHPを4.3.10にしようと思い、

・c:\php\以下を全部削除、
・4.3.10の中身をコピー
・php.iniをwindowsフォルダにコピー

そしてapacheの再起動しました。
エラーで起動せず、イベントビューワーにはphp4apache2.dllが見つからないと。
もちろんパスは合っているし、直前まで前VERで動いていた、
何か変更でもあったのでしょうか?

0669nobodyさん05/02/28 09:22:35ID:???
>>668
apache2.dllのパスが合っているならts.dllも入れ替えろ
窓ユーザーってこんなんばっかか・・・
0670nobodyさん05/02/28 09:32:11ID:???
>>669
うるせー馬鹿
067166805/02/28 09:55:08ID:???
>>669
あ、忘れてた・・・サンクス
067266905/02/28 11:21:28ID:???
>>670
犬ユーザーに言わせるな、カス!笑

>>671
動いて良かったね^^
0673nobodyさん05/02/28 11:23:49ID:???
参照元が検索エンジンからの場合にキーワードを抜きたいと
考えているのですが何処かにパターンマッチの参考になる
スクリプト等をご存じないでしょうか?
0674nobodyさん05/02/28 21:09:40ID:NQSvt/75
自分で作った連想配列をスーパーグローバル変数にすることって可能でしょうか?
0675nobodyさん05/02/28 21:22:22ID:???
>>673
parse_url() を使うのはどうだろう。
0676nobodyさん05/02/28 21:57:28ID:???
$logfile = "***.dat";
のようにDATAファイルのファイル名を不特定にする表現ってどうするのでしょうか?
英字や数字もカバーしたいんですが「.*」じゃだめでした。

もう一つ質問なんですが、PHPとあまり関係なくて申し訳ないのですが
Windowsは半角のバックスラッシュ(\)は普通に打ち込めるものなんですか?
当方Mac+miなんですがマニュアルサイトをIEで見ると\に化け、
iCabで見るとちゃんと半角バックスラッシュ、それをコピペするとやはり\。
文字パレットでバックスラッシュを打ち込もうとしたんですが
全角しか無く、参ったんですが…
0677nobodyさん05/02/28 22:06:46ID:???
>>676
とりあえずプログラミング…というか、PC自体素人?
半角の場合、¥と表示するか、「\」とするかはフォント次第。

Macの見やすいOsakaフォントをWinで使おうプロジェクト
http://osakattf.hp.infoseek.co.jp/

このOsakaフォントはきちんと「\」になってるよ。
漏れ、WinでのPGはOsakaしか使ってない気がする・・・。


で、"*.dat"だけど、どんなときに使うの?
使用する場所によりけりで実装の仕方変えるべきだぞ。
preg_match("/^[0-9A-Z]+\.dat$/i",$hoge)なり使うとかになりそう。
0678nobodyさん05/02/28 22:06:59ID:???
くだらない質問スレに池・・・ってここがそうか。。
ではドゾー
↓
067967805/02/28 22:07:38ID:???
ヒィィ
>>678
>>677
っと
0680nobodyさん05/03/01 15:36:15ID:???
ちょっと行き詰まってしまったので、質問させて下さい。

php4+smarty+jpgraphで、グラフを作っています。
以下を参考にして、MVC(よく理解してませんが)で作ろうとしています。
ttp://www.stackasterisk.jp/tech/php/phpMvc01_02.jsp

この場合、グラフを出力する処理はどこに書くべきでしょうか?

1. index.phpでGETを受け付け、そのGETをそのまま、表示部で引っ付ける
<img src="index.php?action=display_graph&以降パラメータ" >

controller.phpの中でclass/graph.phpを呼び出して、その中で処理。
index.phpがページ表示とグラフ表示を両方行う。

2. graph.phpという別単独スクリプトを作って
<img src="graph.php?以降パラメータ" >
index.phpがページ表示、graph.phpがグラフ表示を行う。

2.は MVCでないような気がします。
1.もなんとなく間違っている気がします。
1.の場合だと、一度パラメータを受け取って、もう一度それを出力すると
いう無駄な処理があるのですが、これでいいのでしょうか?

スマートな方法を教えて頂けないでしょうか?
よろしくお願いします。



0681nobodyさん05/03/01 21:32:45ID:3VPrEAk/
変数は何個まで使っていいの?上限ってあるの?100万個使っても大丈夫?
0682nobodyさん05/03/01 22:17:17ID:???
何を考えてるのかな
0683nobodyさん05/03/02 01:28:12ID:???
>>681
マニュアル読め
Linux系は1000個、 Windows系は100個
0684nobodyさん05/03/02 01:46:25ID:???
>>664
呼ばれるファイルがPHPであれば定数の有無で判別できるけどな
完璧じゃないが‥‥
0685nobodyさん05/03/02 02:32:19ID:???
>>683
正確には
Uinux系は1024個、 Windows系は128個
じゃなかったか。リファレンステーブルの限度だよな。
0686nobodyさん05/03/02 03:13:37ID:???
掲示板を作成しているのですが、親記事と子記事を
ひとつのファイルにまとめて


1<>0<>〜〜
2<>1<>〜〜
3<>1<>〜〜

1番目は記事番号、2番目は0が親記事、1が子記事として
読み込み時に判定させる方法と

親記事と子記事を別々のファイルに保存し、
子記事は親記事の記事番号をキーとして持っており、
親記事は子記事がいくつ存在するかの情報を持たせて、
3つ存在するなら、子記事ファイルのほうから自分の記事番号と
一致する子記事を3つ読み込む

というような方法のどちらを使ったほうが効率がいいのでしょうか?

効率がいいか悪いかの判断は書き込みのほうが多いのか表示するほうが多いのかで
判断するのでしょうか?

0687nobodyさん05/03/02 03:40:35ID:???
>>686
親記事と子記事は入れ子になるの?

>効率がいいか悪いかの判断は書き込みのほうが多いのか表示するほうが多いのかで
>判断するのでしょうか?
意味がわからない。
0688nobodyさん05/03/02 03:58:19ID:???
>>686
単純に表示だけで考えたら
もしKENTのYY-BOARDのような表示形式を考えてるなら
前者の方が効率がいいと思う
2chのようにスレッドタイトル(親記事)を一覧表示させて
そこから子記事(スレッド)を表示させるっていうなら後者の方が効率がいい

あとファイルサイズとファイル数の問題もある
前者は大規模で使われると途端にファイルサイズがでかくなり
目的の記事を探すのに時間がかかるだろうし
後者は大量の親記事に1個2個程度の子記事が作られたとき
小さいファイルが大量に出来ていく

全然答えになってなくてゴメンって感じだが
要は用途を想定しないと効率なんて考えられないってことだ
0689nobodyさん05/03/02 05:09:54ID:XnVo8Giw
if 文の()内で、$name が文字列 abc または def に一致する、
という条件はどう書くんでしょうか?

if ($name == ('abc'|'def'))

ダメですorz

0690nobodyさん05/03/02 06:27:07ID:???
if($name == "abc" or $name == "def")
069168905/03/02 06:37:20ID:???
>>690
お早うございます。

やっぱりそう書くしかないんでしょうか?
$name が重複してしまうのが、何となく嫌な感じがして、
perlでは>>689のように書けたような気がしまして。
とにかく、どうもありがとうございました。
0692nobodyさん05/03/02 08:43:58ID:???
>>689
正規表現がそのまま書けてしまうのは
ある意味特殊(Perlの特色)なので、必要であれば
"普通"に正規表現関数を使って書けばよいのでは?
0693nobodyさん05/03/02 08:56:03ID:???
in_array($name,array('abc','def'))とか。
意味ねーナ
0694nobodyさん05/03/02 10:20:55ID:???
>>691
正規表現使いたければ
if (preg_match("/^(abc|def)$/", $name))
ただ正規表現使うと確実に重くなる
正規表現使う必要がなければorやandを10個並べても全然嫌じゃないです
0695nobodyさん05/03/02 11:46:53ID:???
個人的には
>if($name == "abc" or $name == "def")
なパターンは、switchで書くようにしてる。

switch($name) {
case 'abc':
case 'def':
echo "Match";
break;
default:
break;
}
0696nobodyさん05/03/02 12:32:21ID:???
>>694
こういう単純な比較を10個並べた場合、and/orとpreg_matchはそれほど変わらないと思う
とくにどれにもマッチしないとかそういう時は。

もちろん最初の一個にマッチした場合はorの圧勝だろうけど。
0697nobodyさん05/03/02 20:14:45ID:???
>>683 >>685
アリガト
0698nobodyさん05/03/02 20:53:02ID:???
if($hoge == $hage){
 print "PIKA";
}
という条件式を、Perlの場合、

print "PIKA" if $hoge == $hage;

という書き方ができました。

PHPで同じような書き方はできないでしょうか?
0699nobodyさん05/03/02 21:03:27ID:???
<?php
 echo 'Hellow';
?>
と、
<?php
/*
複数行用のコメント
以下数万行(約10000K)
*/
 echo 'Hellow';
?>

<?php
 echo 'Hellow';
/*
複数行用のコメント
以下数万行(約10000K)
*/
?>

では、リクエストされてから表示されるまでの時間に差異は出るのでしょうか?
実際に試してみたいのですが、今使っているサーバ自体が糞で、
同じスクリプトを呼んでも、レスポンスにばらつきがありすぎて確認できません。
0700nobodyさん05/03/02 21:03:47ID:SuYdpkb9
if ($hoge == $hage) print "PIKA";
0701nobodyさん05/03/02 21:03:56ID:???
変数の数って上限あったのか、俺知らなかった・・・ごめん。
0702nobodyさん05/03/02 22:30:57ID:???
ディレクトリの中のファイル一覧を知りたいのですがどうしたらいいですか?

配列とかで取得できると後が楽でうれしいです。
PHPポケットリファレンスとphp manualを読んでそんな関数が見つからなかったので教えてください。
お願いします。
0703nobodyさん05/03/02 23:03:36ID:???
元質問者じゃないんですが変数の数の上限はどこに記載されているのでしょうか?
調べてもわからなかったんで実際に変数作ってみたら100万個までは作成できるみたいなんですけど。
0704nobodyさん05/03/02 23:04:55ID:???
>>702
>PHPポケットリファレンスとphp manualを読んでそんな関数が見つからなかった
0705nobodyさん05/03/02 23:06:37ID:???
>>702
>php manualを読んでそんな関数が見つからなかったので

読みが浅い。
「opendir」の項を嫁
0706nobodyさん05/03/02 23:10:35ID:???
むしろ「readdir」だな
0707nobodyさん05/03/02 23:12:14ID:???
うわーホントだ。読んでねえ俺・・・orz
どうもありが�d >>705
070868905/03/02 23:35:30ID:???
>>692-696
詳しい解説と考察をありがとうございました。マニュアルには

>複雑な処理を行ったり、 重い繰り返し処理を行う場合、
>switchの方がより処理が速い可能性があります

とありますが、今回のは簡単な処理だと思いますし、行数を
減らしたいので if を使います。
0709nobodyさん05/03/02 23:55:12ID:???
PHPicalendarで↓のような警告文が出て参ってます
もう何がなんだかちんぷんかんぷんです。
どなたかどういう警告で何が原因なのか教えてくださいお願いします・゚・(´Д`)・゚・
------------------------------------------------------------------------------------
Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070

Warning: fopen(/tmp/parsedcal-Home-2005): failed to open stream: No such file or directory in /PHPicalendarまでのパス/functions/ical_parser.php on line 1070

Warning: fwrite(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1071

Warning: fclose(): supplied argument is not a valid stream resource in /PHPicalendarまでのパス/functions/ical_parser.php on line 1072

Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 11005 is not allowed to access /tmp owned by uid 0 in /PHPicalendarまでのパス/functions/ical_parser.php on line 1073
------------------------------------------------------------------------------------
0710nobodyさん05/03/03 00:58:57ID:pcZIX8SU
$a=1
$_SESSION['$a']
こんなかんじで使いたいのですが、$aを展開する書き方はありますでしょうか?
$_SESSION['$_SESSION[$a]']
↑できればこれも。。
わかりづらい説明ですみません。うまく説明できないです。
071171005/03/03 01:20:37ID:???
>>709
上で710程度の質問してるくらいなので詳しいことはわかりませんが、
SAFE MODE phpで検索すればそれらしきものが出てきます。
一行目:今のUIDでは/tmpへアクセスができない
二行目:fopen(/tmp/parsedcal-Home-2005) 作成されるはずだったファイルがないため開けない。
三行目:存在しないので、ロックもできない
四行目:存在しないので、書き込みもできない

ということではないでしょうか?詳しい方どうでしょ?
0712nobodyさん05/03/03 02:01:11ID:???
>>710
シングルクォートを外せば良い。
$_SESSION[$a]
$_SESSION[$_SESSION[$a]]

>>709
711 の説明でだいたい正しいように思う。
SAFE MODE を外せないのであれば、テンポラリファイルを作成する
場所を /tmp から適当な httpd の動作権限で書き込み可能な
ディレクトリに変更すれば動作するのでは?
071371005/03/03 02:13:20ID:???
>>712
望んでいた結果が得られましたありがとうございます。
0714nobodyさん05/03/03 09:13:21ID:L91eb6rn
すみません。ちょっと、教えて頂けますでしょうか。
PHPで、リロードせずに時刻を常に更新させたいのですが、どのように
すれば良いのでしょうか。

<?php
while(True)
{
print(date("Y/m/d h:i:s"));
}
?>

と書くと、「2005/03/03 09:16:57」という文字が連続して表示され、
1秒も進みません。
時刻を更新し続けたいのですが、どなたかやり方を教えて頂けま
すでしょうか。何卒、宜しくお願い致します。
0715nobodyさん05/03/03 09:36:32ID:???
>>714
print(date("Y/m/d h:i:s")) が実行にかかる時間をちょっと調べてみようか。

$start = microtime(); // マイクロ秒単位でunixタイムスタンプを取得
print(date("Y/m/d h:i:s"));
$stop = microtime();
print ($stop-$start);

一回だけの試行なので信頼性はあんまり無いんだが、
うちの環境だと 0.000204秒になった。4900回/秒 くらいってことだな。

sleep()を使って1秒に一回くらいのペースでdate()を実行させるか、
そもそも鯖側で実行させずにJavaScript等のクライアント側でやらせた方がよいと思われ。
0716nobodyさん05/03/03 09:40:35ID:???
>>714
metaタグでリフレッシュする(結局リロードと一緒なのであまりサーバには良くない)
表示するだけならJavaScriptでやっとけ
0717nobodyさん05/03/03 10:40:32ID:7OeoLBpl
mb_send_mailはメール送信先にメールが届けられて初めてTRUEが返ってくる
ものですか??
でたらめなアドレスを送信先引数にしてもTRUEが返ってくるのですが・・・。
0718nobodyさん05/03/03 11:09:37ID:???
>>717
最初のMTAに処理を依頼した結果が返ります。
0719nobodyさん05/03/03 11:24:02ID:7OeoLBpl
MTAとは
インターネット内で電子メールを配送するソフトウェア。
ユーザが送信したメールを受け取って、他のサーバと連携して
バケツリレー式に目的地まで配送したり、
届いたメールをユーザが受け取るまで保管したりする。
ってことは送信先に届けましたよってことでTRUEが返ってくるわけでは
ないということでしょうか??

0720nobodyさん05/03/03 11:53:35ID:???
>>719
例えばsendmailの場合、下のurlにあるような結果(終了コード)を返す。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
sendmailがどう設定されているかはその鯖の管理者にしか分からん。
そして、PHPはこの終了コードだけを見て適当に加工してmb_send_mailの返り値としている。
phpのソースコードをぱっと見た感じでは、EX_OKの時にtrueを返しているみたいだな。

つーわけで、mb_send_mail == trueになったからと言って、
そのメールが確実に相手に届いているかどうか(届く予定かどうかさえも)分からない。
確実に届いたかどうか確認したきゃ、メールの中にidを含んだURLを書いておいて
相手にアクセスさせるくらいしかないわな
0721nobodyさん05/03/03 12:32:41ID:7OeoLBpl
詳しい説明ありがとうございます。
感謝です。
0722nobodyさん05/03/03 13:08:25ID:T3a2sbue
PHPを使って、ページAを表示しています。
そのとき、ページAの中心部分に、外部テキストデータBを挿入したいと考えています。
しかし、外部テキストデータBを呼び出すには多少時間がかかるため、
可能ならばページAを表示した後、時間差で外部テキストデータBを表示したいと考えています。

これを実現するためにはPHP内でやるよりも、iframeを使うのがいいのかなと思っているんですが、
iframeだと最初に縦横サイズを決めておかねばならず、テキストの量が変化するし実に不便です。

時間差で後からテキスト文を挿入する方法があれば、教えてください。
0723nobodyさん05/03/03 13:48:25ID:???
>>722
javascriptでも使えよ・・
0724nobodyさん05/03/03 13:53:11ID:???
なんだと
0725nobodyさん05/03/03 15:11:55ID:T3a2sbue
>>723
JavaScriptだと、時間差で読み込みできますか?

document.write(外部ファイル)

みたいな感じでいいでしょか?
0726nobodyさん05/03/03 16:18:55ID:7OeoLBpl
質問です。
mb_send_mailでエラー返送先Return-Pathを指定しなかったら
fromで指定したところにエラー返送されますか??
072770905/03/03 16:51:52ID:???
>>711-712
丁寧なレスありがとうございます

-------
1067行   // write the new master array to the file
       if (isset($master_array) && is_array($master_array) && $save_parsed_cals == 'no' && $is_webcal == FALSE && $cal != $ALL_CALENDARS_COMBINED) {
              $write_me = serialize($master_array);                   ~~~~
              $fd = fopen($parsedcal, 'w');
              fwrite($fd, $write_me);
              fclose($fd);
1073行          touch($parsedcal, $realcal_mtime);}
-------

色々試行錯誤した結果、力技といいますか
警告を受けていた「functions/ical_parser.php」の↑の波線部分の所をyesからnoに変えたらなんとか警告は出なくなりました
この変更によってどういう影響をもたらすのかさっぱりですが・・・('A`;)
■ このスレッドは過去ログ倉庫に格納されています