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

【PHP】下らねぇ質問はここに書き込みやがれ 23

■ このスレッドは過去ログ倉庫に格納されています
00019092006/06/23(金) 01:59:03ID:lPdqGX0Z
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0385nobodyさん2006/06/28(水) 09:54:36ID:???
日付の比較でstrtotime使ってUNIXタイムスタンプで
比較がよいというTipsサイトをよくみかけるのですが
strtotimeのマニュアル見ると上限は2038年とかって記載されてますよね。

UNIXタイムスタンプの関数使いつづけてて問題ないんですかねこれって…
0386nobodyさん2006/06/28(水) 09:57:51ID:???
注意: タイムスタンプの有効な範囲は、通常、Fri, 13 Dec 1901 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです (これらは、32 ビット符号付整数の最大及び最小に一致します)。
さらに全てのプラットフォームが負のタイムスタンプをサポートしている わけではありませんので、日付の範囲は Unix エポック以前にはならないかも知れません。
これは、例えば Windows やいくつかの Linux ディストリビューション、 いくつかの他のオペレーティングシステムでは 1970 年 1 月 1 日以前の日付では動作しない事を意味しています。
PHP 5.1.0 以降のバージョンでは、この制限はなくなっています。
0387nobodyさん2006/06/28(水) 10:00:31ID:???
>>382
>最新の記録を見る時に、延々とスクロールしなければなりません。

まさか、これだけのために・・・?
0388nobodyさん2006/06/28(水) 10:03:39ID:???
>>385
そのスクリプトが2038年以降の日付を扱うのなら、まずいだろう
0389nobodyさん2006/06/28(水) 10:13:37ID:ZX4kCjMN
数分おきにphpが自発的にメールの確認を行うにはどのような方法がありますでしょうか?
0390nobodyさん2006/06/28(水) 10:18:38ID:???
>>389
cron
0391nobodyさん2006/06/28(水) 12:44:40ID:ZX0Dr8Cc
>>279
有難うございました。
使いたいPEARは単体でも設置できました。
しかし、やはりPING送信が反映されませんでした。
ttp://php.atseason.com/?eid=209199
こちらのサイトを参照に送信してみました。
0392nobodyさん2006/06/28(水) 14:23:29ID:???
OracleとPHPの接続について質問をここでしてもいいでしょうか?
0393nobodyさん2006/06/28(水) 14:36:53ID:???
>>382
新着記事だけのビューファイル作っておけば?
0394nobodyさん2006/06/28(水) 15:04:16ID:???
>>392
構わないけど、最近たてつづけに数冊PHP+Oracleな本が出てるから、
そこに書かれてるような程度の話なら後々のことを考えて
早めに買って参考にするのがいいと思うよ。
0395nobodyさん2006/06/28(水) 15:14:42ID:???
>>389
ブラウザでリフレッシュ
0396nobodyさん2006/06/28(水) 15:21:04ID:???
有り難う御座います
お言葉に甘えて一応書かせていただきます

Linux RedHat ES3を使用して
WEBサーバとDBサーバでサーバーの構築をしています
□WEB
apache 2.0.55
php 4.4.2
□DB
oracle 10g

をインストールして
WEB側からtnsping,sqlplusでDBに接続することが可能なことを確認した後
<?
$iConn = ocilogon("test", "test", "db");
echo $iConn;
?>
を実行したところ 下記のエラーが出てしまいました

Warning: ocilogon(): _oci_open_server: Error while trying to retrieve text for error ORA-12154 in /var/www/test.php on line 2

この状態でWEB側の設定なのかDB側の設定なのかどちらの設定が悪いかわかりますでしょうか?
他にも何か必要な情報がありました 提出させていただきます
よろしくお願いいたします
0397nobodyさん2006/06/28(水) 15:23:59ID:3gjeaESL
>>393
>>384
最新を上に出すのにも工夫が要るのですね。
その方法をどう考えるかが、面白いところかも。
0398nobodyさん2006/06/28(水) 15:27:03ID:???
>>396
http://otndnld.oracle.co.jp/tech/opensource/htdocs/php_troubleshooting_faq/php_troubleshooting_faq.html
を一読してみることをお勧めします。
0399nobodyさん2006/06/28(水) 15:37:25ID:???
>>382
file()で取得してarray_reverseは?
0400nobodyさん2006/06/28(水) 15:53:45ID:???
質問です。
submitボタンを押して、見た目上ページを移動したところで、ファイルの書き込み、もしくは修正処理をしています。

しかし、何度か試したところブラウザの"更新ボタン"を押すと、再度書き込み処理を行ってしまいます。
現在は同じデータがすでにあった場合には〜、などと条件付けをして排除していますが、少しばかり不安な気がします。
ブラウザの"更新ボタン"などが押された時には処理を実行しない、もしくはsubmitボタンが押された一回のみは処理を行うなどの方法はないのでしょうか?
テクニックなどがあれば教えてください。よろしくお願いします。
0401nobodyさん2006/06/28(水) 15:58:05ID:???
>>398
有り難う御座います
一読してみて 怪しいところをやってみたところ 問題が解決されました!
環境変数が足りていなく接続できていなかったようです
有り難うございました
0402nobodyさん2006/06/28(水) 16:32:21ID:3gjeaESL
>>399

厳密には、1回の記録が複数行に渡ります。

-----

1回目の記録A
1回目の記録B
1回目の記録C

2回目の記録A
2回目の記録B
2回目の記録C

...

-----

なので、ABCの上下は入れ替えてはなりません。
0403nobodyさん2006/06/28(水) 17:31:22ID:???
>>400
セッションを使うのがいいかも
0404nobodyさん2006/06/28(水) 17:35:27ID:???
>>400
ヘッダでLocationを吐いてフォームデータを送信されたURLから
別のURLに飛ばしてしまうのがよろしいかと。
例えばこんな感じ。


入り口(書き込みフォーム)
↓
↓フォームデータ
↓
完了画面(HTTPヘッダにLocationで表示前に飛ばす)
↓
↓自動的に移動
↓
入り口

これならリロードされても入り口を再表示するだけになるはずです。
0405nobodyさん2006/06/28(水) 17:37:28ID:???
携帯だったら、最新のログだけ別ファイルに保存しておいて、
リロードしたら前のデータと比べて同じなら何もしないというのも
0406nobodyさん2006/06/28(水) 18:04:53ID:???
>> 403 404 405
まだ試したことがないので一抹の不安はありますが、管理用ページということもあり、セッションで制御するのを試してみたいと思います。
アドバイスありがとうございました。
0407nobodyさん2006/06/28(水) 18:36:08ID:+uIloqdX
ドコモの端末のユーザーエージェントからUTNを切り出すにはどういうコード書けばいいんだ?
0408???2006/06/28(水) 18:43:08ID:4DSWMgzu
最近自分の中傷が掲示板でひどいんです。
管理人じゃなくても個人の特定や削除ができますか?
0409nobodyさん2006/06/28(水) 18:45:46ID:???
>>408
管理人に連絡、対処されないなら鯖管へ。
0410???2006/06/28(水) 18:50:20ID:4DSWMgzu
パソコンを使い始めたばかりでよくわかりません…
どういうことですか?
0411nobodyさん2006/06/28(水) 18:53:22ID:???
>>407
正規表現で(σ゚∀゚)σゲッツ!!
0412nobodyさん2006/06/28(水) 19:02:02ID:???
>>410
世間一般での普通の対応を求めろっつうこと。
ネットだろうが、書き込みが電子データで物理的なものでなかろうが
やることの本質は同じ。しかるべき相手にしかるべき要求をする。
0413nobodyさん2006/06/28(水) 19:50:57ID:???
>>410
とりあえず、どの掲示板かURLをお願いします。
私が対処しに行きますので。
0414nobodyさん2006/06/28(水) 20:20:56ID:+uIloqdX
>>411
その正規表現をたのむ
0415nobodyさん2006/06/28(水) 20:50:35ID:???
>>414
http://pc8.2ch.net/test/read.cgi/tech/1131028296/
0416nobodyさん2006/06/28(水) 21:35:26ID:???
>>414
つかちょっとくらいは自分で考えれ。それでもどうしても駄目だったら
自分で作ったの持ってきたらその問題点くらいは教えちゃるから。
0417nobodyさん2006/06/28(水) 22:01:50ID:???
なんだよおしえてくれたっていーじゃん!
なめんじゃねーぞカス
0418nobodyさん2006/06/28(水) 22:19:31ID:???
カスにカス呼ばわりされても痛くもねーよ
0419nobodyさん2006/06/28(水) 22:25:49ID:???
>>402
だったらやっぱ>>85なり>>384辺りが妥当な方法だと思う。
つか、そういう大事なことは先に言わんと。
0420nobodyさん2006/06/28(水) 23:04:05ID:???
なぁお前ら様方、ここはPHPスレだけどまぁ気にしないで聞いてくれ。
優れてるとか流行ってるじゃなくて、ただ個人的にお前らが一番好きな言語って何?
俺はやっぱりPHP!
0421nobodyさん2006/06/28(水) 23:27:21ID:???
>>418
最近偽者も多いので馬鹿をみればスルーでよろ
0422nobodyさん2006/06/29(木) 00:16:28ID:wsUQiNip
PC2M というPCサイトを携帯用に変換するスクリプトを利用しています。

_check.php でチェックすると画像変換スクリプトが200でなく、403エラーを返す
という注意をされます。
動作としては、pc2m.phpでGDでPC用の画像を変換して、出力するのですが、
画像はちゃんと変換されて表示されます。

表示はちゃんとされているが、403エラーを出す理由をどなたかヒントでもいいので
教えてもらえないですか?
0423nobodyさん2006/06/29(木) 00:28:28ID:???
>>420
VZエディタのマクロ
0424nobodyさん2006/06/29(木) 00:35:38ID:???
>>422
ソース嫁
0425nobodyさん2006/06/29(木) 00:38:10ID:???
>>422
_check.phpがリファラーを返さない仕様で、
Apacheの設定で画像の直リンクを禁止するためにリファラーチェックしてるとか。

その質問は他のスレの方がいい気がするなぁ…
0426nobodyさん2006/06/29(木) 01:28:02ID:N7wntj4v
計算結果を見やすくする為、カンマ表示や¥記号表示を出来ないでしょうか?

どなたかヨロシクお願い島津。
0427nobodyさん2006/06/29(木) 01:31:22ID:???
>>426
カンマ表示はnumber_format()
¥表示はそのまま頭に¥つけて表示するだけじゃ?
0428nobodyさん2006/06/29(木) 01:31:32ID:???
>>426
最近マニュアルの URL 示すばっかりだ。
http://jp.php.net/manual/ja/function.number-format.php
0429せっ☆マ ◆wwwwWwWWWw 2006/06/29(木) 01:50:36ID:???

ereg("[^\-]","-",$tekito);

がtrueになります

ereg("[\-]","-",$tekito);

もtrueになります

どうしてでしょうか…

バージョンは5.1.4です
0430nobodyさん2006/06/29(木) 01:58:22ID:hhtHsz1A
array_searchで、数字だけの配列から文字列をサーチすると、
何故か0が返ってきます。
例)
array_search("hoge",array(0,1,2));

本来ならばfalseが返って来て欲しいのですが…
どうすれば正しい値が返ってきますか?
バージョンはPHP5.1.1です。
0431nobodyさん2006/06/29(木) 01:58:28ID:N7wntj4v
初心者質問でスンマセンでした…(汗

でも、大変参考になりました。ありがとです。
0432nobodyさん2006/06/29(木) 02:02:36ID:???
>>429
> ereg("[^\-]","-",$tekito);
> がtrueになります
再現しない。
<?php var_dump(ereg("[^\-]", "-", $tekito)); ?>
の結果は
bool(false)

確認方法が間違ってるだけじゃないの?
0433nobodyさん2006/06/29(木) 02:02:50ID:???
>>429
正規表現にマッチしてるから
0434nobodyさん2006/06/29(木) 02:03:54ID:???
>>430
array_search("hoge",array(0,1,2), TRUE);
0435nobodyさん2006/06/29(木) 02:06:37ID:???
>>430
それ本当に0か?
falseじゃないのか?
falseは出力したら0と表示されるぞ
0436nobodyさん2006/06/29(木) 02:10:40ID:???
>>435
お前も少しは実験してから物を言え
0437nobodyさん2006/06/29(木) 02:10:46ID:???
>>434
確かにstrictにすると正しくなります。
strictにしなくてもfalseになるはずと思うのですが…。
原理が謎です。
>>435
var_dumpしているので確かです。
0438nobodyさん2006/06/29(木) 02:13:58ID:???
>>437
ならんよ。
if("hoge" == 0) は真だもの。
if("hoge" === 0) ではじめて偽になるでしょ。
strictってのはそういうことだ。
0439せっ☆マ ◆wwwwWwWWWw 2006/06/29(木) 02:16:15ID:???
>>432
実際の正規表現はこれです
ereg("[^0-9a-zA-Z\.\-_@]",$mail,$tekito)
今一度確かめてみたところやっぱり動作が少しおかしいです…
ありがとうございます

>>430
文字と数字比べてるから変なんじゃね?

>>437
array_search("hoge",array("0","1","2"));
これはだめ?
012が変数ならstrval()で変換汁
0440せっ☆マ ◆wwwwWwWWWw 2006/06/29(木) 02:17:57ID:???
実際の正規表現はこれです
↓
実際動作が変だった正規表現はこれです
0441nobodyさん2006/06/29(木) 02:22:31ID:???
>>438-439
みたいだね
0442nobodyさん2006/06/29(木) 02:29:03ID:???
>>439
問題をシンプルにするのは感心だが、ちゃんと再現するコードで質問しろよなー

ereg("[^\.\-_]",$mail,$tekito)
これって結局 [.-_] になって .〜_ の範囲でチェックされてるだけだと思う。
ereg("[^0-9a-zA-Z-._@]", $mail,$tekito) にしてみ。
0443せっ☆マ ◆wwwwWwWWWw 2006/06/29(木) 02:34:00ID:???
>>442
\でエスケープしててもメタ文字として認識されるのか?
04444372006/06/29(木) 02:41:30ID:hhtHsz1A
レスありがとうございました。

>>438
"hoge"==0は何故真になるのでしょうか?
""==0なら真になって当然だと思うのですが…。

>>439
問題は0だけのようですので、
0を探して"0"にしてからサーチすることにしました。
0445nobodyさん2006/06/29(木) 02:51:33ID:???
>>442
違うよ。
"[\.\-_]" の正規表現は \ と . と \〜_ の範囲。
>>443
POSIX正規表現のマニュアル読めば分かるけど、[〜]の中にエスケープというのは存在しない。
Perl互換正規表現と混同しないように。
0446nobodyさん2006/06/29(木) 02:52:13ID:???
何でereg使うのw
つーかメアドかどうか確かめる正規表現としてはいい加減すぎwww
0447せっ☆マ ◆wwwwWwWWWw 2006/06/29(木) 02:58:19ID:???
>>445
mjk!!!
目からウロコです
ありがとうございました

>>446
その後別のチェックも加えてるから大丈夫。
エラーメッセージを細かくするために分けた。
0448nobodyさん2006/06/29(木) 02:58:22ID:???
>>444
数値と文字を比較するときは数値として評価して比較されるから。
"hoge"は数値変換すると数字解釈できないので0になる。
var_dump(intval("hoge"))はint(0)。
ttp://www.php.net/manual/ja/language.operators.comparison.php
> 整数値を文字列と比較する際、文字列が 数値に変換されます。
0449nobodyさん2006/06/29(木) 03:01:57ID:???
>>444
> 問題は0だけのようですので、
array_search("2hoge",array(0,1,2));
はint(2)が返る。
0450nobodyさん2006/06/29(木) 03:05:39ID:???
>>448
なるほど!ありがとうございました。

いろいろ試してみた結果、haystackもneedleもすべてstringにキャストした上で
strictにするしかないようでした。
0451 ◆Needle/7vo 2006/06/29(木) 03:07:02ID:???
僕はneedleちゃん!
0452nobodyさん2006/06/29(木) 11:11:02ID:j7oCXco7
PHPでエラーがあるとその内容と行が表示されますが、
表示されないレンタルサーバーがあります。
0453nobodyさん2006/06/29(木) 11:12:24ID:???
ニートル乙
0454nobodyさん2006/06/29(木) 11:16:44ID:???
>>452
そうか。報告ご苦労様。知ってたけどね。
0455nobodyさん2006/06/29(木) 11:43:07ID:???
>>452
どこでも設定で変更できるし
0456軟式PHP2006/06/29(木) 12:08:15ID:???
>>452
まじで!?
0457nobodyさん2006/06/29(木) 12:39:39ID:???
>>456
オイオイっ
0458nobodyさん2006/06/29(木) 14:47:43ID:???
クリックしたら、ディレクトリを圧縮して
ブラウザからダウンロードできるようなスクリプトを作りたいのですが、
上手くいきません。

というのもディレクトリの容量がある程度あると
サーバー側のメモリを使用しきってサーバーダウンしてしまいます。

大容量ディレクトリのダウンロードでもメモリを占有しないような
上手い方法はないでしょうか?
0459nobodyさん2006/06/29(木) 15:13:10ID:???
>>458
中のファイルを一戸ずつ落とす
0460nobodyさん2006/06/29(木) 15:22:10ID:???
>>458
クリック→ftp://〜のリンクを表示→終了
0461nobodyさん2006/06/29(木) 16:00:58ID:MDHzuRjB
>>279
有難うございます。
おかげさまでPEARが無事に入りました!
なんとか、1つのブログPINGポータルに反映させることができました。
しかし、大手のPINGポータル(MyBLOGやGOOなど)は未だに反映されません…
これはPHPの問題というより、ポータル側のスパム対策などでしょうか。
こちらのスレッドからずれてしまいそうですので、検証の後、別の所で質問させて頂くかもしれません。

皆様本当に有難うございました!
0462nobodyさん2006/06/29(木) 16:24:57ID:???
>>458
shell_exec でtarか何かでアーカイブするシェルを動かす
終了後、できたファイルにへのリンクを生成して出力する
0463軟式PHP2006/06/29(木) 17:58:26ID:???
>>457
お約束かとおもひて。

>>458
俺も>>462の方法をお勧めする。
0464nobodyさん2006/06/29(木) 18:23:57ID:???
質問です。

会員制のシステムで一般的なユーザ認証の方法というのはどのような仕組みですか?

例えば、
・ログイン時にIDとPASSでDBを検索し、それ以降はセッションにログイン済みフラグ的なものを与える。
・ログイン後はIDとPASSを暗号化したもの+認証情報でないユーザ番号をセッションIDにしてアクセス毎にユーザ番号を基にDB内を再検索。
とか...

あと、MovableType、XOOPS、PLONEなどが使用する認証の仕組みもわかる方いましたら、是非教えてください。
宜しくおねがいします。
0465nobodyさん2006/06/29(木) 18:57:58ID:???
>>464
XOOPSは
>・ログイン時にIDとPASSでDBを検索し、それ以降はセッションにログイン済みフラグ的なものを与える。
アクセス毎に認証チェックするというのは珍しいケースだと思うけど?
0466nobodyさん2006/06/29(木) 19:36:08ID:???
毎回チェックするならBASICじゃだめなん?
0467nobodyさん2006/06/29(木) 20:21:44ID:???
自分自身のURLを取得したいです。
ここだとhttp://pc8.2ch.net/test/read.cgi/php/1150995543/l100とかです
0468nobodyさん2006/06/29(木) 20:47:55ID:???
>>464
> MovableType、XOOPS、PLONEなど

なんでソースを読もうとしない?
04693792006/06/29(木) 21:49:46ID:zAm3zlYq
共有メモリを使ってCとPHP間でデータの受け渡しをしたいのですが、
openのタイミングでエラーになります。
どなたか分かりましたら教えてください。お願いします。

OS:linux kernel 2.6
gcc
php4

これは成功します。
 PHPからshmop_open(keyid, "c", 0666, size); でopen。
 その後、Cアプリから shmget(keyid, size, IPC_CREAT|IPC_EXCL|0666); でopen。
逆の順で実行するとエラーになる。

uid, gid はともにあわせています。アパッチのuserはconfigでCアプリの
ユーザーに設定しています。
04704692006/06/29(木) 21:52:16ID:zAm3zlYq
名前379は、このスレの379さんとは関係ありません。残ってました。すみません。
0471nobodyさん2006/06/29(木) 22:16:27ID:???
そんなことやったことないからオレは力になれないけど、
エラーが出てるならその内容を書いたほうがいいと思うのデス
04724692006/06/29(木) 22:35:58ID:???
471さん、ありがとうございます。
今確認できる場所にいないので後でもう一度見てみます。
あらかじめC側でメモリを割り当てておいてphpでopenしにいくと
エラーではねられるんですが、openモードは "c" "a" ともに一緒でした。
0473nobodyさん2006/06/29(木) 23:26:56ID:???
>>425
> >>422
> _check.phpがリファラーを返さない仕様で、
> Apacheの設定で画像の直リンクを禁止するためにリファラーチェックしてるとか。

apacheではそういう設定をしていないんですけどねぇ…
ちゃんと動作しているようなのですが、どんな可能性があるのかと思いまして。

ただのバグですかね。
0474nobodyさん2006/06/29(木) 23:35:53ID:???
>>473
> ただのバグですかね。
自分の思い通りに動かないのをすぐバグ扱いするのは良くない。
telnet なりで自分でリクエストを投げてみて自分の目で確認すべし。
0475nobodyさん2006/06/29(木) 23:53:12ID:???
質問ですが、通常のHTLMとほんの1kbぐらいのファイルをincludeさせたPHP。
サーバにかかる負荷って実際どれぐらい違うんでしょうか?
2000ぐらいあるファイルのフッタ部分をいちいち書き換えてられないので
includeで表示させたいんですが…。
0476nobodyさん2006/06/29(木) 23:57:19ID:???
>>475
サーバーのハードやHTMLの内容やPHPの設定にもよるんじゃないの?
重いのはHTMLを構文解析しなきゃいけなくなる部分なので
includeファイルのサイズは大して問題にならないと思うけど。
(元のHTML自体が巨大だとその分だけ重くなる)

でもせいぜい負荷2%が5%になったとかそんなもんだと思うけどねー
(既存の倍以上には重くなると思う)
0477nobodyさん2006/06/29(木) 23:59:21ID:???
>>473
情報の痕跡も探さずに可能性だけ列挙して
その可能性が該当しない=バグだろう
ってのはあまりに短絡的な考え方だろう。
0478nobodyさん2006/06/30(金) 00:05:43ID:???
>>473
474 の人ですが、自分も入れて試してみました。
ふつーに、200 になりましたが?
単に pc2m.php のパーミッションの問題のような気がしますが。
0479nobodyさん2006/06/30(金) 00:13:05ID:???
>>478 の自己フォロー。パーミッション問題じゃなかった。ごめん。
やっぱり画像の URL だ。となると、やっぱり自分でリクエスト確認だ。
情報少なすぎなので、これ以上はなんとも。
0480nobodyさん2006/06/30(金) 00:14:58ID:8PS/D42h
パーミッションについて簡単に教えてください。
どんなとき777で、705で、666なのか数字も一緒に教えて下さい。
0481nobodyさん2006/06/30(金) 00:28:45ID:???
>>480
PHP関係ない
0482nobodyさん2006/06/30(金) 00:45:17ID:???
教える方がミーハーなのは困る
0483nobodyさん2006/06/30(金) 01:03:54ID:???
ミーハーって?
0484nobodyさん2006/06/30(金) 01:04:50ID:???
ミーチャンハーチャン
親父用語だ
0485nobodyさん2006/06/30(金) 01:06:25ID:???
>>482
どこらへんが?
■ このスレッドは過去ログ倉庫に格納されています