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

【PHP】質問スレッドPart2

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/10/17 10:52ID:zLTg5ihK
レスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。

参考リンク
■本家
http://www.php.net/

■PHP日本語マニュアル
http://www.php.net/manual/ja/

■Japan PHP Users Group
http://www.php.gr.jp/

■PHP 日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html

■Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

■前スレ
http://ebi.2ch.net/test/read.cgi/php/982687820/
0202名無しさん@お腹いっぱい。01/11/16 02:48ID:u+h72O5A
$email = "xxx.xxx.com";
$subject = "TEST";
$message = "TEST";
$headers = "From: aaa.ccc.com";

mail($email, $subject, $message, $headers);


こんな感じで普通のメールは送れるけど
test.csvやtest.jpgなんかを添付ファイルにして送りたい時は
どうやんの?
バイナリーの時とテキストでは送り方も違うのかな。


わお、よくよく見たら変数間違ってるし(鬱
ということで>>200-201は見なかったことに・・・。
0203名無しさん@お腹いっぱい。01/11/16 05:57ID:aZjYWal6
改行コードの取り除きで効率的なやりかたってありますか?
こういうベタなものしか思いつかないんですが・・・

$word = str_replace("\r\n", "", $word);
$word = str_replace("\r", "", $word);
$word = str_replace("\n", "", $word);
020420001/11/16 07:49ID:???
正規表現は勉強中なので間違ってるかもしれませんが

$word = str_replace("(\r\n|\r|\n)", "", $word);

これで1行でいけるのでは・・・・。
間違いはえらい人訂正して(藁
0205えらくはないが01/11/16 08:45ID:???
str_replaceは正規表現が使えないので
$word = ereg_replace("\r\n|\r|\n", "", $word);
かな。少し前にMLで
$word = ereg_replace("\r\n?|\n", "", $word);
の方が速いかも?とかあったけど、
ウチの環境では前者の方が15%ほど速かったから
そっち使ってる。一応テストしてみては。
0206名無しさん@お腹いっぱい。01/11/16 10:36ID:???
>>205
つか、それより str_replace() 三発の方が速かったりしないか?
0207名無しさん@Emacs01/11/16 11:02ID:???
str_tr()
0208名無しさん@Emacs01/11/16 11:05ID:???
ごめん、strtr() だ。

string strtr (string str, string from, string to)
この関数は str を走査し、 from に含まれる文字が見つかると、そのすべてをtoの中で
対応する文字に置き替え、その結果を返します。
from と to の長さが異なる場合、長い方の余分な文字は無視されます。
0209名無しさん@Emacs01/11/16 11:06ID:???
>>207-208
さらにごめん。大嘘。わすれて。
0210名無しさん@お腹いっぱい。01/11/16 11:47ID:???
これは?おそいかな?
strtr( $word, array("\r" => "", "\n" => "") );
0211名無しさん@お腹いっぱい。01/11/16 12:35ID:???
上にある
$word = ereg_replace("\r\n|\r|\n", "", $word);
と
$word = str_replace("\r\n", "", $word);
$word = str_replace("\r", "", $word);
$word = str_replace("\n", "", $word);
では、結局、どっちが速いの?

こういうのの計測ってどうやればよいのでしょうか?
0212名無しさん@お腹いっぱい。01/11/16 17:13ID:???
>>211
$wordの大きさによってはeregの方が速くなるかも。
計測はabで負荷かけてみるとか、PHPの最初と最後に
<!-- <?php echo microtime() ?> --> を入れてみるとかすれば?
0213名無しさん@お腹いっぱい。01/11/16 17:25ID:sLQIiIrb
どなたか御願いします。
function print_table($number,$indent)
{
if($number != 0){
$sql = "select Heading,Messages,WhoseMes from bbs where ThreadId = $number;";
$conId = IBConnect();
$retSql = ibase_query($conId,$sql);
$retArry = ibase_fetch_row( $retSql );

print str_repeat("    ",$indent);
print( "投稿者:$retArry[2] 題名:$retArry[0] 内容:$retArry[1]<br>" );

ibase_free_result( $retSql );
IBClose($conId);
}

$sql = "select * from bbs where Relation = $number;";

$conId = IBConnect();
$retSql = ibase_query($conId,$sql);

while($retArry = ibase_fetch_row( $retSql )){
print_table($retArry[1],$indent + 1);
}

ibase_free_result( $retSql );
IBClose($conId);
}

ツリー掲示板に挑戦しているのですが、データ表示のところでエラーが出てしまいます。
Warning: InterBase: invalid statement handle in
Warning: 1 is not a valid InterBase link resource in
これがおそらくループの回数分出ています。
ヒントだけでもいいのでどこの辺が間違っているか教えて下さい。
0214名無しさん@お腹いっぱい。01/11/16 18:03ID:???
多分エラーメッセージの後に ファイル名・行番号があると思うのだが
その行がどれかぐらい示してくれ。
0215名無しさん@お腹いっぱい。01/11/16 18:38ID:???
毎回connectしてcloseしてるのか。負荷高そう。
それはそれとして、214の書いてることとか、$numberの値とかがないとわからん。
できればbbsテーブルのスキームも。
021621301/11/16 19:54ID:83R0+1ef
>>214 さん

while($retArry = ibase_fetch_row( $retSql )){   ←
print_table($retArry[1],$indent + 1);
}

ibase_free_result( $retSql );     ←
IBClose($conId);

最後のこの数行なんですが、矢印の行でエラーが出ていました。
たぶんDB接続がこの関数の中で2回行われているので
それがいたずらしているのかもしれません。
おまけに再起呼び出ししているのでちょっと自分でも
頭がこんがらがってます。
けれども一見見た目では変な所は無いのでしょうか。
021721301/11/16 19:56ID:83R0+1ef
>>215 さん

$numberの引数は呼び出す時に「0」が入ります。
$indentは「-1」が入っています。
つまり一番初めの時はif文で偽になる寸法なのです。
021821301/11/16 19:58ID:83R0+1ef
ttp://www.dcl.info.waseda.ac.jp/~hasegawa/php/bbs.html
このページの「ツリー型掲示板を作る」を参考にしました。
というかほとんど同じなのですが、使用しているDBが違うので
DB接続の部分が違います。
ページに紹介されているDBは全く知らないのでだいたいの
事しかわからなかったんですが。。
0219名無しさん@お腹いっぱい。01/11/16 20:47ID:???
なるほど、connection張りっぱなしで、さらにconnectionを張るのか。
同時接続の制限を超えてるのであれば、

> while($retArry = ibase_fetch_row( $retSql )){
> print_table($retArry[1],$indent + 1);
> }
> ibase_free_result( $retSql );
> IBClose($conId);

ここのところを、

$numbers = array();
while($retArry = ibase_fetch_row( $retSql )){
$numbers[] = $retArry[1];
}
ibase_free_result( $retSql );
IBClose($conId);
for ($i = 0; $i < count($numbers); $i++) {
print_table($numbers[$i], $indent + 1);
}

みたいにするとうまく動くかも。でもメモリ食いそうだなあ。
再帰にすると確かにきれいだけど、負荷が大きいのでアルゴリズムを
考え直した方がいいと思われ。
0220名無しさん@お腹いっぱい。01/11/19 09:22ID:???
PHPって、どんなこと出来るのかなぁ・・・。
掲示板をよく、例題とか、サンプルとかであるけど。
他に何できるのかなぁ・・。
誰か、「PHPで、こんなの作った」って人、いません??
0221名無しさん@お腹いっぱい。01/11/19 09:54ID:???
>>220
http://www.hotscripts.com/PHP/Scripts_and_Programs/
0222t5501/11/19 10:23ID:LAtEPnZS
日本最大の援助交際サイト



おこずかいの欲しい女の子募集!!



http://000.zive.Net/e.html
(援助交際クラブ)
/:::::
022322001/11/19 10:51ID:???
<<221
え、英語ですね・・^^;
あ、ありがとうです。
でも、日本語のやつとかありましたら、そちらの方がイイです。(藁
0224名無しさん@お腹いっぱい。01/11/19 11:02ID:???
絶対言うと思った。英語ってだけでしり込みする奴ウザイ。

http://www.php.gr.jp/php/php-links.php3
http://script.lovely.to/list.php3?path=home_script_php

このくらい自分で探せよ。
0225名無しさん@お腹いっぱい。01/11/19 11:06ID:???
ひろゆきピンチ!援軍頼む
集え!2ちゃんねらー!!!
http://yasai.2ch.net/test/read.cgi/shikaku/1005610706/
0226名無しさん@お腹いっぱい。01/11/19 13:40ID:???
PHPって日本語での情報量ってたかが知れてるよね。
まぁとりあえず>>220は汚染には気をつけてね。周りの人が迷惑するから。
022722001/11/19 14:52ID:???
あ。
日本語の奴だ。>>224サン。すみません。ありがとうございます。
0228 01/11/19 15:55ID:OEyiuwmr
$a = 123をreturnする時、
returnする直前は値が入っているのに
返り値を受け取った直後に値が入っていないなんて事あるんでしょうか。
というか今そんな風になってしまったんですが。
0229名無しさん@お腹いっぱい。01/11/19 16:37ID:???
直前って何処よ。

function hogehoge() {
        ・
        ・
        ・
        echo $hoge;
        return $hoge;
}

ってやって確かめたのか?
0230名無しさん@お腹いっぱい。01/11/19 19:02ID:ADg1aqBa
>>226
汚染って何?
0231名無しさん@お腹いっぱい。01/11/19 19:13ID:???
>>230
↓らへん見れ
http://www.ansi.co.jp/tech/cgi/security/programming.html
0232名無しさん@お腹いっぱい。01/11/19 23:16ID:axQU6f6G
>>229
すいません、僕のミスでした。
function hogehoge($i){
$i++;
if($i == 3){
echo $hoge;
return $hoge;
}else{
hogehoge($i);
}
}

$aiu = hogehoge(1);

これとは少し違うのですが、再起呼び出しした最終的な場面で
returnをしているつもりが、再起呼び出しが完了した後は
また元の再起呼び出し前の状態に戻る事を理解していなくて
結局retrunがされていない(空の値が入っていた)状態で
何度もretrunされていないなぁとやっていました。
意味がわからないと思いますが、一応解決しましたので。
どうもすいませんでした。
徹底攻略PHPって本を読んでるんですが、再起呼び出しについては
ほとんど解説していないんですよね。。
0233名無しさん@お腹いっぱい。01/11/19 23:33ID:???
徹底攻略PHPって本を読んでるんですが、クイックソートについては
ほとんど解説していないんですよね。。
0234名無しさん@お腹いっぱい。01/11/19 23:33ID:???
徹底攻略PHPって本を読んでるんですが、二分木探索については
ほとんど解説していないんですよね。。
0235名無しさん@お腹いっぱい。01/11/19 23:35ID:???
徹底攻略PHPって本を読んでるんですが、有限オートマトンについては
ほとんど解説していないんですよね。。
0236名無しさん@お腹いっぱい。01/11/20 00:02ID:???
例えば、echo文を書くときに

echo $hoge;
echo "$hoge";
echo ("$hoge");
echo '$hoge';

の4つには何か差があるのでしょうか?
使い分けなどありましたら教えていただけないでしょうか。
0237名無しさん@お腹いっぱい。01/11/20 00:18ID:???
>>221のリンク先、すっげー勉強になった。
濃いものがいっぱいあるのぅ。
0238名無しさん@お腹いっぱい。01/11/20 00:46ID:???
>>236
一つだけ明らかに他と違うのがあるだろ?

自分で確かめろよ。
0239名無しさん@お腹いっぱい。01/11/20 03:24ID:???
>>232
>徹底攻略PHPって本を読んでるんですが、再起呼び出しについては
>ほとんど解説していないんですよね。。

なんでPHPの本で再帰を説明しなきゃいけないの?
PHPと再帰とは関係ないじゃん。

>>236
>使い分けなどありましたら教えていただけないでしょうか。

差が分からない以上使い分けもできないと思われ…
本読む前にマニュアル読んだほうがいいんじゃないの?
0240名無しさん@お腹いっぱい。01/11/20 10:52ID:lez0kQXp
InterBaseで改行付きのデータを送っているんですが、
後でデータを取得すると改行が無効になっています。
データ型が悪いのでしょうか。
varchar(n)なんですが。
024124001/11/20 11:20ID:lez0kQXp
すいません、調べたらわかりました。
$com = str_replace("\r\n", "\r", $com); //Win系は\r\n
$com = str_replace("\r", "\n", $com); //Mac系は\r
$com = nl2br($com); //改行文字の前に<br />追加
$com = str_replace("\n", "", $com); //\n除去

こういう事ですね。
でも「<br />」ってなんですか?
<br>とは違うんでしょうか。
0242名無しさん@お腹いっぱい。01/11/20 11:21ID:???
XHTMLの空タグ
0243名無しさん@お腹いっぱい。01/11/20 11:32ID:???
>>241
<br></br>
<img src="..."></img>
こういうのを
<br />
<img src="..." />
で書ける。それだけ。
0244くいーくそーと01/11/20 11:38ID:???
//引数:[$arr]2次元配列、[$sort_column]該当列の正順にソート
//返値:ソートされた配列
function sort($arr,$sort_column){
 //ソートのメイン関数へ
 return sort_main($arr,$sort_column,0,count($arr)-1);
}
//ソートメイン
function sort_main(&$tmp,$sort_column,$left,$right){
 $middle=(int)(($left+$right)/2);
 if($left >= $right){
  return;
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$middle];
 $tmp[$middle]=$tmp_sub;
 $last=$left;
 for($count=$left+1; $count<=$right; $count++){
  if($tmp[$count][$sort_column]<$tmp[$left][$sort_column]){
   $last++;
   $tmp_sub=$tmp[$last];
   $tmp[$last]=$tmp[$count];
   $tmp[$count]=$tmp_sub;
  }
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$last];
 $tmp[$last]=$tmp_sub;
 $this->sort_main(&$tmp,$sort_column,$left,$last-1);
 $this->sort_main(&$tmp,$sort_column,$last+1,$right);
}
0245くいーくそーと01/11/20 12:02ID:???
$arr[0][0]=3; $arr[1][0]=1; $arr[2][0]=2; $arr[3][0]=5; $arr[4][0]=4;
echo "そーと前だよ<br>";
foreach($arr as $key=>$val) echo "\$arr[".$key."][0]=".$val[0]."<br>";
$arr=qsort($arr,0); //ソートする
echo "そーと後だよ<br>";
foreach($arr as $key=>$val) echo "\$arr[".$key."][0]=".$val[0]."<br>";

///////////////////////////////////////////////////////////
//引数:[$arr]2次元配列、[$sort_column]該当列の正順にソート
//返値:ソートされた配列
function qsort($arr,$sort_column){
 sort_main($arr,$sort_column,0,count($arr)-1); //ソートメイン関数へ
 return $arr;
}
//ソートメイン
function sort_main(&$tmp,$sort_column,$left,$right){
 $middle=(int)(($left+$right)/2);
 if($left >= $right){
  return;
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$middle];
 $tmp[$middle]=$tmp_sub;
 $last=$left;
 for($count=$left+1; $count<=$right; $count++){
  if($tmp[$count][$sort_column]<$tmp[$left][$sort_column]){
   $last++;
   $tmp_sub=$tmp[$last];
   $tmp[$last]=$tmp[$count];
   $tmp[$count]=$tmp_sub;
  }
 }
 $tmp_sub=$tmp[$left];
 $tmp[$left]=$tmp[$last];
 $tmp[$last]=$tmp_sub;
 sort_main(&$tmp,$sort_column,$left,$last-1);
 sort_main(&$tmp,$sort_column,$last+1,$right);
}
0246くいーくそーと01/11/20 12:10ID:???
>>244は間違いです^^;;
使ってるやつから余計なとこを取ったもので・・・
エラーが残ってたっす。

そんなわけで、>>245み見てくださいっす。
0247あ01/11/20 14:59ID:???
<input type="text" name="hoge" value="aiueo">
だと初期値がaiueoになりますが、
<textarea name="hoge" value="aiueo">
では初期値にならないですよね?
既に入力されている状態で画面を表示したいのですが。
0248名無しさん@お腹いっぱい。01/11/20 15:11ID:???
>>247
板違い
0249名無しさん@お腹いっぱい。01/11/20 17:52ID:9FGmznpP
>>247
<textarea name="hoge">aiueo</textarea>
こうすれ。sage。
025024901/11/20 17:54ID:???
sageって書いといてsageてない。鬱氏。
0251名無しさん@お腹いっぱい。01/11/20 18:31ID:snY16NFi
ttp://biztech.nikkeibp.co.jp/wcs/show/leaf?CID=onair/biztech/gen/155801

WebSphereって一千万円するの?高くない?
025225101/11/20 18:32ID:???
ごめんなさい、PHPスレでしたね。一般質問と間違えた。
0253名無しさん@お腹いっぱい。01/11/20 19:19ID:MCCfqkSW
>>249
どうもありがとう。
025420001/11/21 07:56ID:???
>>202
自己解決しました。
0255z01/11/21 14:00ID:???
しゅいません。
php4で、クラスのインスタンス変数(オブジェクト)を
セッション管理する定番の方法はどうやりまするか?
0256名無しさん@お腹いっぱい。01/11/21 15:47ID:???
http://www.php.net/manual/ja/language.oop.serialization.php
これよりもっと良いやり方あったら教えてね
0257z01/11/21 21:16ID:???
>>256
おお。なんだーマニュアルよく読めってことかー。
special thanks!! 助かりました。
0258質問です。01/11/23 09:31ID:9Tr0FYjc
セッションはつかってないプログラムのphp.iniで
セキュリティがらみの設定項目ってなんかある?
safe_mode = on
safe_mode_exec_dir = hogehoge
は設定してあります。
あと、変数の関係上
register_global = Off は無理です。
0259全然質問じゃないけど01/11/23 14:28ID:???
PHPってPDFファイルをメモリ上で作って出力できるんだね。
綺麗に帳票出せるようになってうれしカキコ。
0260名無しさん@お腹いっぱい。01/11/23 17:27ID:kkIMnnEn
あちらこちらからPHPを拾ってきてPHP可な鯖にセッティングすると
ソースが丸見えで使えません。パーミッションを設定しても全然ダ
メです。
.htaccessが置けないので、このままで使えると思うのですが・・・

因みに3行の
<?
print ("Hello");
?>
だけを書いたhallo.phpというファイルをあぷしました。
perlのようにヘッダの打ち出しとか要るんでしょうか?
0261phpな名無しさん01/11/23 19:00ID:???
その前にphp4に対応してる?
してなかったら拡張子をphp3にすべし
0262名無しさん@お腹いっぱい。01/11/23 20:41ID:tdhsiUBd
>>260
俺も初心者だから良くしらんけど。
phpの初めの一歩は
<? phpinfo(); ?>
だと思うよ。
0263260 01/11/23 21:35ID:???
>262
チミと一緒にしないでくれ、俺は初心者じゃない!
0264名無しさん@お腹いっぱい。01/11/23 23:02ID:???
>>260
鯖のFAQくまなく見たらい〜と思うよ☆

え〜だるいから嫌なの??
そんじゃね〜
<?php
print ("Hello");
?>
って書いてみたらいいと思うよ☆
これで完璧\(^o^)/
0265260だけど263じゃないんだけど・・・01/11/24 00:13ID:YHMgKrz0
>>261 ありがとう。php3にしてもだめだった。
>>264 使えるとしか書いてない・・・バージョンも不明。
 拡張子をphp3にして、パーミッションも777にして、<?php
 から始めて見ても同じ。

phpってperlと同じように秀丸で作ってs-jisで保存でもいいんだよね?
perlのように超ウルトラ初心者用のサイトとかってないのかな。。。(T-T)
0266名無しさん@お腹いっぱい。01/11/24 00:27ID:???
バージョン不明って・・・phpinfo()で出してみぃな。
パーミッションは触らずに逝け。
ってゆーか、どこの鯖使ってんの?
0267名無しさん@お腹いっぱい。01/11/24 00:53ID:E2NIMZ73
>>265
ちなみに PHP は CGI として使う方法と Apache のモジュールとして使う方法の
2種類あるけど、自分の鯖がどっちの方法なのか知ってるの?

モジュールとして使うならパーミションは関係ないよ
0268260だけど263じゃないんだけど・・・01/11/24 01:01ID:YHMgKrz0
>>266 そもそもソース丸見えの状態にしかならないんだけど(^^;;;
試してみます。
>>267 まるで知りません
0269260だけど263じゃないんだけど・・・01/11/24 01:04ID:YHMgKrz0
やぱしソース丸見えでつ。。。
027026601/11/24 01:06ID:???
でわどこの鯖を使ってるか、教えてたもれ。
使用中もしくは経験豊富な方が、いらっしゃるかもですよ。
0271web shop作りたひ者01/11/24 01:35ID:Zb/Z9YC4
スレ違いかもしれませんが質問です。
cgiを使ったweb shop site作りを助けるソフトで何かいいものがないでしょうか?
web shop editorとshop builderというものが良さそうに思うのですが
これら以外でいいものがあるなら教えていただきたいです。
027226201/11/24 01:38ID:???
チミと一緒にするな、って超初心者のサイト探してんだったら
一緒じゃんかよ。
ってか俺ほんとは初心者じゃないし。企業にソフト納品とかしちゃってるし。
ま、せいぜー頑張って。ってかレッツPHPとか逝けよ。
027326701/11/24 01:40ID:E2NIMZ73
>>268
ソースが丸見えになるなら、Apache のモジュールとしては動いてないと思われ…
拡張子 html のままで解析されるようになってるのかな??
とりあえず html にしてやってみてわ

それでもだめなら CGI として使えってことだろうな。
0274名無しさん@お腹いっぱい。01/11/24 01:57ID:???
>>260
ってーかサーバー管理者にメールか電話で聞け。
ここでうだうだ言ってるよか256倍は早い。
0275 01/11/25 04:00ID:???
http://kiss1.net/
ここにカウンタとBBSを置きたいんですがうまくいきません。
セーフモードって何ですか?
0276名無しさん@お腹いっぱい。 01/11/25 04:38ID:???
セーフモード -> 厨房避け
色んな意味で
0277名無しさん@お腹いっぱい。01/11/25 22:13ID:???
掲示板なんですが、、、
DBがInterBeaseで、DATE型の日付があります。
投稿時刻を投稿の際に記録します。
それで24時間以内の投稿ならばNEWにしたいのですが。
どうすればいいんでしょうか。
自分で考えたのは、
1,投稿時刻をDBから取得します。= $retAryy[n]
2,現在の時刻に24時間足したものを = $nowTime
3,$retArry[n] と $nowTime を比べる

でいいと思うんですが、2の24時間足す動作と、
3,の日付を比べる動作がどうやればいいのか困っています。
どうか御願いします。
0278名無しさん@お腹いっぱい。01/11/25 22:47ID:IKGmxf48
>2,現在の時刻に24時間足したものを = $nowTime
投稿時間に24時間足して,現在の時刻と比較であ?
0279名無しさん@お腹いっぱい。01/11/25 23:02ID:???
>>277
InterBase自体に日付・時刻を演算する機能はなかったかな?
(Oracle,PostgreSQLなんかだとあるんだけどね。)
>>278
冷静なツッコミだな…ソノトオリだが。
0280名無しさん@お腹いっぱい。01/11/25 23:29ID:???
$nowTime=strtotime(date("r")."+1days");
0281名無しさん@お腹いっぱい。01/11/25 23:40ID:???
つーか
E尸
衣毛ウザイ
0282名無しさん@お腹いっぱい。01/11/26 22:41ID:???
>>281
これってひょっとして最近 php-users に出てる長尾のこと?
ちと苦しいんじゃねー?
0283質問しようと思っていた01/11/27 00:35ID:???
gd-2.0.1がPHPでやっと動いた。
疲れた。
0284名無しさん@お腹いっぱい。01/11/27 23:50ID:GaPmql7r
PEARってどうなんですかね。
使ってる方、結構いるのでしょうか?
0285名無しさん@お腹いっぱい。01/11/28 00:18ID:???
>>284
DBは使ってるけど、他はまだ解析中。
(というか、暇がねぇ。。。)
0286名無しさん@お腹いっぱい。01/11/28 00:22ID:???
任意のディレクトリ以下だけ PHP が使えないようにするということは
できないでしょうか?
.htaccess 使ってできればベストですが、httpd.conf の書き換えで
できるようでしたら、それでも構いません。
0287EXCELファイル01/11/28 10:54ID:c3Xf6lEu
何気に検索しているときに
http://ppfh028.cisnet.or.jp/article.php?sid=40
が引っかかり覗いてみたのですが、
PHPからEXCELのファイルを出力できるのでしょうか。
取っ掛かりになるサイトや本があれば教えてください。
028827701/11/28 13:37ID:QhZ6TCnD
掲示板の件で伺ったものですが。
調べたらちょっと自力で値を比べていくしかないみたいなんですが
ちょっとそれもわかんなくなってきました。
現在時刻↓
$now1 // 年
$now2 // 月
$now3 // 日
$now4 // 時
$now5 // 分
$now6 // 秒
投稿時刻↓
$time1 // 年 例:2001
$time2 // 月 例:11
$time3 // 日 例:3
$time4 // 時 例:23
$time5 // 分 例:18
$time6 // 秒 例:56

変数をこのように定義したとします。
「投稿時刻が24時間以内であれば変数$hogeに"new!"を代入する」
という仕組みを作りたいのですが。。。
注意が、分などの値が一桁の場合03分という風に前に0が必ず
付くわけではないです。
028927701/11/28 14:49ID:QhZ6TCnD
perlでは指定した時刻から何秒経っているかという値を返してくれる
関数みたいなものがあるみたいなのですが、
phpではどうなのでしょうか。
良く考えたら上のやり方では年をまたいでいる時
投稿時刻と現在の時刻が24時間以内かどうかを判断するのはかなり
手間がかかりそうですよね。あと閏年も考えると無理そうです。
0290教えて君01/11/28 15:02ID:???
>>289
つーかさ、別に日付として持たなくても
INT 型のフィールドにして unixtime を保存しとけばいーんでないの?
0291antique01/11/28 15:05ID:???
>>289
http://www.php.net/manual/ja/function.mktime.php

でUnixタイムスタンプに直して 24*60*60 以上差が無いか見れ。
0292名無しさん@お腹いっぱい。01/11/28 15:30ID:???
>>287
EXCELっつか*.csvファイルのこと?
ファイルシステム関数fgetcsvを参照されたし。
0293名無しさん@お腹いっぱい。01/11/28 15:37ID:???
HTMLをExcelに読み込めせるのかも。
0294名無しさん@お腹いっぱい。01/11/28 21:41ID:???
>>287
リンク先を見た感じ、こういうことでしょうか?

// ダミーファイル(空のファイルを用意しておく)
$temp_file = "temp.csv";
$output_file = date ("YmdHis", time()) . ".csv";
// CSVに出力したいデータ
$csv_header = "列1,列2,列3
";
$csv_data = "データ1,データ2,データ3
";

// Winで表示するためにSJISに変換
$all_data = mb_convert_encoding ($csv_header . $csv_data, "SJIS");

// 出力先のファイルを作成
@copy ($temp_file, $output_file) or die ("ファイルを作成できません\n");
chmod ($output_file, 0777);

// ファイルを開きデータを書き込む
$fp = @fopen ($output_file, "r+") or die ("ファイルを開けません\n");
fputs ($fp, $all_data) or die ("ファイルにデータを書き込めません\n");
fclose ($fp);

どう?
029528701/11/29 13:00ID:o7Ezdiih
>>292-294
レスありがとうございます。
PHPからEXCELファイルを作成できるのかなと思い書き込んでみました。
試しにcsvファイルを作って出力したところ、うまくいかなかったので
タブ付きでデータを出力したところ、うまくEXCELが立ち上がってくれました。
こんなかんじです

<?php

//出力バッファ準備
ob_start();
ob_end_clean();

//SJISに変換
mb_http_output("SJIS");

//EXCELを立ち上げる為のおまじない?
header("Content-type: application/vnd.ms-excel") ;

//データ
echo "あ い う";
echo "\n";
echo "え お か";
echo "\n";

//バッファ出力
ob_end_flush();

?>

でも、たまにEXCELがエラーを吐き出してとまってしまいます・・
0296名無しさん@お腹いっぱい。01/11/29 18:21ID:Lz1LmgrA
JpGraphって使ってる人いますか?
なんか、うまく動かない・・・
0297名無しさん@お腹いっぱい。01/11/29 18:39ID:AMvwJSR+
flockってどういうファイルロックなの?
って言うかこんな時強いってのがあれば教えてくれさい。
029829401/11/29 19:24ID:???
>>295
うわ、全然違った。すまん。
029929501/11/29 21:11ID:???
>>294
いえ、ヒントをいただけました。
ていうか>>295で忘れていたob_start("mb_output_handler");
を書き加えると文字化けしてしまう・・
0300名無しさん@お腹いっぱい。01/11/30 00:04ID:KqQYZRFH
PHPはまだ始めたばかりの初心者ですが、よろしくお願いします。

【質問】
PHPで画像をアップロードできる掲示板を作りました。
なんとか完成して問題なく動作する状態までは行っています。

で、書き込みが成功した場合は「書き込みは正常に終了しました」
という画面を表示して、掲示板に戻ってくるようにしているのですが、
この時、MAX_FILE_SIZEを越えるファイルを送信した場合は、

"Warning:Max file size exceeded-file[***] not saved"

というエラーメッセージが画面上に出てしまいます。
(画像がアップされないだけで名前や本文は書き込まれる)
これを表示させないようにするにはどうしたら良いでしょうか?

【試してみたこと】
書き込み処理をしているfunctionにerror_reporting(0);
を挿入してみたのですが、消えてくれませんでした。
何か使い方を勘違いしているんでしょうか。
0301名無しさん@お腹いっぱい。01/11/30 08:18ID:???
>>300
error_reportingって最初に宣言するんじゃなかったっけ。
エラー出る命令の前に@つけるとか。
030230001/11/30 10:26ID:d3cxAmiD
>301
回答ありがとうございます。
<?
error_reporting(0);
↑のようにしてみましたがやはりエラーメッセージが出ます。
バージョンなどによるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています