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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/05/23(火) 22:05:17ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

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

過去スレは>>2
0153nobodyさん2006/05/25(木) 20:33:12ID:???
>>151
ひょっとして
<html>
<title>ほげほげ</title>
<body>
<?php echo $key ?>
</html>
みたいな感じで自分自身のタイトルを取得したい、って話?
だとするとちょっと凝った手が必要になると思う。
0154nobodyさん2006/05/25(木) 21:00:33ID:???
宿題は宿題スレへ
0155nobodyさん2006/05/25(木) 21:01:33ID:???
データが日付になってるww
0156nobodyさん2006/05/25(木) 21:16:48ID:1NG09F7i
>>153
そうです、タイトルさえ取得できれば私が思っていることができるのです。

>>152
ありがとうございます。以前も同じような質問をしたのですが
何故かスルーされて解決に至らなかったのです。

この件でかなりの時間悩んでいたのでこの機にどうにか解決したいです。
<?php echo $matches ?> これで一応文字は表示されたのですが
タイトル名ではなく Array と表示されます。
0157nobodyさん2006/05/25(木) 21:26:49ID:???
>>156
だからマニュアル読んでこい
そこに答えがある
0158nobodyさん2006/05/25(木) 21:42:52ID:1NG09F7i
本当に教えてクンでうざいと思いますが、この件が解決したらもう質問は当分控えますので
お願いします。
0159nobodyさん2006/05/25(木) 21:47:59ID:???
マニュアルに書いてるのに
なんでマニュアルにあることまで・・・

Arrayって配列だよ
0160nobodyさん2006/05/25(木) 21:49:04ID:???
いくら自覚してても駄目。
そういう甘えは許さないよ。
もうレスはいっぱいもらって解決法も分かったでしょ。

はい次。
0161nobodyさん2006/05/25(木) 22:01:36ID:1NG09F7i
わかりました。後は自分で頑張って見ます。皆さんありがとうございました。
0162nobodyさん2006/05/25(木) 22:08:57ID:???
>>161
私もよくここで質問をしていたけれど、本当に初心者な質問に関しては
ノーヒントで「マニュアル嫁」やら「死ね」と言われていたもんだ。

そのとき私は「なんでコイツラこんなに厳しいんだろう…、もし俺が回答者なら、すんなり答えを教えてやるのになあ… もしかして
コイツラはレベル低すぎて答えられないのではないか…? いやいや、そんなハズはない! 数学の授業で少し頭の良い友達に聞いてもなかなか答えを教えてくれない奴と同じか?」なんて思っていたりした。

でも、今考えてみると、当時の回答者の気持が分かったきがする。
質問者のことを考えた " やさしい意地悪 "なんだなって。
悔しくても、成長するんだなって。

で、
$basetext = 'ももも <title>hoge</title> ももも';
preg_match ('/<title>[^<>]+<\/title>/i', $basetext, $matches);
echo $matches[0];

これじゃ<title>hoge</title>しか出力されない訳だが。
正規表現に詳しい人よろ。
01631622006/05/25(木) 22:12:15ID:???
自分で読み返して思った・・・

>>162
日本語でおk
0164nobodyさん2006/05/25(木) 22:14:07ID:???
自演乙
まぁ正規表現ならマニュアル書いて無いし別にいいよ。
欲しいトコ(この場合hogeに当たる部分)を丸カッコで囲んでみな
01651622006/05/25(木) 22:23:03ID:???
>>164
自演じゃないあるよ w
まあ質問者はもう帰ってしまったかもしれないがな。
0166nobodyさん2006/05/25(木) 22:31:27ID:???
質問者が消えたところで、
$basetext = 'ももも <title>hoge</title> ももも';
preg_match('/<title>([^<>]+)<\/title>/i', $basetext, $matches);
$key = $matches[1];
echo $key;
ということだな。
0167nobodyさん2006/05/25(木) 22:40:53ID:???
何だかんだ言って優しいんじゃないか。
全くもーお前らは。
0168nobodyさん2006/05/25(木) 22:42:05ID:???
>>127
それじゃ結局クッキー使えない携帯では意味が無いわけだが・・・
0169nobodyさん2006/05/25(木) 22:46:57ID:???
>>162
例えばだ。
弟に「カケ算の7の段を教えてー」と言われたとする。
しかも手には算数の教科書。もちろん中には九九の一覧表がある。
そんな状態でワザワザ弟に付きあってやる必要は感じないだろ?

コッチが教えた事が弟の次に繋がるのであれば話は別だが。
0170nobodyさん2006/05/25(木) 22:50:44ID:???
>>168
Cookie使えないケータイってまだ存在するの?

少なくとも、auとtu-kaの全機種はCookie対応だよ。
(ゲートウェイ側で対応しているのでどんなに古い機種でも対応している。)

たぶんDoCoMoやWILLCOMも原則Cookie対応だと思うけど。
01711702006/05/25(木) 22:52:57ID:???
セキュリティ上必要ならCookie未対応の環境を見捨ててもいいと思う。
Flash未対応、JavaScript未対応の環境は数%存在するが、Cookie未対応の環境は殆ど無い。

URIにセッションIDを含めると、履歴に残ったり、URL共有サービスやブラウザツールバー作成元、
アドウェア製作元に送信されたり、Referarで残ったり、IEのバグで関係無いページにRefererとして
送信されたりと色々セキュリティ上の問題がおこる。
0172nobodyさん2006/05/25(木) 22:53:04ID:???
>>170
ちょ、おまw
0173nobodyさん2006/05/25(木) 23:04:46ID:???
>>170
WILLCOMでネットしてる人はCookie対応として良いけど、
DoCoMoやVodafoneはどうなのだろう?>携帯に詳しい方
0174nobodyさん2006/05/25(木) 23:21:18ID:???
>>171
> Flash未対応、JavaScript未対応の環境は数%存在するが、Cookie未対応の環境は殆ど無い。

よくこんな大嘘を言えるものだ・・・。逆に感動したw

0175nobodyさん2006/05/25(木) 23:29:43ID:???
>>174
自分のサイトのアクセスログでもそんな感じになってるよ
JS有効が94%だけどCookie有効は97%もある

広告やポップアップがうざかったりセキュリティホールが心配だったりで
JS切る人はまだまだいるね
0176nobodyさん2006/05/25(木) 23:40:05ID:???
>>175
スレをよく嫁
0177nobodyさん2006/05/25(木) 23:44:03ID:???
>>170
au以外はまだ全然っすよ。何その思い込み。
0178802006/05/25(木) 23:44:35ID:???
>>100さん

そうなんです。
逆のことをやりたいのです。。
今日も調べてみたのですが、
やはり無理のようでした。

01791702006/05/25(木) 23:50:54ID:???
>>177
そうなんでしたか。
Cookieが使えないとなると、個体識別番号やBASIC認証で管理するぐらいしか無いですね。

auはEZ番号(サブスクライバID)を全てのサイトに対して出力するので、
かなりのプライバシー上の問題があるのでそっちよりはましかもしれませんが・・・。
(一応、最近になって無効化する設定ができるようになったけど、無効にすると公式サイトや通信機能付きアプリや
EZチャンネルなどがつかえなくなり切り替えも面倒で現実的でない。ドメイン毎の切り替えや公式サイトのみへの送信、
DoCoMoのように毎回確認画面がでるようにできればいいんだけど。)

> たぶんDoCoMoやWILLCOMも原則Cookie対応だと思うけど。
これは違ったみたいですね
すいません
0180nobodyさん2006/05/25(木) 23:56:35ID:i7rXqHyW
ファイル名,文書の概要
----------------------------

このようにコンマで区切られたログファイルがあるとします。
fopenで開いてexplodeで配列にすることはできました。

'$filename'には ファイル名 の値が代入されています(例えば 'hoge.html')。
このログファイルからファイル名($filename)を検索して、対になっている「文書の概要」を変数に代入するにはどうしたらできるのでしょうか?
0181nobodyさん2006/05/25(木) 23:58:39ID:???
>>170
SoftBankMobileは全然対応してないよ
0182nobodyさん2006/05/26(金) 00:00:00ID:???
>>179
EZ番号がサイトに伝わって何かマズイ事でも?
EZ番号からプライバシーに関わる情報取得など、
一般のサイト運営者にはまず無理でしょう。

で、BASIC認証をどうやってセッション管理に利用すると?
0183nobodyさん2006/05/26(金) 00:00:02ID:???
>>180
forで回せばいいじゃん
0184nobodyさん2006/05/26(金) 00:05:15ID:???
>>180
ログファイルのサイズが小さいなら
while($line = fgets($fp)) {
  list($filename, $text) = explode(",", rtrim($line));
  $file[$filename] = $text;
}
とファイル名をキーにした連想配列に丸ごと格納してしまって
$text = $file[$filename];
とやって概要を取り出すのが手っ取り早い。
0185nobodyさん2006/05/26(金) 00:13:48ID:ZiAJSuMJ
php4における、sybaseに関する挙動について教えてください。

クエリ実行関数として、sybase_query(), sybase_unbuffered_query()の2つありますが、
(unbufferedの方はsybase-ctライブラリを使用)

この2つの違いというのは、
sybase_query()
→クエリ発行し結果セット全体をメモリ上に取得する
 (大きい結果の場合リソースを大きく消費する)

sybase_unbuffered_query()
→クエリ発行した結果セットに対する最初のローのポインタを取得する

という理解であってますでしょうか。

perlのDBIなんかだと元々unbufferedな動作な用ですねん
0186nobodyさん2006/05/26(金) 00:23:12ID:???
そういえば今JavaScriptに対応してる携帯ってあるらしいね
0187nobodyさん2006/05/26(金) 00:34:14ID:???
フルブラウザ対応でJavaScript使えないやつってあったっけ?
0188nobodyさん2006/05/26(金) 00:49:58ID:???
>>182
十分問題がある。
例えば、どっかの懸賞サイトに個人情報を入れたとする
その情報がワンクリ詐欺や架空請求業者に回ると、
Eメール(Cメール)で送られてきたアドレス(?での引数は無し)にアクセスしてサイトを観覧しただけで、
EZ番号と関連付けられたDBから情報を取得し、電話や郵便での請求が来たりするよ。

あと画像広告(img要素での呼び出し)を配信している広告代理店は、ユーザがどういうサイトを観覧しているかとかを全部把握できるしな。

Cookieでさえプライバシーの問題があって、サードパティ製を拒否したりするのが普通になってきているが、
EZ番号は全てのサイトに対して同じIDが利用され、更にユーザが変更することすらできない。(機種変更しても変わらない。一回解約すれば変わるが)

0189nobodyさん2006/05/26(金) 02:24:31ID:???
>>188
なんかそれってEZ番号とか関係なしに
入力した個人情報が業者に回った時点で請求来ると思うんだけど
読み間違えてる?

漏れた情報をDBしてる業者があって
そこと提携してる業者のサイトにアクセスしたときそうなるってこと?

業者の運営方法とか詳しく知らないんだけど
提携してるんならDBまんまよこせよって感じだけど。
0190nobodyさん2006/05/26(金) 02:35:31ID:???
>>189
この手の業者は互いにメールや個人情報を売買しあってるけど
それ自体が商売だから当然内容に見合った価格設定になる。
提携といっても全情報を丸ごと交換するなんてことは普通はしない。
01911882006/05/26(金) 02:35:41ID:???
>>189
明らかにEZ番号と関連付けられて請求が来ることがある。
例えば、3ヶ月前に懸賞サイトで個人情報を入力。

そして、ケータイのアダルトサイトを観覧(例えば、おまんこ天国というサイトだとする)
おまんこ天国のサイトを観覧しただけで、そこにメールを送ったり電話をかけたりはしてないんだから、
EZ番号以外の識別情報はおまんこ天国には伝わっていないはず。(IPアドレスやUserAgentなどの端末を識別できない情報は伝わっているが)
そして、その翌日ぐらいに、おまんこ天国というサイト名と使用日時などが明記されたメールや請求電話が来る。

つまり、EZ番号と個人情報を関連付けたDBがそういった業界で売買されてたりする。

DBそのまんま貰ってその住所に請求送ったって「身に覚えの無い請求」と扱われて放置される可能性が高いから、
ユーザがアクセスしたサイトと関連付けることは戦略として有効。


ちなみに、固定IPアドレスのプロバイダでも同じことが言える。
例えばどっかの会員サイトから登録時のログが漏洩して、Winnyに流れたとする。
そしたら、掲示板とかで第三者がIPアドレスを取得(ソースに表示される掲示板とかfusianasanとか)すればそこから住所などが特定できちゃうわけよ。
ただし、固定IPアドレスのプロバイダは全体からすれば少ないので、PCではそのDBを使った不当請求はまだ無いに等しいみたい。
0192nobodyさん2006/05/26(金) 02:36:46ID:???
サイト閲覧しましたよね?ってゆーのが必要ってことか。
無差別にはやんないもんなのかな。
0193nobodyさん2006/05/26(金) 02:54:07ID:???
>>192
無差別にやるとこ(いわゆる架空請求業者)もあるよ。
でもそれは労力に比べて命中率が低いんで、脅し専門の部署持ってる会社じゃなきゃやんない。
多くの裏業者では、
→あらかじめ個人情報を入手
→その個人ごとに一意のURLを記載した広告メールを配信
→アクセスした時点で請求開始
→全然入力した覚えの無い個人情報を使って「うちのサイトであなたが登録されてますから。その証拠に〜」と
 個人情報を使ってあたかも法的に根拠があるような物言いで「訴訟も覚悟してください」と脅す
って感じ。
アクセスした証拠とか無いと警察を黙らせることができないんだわ。逆に言うとそれさえあれば警察も不問。
0194nobodyさん2006/05/26(金) 02:58:56ID:mmVqr71r
if ($fp = @fopen ("access.log", "r") != FALSE) {
        $line = fgets ($fp, 1024);
        echo $line;
}

こうやっても内容が出力されないのですが、何か原因として考えられる点はありますでしょうか?
ファイルの内容はごく普通のテキストで一行です。
0195nobodyさん2006/05/26(金) 02:59:45ID:???
PCだと串刺したりルータ再起動でIP変えたりできるけど(固定IPじゃなければ)
携帯の個体識別はソレを買ったときからずーっと一緒だからねぇ。
0196nobodyさん2006/05/26(金) 03:00:45ID:???
>>194
@ を外したらエラー出てこん?
0197nobodyさん2006/05/26(金) 03:02:15ID:???
>>194
if(($fp = fopen()) != FALSE)
って感じで()で括らないとこけた気がする
0198nobodyさん2006/05/26(金) 03:02:22ID:???
かけねなしの初心者です。
MAC OS X ver 10.3.9 に入ってるPHPを使って、
SQLiteを学ぼうと、SQLite ManagerをDLしてDocuments配下に
コピーしたんですが、次のエラーが出てうまく動作しないのです。
________
Error :
The SQLite extension can't be loaded.
________
どうしたら、うまく動作させられるんでしょうか。
01991942006/05/26(金) 03:07:22ID:mmVqr71r
>>196
出ませんでした。が、>>197さんのアドバイス通りに()で括ったらできました。
ありがとうございました。
0200nobodyさん2006/05/26(金) 03:12:53ID:???
http://d.hatena.ne.jp/HiromitsuTakagi/00000001
0201nobodyさん2006/05/26(金) 03:14:52ID:???
>>198
そりゃお前ソースも見せないで分かるかコンチキショー
それになんでMACなんだ?
0202nobodyさん2006/05/26(金) 03:15:17ID:???
>>198
SQLiteってコピーしただけじゃ動かんのじゃないかな。
http://www.php.net/manual/ja/ref.sqlite.php
> PEARインストーラで pear install sqlite を実行して下さい。
0203nobodyさん2006/05/26(金) 03:16:13ID:???
>>201
MacOSX持ってたら標準でPHP付属なんだから、勉強したきゃそのまま使うだろう、ふつー。
0204nobodyさん2006/05/26(金) 04:10:16ID:XdlBZLhP
PHPと全く関係ないんですが、詳しい人が多いと思うのでここで質問します。

ブラウザに「印刷」というボタンをつくって、
それをクリックするとサーバ上のファイルを
サーバのあるLAN内のプリンタで印刷を開始する
ということは可能ですか?


具体的に今やりたいのはPHPとMySQLを使って
帳簿をTeXで書いて、PHPでプロンプトの命令を送り
コンパイルしてDVIをつくり、その印刷をDVIウエアからでなく
ブラウザのボタンで印刷を実行したいのです。

DVIファイル作成まではできました。
サーバはwindowsサーバを使っています。
0205nobodyさん2006/05/26(金) 04:24:13ID:???
>>204
サーバー側で印刷するだけなら、submitクリックで呼び出されるPHPなりのプログラムから
system()などのコマンド実行関数を使って印刷用プログラム(コマンドラインプログラムが望ましい)を実行するだけだよ。
WindowsでのDVI印刷なら ttp://akagi.ms.u-tokyo.ac.jp/dvitest.html この辺のを利用すればできんじゃない?
0206nobodyさん2006/05/26(金) 04:33:19ID:???
>>204
PHPのスレなんで、PHPの話をすると
COMを使うといける。
>サーバはwindowsサーバを使っています。
なんでしょ。
0207nobodyさん2006/05/26(金) 08:30:12ID:???
>>198
SQLite拡張モジュールがないといっている
モジュールを追加すればいい
Fedoracoreとかならrpmでできるんだけど
MACは知らないので追加方法は調べてね
0208nobodyさん2006/05/26(金) 08:35:03ID:???
少なくともVodafoneはクッキー対応してない。

でもmixiで携帯からログインできてる。
mixiはどうやって携帯ログイン(セッション)を実現してんだろう?
URLにSID付けて引き回してないみたいだしね。。。
0209nobodyさん2006/05/26(金) 08:37:18ID:???
hiddenに入れてるとかじゃないの?
0210nobodyさん2006/05/26(金) 09:04:37ID:???
個体識別番号でも使ってるんじゃない?
0211nobodyさん2006/05/26(金) 09:04:43ID:???
hiddenに入れたら危ないんじゃないか・・・?
あ、でも携帯は今のところJavascriptも無効だから、
hiddenの中身が漏れる危険性はないのかな??
02122112006/05/26(金) 09:06:34ID:???
つーかよく考えたらhiddenのワケないな。
だって、携帯mixiでページ移動するとき、いちいちPOSTしてないもん。
普通のハイパーリンクで移動してるからhiddenは持ち越せないよなぁ。
02132112006/05/26(金) 09:09:41ID:???
>>210
個体識別番号でやるにしても、どうやってセッションを管理するの?
最初のログイン時にサーバDB側に個体識別番号をぶち込むにしても、
結局、携帯端末側にセッションIDを渡さないと次の操作から
同一のクライアントかどうかを確認できないよね・・・

あ、それとも携帯って、サーバにアクセスするたびに個体識別番号を
勝手に送る仕様なのかな?? その辺あまり知らないんだけど。。。
0214nobodyさん2006/05/26(金) 09:10:59ID:???
というか>>170はものスゴイ妄想を語ってるなww 亀レス恐縮だが。
0215nobodyさん2006/05/26(金) 09:55:42ID:???
>>208
mixiは常にGETでセッションIDを送っているよ。
ログインから12時間で強制破棄されるので、長いことサーフィンしてると強制ログアウトされる。
逆に、ログインしたあとのURLを保存しとけば、12時間は再接続してもログインしたままだよ。
0216nobodyさん2006/05/26(金) 10:01:39ID:???
mixi は暗号化したパラメータと、サイト側で発行した識別IDを渡しているんじゃないの?
02172152006/05/26(金) 10:18:19ID:???
>>216
home.pl?ses=[数字のID]_[ランダムな16進数列]
こんな感じ。
PHSからなんで、携帯からだとまた違うかも知れない。
0218nobodyさん2006/05/26(金) 10:46:36ID:???
>>215、>>217
えっ、マジで!?
ってことは、たとえばmixi内の誰かが悪意を持ったURLを
日記とかコミュとかに貼って、そこに飛んだらアクセス解析で
リファラからセッションIDが漏れちゃうってことだよね。それヤバくない??
0219nobodyさん2006/05/26(金) 10:52:00ID:???
携帯でリファラ?ああ、最近の携帯はそんなもんも返すのか。
0220nobodyさん2006/05/26(金) 10:53:59ID:???
>>219
返すのも返さないのもあるよ。
おかげで仕事が増えた。
0221nobodyさん2006/05/26(金) 11:01:46ID:???
古いauだけどレファラ返すよ
0222nobodyさん2006/05/26(金) 11:04:37ID:???
リファラ返す携帯の場合、GETでSID送ってたら超危険だよな・・・
mixiのセキュリティは大丈夫なのか。。。
0223nobodyさん2006/05/26(金) 11:09:36ID:???
ラファラ
リファラ
ルファラ
レファラ
ロファラ
02242152006/05/26(金) 11:17:39ID:???
PHS(多分携帯も同じ)からだと、mixiはhttp://〜がリンクにはならない。
日記を外部に置いている場合は、PCから見てくださいと言われ、アクセスできない。

でも、http://〜という文字列をリンクに変換するbookmarklet使ってる人は危険かも。
あと京ぽんには、bookmarkを読み込んだときにもリファラを送ってしまうというバグがあって、ちょっと怖かった。
0225nobodyさん2006/05/26(金) 11:48:46ID:UfRxuQYj
質問お願いします
PEARのLogクラスを使おうと思うのですが
最初にインスタンスを作ったあとで
いろんな関数でログを出力したい場合は
そのインスタンスを各関数でglobal宣言するのでしょうか?

Logクラス使ってるかたがいらっしゃったらどのように使ってますか?
各関数でインスタンスを生成?
よろしくお願いします
0226nobodyさん2006/05/26(金) 12:42:47ID:???
>>224
なるほど、携帯でアクセスした場合はmixi外部へは飛べないようにしてあるわけか。

でも、最近の携帯って親切な(おせっかいな)機能があって、
メアドとかURLらしき文字列って勝手にリンクされちゃう場合あるよね。。。
0227nobodyさん2006/05/26(金) 12:56:56ID:???
ジャンプページを経由したりしないのか?
普通そういう実装がしてると思うが
0228nobodyさん2006/05/26(金) 15:02:17ID:???
あんまり携帯端末に詳しくない奴は妄想でレスするなよ

>>227
やっぱりその方法が一番楽で安全だよね
0229nobodyさん2006/05/26(金) 15:23:51ID:???
文中にURLが含まれていたら自動リンク、というのはどうすれば実装できますか?
0230nobodyさん2006/05/26(金) 15:26:02ID:???
>>229
preg_replaceを使う
0231nobodyさん2006/05/26(金) 17:36:54ID:???
jp2.php.netまた落ちてんのか!氏ねっ!
0232nobodyさん2006/05/26(金) 17:39:59ID:???
>>213
最近の機種のUA見て来い
0233nobodyさん2006/05/26(金) 18:07:11ID:???
>>225
MyLog::hogehoge
で呼べるようにするとか
0234nobodyさん2006/05/26(金) 19:13:34ID:???
PHPとMySQLを使っています。
ある商品表に商品データを追加していきたいのですが、
たとえば「syohin_no=1000、syohin_name=ボールペン」を入れるときに、
「すでにsyohin_noに今回の番号(例では1000番)が存在する場合はupdate、
存在しない場合はinsert」
という処理をしたいと思います。
このような場合、任意のsyohin_noが存在するか否かを確かめるだけの関数などはありますでしょうか?
0235nobodyさん2006/05/26(金) 19:17:43ID:???
MySQL限定ならsyohin_noにユニークインデックスを張っとけば
REPLACEステートメントが使えますよ。

まぁ確かめるだけならフツーにSELECT COUNT(*)を発行するだけ。
PHP関係ないけど。
0236nobodyさん2006/05/26(金) 19:29:25ID:???
SELECT → ある場合UPDATE、ない場合INSERT
やっぱ流れ的にはこんな感じでしょ。

$sql = "SELECT COUNT(*) FROM syohin_table WHERE syohin_no = 1000";
$result = mysql_query($sql);

if ( mysql_num_rows($result) ) {
$sql = "UPDATE syohin_table SET syohin_name = 'ボールペン' WHERE syohin_no = 1000";
} else {
$sql = "INSERT INTO syohin_table VALUES( syohin_no, syohin_name )";
}
$result = mysql_query($sql);
0237nobodyさん2006/05/26(金) 19:36:02ID:???
mysql_real_escape_string とか、エスケープ関係は好みの箇所でやって頂戴
02382362006/05/26(金) 19:47:57ID:???
あ、ごめん COUNT(*) だと mysql_num_rows() は常に真になっちゃうな
COUNT(*) を syohin_no とかフィールド名に置換してくれ
0239nobodyさん2006/05/26(金) 20:29:46ID:???
どうしても分からないので質問させてください。
さっきからこれのせいでかれこれ30分以上作業が進みません。

リモートファイルの有無に応じて結果を返すようにしたいのですが、上手くリモートファイルが取り込めません。

$TEST_READ = @fopen("http://hoge.com/", "r");
if(!$TEST_READ) echo "ng";

と書くと明らかに存在しないリモートファイルでもTRUEが返ってきます。
次に

$TEST_READ = @file("http://hoge.com/");

と書くと逆に存在するファイルも「failed to open stream: No such file or directory in XXX」とお決まりのエラーが返ってきます。

if((include "http://hoge.com/") == "OK") echo "あるある";

と書くと存在する場合勝手に内容を表示します。
どうすればファイルの存在確認のみを行えますでしょうか。
ちなみにリモートファイルの確認を行う作業が前提です。

環境→Linux バージョン:5.1.4
背低→セーフモード:Off、include_path:デフォ、allow_url_fopen:On
0240nobodyさん2006/05/26(金) 20:31:43ID:???
っとスミマセン若干訂正が。。。

誤:$TEST_READ = @file("http://hoge.com/");

正:$TEST_READ = file("http://hoge.com/");

後、背低は設定のタイプミスです。スマソ。
0241nobodyさん2006/05/26(金) 20:39:26ID:???
存在するかしないかだけなら、
HTTPならHEADリクエストを飛ばして200以外なら存在しないっていうのが
手っ取り早いんじゃないの?
0242nobodyさん2006/05/26(金) 20:54:09ID:???
>>239
期待通りbool(false)が返る。
PHP5.1.2(cli)/Win32

存在確認だけなら>>241の言うとおり
HEADでチェックするのが普通だと思う。
02432392006/05/26(金) 21:00:36ID:???
レスありがとうございます
んーとHEADリクエストを送ると言いますと具体的にどういう感じでしょうか;

apache_request_headers() の戻り値を調べるということでしょうか。
0244nobodyさん2006/05/26(金) 21:18:14ID:???
>>243
fsockopenを使う
HEADリクエストの意味が分かっていないならそれなりの文献を参照
質問内容からして基本的な知識が欠損している気もするが

>>239の上は404ページを取り込んでいるんじゃないのか?
下は当然の動作として(つかincludeの動作をよく理解していないでしょ?)
02452392006/05/26(金) 21:27:39ID:???
レスありがとうございます。

なるほどfsockopenですか。
先ほどからphpManualのサイトを読んでまして何度か見た記憶が。。。

>下は当然の動作として(つかincludeの動作をよく理解していないでしょ?)
ttp://php.s3.to/man/function.include.html
の例16-9にある感じで動作することを期待して書いてみましたが根本的に間違ってたてことでしょうか。

当方php暦1年≦ 程度なもので的外れな質問スミマセン;
0246nobodyさん2006/05/26(金) 21:41:16ID:???
new hogeでアクセスされたクラスはどうやったらfunctionに渡せますか?
0247nobodyさん2006/05/26(金) 22:29:25ID:???
>php暦1年≦
なにこの逆ポーランド
0248nobodyさん2006/05/26(金) 22:41:02ID:???
forth歴が長いんじゃね?
0249nobodyさん2006/05/26(金) 22:52:37ID:???
>>246
マニュアル読んで出直して
PHP4
http://www.php.net/manual/ja/language.oop.php
PHP5
http://www.php.net/manual/ja/language.oop5.php
0250nobodyさん2006/05/26(金) 22:55:46ID:???
>>236
ありがとうございます。
やっぱりそうやって律儀に確認するしかないようですね。。。
なんかその作業がすごくムダに思えてきまして^^;

if_exist_mysql_record($sql)みたいな関数があったらいいのになぁ・・・
動作は、ある任意のSQLを投げて、レコードが存在すればTRUE、なければFALSEを返す。
つまり、特定の条件のレコードが存在するかどうかだけを確認する関数。
で、PHP側でその真偽値をifで分岐させて、updateまたはinsertのSQLを投げられたら
スッキリすると思いませんか?
0251nobodyさん2006/05/26(金) 22:58:52ID:???
>>250
自分でその関数作れば良いでしょ。
関数の中身は>>236だけど。
標準にあったとしても恐らくやることは一緒のはず。
0252nobodyさん2006/05/26(金) 23:17:09ID:???
>>249 ひどいよ
■ このスレッドは過去ログ倉庫に格納されています