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

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

■ このスレッドは過去ログ倉庫に格納されています
00019662005/07/12(火) 01:47:09ID:qOoYFCn7
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/

立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0404nobodyさん2005/07/22(金) 21:13:13ID:???
>>401
まずお前は日本語と一般教養の勉強をしたほうがいい。
コミュニケーションできないと開発も出来ない(たとえ一人で開発してるとしても)。
0405nobodyさん2005/07/22(金) 21:26:24ID:???
ははは、そんな安月給のお仕事につくつもりは無いですよw
0406nobodyさん2005/07/22(金) 21:39:15ID:???
エンコーダーは高いよ 金が・・・
0407nobodyさん2005/07/22(金) 21:56:40ID:???
>>403
「見る(見られる)」ってのも、これまた抽象的な表現だな。

可能。特にWebサーバでそのファイルに
アクセス出来ないようにしていなければだけど。
0408nobodyさん2005/07/22(金) 22:03:28ID:???
オイラのエスパー脳を発動してみたところ、
・配布した物の中身を見られたくない
・配布した物を実行する鯖(実行環境)に手を加える必要が無い
そんな便利なものがあるのだろうか?って質問をしたいんだろうね。
というか、そういう質問になるはずなのにパスコンとかIEとか訳ワカンネ
0409nobodyさん2005/07/22(金) 23:24:50ID:???
>>405
安心しろ。
お前の言語能力なら、コンビニのバイトでさえ採用されないから。
0410nobodyさん2005/07/22(金) 23:51:35ID:???
高給なお仕事にお就きになられる>>405に、我ら貧民が答える義務はあるまいて。
ほっておけ。
それにしても最近のここは惨いな。夏休みだからか。
0411nobodyさん2005/07/23(土) 00:08:59ID:???
ここはVIPじゃないんだからみんなそんなに全力で釣られなくたって…。
0412nobodyさん2005/07/23(土) 00:17:58ID:???
流れをぶった切って質問させてください。

ある変数がNULLかどうか、0かどうか、空かどうかを皆さんどう判定してますか?
いま、ある配列に特定のキーがあるかどうかを
$hoge = array(10,20,30);
$val = 10;
$key = array_search($val,$hoge);
このようなスクリプトで$valが$hogeに見つからなかった場合の処理をしようと
if ($key == NULL) print "ぬるぽ";
と記述したところ、この場合、$hoge[0]に10があるわけですが、
$keyに「0」が入ってしまい、$key == NULLが真となってしまいました。

仕方ないので(strlen($key)==0)としているのですが、他にもっと直接的な判別方法があるのでしょうか?
($key===NULL)だと$valが見つからない場合でも常に偽になってしまうようです。

よろしくお願いします。
0413nobodyさん2005/07/23(土) 00:25:16ID:???
>>412
いいよ。糞みたいな奴のスレはぶった切っても
array_searchは見つからなかったときはNULLではなくFALSEを返すので
if ($key === FALSE) print "ぬるぽ";
とすればいい。
できればPHPのリファレンスマニュアルを熟読して欲しいな。
0414nobodyさん2005/07/23(土) 00:26:45ID:???
>>412

とりあえず、nullかどうかを判定するなら、is_null()を使うし、
関数の戻り値でfalseが返ってくる可能性があるなら
if($result === false)と型で判定するのが普通。

array_searchの戻り値がnullかどうかで判定しようとしてるけど、
PHP4.2.0以前のバージョンを使っているの?
ttp://jp.php.net/manual/ja/function.array-search.php

最近のバージョンならfalseが返ってくるから、

$key = array_search($val,$hoge);
if ($key === false) print "ぬるぽ";
とする必要がある。

04154122005/07/23(土) 00:29:24ID:???
>>413
レスありがとうございます。
もちろんマニュアルは読んでNULLを返すって・・・アレ?
「注意:・・・NULLを返します」のところと勘違いしてたorz。
スレ汚し失礼しました。

ところでここの「警告」の記述にある
「・・・0や""といった値を返す可能性があります。」
というのは、0はともかく""ってどういう状況なのでしょうか?
連想配列でキーを空にできるということでしょうか?
0416nobodyさん2005/07/23(土) 00:33:34ID:???
>>415
空文字が入っている と言うこと。
0417nobodyさん2005/07/23(土) 00:34:47ID:???
>>415
以下だったら理解できる?
$hoge = array('', '10', '20', '30');
$val = '';
$key = array_search($val,$hoge);
04184122005/07/23(土) 00:37:22ID:???
>>414,416
どうもありがとうございます。
ただの勘違いでした。
キーに空文字という状況がなかなか想像できないというか、
混乱しそうであまりやりたくない状況みたいですね。
0419nobodyさん2005/07/23(土) 00:38:03ID:???
>>415

PHPは型はないとか言われてるけど、実際はあるわけですよ。
で、falseとして評価される0や""を返しますって言ってるわけね。
どういう状況で0や""を返すのかは分からんが、
これらの値もfalseと評価されると書いてある。
でも、
「この関数の返り値を調べるには ===演算子を使用してください。」
と書かれてるので、ちゃんと === falseで比較すればいい。

論理値のマニュアルも参照のこと。
ttp://jp.php.net/manual/ja/language.types.boolean.php
04204122005/07/23(土) 00:38:42ID:???
連続カキコスミマセン。

それって0が帰ってきませんか?>>417
0の実例を挙げていただいたのかな?
04214122005/07/23(土) 00:58:38ID:???
もうちょっと型を意識していろいろ試してみることにします。
どうもありがとうございました。>>419
0422nobodyさん2005/07/23(土) 01:17:21ID:???
なんかMySQLから抽出した文字列を表示させたら変なところに「\」が出てくる・・・。
ぐぐってみたらShiftJISのせいか・・・。
magic quotes gpcをoffにしたらとりあえずおさまったけど、
こんどは必要なところにaddslashesとかやらなきゃいけないのか・・・。

今まだ勉強中なのですが、早いとこEUCなどに切り替えるべきなのでしょうか?
今まで作ったソースとかMySQLのデータはまとめて変換できるのだろうか??
0423nobodyさん2005/07/23(土) 01:24:11ID:???
内部エンコーディングはEUCにして、出力のときにSJISこれ最強
0424nobodyさん2005/07/23(土) 01:44:11ID:???
>>423
俺は、ソースはもちろんEUCだが、出力もPC向けの場合はEUCのまま。
だって、特に支障ないじゃん?

携帯向けの場合だけ、SJISに変換して出力してる。
まあ携帯でも最近の機種はEUCでも問題なく表示されるけどね。
0425nobodyさん2005/07/23(土) 01:59:55ID:???
Win2000+IIS5+php4.3でのinclude()に関する質問なのですが
index.phpのソースの頭で
-----------------------
<?
$path="c:\php\includes";
include "${path}\hoge.inc";
〜
?>
としているのですがこのエラーがでます。↓
main(c:\php\includes\hoge_init.inc):
failed to open stream: Permission denied in
C:\Inetpub\vhosts\webautomatic.info\httpdocs\index.php on line 2

ぐぐった所winにはパーミッションの概念がない、
という記載があったのですが実際にPermission deniedとなっています。
C:\Inetpub\vhosts\の他のドメインからは同じ
c:\php\includes\hoge_init.incがincludeできるのですが…。
winのパーミッションの変更方法、またはこのエラーから予想できる別の原因ありましたら教えて下さい。
0426nobodyさん2005/07/23(土) 02:00:54ID:???
>>412 をやりたい場合、array_search() じゃなく in_array() の方が
いいんじゃないかと思った。
0427nobodyさん2005/07/23(土) 09:23:53ID:???
>>423
Windowsでもパーミッションの概念はあるんだけど。
エクスプローラからc:\php\includesのプロパティ→セキュリティを選択して
ユーザー "IUSR_コンピュータ名" に読み取り許可を追加してみれば?
あと
$path="c:\php\includes";
include "${path}\hoge.inc";
は
$path="c:\\php\\includes";
include "${path}\\hoge.inc";
でないとダメだと思う。
04284222005/07/23(土) 09:24:11ID:???
ううう。なんか内部をEUCで出力をShiftJISにすると、その都度変換してやらなきゃいけないのか・・・。
超絶マンドクサいので全部EUCでやってみることにしよう。
�dクス。>>423,424
04294272005/07/23(土) 09:24:47ID:???
すまねぇ。レス番ミスった。
>>423は>>425ね。
04304222005/07/23(土) 09:51:27ID:???
ちょっと文字コードで調べてたら混乱気味なので教えてください。
あらゆる場面で文字コードをちゃんと設定しなければいけないわけですが、
・データベースにある生データの文字コード(EUCにしたほうがよさげ?)
・HTMLに出力する文字コード(ShiftJISかな?)
・フォームで受け取る文字コード(PHPにあわせるべき?)
・PHPファイル自体の文字コード(EUCに決まってるでしょ?))
以上4つに分けて意識しておけばよいのでしょうか?
たとえばEUCでHTMLを表示したとして、その中のテキストボックス等のフォームで入力される文字はやはりEUCになるのでしょうか?
それとも見る側のOSによって変わるのでしょうか?(Win&IEならShiftJISとか?)
また、データベースから抽出して表示する際に「機能」とかに「\」が付いてしまうのは、
・データベースからPHPで文字列を抽出した段階?
・PHPからHTMLを出力する段階?
どちらなのでしょうか?(後者だとなんとなく思っているのですが。)
ということは、とりあえずPHPファイルをエディタ等で全てEUCにするだけで解決するものなのか?
でもPHPファイルをEUCにしたら当然echo文の内容もEUCになるからHTMLもあわせてEUCにしないと化けるのか?
うぅ・・・わからん・・・。
0431nobodyさん2005/07/23(土) 09:59:49ID:???
14枚の画像を、フォームで入力した数の分だけ横に並べて
数段になる物を作りたいのですが、2段目以降が1段目と同じ画像から
始ってしまいます。どこに手を加えればよいのでしょうか。ご教授ください。

$data[] = $_POST['t1'];
$data[] = $_POST['t2'];
$data[] = $_POST['t3'];

for($x=0; $x<3; $x++){
$w = 400/$data[$x];
$h = 300/$data[$x];
echo "<table><tr>";
for($a=0; $a<$data[$x]; $a++){
echo "<td><a href='img/$a.gif'>";
echo "<img src='img/$a.gif' width='$w' height='$h'>";
echo "</a></td>";
}
echo "</tr></table>";
}

0432nobodyさん2005/07/23(土) 10:03:20ID:???
>>430
とりあえず細かいことは気にせず、全てを「EUC」「改行はLF」で統一していけ。
そんで、場面に応じて必要があれば、別のエンコードを使っていく。
どの場面で変換の必要があるのか…が分からなければ、EUCのままで問題ない。

おそらく全部EUCにするのが、最も問題が起きにくいだろう。
0433nobodyさん2005/07/23(土) 10:31:45ID:???
>>431
問題を単純化すると、こうなる。
for($x=0; $x<3; $x++){
for($a=0; $a<$data[$x]; $a++){
// ここで、連続する数字を出す。
// 元のスクリプトだと$aなので、xのループの度に当然0に戻る。
}
}
どこまで数字を使ったかというカウンタをつければいいだけじゃないの?
0434422=4302005/07/23(土) 12:30:27ID:???
データベースのデータの文字コードを全部変換するの結構手間取ったんだけど普通どうやってやるものなんでしょう?
alter table tbl_hoge character set eucとかだとデータそのものは変換されないみたいだし。
しかたないからphpMyAdminでEUCに変換してCSV出力→インポートっていう手間なことをやったわけですが。
直接データを変換する方法があるのかな?
0435nobodyさん2005/07/23(土) 12:50:52ID:???
ダンプをnkfに食わせる
0436age2005/07/23(土) 14:26:43ID:???
csvっぽい形式の "a","a","a","a","a", みたいなのを読むために作りました。
何か改善案とかありますか?
ちなみに、「"a"」内に含まれる「"」は「""」みたいな感じでエスケープしています。

<?php
$fp = fopen("log.txt");
while ( !feof($fp) ){
$EndCount = 0;
$i = 1;
fseek($fp, $FilePointt,SEEK_SET);
while ($EndCount < 2){
$FilePointt = ftell($fp);
$tmp[$i] = fread($fp, 1);
if ( feof($fp) ){ break; }
if ( $tmp[$i] == "\n" || $tmp[$i] == "\r" || $tmp[$i] == "\r\n" ){ continue; }
if ( $tmp[$i] == "\"" ){
if($EndCount == 0){ $EndCount++; $i = 1; continue; }
$i = $i + 1;
$tmp[$i] = fread($fp, 1);
while ( ($tmp[$i] == "\n" || $tmp[$i] == "\r" || $tmp[$i] == "\r\n") ){$tmp[$i] = fread($fp, 1); }
if( ($tmp[$i] == "\"") && ($tmp[$i-1] == "\"")){ continue; }
else if ( $tmp[$i] != "\"" ){ $EndCount = $EndCount + 1; }
else{}
}
else{ $i = $i + 1; }
}
for($j = 1; $j < ($i - 1); $j++){ $tmp[0] = $tmp[0] . $tmp[$j]; }
$FilePointt++;
echo $tmp[0];
}
?>
0437nobodyさん2005/07/23(土) 14:35:40ID:???
>>436
何をしたいのかよく分からんが、fgetcsv()じゃ駄目なのか?
0438age2005/07/23(土) 14:55:50ID:???
>>437

いえ、全然大丈夫です。
ただ、初めて間もないのでそういう関数を使わずにやってみようと思ったんです。
0439nobodyさん2005/07/23(土) 16:14:27ID:???
リンクタグに属性をつけてphpファイルに送るって事は
出来ないんでしたっけ?

例えば
<a href="hoge.php" id=a><img src="a.gif"></a>
<a href="hoge.php" id=b><img src="b.gif"></a>
<a href="hoge.php" id=c><img src="c.gif"></a>
って感じで。
属性送るにはやはり
<form action="hoge.php" method="post">でないとダメですか?
04404392005/07/23(土) 16:18:03ID:???
失礼しました。無視してください。
ごめんなさいごめんなさい
0441nobodyさん2005/07/23(土) 17:12:43ID:???
なんだかなぁ…
夏休みが始まったって感じ
0442nobodyさん2005/07/24(日) 01:35:31ID:???
皆さんPHPでサイトを作るとき
<?php
print "<html>";
print "</html>";
?>
と全体を囲ってやるのかそれとも
<html>
<?php ?>
<?php ?>
</html>
と言ったように部分でやるのですか?
0443nobodyさん2005/07/24(日) 01:38:51ID:???
>>442
Smartyかな。
0444nobodyさん2005/07/24(日) 01:48:59ID:???
最初の頃 : <html><?php 〜 ?></html> // 埋め込み
次 : <?php print "<html>"; 〜 ?> // 条件によってデザインが違うページを出すために試行錯誤
その次 : <?php include('テンプレート.html'); ?> // html部分の変更にブチ切れた頃
そのまた次 : <?php テンプレートエンジン ?> // ちょっとマジメにデザインとロジックの分離を考えてみた
今この辺 : フレームワーク // ちょっと泣きそう
0445nobodyさん2005/07/24(日) 02:09:02ID:???
デザインとロジックの分離と言うのがいまいちよく分からないんですけど、
普通にhtmlを書いてそれでphpコードをincludeするってことですか?
0446nobodyさん2005/07/24(日) 02:18:54ID:???
>>442
<?php
include(htmlのパーツを作るもと.inc);

htmlヘッダーをつくるファンクション($title);
サイドぼっくすをつくるファンクション();
中身をインクルード
・
・
・
?>
って感じ。
実際はこれらを条件分岐したり、case文つかうけど。
04474462005/07/24(日) 02:21:02ID:???
function類とかはhtmlのパーツを作るもと.incに入ってる。
実際はもっとファイルを分けていくつもインクルードしてる。
見通しが良いし修正も楽なんでこんな感じだけど変ですかね?
04484442005/07/24(日) 02:29:10ID:???
include版とテンプレートエンジン版とは、テーブルを表示する時に一番違いが大きかったかな。
・include版
 テンプレート.htmlは <?=$変数 ?>ってな感じで、用意しておいた変数を置き換える。
 そのため、行列数が変動するテーブルを出力するには、1つの変数にtable全部を入れなきゃいけなかった。
 また、テーブルに色をつけたい時は、スクリプトの修正(or CSS用変数の変更)が必要だった。
・テンプレートエンジン版
 オイラの使ってたやつでは独自タグを使ってループを扱う事ができたので、
 配列をそのまま渡すだけで必要な分だけテーブルの行列が自動生成された。
 テーブルの色を変更するには、大体の場合においてhtml側の修正だけで可能。

>>445
ちょっとしたデザインの変更のために、スクリプト(ロジック)を弄らなきゃいけないかどうか。って感じです。<分離
0449nobodyさん2005/07/24(日) 02:40:12ID:???
>>446
htmlヘッダー作るファンクションって具体的にどんなものなんですか?
宜しければ参考のために知りたいのですが・・・
0450nobodyさん2005/07/24(日) 03:53:56ID:???
>>446
そいつは単にプレゼンテーションロジックの分割であって、
>>442が聞いてきたものとは違うと思うけど...
0451nobodyさん2005/07/24(日) 09:05:54ID:???
結論:
「デザインは気にしない」
0452nobodyさん2005/07/24(日) 09:28:48ID:m0On1eMV
ttp://www.google.com/search?num=100&hl=ja&safe=off&rls=GGLG%2CGGLG%3A2005-28%2CGGLG%3Aen&q=wikipedia+%E7%9F%AD%E6%AD%8C&lr=lang_ja

をクリックすると、とやると、
一番上の、wikipadiaの短歌がでますが、
リンクはURLエンコードされてますが、
下の緑部分は、「ja.wikipedia.org/wiki/短歌」と、
なってます。

これって、どうやって実現することが可能なのでしょうか?

よろしくお願いいたします。
0453nobodyさん2005/07/24(日) 09:32:55ID:???
>>452
mod_rewrite
か
path_info
だな。
どっちでもできる。
とりあえず、検索すべし。
04544522005/07/24(日) 14:00:18ID:rmOxqcKR
>>453 さん ありがとうございます。

path_info のほうはしらべてないけどとりいそぎ・・・
--
URL「A」にアクセス(するようにみせかけて)⇒mod_rewrite⇒(実は)実質URL「B」にアクセス
で、「A」が「ja.wikipedia.org/wiki/短歌」、
「B」が「ja.wikipedia.org/wiki/%E7%9F%AD%E6%AD%8C」
ってことであってます?
0455nobodyさん2005/07/24(日) 16:15:17ID:hO//Dl4v
php 4.4.0でAPC使えますでしょうか?
http://www.stackasterisk.jp/tech/php/apc01_01.jsp を参考にやってるのですがうまく動作しません。
http://pecl.php.net/get/APC-3.0.4.tgzをDLして tar zxvf APC-3.0.4.tgz
cd APC-3.0.4
phpize
./configure --enable-apc
make
mkdir /usr/local/lib/php/extensions
cp modules/apc.so /usr/local/lib/php/extensions/
vi php.ini
extension_dir = ./  変更→ extension_dir = /usr/local/lib/php/extensions/
↓追記
zend_extension="/usr/local/lib/php/extensions/apc.so"
apc.mode = mmap
apc.cachedir = /tmp
apc.check_compiled_source = 1
apc.check_mtime = 1

apachectl restart

apacheとphpは普通に動作してるのですが、/tmpにキャッシュされたファイルができず、apcinfo()も使えません。
apache1.3.33 php4.4.0 sentos4.1です。

手順におかしな点などありましたら指摘お願いします。
04564552005/07/24(日) 16:16:01ID:???
sentos4.1→centos4.1の間違いです。
04574522005/07/24(日) 19:36:07ID:rmOxqcKR
= >>454 ですが・・・はずしてます?
0458nobodyさん2005/07/24(日) 19:58:28ID:???
PHPで、HTTPS鯖のデータを取得したいのですがどうすればよいのでしょうか?
HTTP接続はfsockopenで出来るのですが、HTTPSの方法が分かりません。
鯖はFreeBSD4, PHP4.4(SafeModeなので、Pearは利用できないです)です。
PerlでLWPを利用したものをPHPに移行する必要が出てしまったので、どなたかお助け下さいm(__)m
0459nobodyさん2005/07/24(日) 20:52:41ID:???
とあるメーリングリストを運営しています。
このメーリングリストで投稿されたメールの表題の最新n件をなんらかの形で取得してページに埋め込むということを実装してみたい。
目的は、会員外のひとにもどんなやり取りがされてるのか表題だけでも見て興味を持ってもらいたいわけなのです。

これのために、一つフリーのwebメールのアカウントをとって、それでMLを受信。
そのwebメールのメール一覧を取得、ってパターン。
gmailってどうやらRSS配信出来るらしいので、gmail垢を作ってそこでMLを受信。RSSを取得ってパターン。

php以前の方法を考えてる段階なのですが、これをphpで実現するためにはどんな方法をまず採用したらよいでしょうか?
04604552005/07/24(日) 21:18:31ID:???
>>459
imap関数使えればpopメール読めますよ
0461nobodyさん2005/07/24(日) 23:34:00ID:???
MYSQLから会員データを抽出し、メールを発行し途中経過(現在何件発行したか)を表示させたいのですがどのような方法がよいのでしょうか?
途中経過は更新ボタンを押して確認しようと思っています。
0462nobodyさん2005/07/24(日) 23:54:59ID:???
途中経過って。
携帯に送る為に、時間空けてメール配布するのかな?
そうじゃなくて、普通にメール配信だけなら、途中経過も何も
ログでしか無いと思うけど
0463nobodyさん2005/07/25(月) 00:05:09ID:???
>>462
えとまだサイト開設していないんですが、会員制のサイトで目標が2万人くらいなんですよ。
将来的なことを考えて作成してるのですけど、途中経過&終了などを数字で見れると便利なので。

前にバイトで某サイトのスタッフをしていたときのメルマガ配信システムは条件(興味のあるカテゴリ等)で会員を絞って
そこから配信を開始する感じだったのですが、配信開始のボタンを押すと

現在配信した数/総配信数
【更新ボタン】

という感じで現在の状況を把握できたのです。
自分のサイトもこんな感じのを使いたいなと思いまして。
04644612005/07/25(月) 00:05:51ID:???
補足:携帯じゃなくPCがターゲットです。
0465nobodyさん2005/07/25(月) 00:52:48ID:???
>>461
PHPでやるなら現在何通目かファイルにでも出力するくらいしか思いつかない。
俺的にはPHPで30秒を超える処理ってなんか気持ち悪い。
04664612005/07/25(月) 01:32:39ID:???
>>465
レスありがとうございました。
ファイルにカウントしたものを出力する方法でやってみます。
どうもありがとうございました。
0467nobodyさん2005/07/25(月) 01:57:10ID:???
>>460
php可の無料鯖なんかだとおそらく許可してない気がします
04684522005/07/25(月) 04:03:29ID:???
apacheすれいってきます
0469nobodyさん2005/07/25(月) 05:57:06ID:gR3tRl1W
phpでpostgreSQLを使う場合、「pg_connect()」で
SQLひとつごとにDB接続するのが普通なんでしょうか?
「pg_pconnect()」はどのタイミングで切れるのかよく
わからないので、使いづらいのですが、こっちが一般的でしょうか?

あと、接続文字列にパスワードとかユーザ名が入ってしまうのを
避ける方法ってないでしょうか?
内部で使うものですけどサーバにアクセスできるユーザだと
プログラムのソース覗かれてIDとかばれちゃうのは避けたいので

以上、素人くさい質問ばかりですが、調べてもよくわからなかったので
回答お願いします('A`)
0470nobodyさん2005/07/25(月) 07:52:08ID:???
>>465
大量のメールを配信しようと思ったら、実行時間が30秒じゃハナシにならんぜ。
俺は専鯖で、デフォルトのphp最大実行時間は60秒にしてある。
これをもっと長く(300秒とか)しようかとも思ってるんだけど、
それでも別に問題ないよな??
0471nobodyさん2005/07/25(月) 08:55:18ID:???
テキストファイルのダウンロードをやってるんですが、
header('Content-Type: text/plain');
として、実際に出力されたヘッダを見ると、
Content-Type: text/plain; charset=EUC_JP
とcharsetがついちゃうんです。
これってどうやって制御したら良いでしょうか。
0472nobodyさん2005/07/25(月) 09:02:51ID:???
WEBサーバのデファルトエンコーディング。
0473nobodyさん2005/07/25(月) 09:07:19ID:???
>>470
気持ち悪いと言っただけで、問題ないんじゃないかと。

>>467
webメールから取ってくることもできるでしょう。
すごい大変そうだけど。

どっちもPHPでできなくはないと思いますが、PHP以外のほうがよさそうな気もします。

>>469
pg_pconnectだと接続があればそれを利用する。なければ接続する。

>サーバにアクセスできるユーザだと
>プログラムのソース覗かれてIDとかばれちゃうのは避けたいので
↑こういう状況をどうにかしたらいいのではないでしょうか?

0474nobodyさん2005/07/25(月) 11:09:00ID:???
perlスクリプトをphpに変更しているんですが、以下の部分のPHP化が分かりません
どなたかお願いします

$PF18[0] &= ~0x80;
0475nobodyさん2005/07/25(月) 11:17:13ID:hJtfvc56
>>473
漏れはお前の考え方が気持ち悪い。
0476nobodyさん2005/07/25(月) 11:22:36ID:???
>>474
そのままでいいはずだけど。何かエラーが出るの?
04774742005/07/25(月) 11:34:31ID:???
>>476
まだ試してないんですが、このままで良かったのか・・・

ついでというかたぶん本題です
「= ~$data」の意味を教えてください
04784762005/07/25(月) 11:49:04ID:???
>>477
┐(゚〜゚)┌
http://www.php.net/manual/ja/language.operators.bitwise.php
04794742005/07/25(月) 11:56:38ID:???
ありがとうございます('A`)
0480nobodyさん2005/07/25(月) 13:11:36ID:???
>>395
ありがとうございます。
どうにか警告を表示させることができました。
foreachで$key=>を省略すると容赦なく警告が出るんですね。
0481nobodyさん2005/07/25(月) 13:13:18ID:tPLQwkjK
さらに質問になってしまいますが、
PHP5にはC,C++,Java5にあるようなenum型(列挙型)は
ありますでしょうか?
あれば便利だなあと思いまして。

それとも既存の配列がそのまま列挙型として使える?
ものなのでしょうか?
ハッシュとしても使えるようですし
0482nobodyさん2005/07/25(月) 13:52:30ID:???
PHP入門ってみんな本で勉強した?サイトでお勧めあったら教えて下さいな。
0483nobodyさん2005/07/25(月) 13:57:14ID:???
>>481
enumねぇ・・・

foreach (array('MONDAY', 'TUESDAY', 'WEDNESDAY', ...) as $i => $name) define($name, $i);

・・・無理があるな・・・orz
っていうか「列挙型」なるものはありえないな。
だって変数に「型」自体がない。

$x = MONDAY; // $xは列挙型なつもりでも
$x = "うんこ"; // なんのエラーもなし。

結論:配列でガンガレ!(enumとは完全に別口なやり方になると思うけど)
0484nobodyさん2005/07/25(月) 15:38:13ID:???
素直にJavaを使っておけ、と
0485nobodyさん2005/07/25(月) 17:34:01ID:???
複数ユーザが使うページで
URLにユーザ情報を持たせるにはどうしたらいいでしょうか?
ちょうどdel.icio.usのような感じで。↓のoneとtwoがユーザ名
ttp://del.icio.us/one/
ttp://del.icio.us/two/

ユーザ登録したときにディレクトリ(one,two)を作成して
スクリプトをコピーしてもいいのですがメンテナンスが大変、というか間違っている気がする。。。
htaccessで転送をかけるとURLが変わってしまうし。

すごい初歩的なことかもしれないんですが、さっぱり解りません。
どうかよろしくお願いします。
0486nobodyさん2005/07/25(月) 19:32:09ID:???
>485
Cookieでも使えば?
04874852005/07/25(月) 19:47:06ID:???
>486さん
ありがとうございます。
ユーザの特定にCookieを使うのですよね?
それで、URLの最後のディレクトリと付き合わせる。
その認証自体は ttp://del.icio.us/one/ なら
/one/index.php で行わなければいけないわけで
全ユーザに対してそのスクリプトを用意するには
やはりユーザ登録したときに元となるスクリプトをコピーして?
プログラムに変更が生じたときの対処も解らなかったのですが
ユーザがログインするたびに
/one/index.php を上書きコピーすればいいのでしょうか。。。

ほんとうに初心者なもので、意味不明だったらすみません。orz
04884582005/07/25(月) 20:38:37ID:???
httpsへのPOST結果の取得方法をお願いします(>_<)
GETならいろいろな方法があるのにorz
0489nobodyさん2005/07/25(月) 23:49:32ID:???
テキストファイル「test.txt」に書かれているファイルの更新日時を取得しようと
「test.php」を以下の内容で作成しました。

--- test.txt --------------------
/tmp/hoge.dat


--- test.php --------------------
<?php
$line = file("test.txt");
$filename = "$line[0]";
echo date( 'Y/m/d (D) H:i:s', filemtime($filename) );
print "$keyword"."<br>";
?>

これを実行すると、
PHP Warning: filemtime(): Stat failed for /tmp/hoge.dat
(errno=2 - No such file or directory) in /tmp/hoge.dat
1970/01/01 (Thu)
とエラーが出て、正常に日付が取得できませんでした。

そこで上記のプログラムの2、3行目を
$filename = "/tmp/hoge.dat";
と変えて実行すると正常に日付が取得できたので、パーミッションの問題ではないと思っています。

上記の内容では何が問題なのでしょうか?
ご教授お願います。
0490nobodyさん2005/07/26(火) 00:02:31ID:???
>>489
echo bin2hex($line[0]);
echo bin2hex("/tmp/hoge.dat");
0491nobodyさん2005/07/26(火) 07:33:50ID:???
>>489
変数を""で囲むわけは?
0492nobodyさん2005/07/26(火) 08:52:10ID:???
表示したPHPの出力結果をHTMLファイルとして書き出し、保存する方法を探しているのですが。
PHPでの出力を一行一行書き出していくやり方しか分かりませんでした。
何か良い方法はないでしょうか?

初心者質問ですみません。。
0493nobodyさん2005/07/26(火) 09:03:03ID:???
ob_start()、ob_get_contents()あたりでできるんじゃないかな。
0494nobodyさん2005/07/26(火) 12:01:00ID:???
post_max_sizeを超えた場合、$_POSTの中身は空っぽになってしまうものでしょうか?
どうやったらpost_max_sizeを超えたかどうかをスクリプト中で判断する事が出来るでしょうか?
0495nobodyさん2005/07/26(火) 12:02:33ID:???
パラメータがあるクラスの関数を
パラメータを省略して呼び出した場合
NULLとなってくれるでしょうか?

$hoge=>Charge();

function Charge($p)
{
  echo is_null($p)?'NULL':'NON';
}

実際に何回かやってみたのですが、$pは期待通りNULLとなったのですが
PHPの仕様でNULLになっているのか偶然NULLになったのか判断できないのです。

どうぞよろしくおねがいします。
0496nobodyさん2005/07/26(火) 13:00:27ID:???
>>495
$hoge=>Charge()が何なのか不明だが引数を省略するなら
function Charge($p=NULL)
としないと「引数が足りないエラー」になるはず。
0497nobodyさん2005/07/26(火) 13:20:21ID:???
ありがとう
HTMLの構造上、表向きには表示されてませんでしたが
ソースを表示したらおっしゃるとおり
Warning・・・・・・・・エラーが出てました。
0498nobodyさん2005/07/26(火) 14:18:20ID:???
サーバでのファイルの扱い方について質問があります。
以下の流れで余分な処理・追加した方がよい処理はあるでしょうか?

ロックファイルをオープン リトライ処理
ロックファイルをロック リトライ処理
目的ファイルをオープン リトライ処理
目的ファイルをロック リトライ処理
目的ファイルを処理
目的ファイルをロック解除・クローズ
ロックファイルをロック解除・クローズ・削除


リトライ処理とは、失敗した場合に時間を空けて再挑戦し、また失敗したら終了する処理です
スレ違いな気もしますが一応phpで作ってるので・・・よろしくお願いします
0499nobodyさん2005/07/26(火) 15:43:02ID:2Byv/a8J
はてなのようにキーワードを[キーワード]みたいに囲うと
そのキーワードでグーグル検索できるようなリンクを自動的に生成したいのですが
どのようにすればよいのでしょうか?

全部教えてとは言いません
使う関数だけでも教えていただけたらと思います
よろしくお願いします
0500nobodyさん2005/07/26(火) 15:53:15ID:???
[]でくくられて単語の前後に
mb_ereg_replaceを使って<a>タグを追加。
0501nobodyさん2005/07/26(火) 16:22:24ID:???
>>499
urlencodeがいるので、こんな感じか
<?php
$str = '[キーワード]をググる';
echo preg_replace_callback('/\\[(.*?)\\]/', 'add_google_tag', $str);
function add_google_tag($m) {
  return '<a href="http://www.google.co.jp/search?q='
    . urlencode($m[1]) . '&hl=ja&lr=lang_ja">' . $m[1] . '</a>';
//  return '<a href="http://www.google.co.jp/search?q='
//    . urlencode($m[1]) . '&hl=ja&lr=lang_ja">' . $m[0] . '</a>';
}
?>
下側のコメントアウトしたreturnはカッコを残しておくバージョン。
0502nobodyさん2005/07/26(火) 17:40:53ID:mEdDXXbK
皆様お知恵を拝借。配列から空の要素("")を取り除くには
どのような処理が最も単純でしょうか? お願いいたします。
0503nobodyさん2005/07/26(火) 18:34:05ID:???
>>502

・preg_grep で「空要素で無いもの」だけを抽出
・その配列を利用する段階で「空要素」を無視
・空要素が入ってしまう様な配列を生成しない

お好きなものをどうぞ。
05045022005/07/26(火) 18:49:59ID:???
>>503
回答ありがとうございます。一発で配列から空の要素を
取り除いてくれるような関数はないんですね。

やっぱり3番目になると思うので、質問の前の段階から
お話しますと、文字列を mb_split で分割してるんです。
PREG_SPLIT_NO_EMPTY みたいなオプションがあれば
いいんですが、mb にはありませんよね?

ですので、先に mb_ereg_replace で空白に置換した後、
PREG_SPLIT_NO_EMPTY で行くことにします。どうも
ありがとうございました。が、もしもっと(・∀・)イイ!方法が
ありましたら、どうぞご教示願います。
■ このスレッドは過去ログ倉庫に格納されています