【PHP】質問スレッドpart26【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/12/21 22:34:55ID:???0630nobodyさん
05/02/01 16:26:02ID:???MacOS X 10.3.7 / PHP 4.3.10
% TZ=GMT php -r 'var_dump(mktime(0,0,0,1,1,1970));' => int(0)
% TZ=GMT php -r 'var_dump(mktime(23,59,59,12,31,1969));' => int(1)
% TZ=JST-9 php -r 'var_dump(mktime(0,0,0,1,1,1970));' => int(-32400)
% TZ=JST-9 php -r 'var_dump(mktime(23,59,59,12,31,1969));' => int(-32401)
% TZ=JST-9 php -r 'var_dump(gmmktime(0,0,0,1,1,1970));' => int(0)
% TZ=JST-9 php -r 'var_dump(gmmktime(23,59,59,12,31,1969));' => int(-1)
0631nobodyさん
05/02/01 16:27:54ID:???0632nobodyさん
05/02/01 16:47:15ID:???ありがとう,だめでした
$ env TZ=JST-9 php -q
<?= mktime( 23,59,59,12,31,1969 ) ?>
-1
GMTだと,env TZ=GMT php -q
<?= mktime( 23,59,59,12,31,1969 ) ?>
-1
いけたか?,と思ったが,
$ env TZ=GMT php -q
<?= mktime( 0,0,0,9,15,1965 ) ?>
-14462
$ env TZ=GMT php -q
<?= mktime( 23,59,58,12,31,1969 ) ?>
-1
$ env TZ=GMT php -q
<?= mktime( 23,59,57,12,31,1969 ) ?>
-1
なんかだいぶおかしい,もともと,1970以降はgmmktime()とmktime()の差は
9時間出てたので,TZ設定してなくてもOSのlocaleちゃんと読んではいるみたい・・・・
0633nobodyさん
05/02/01 22:40:14ID:???試さなくていいから、マニュアルのmktimeの説明部分をテキスト入力してみろ。
英語なんか訳さなくていいから和訳されたものをそのまま入力してくれ。
>Windowsではないから1970年以前の制限はないはず
どこにそう書いてあるんだ。都合よく解釈するプロ市民だな。
2038年問題って何かコメントしてくれ。
0634nobodyさん
05/02/02 00:21:44ID:???とりあえず、text/htmlでプレーンテキスト送ると「リクエストされたページは表示できません。」って言われる。
おれはそういう時telnet。
0635nobodyさん
05/02/02 00:36:53ID:???> year は2桁または4桁の値を指定可能で、
> 0-69の間の値は2000-2069に、70-99は1970-1999にマップされます。
> (今日最も一般的なtime_tが32ビットの符号付き整数であるシステムで、
> yearとして有効な範囲は1901から2038の間です)
自分は4桁入力してたから関係ないと思ってたが,よく考えたらintになった時点で
1901-2038なのか1970-2069なのかは判別つかんってことだな.
でOS側のシステムコールのmktime()がどっちに対応してるかによって動作に違いが出てくると
0636nobodyさん
05/02/06 15:04:04ID:???function nemui()
{
return "kyou ha mou kaerimasu.";
}
undef nemui; // こんな感じで未定義にする命令が欲しい。
nemui(); // ここで未定義ですというエラーが発生してほしい。
0637636
05/02/06 15:05:00ID:???ageわすれたのでage.
0638nobodyさん
05/02/06 15:46:14ID:???PHP-I-BOARDの過去ログの表示なんですが、
親記事があってレス1レス2とあったばあい、その記事が過去ログに移動すると
表示がレス2→レス1→親記事の順に表示されてしまいます。
これを通常通り、親記事→レス1→レス2としたいのです。
レッツPHPさんのほうでおききしたところ
確認しましたが確かに現在のログは順に出るのに過去ログは逆向きで出力されて見にくい気がしますね。
ソースを眺めただけなので未検証で無責任で発言をすれば
ibbs.phpの819行目のforステートメントの条件を変更して逆向きに動作するように変更するか、
ステートメント終了後に$arg['past']内の配列を全てひっくり返すような処理を付け加えたら
いいんじゃないでしょうか
と回答いただいたんですが力不足でこの「ひっくり返すような処理」というのがどういうもので
どこにつければいいのかがわかりません。
無知な自分が公式のほうで何度もやりとりするのはかえって迷惑かかりそうなのでこちらで
アドバイスか検索するとっかかりを頂きたいです
マルチになるようだったらすいません(公式では回答いただいて終わってるとおもったので)
0639nobodyさん
05/02/06 16:04:35ID:???chm版のマニュアルのショートカットをクリックしつつ「ひっくり返す」は「reverse」だなと考える - 1秒
chmの検索タブをクリック - 1秒
「reverse」と打ち込み検索 - 2秒
結果リストを見渡しarray_reverseを見つける - 1秒
煽り文句を考えながらレスを書く - 60秒
0641nobodyさん
05/02/06 17:50:33ID:ytGnrXBlありますか?
フォームから受け取った変数が連想配列(チェックボックス)だと分かる
方法ありましたらご伝授下さい。
宜しくお願い致します。
0642nobodyさん
05/02/06 17:55:00ID:???<?php
$file=array();
if($fp=@fopen("./log.dat","r")){
flock($fp,1);
while($buf=fgets($fp)){
array_push($file, $buf);
}
fclose($fp);
}
$counter=trim($file[count($file)-1]);
printf("we have ".$counter." visitors\r\n");
array_push($file,($counter+1)."\r\n");
if($fp = fopen("./log.dat", "w")){
flock($fp, 2);
foreach($file as $f){
fprintf($fp, $f);
}
fclose($fp);
}
?>
</body></html>
のような簡単なPHPプログラムを作ったのですが、
どういうわけか1アクセスごとにカウントが2増えます。
教本殆どそのままなのに、なんでこんな事が起きるのかチンプンカンプンです。
原因と解決法を教えて頂けないでしょうか
0643nobodyさん
05/02/06 18:38:57ID:???0644nobodyさん
05/02/06 20:04:09ID:???コピペして全角スペース取り除いて実行したけど
ちゃんと1ずつ増えました。
>>641
is_arrayとかis_scalerとかあるけどフォームから配列で送れば確認するまでも無く配列に決まってますが。
0645nobodyさん
05/02/06 20:07:02ID:???ちなみにPHPには配列と連想配列の区別はありません。
普通の配列も数字をキーにした連想配列です。
0646nobodyさん
05/02/06 22:13:27ID:???一つ処理が終わったら、1秒ほど待機して次の書き込みを行なうようにしたいのですが、
どういった関数を使えば宜しいでしょうか?
0647nobodyさん
05/02/06 22:22:14ID:???0648nobodyさん
05/02/07 00:34:24ID:???書き込みにアドレス(http://...)が書き込まれたら、
その部分だけ自動でリンク張るのはどうするとよいか?
0649nobodyさん
05/02/07 00:35:16ID:???書き込みにアドレス(http://...)を見つけたらアンカータグで囲うとよいかと
0650nobodyさん
05/02/07 00:39:28ID:WG7KP6M+ini_set関数でスクリプトから設定して回避できる問題でしたら、どう設定したら良いか教えてください。
0651nobodyさん
05/02/07 00:51:52ID:???俺のソースをやろう
auto_linkの引数$valにアドレスを入れればリンク付きで返ってくる
//-------------------------------------------------
// オートリンクの作成
//-------------------------------------------------
function auto_link($val){
//オートリンク
if (config("auto_link"))
return preg_replace("/(https?|ftp)(:.*)([a-z]|[A-Z]|[0-9]|\/)/i","<a href=\"\\1\\2\\3\" target=\"_blank\">\\1\\2\\3</a>", $val);
else
return $val;
}
0652nobodyさん
05/02/07 00:54:34ID:???こっちを使ってくれ
//-------------------------------------------------
// オートリンクの作成
//-------------------------------------------------
function auto_link($val){
return preg_replace("/(https?|ftp)(:.*)([a-z]|[A-Z]|[0-9]|\/)/i","<a href=\"\\1\\2\\3\" target=\"_blank\">\\1\\2\\3</a>", $val);
}
0655nobodyさん
05/02/07 01:06:15ID:WG7KP6M+レスありがとうございます。
Warning: php_network_getaddresses: getaddrinfo failed: Name or service not known in /homeからのphpスクリプトのパス on line 4
Warning: file("http://www.*/index.html") - Bad file descriptor in /homeからのphpスクリプトのパス on line 4
こんなエラーが出ます。
0656nobodyさん
05/02/07 01:17:55ID:???http://ns1.php.gr.jp/pipermail/php-users/2004-June/022456.html
エラーメッセージでググレば出てくるだろ( ゚Д゚)ゴルァ!!
0659nobodyさん
05/02/07 01:26:24ID:WG7KP6M+うまく行きました。
0660nobodyさん
05/02/07 02:08:59ID:???頻度でローカルにバックアップしてまつか?
0662nobodyさん
05/02/07 11:02:51ID:???Warning: Unknown(パス): failed to open stream: No such file or directory in Unknown on line 0
Warning: (null)(): Failed opening 'パス' for inclusion (include_path='インクルードパス') in Unknown on line 0
というエラーを出さずに、
'インクルードファイルがよめねぇYO!'
見たいに自分でカスタムしたエラーを表示する方法ってありますか?
他の命令なら
@meirei() die('エラーだYO!');
って die命令でできるけど includeではできなかったのできいてみますた。
(@マークを先頭に付ける事によってその命令でのエラーを表示しない)
includeでエラーになったときにちょっとかっこ悪いので修正したいのです。
参考になるURLだけでも結構ですので教えてください。
0663nobodyさん
05/02/07 11:09:02ID:???includeの場合はif (!@include(filename)) die('file not found.');
としないとダメみたいよ
0665nobodyさん
05/02/07 11:16:57ID:???0666662
05/02/07 11:20:00ID:???if (!@include('なんたら.php')) die('file not found.');
上でやってたのでできなかったみたいです。
includeでやったらできました。
requireではできないんでしょうかね?
0667662
05/02/07 11:31:05ID:???663氏 サンクス
if( !@require('なんたら.php')) die('file not found.');
if (!@include('なんたら.php')) die('file not found.');
require命令の時点で処理終了してるからdieまでこないのね orz.........
というか、include に dieつけてる時点でrequireと同じ動作(その後実行しない)なのね・・・・。
いまさら気づいた・・・・・・。 orz........
0669nobodyさん
05/02/07 14:08:23ID:FLQt/DDHと
print '内容';
exit;
と同じ事にならない???
0670nobodyさん
05/02/07 14:14:31ID:???マニュアルをちゃんと読んでいれば、そういう恥ずかしい事を言わなくて済みますよ。
die なり exit なりの説明を参照。
0671nobodyさん
05/02/07 14:25:02ID:Um6cfrSt<a href="URN:ISBN:**-****-****-*">hoge</a>
として,実際に表示する時には
<a href="http://www.amazon.co.jp/exec/obidos/ASIN/***********>hoge</a>
と置き換えたいんですが.
Javascriptで置き換えるのは見たことあるんですが,
それをPHPに書き換えることができなかったり・・・orz
0672nobodyさん
05/02/07 14:30:36ID:???|.._ | //. ̄ ̄ ̄,`
| ' l | || `゙` ゙``
| : l=.| ||
|...」 | || / ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|_ | |/. ( ・∀・)< >>671 頑張れはできますよ!
l文|. | / ( 建前 ) \_______________
| ̄ | ./ 人 ヽノ
| |/ し(__)
| / | ヽ
|. / . | ヽ
. | ヽ _
( ̄ ̄ ̄)本音ヽ ( \
ヽ  ̄ ̄ ./ ヽ ヽ,> )
ミ' |∩| ` / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| (~●~) 彡 < 自分でやる気あんの?
ヽ ○ ○ | \___________
|\ ノ
∪ ̄ ̄ ̄∪
0673軟式PHP
05/02/07 15:24:13ID:???<?php
$strValue = '<a href="URN:ISBN:12-3456-7890-1">hoge</a>';
$strUrl = 'http://www.amazon.co.jp/exec/obidos/ASIN/';
$strPattern = "/URN:ISBN:([0-9]{2})-([0-9]{4})-([0-9]{4})-([0-9])/i";
$strValue2 = preg_replace( $strPattern, $strUrl."$1$2$3$4",$strValue);
print $strValue2;
?>
0674671
05/02/07 16:02:43ID:???<?php
$urn = '/href="URN:ISBN:(\d)-?(\d+)-?(\d+)-?([x\d])"/i';
$amzn = 'href="http://www.amazon.co.jp/exec/obidos/ASIN/$1$2$3$4"';
$contents = preg_replace($urn, $amzn, file_get_contents("http://foo/book.html"));
echo "$contents";
?>
結局こんな感じでやることにしました.
本当はbook.htmlを読み込むのではなく,book.html中に追記するだけで
済むようにしたかったんですが….
それとDOM使ってみたりもしたんですが,DOMオブジェクトに展開するときの
文字コードかなんかでうまくいかずに挫折しました.
0675nobodyさん
05/02/07 16:12:52ID:???book.html をphpとしてパースしていると仮定して、
output bufferingを使えば追記のみで行けるんじゃない?
auto_prependが設定できれば追記の必要もないね。
0676nobodyさん
05/02/07 17:44:22ID:???ないよ。どうしてもというならグローバル配列に匿名関数を突っ込む形になると思う。
あるいはフラグ変数で代替するか。
けど、関数を未定義にしたい場合ってどんなん? 設計のレベルで解決したほうがいい気がするよ。
コードレベルだと、たとえば未定義判定したいなら !function_exists() を使をばいいし、
再宣言を防止したいなら ifブロック内で関数宣言する、require_onceを使う、等々の手段が。
So-netが規制されてたから遅レスで悪いけど。
0677nobodyさん
05/02/08 13:56:04ID:???ここのPHPの掲示板作った人おる?
第1回目の投稿が受け付けてくれない他(yylog.phpが開けね〜とか言われる)
各投稿にナンバーが振られないからその後の修正や削除が
全くできない出来損ない掲示板だぞ。
フリーで作ってくれるのはありがたいがオリジナルのKENT-WEBの掲示板の
名を貶めるような劣化コピーはやめてくれ。
0678nobodyさん
05/02/08 13:57:42ID:???552 名前:名無しさん@お腹いっぱい。[sage] 投稿日:05/02/07(月) 19:52:37
ttp://shu.sub.jp/xoops/modules/tinycontent/rewrite/tc_5.html
ここのYY-PHPの掲示板を xreaで設置して動いてる方いますか?
なぜか "Open Error: ./yylog.php" エラーがでてしまう
パーミッションも606で設定して間違いないのに・・・
いい加減作者に直でメールした方がいいんじゃないか?
0681nobodyさん
05/02/08 14:20:56ID:???KENT-WEBにあるWebプログラムってそんなに凄いものか?
ちょっとでも、CGIの知識があれば、簡単に自作できるような物ばっかりのような気がするんだが・・・
0684軟式PHP
05/02/08 14:33:31ID:???0685nobodyさん
05/02/08 14:37:54ID:???> あたかも、KENT-WEBのCGIは凄い!って言ってるように見えたので
まぁシンプルかつ機能はまとまっているとは思うがな
0686nobodyさん
05/02/08 14:40:39ID:???0687nobodyさん
05/02/08 14:42:18ID:???,-ー─‐‐-、
,! || |
!‐-------‐
.|:::i ./ ̄ ̄ヽi
,|:::i | (,,゚д゚)|| < ・・・
|::::(ノ 中濃 ||)
|::::i |..ソ ー ス||
\i `-----'/
 ̄U"U ̄
0688nobodyさん
05/02/08 14:45:02ID:???KENT WEB 総合スレ Part2
http://pc5.2ch.net/test/read.cgi/php/1078991985/
0689nobodyさん
05/02/08 14:55:51ID:???0693nobodyさん
05/02/08 17:26:06ID:???0695あ
05/02/08 17:43:54ID:???HTMLを出力するPHPプログラムを作成希望です。
見出しと、リンク、文書がついたものは、可能なのですが、
タイトルとリンクだけを表示するにはどうやればいいでしょうか?
参考
ttp://www.hawk.34sp.com/stdpls/php/xml_parse.html
0696nobodyさん
05/02/08 17:43:56ID:???0698nobodyさん
05/02/08 17:48:34ID:???0700nobodyさん
05/02/08 17:54:01ID:???0701nobodyさん
05/02/08 18:06:39ID:???0702nobodyさん
05/02/08 18:11:06ID:???次の質問マダー(チンチン
0703nobodyさん
05/02/08 18:22:02ID:???リライトいかれてるな
0705nobodyさん
05/02/08 18:46:29ID:???PHPからメールを送信させているのですが、"件名"の部分の日本語が
メール受信ソフトでは文字化けして表示されてしまいます。(OE6)
Windows用のメールソフトでも文字化けせず件名を日本語で記述するには
どうしたらいいでしょうか?
ちなみに本文の部分は問題なく日本語表記されています。
0707nobodyさん
05/02/08 18:54:03ID:???PHPくだスレで答えられてるように mime encodeする。
鯖によっちゃ 日本語おまかせmb_mail関数が使えるので、それを使うと楽。
「メール 日本語 mime」でググって、なぜややこしい事をしなきゃいけないかという背景を知っておくとよい。
0708nobodyさん
05/02/08 18:56:07ID:???0709nobodyさん
05/02/08 19:01:50ID:???0710nobodyさん
05/02/08 19:08:21ID:???0711nobodyさん
05/02/08 21:11:57ID:???0712nobodyさん
05/02/08 21:21:51ID:???0713nobodyさん
05/02/08 21:59:33ID:???0714nobodyさん
05/02/08 22:01:32ID:mh9JM18Rhttp://pc5.2ch.net/test/read.cgi/php/1107780435/l50
の php, 1107780435, l50と行った値はどのように取得するのでしょうか?
また、apache - http.confに設定は必要なのでしょうか?
質問意図がうまく伝わるか心配ですが、そのときは失礼いたします。。
0715nobodyさん
05/02/08 22:04:54ID:???PHPくだスレでその話題で盛り上がってたよ。
http://pc5.2ch.net/test/read.cgi/php/1107780435/24-
0717nobodyさん
05/02/09 00:10:08ID:???ファイルをアップする方法しりません?
PEARとかでモジュールないかな・・
0718nobodyさん
05/02/09 01:45:21ID:???_SERVER["PATH_INFO"]をパースするだけとかそんな話じゃぁ…。
0721nobodyさん
05/02/09 11:05:56ID:???PEARにsockみたいなのなかったかな。で、ftpに通り道付けてってのは。
やったことないけど。知ったかぶりでごめんね。
0722nobodyさん
05/02/09 22:52:00ID:???0723nobodyさん
05/02/09 23:42:37ID:???0724nobodyさん
05/02/09 23:43:59ID:RCmAm0yEさて、そこで、認証方法ですが、SSLなど、銀行のオンラインシステムでもいける!という
認証方法で、PHPに実装可能な方法を教えて下さい
0726nobodyさん
05/02/10 00:08:07ID:???0728636
05/02/10 00:23:39ID:???確かに設計レベルの解決がいいのですけれども、
既にあるフリーウェアに手を加える形なので設計は変えられないのです。。。
そのフリーウェアっていうのはPukiWikiで、作りたいというのはプラグインなんですけどね。
作りたいと思っているプラグインは都合上、既に定義された関数を、
なにもしない関数に置き換えるか、関数を未定義に設定したいのです。
自分でも結構、調べましたけど未定義にするのは確かになさそうですね。
回答ありがとうございました。
0729nobodyさん
05/02/10 00:33:03ID:???0730nobodyさん
05/02/10 03:43:49ID:???touch($fname);
$hea = filesize("$fname");
if($hea>0){
$head = readfile("$fname");
echo "$head";
}
log.csvを生成してファイルサイズを取得し0バイト以上なら中身を表示。
ってのを作ったつもりなんですが、log.csvに文字を書き込むとその文字とバイト数まで表示されてしまいます。
何故でしょうか?filesizeは「ファイルのサイズを返し、エラーの場合はFALSEを返します。 」とあります。が$heaにサイズを返すんですよね?
表示させてるのは$headなのに。。。
ちなみにlog.csvが空でも0を表示しちゃいます。お助け下さい。
■ このスレッドは過去ログ倉庫に格納されています