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

【PHP】下らねぇ質問はID出して書き込みやがれ 92

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/09(土) 20:11:42ID:lsb/cZ9k
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 91
http://pc11.2ch.net/test/read.cgi/php/1260247989/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0357nobodyさん2010/01/23(土) 17:01:57ID:???
>>356
例えばどんなん?
0358nobodyさん2010/01/23(土) 17:09:10ID:???
.. PHP DOM 数値参照で検索したら、
そもそもの数値参照になっちゃうやつの対策が見つかると思うけど、そっちじゃ駄目なの?
0359nobodyさん2010/01/23(土) 17:13:40ID:???
>>358
libxmlを変えろってことですか?それともmetaタグを追加してからDOMに読み込めということですか?
0360nobodyさん2010/01/23(土) 17:15:24ID:???
http://ameblo.jp/utkworks/entry-10387824973.html
解決するかどうかは俺にはわからんけどさ。

libxmlのバージョンは?
0361nobodyさん2010/01/23(土) 17:25:42ID:???
libXML Compiled Version 2.7.6
libXML Loaded Version 20706
でした。

$value='<b>"あa</b>';
$dom = new DOMDocument();
$dom->loadHTML($value);
$dom->encoding = "UTF-8";
echo $dom->saveHTML();

結果:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><b>"ã??a</b></body></html>

やっぱり"あ"が数値参照(間違ってる)になってしまいました。
0362nobodyさん2010/01/23(土) 17:41:15ID:???
..あ (utf-8でE38182 ) が単純に Laten1の 3E 81 82 の文字に認識させられてるような気がするな。
81 81 は制御文字なので変換失敗してるけど。
0363nobodyさん2010/01/23(土) 17:44:06ID:???
$value='<meta http-equiv="content-type" content="text/html; charset=UTF-8" /><b>"あa</b>';
だとOKぽい
0364nobodyさん2010/01/23(土) 17:44:51ID:???
ID出せよ
0365nobodyさん2010/01/23(土) 18:10:59ID:???
やっぱり
metaタグ追加
dom化
出力
metaタグ削除しかないんですかね。
0366nobodyさん2010/01/23(土) 18:22:39ID:???
>>361
new DOMDocument();
↓
new DOMDocument('1.0', 'UTF-8');
0367nobodyさん2010/01/23(土) 19:14:17ID:LeVWmeZT
>>366
そこで設定しても後からencoding指定したら意味ない(まあencoding指定してもダメなんだけど)よ。
結果は同じ。
0368nobodyさん2010/01/23(土) 21:06:55ID:???
metaでしか文字コードを設定できないんだな。
0369nobodyさん2010/01/24(日) 11:41:41ID:DWdjG26G
staticな関数をまとめたクラスを作りインスタンス化せずに利用するか、
同じ機能を持ったクラスをインスタンス化して利用するか、
どちらのほうが高速(メモリ的・処理的)に動作するのでしょうか?
0370nobodyさん2010/01/24(日) 11:45:35ID:???
ヒント

両方を作成して計測する
0371nobodyさん2010/01/25(月) 12:28:48ID:gaHrYkXD
環境:Windows,PHP5.3.1($_ENVは利用できない設定にしてます。GPCSのみ)
コマンドラインからIPを取得する方法はございませんか?
以下の方法でブラウザから動かすとIPを取得できるのですが
MS-DOSでコマンドラインから動かすと取得できません

$_SERVER['REMOTE_ADDR'];
getenv['REMOTE_ADDR'];

無理矢理でもいいのでどなたかcliでも取得できる方法をご教示お願いいたします
0372nobodyさん2010/01/25(月) 12:51:10ID:???
環境変数REMOTE_ADDRにはアクセスしてきた機器のIPアドレスがセットされるけど

コマンドラインで実行してもなにもアクセスしてこないだろうし無理
0373nobodyさん2010/01/25(月) 12:55:07ID:???
.. まさか $_SERVER["SERVER_ADDR"]; じゃないよね? 意味違うけど。
0374nobodyさん2010/01/25(月) 13:33:24ID:???
サーバ立ってないじゃんw
0375nobodyさん2010/01/25(月) 13:54:05ID:???
その環境変数はhttpd(apacheとか)がセットするのだよ
0376nobodyさん2010/01/25(月) 13:58:20ID:???
あとローカルのPCのIPアドレスを知りたいということなら
それなりのコマンド実行して返ってきたものを取り出す、ことになるとおもうけど
PCのIPアドレスは1つとは限らない(0〜いくつでも。通常でもループバックと2つあるよね)
0377nobodyさん2010/01/25(月) 14:17:11ID:???
自分の環境だと、$_SERVERから COMPUTERNAME取れるので
nslookupでも引くか。
0378nobodyさん2010/01/25(月) 14:22:20ID:???
windowsならipconfigでいいんでない?
0379nobodyさん2010/01/25(月) 15:11:26ID:???
ipconfigってやるとアドレスがいくつも出てきて困ったり。
質問者が必要としてるのは何だろうね。
0380nobodyさん2010/01/25(月) 15:24:22ID:???
日本語
0381nobodyさん2010/01/25(月) 15:24:33ID:???
はい?
0382nobodyさん2010/01/25(月) 18:52:02ID:BRV0ROHO
WindowsでPHP5.3.1、Mysql5.1 or Mysql5.5を使ってます
以下のコードを実行するとエラーが出てMySQLが応答しないです
どなたかphpでmysqlに正常にアクセスする方法をご教示お願いします
$con = mysql_connect("localhost, "root", "1234") or die("error");
mysql_close($link);
【エラー】
Warning: mysql_connect() [function.mysql-connect]: [2002] 接続済みの呼び出し先が一定の時間を
過ぎても正しく応答しなかった in 略
Warning: mysql_connect() [function.mysql-connect]: 接続済みの呼び出し先が一定の時間を過
ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、
確立された接続は失敗しました。in 略
接続できませんでした: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
0383nobodyさん2010/01/25(月) 18:53:26ID:???
まずMySQLを起動します。
0384nobodyさん2010/01/25(月) 18:55:37ID:???
>Mysql5.1 or Mysql5.5
同居させているなら、接続時にポートで割り振って切り替えれ

localhost:9999
0385nobodyさん2010/01/25(月) 23:07:47ID:???
+、−を含む文字列をURLに付けて渡して表示させたいのですが無反応です。
直接PHPファイルのprintf部分に書くと表示するので渡ってないと思うんですが
URLで+は文字としては認識されないんでしょうか?
0386nobodyさん2010/01/25(月) 23:09:03ID:???
↑
誤)無反応
正)+−以外が表示されます。
0387nobodyさん2010/01/25(月) 23:11:29ID:???
半角スペースは+にエスケープされる。これ常識ね
0388nobodyさん2010/01/25(月) 23:17:38ID:???
スペースで渡してました
ありがとうございました
0389nobodyさん2010/01/26(火) 11:16:06ID:???
test
0390nobodyさん2010/01/26(火) 13:55:08ID:C4zRj44a
get_class()で返ってくるクラス名なんだが
全部小文字にして返すオプションとかあるのか?
PHPのバージョンによって小文字だけだったり
定義どおり大文字小文字混じってたりと違うようだが
統一する手段はあるのか?
0391nobodyさん2010/01/26(火) 14:03:42ID:???
キミは知らないのかね
大文字を小文字に変換する関数があることを
0392nobodyさん2010/01/26(火) 16:42:48ID:ZX9klyVT
Ajaxを使って,最初にネコの絵を表示しておき,ボタンを押したら犬の絵を表示する
プログラムを作成しなさい。なお,ネコ,犬をダウンロードして使いなさい。
←おもしろい画像で作ったやつが優勝


この課題がいろいろわからないので教えてください。
0393nobodyさん2010/01/26(火) 16:54:25ID:???
.. これは難しい。 何をやり取りすればいいんだよ。
0394nobodyさん2010/01/26(火) 16:57:34ID:???
まず面白い画像をつくります。
0395nobodyさん2010/01/26(火) 17:07:18ID:SdRaerdT
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】Apache/1.3.4
【質問内容】
質問です。
特定の条件下では、デフォルトの404ページを返すようにしたいのですが、その方法を教えていただけますでしょうか。
------------------------
<?php
(略)
if ($error)
{
header("HTTP/1.1 404 Not Found");
exit;
}
print "ok";
?>
-----------------------
「PHPで404エラーステータスを返す方法」を調べると、header〜行をやれと書いてあるサイトが多々見られます。
しかしこれだけですと、Not Foundページが表示されません。
(ヘッダは404になっていますが、HTMLソースは空っぽです)

デフォルトの404ページを表示させるにはもう一工夫いるのだと思いますが、どうすればよいのでしょうか?

・独自の404ページを表示するのはできました。(調べたサイトたちも、基本的に独自404ページを表示する方法として紹介されていました)
・<?より前。?>より後ろに改行コードなどが入っていないのは確認しました。
・PHPと同フォルダにて、存在しないファイル名を指定してブラウザからアクセスしたら、きちんとデフォルトの404エラーページが表示されました

よろしくお願いします。
0396nobodyさん2010/01/26(火) 17:12:09ID:???
apacheに任せてもいいし、Locationで自前の404ページに飛ばしてもいい
用途によって好きな方選べ
0397nobodyさん2010/01/26(火) 17:12:29ID:ZX9klyVT
>392
この問題の答えをガチ教えて欲しい。

それはわがままなのか・・・
0398nobodyさん2010/01/26(火) 17:13:44ID:???
課題は自分でやりましょう
0399nobodyさん2010/01/26(火) 17:14:37ID:???
まず面白い画像を作れ
PHPの話はそれからだ
0400nobodyさん2010/01/26(火) 17:16:30ID:???
いやでも>>392の課題じゃphpの出番ないんじゃ?
0401nobodyさん2010/01/26(火) 17:17:58ID:???
ダウンロードするとこなんじゃ?
0402nobodyさん2010/01/26(火) 17:18:33ID:???
お絵かきツールをPHPで作るところからだろ
0403nobodyさん2010/01/26(火) 17:18:38ID:SdRaerdT
>>396
レスありがとうございます。

その「apacheに任せる」というのはどうすれば良いのでしょうか?
headerで404ステータスコードを返せば、自動的にapacheのデフォルト404が出るのかな。と期待していたのですが、それがだめだったもので。
0404nobodyさん2010/01/26(火) 17:18:58ID:???
ああごめん関係ないわな
でもAjaxを使ってというからには非同期通信使って何かする課題がその後に控えてんだろ
0405nobodyさん2010/01/26(火) 17:20:59ID:???
httpd.confの中に各種応答の際のページ条件を追加・変更すればおk
0406nobodyさん2010/01/26(火) 17:21:59ID:???
Apacheに任すっていうのは本当にファイル置かないってことじゃないのか
0407nobodyさん2010/01/26(火) 17:22:41ID:???
>>403
396じゃないけど
デフォルトの404ページって何?404を返したときに出るのがデフォルトだと思うけど。
自前の404ページを出したいんだよね?
ならあれはApacheが返してるものなのでApacheに設定したその条件に合致するURLにリダイレクトするか
404コードを出して自前の404ページにリダイレクトするなりincludeするなりすればいいなじゃないのかね
0408nobodyさん2010/01/26(火) 17:26:24ID:???
ieの場合は、エラーページの簡易表示オプションがあるから気をつけれ
自前のページを挿しても、ieが違う見た目に置き換えやがるんだ
0409nobodyさん2010/01/26(火) 17:37:58ID:???
>>392
これってAJAXでやつ必要性がよくわからない。
JavaScriptだけで完結するような内容だね。
0410nobodyさん2010/01/26(火) 17:44:25ID:ZX9klyVT
>409
たしかに、javaだけならすぐできるんだけど、それを
AJAXでの書き方がホントわからなぃww

もぉ2時間これで悩んでる(;´Д`)
0411nobodyさん2010/01/26(火) 17:47:18ID:???
>>392
<img src="neko.jpg" id="hoge">
<button onclick="hoge.src='inu.jpg';">click</button>

ネコ,犬をダウンロードってのは用意されたものを使えという意味か
Ajaxで画像とってこいといってるのかわからないけど
(面白い画像作ったやつが優勝っていうぐらいだから後者か?)
仮に後者でそれが課題だから回りくどい工程を取るとしても
それだけの結果を得るためにわざわざAjaxを使うというのが解せない
リクエスト減らすために描画領域に入ったらAjaxでとってくるっていうのならわかるけど
まぁ何が言いたいかというと課題が悪すぎるね
釣れたとか言わないでくれよな
0412nobodyさん2010/01/26(火) 17:47:37ID:???
ぬこの絵を表示させてボタンを押すといぬになるまではできるのか?
0413nobodyさん2010/01/26(火) 17:50:40ID:???
ajaxでウェブから面白い絵を拾ってくるとかか?
google画像検索で「おもしろい顔 犬」で検索して結果から表示なんてやったり
0414nobodyさん2010/01/26(火) 17:51:58ID:???
>>410
JavaScriptとJavaはまったく別物だぞ。
それともJSP or Javaアプレットの方のことを君は書いているのか?
0415nobodyさん2010/01/26(火) 17:56:07ID:???
クリックすると「ワンッ」という吹き出しが表示され、尻尾が白くなる
を提出する奴が二人はいる。
0416nobodyさん2010/01/26(火) 18:01:22ID:???
そもそも>>392の文面だけだと何をAjax通信するのかさえわからないよな
問題出したやつ頭おかしいんじゃね
知ってる言葉並べただけちゃうんかと
0417nobodyさん2010/01/26(火) 18:02:45ID:???
もはやPHP関係ないな
0418nobodyさん2010/01/26(火) 18:03:47ID:???
俺も問題自体が悪いと思った
0419nobodyさん2010/01/26(火) 18:08:02ID:???
ネット見ていてもアホな奴になってくるとjQuery使っている物はすべてAjaxって思い込んでいる奴らいるからな。
jQuery内に一つの機能としてAjax向けのライブラリがあるだけなのにね。
0420nobodyさん2010/01/26(火) 18:22:30ID:???
>>410
何故、PHPのくだスレに持ち込んだのかを説明しろ
0421nobodyさん2010/01/26(火) 19:03:14ID:???
>>420
質問者逃げたか?
04223902010/01/26(火) 19:50:45ID:???
>>391
get_class()を乗っ取って、内部で小文字に変換してから返せばいいってことか?
組み込み関数をオーバーライドするのはやったことないけど、ちょっとやってみるわ。
0423nobodyさん2010/01/26(火) 20:46:08ID:81MG/9ia
登録情報の管理などをするとして、テキストで管理するのとDBで管理するのでは何が違ってくるのでしょうか?
双方のメリットデメリットなどを教えてください
0424nobodyさん2010/01/26(火) 21:07:24ID:???
デメリットは技術で何とか成るもの
自分がメリットを感じる方を使えばいい
0425nobodyさん2010/01/26(火) 21:12:19ID:???
テキスト設定ファイルならDBの知識がなくても使える
DBを利用すれば検索が早いがSQLを覚える必要がある

両方熟知しているなら、用途に合わせて好きな方を使いやがれでFA
0426nobodyさん2010/01/26(火) 21:12:43ID:???
>>423
メリット
・ファイル
データの取り回しが楽
・DB
登録/更新/削除さらには検索が楽

デメリット
・ファイル
DBの場合DB本体側で処理するのでインタプリタとしてPHPがからまないけど
ファイルの場合検索など一端PHPの側に取り込んでインタプリタで処理されるから効率は悪い。
・DB
管理がめんどくさい
時々最適化などの保守が必要
04274232010/01/26(火) 21:34:50ID:81MG/9ia
>>424-426
詳しい解説ありがとうございました。
0428nobodyさん2010/01/26(火) 22:10:44ID:???
いいってことよ
0429nobodyさん2010/01/27(水) 00:07:18ID:???
>>422をスルーするのかお前らw
0430nobodyさん2010/01/27(水) 00:26:16ID:???
>>429
get_glass()の戻り値を小文字にするために、もしかしたらphp本体のソースを解析して、
パッチを当てているかもしれない人に、

「strtolower()使えばいいじゃん」

なんて、言える訳ないでしょ。察してよ。
0431nobodyさん2010/01/27(水) 03:46:24ID:TEjoYy4L
スレ違いだったらごめんなさい。。

例えばですが、
自分の住まいの最寄の美容室を検索して並べて表示するというような事をするのはどのような知識が必要でしょうか?
検索方法はチェックボックス(複数選択可)、表示される検索結果は美容室の店名、住所、電話番号程度のものです。
(これは簡単なテーブルで作ろうと思っています)


idセッションとかデータベースというものを使うのでしょうか・・・?
データを取得して表示までの流れを教えて頂けたらと思います。。
0432nobodyさん2010/01/27(水) 04:20:06ID:???
課題は自分で
0433nobodyさん2010/01/27(水) 04:53:08ID:???
>>431
必要なもの
・MySQLやSQLiteなどのRDBMSと
PHPやPerlなどのサーバサイド言語がインストールされているサーバー

必要な知識
・SQL(データベース問い合わせ言語)とデーターベースの基礎知識
・PHPやPerlなどのサーバサイド言語(以降PHPに絞る)
・HTML

流れ
・まずは美容室の最新データーを蓄積する(INSERT文、UPDATE文)
→PHPのデータベース関数を用いるかRDBMSの管理ツールを使って登録・更新する

・検索フォームから送られてきたデータでデーターベースから検索する(SELECT文)
→PHPのデータベース関数を使ってデータベースから該当データを取り出す
→取り出したデーターを整形してHTMLに出力する
0434nobodyさん2010/01/27(水) 09:59:57ID:G51s6vJh
正規表現でサイズが正しいか調べたいと思います。

$size = "400x300";
if(ereg("([0-9]{1,3})x([0-9]{1,3})",$size)){
echo 1;
}else{
echo 0;
}

というコードを書いたのですが、$sizeが4000x300でもtrueになります。
どういう指定方法をすればよいのでしょうか?アドバイスお願いします。
0435nobodyさん2010/01/27(水) 10:10:29ID:???
何をもってtrueなのかも書くようにした方がいいよ。
で、それ2つめは 000x300 でマッチしてるだろ
0436nobodyさん2010/01/27(水) 10:14:42ID:???
>>430
いや、パッチなんてあてなくても改造は出来るよ。
とりあえずget_class()の乗っ取りには成功しました。
ほんとPHPはバージョン間で互換性無くていやになるね。
04374342010/01/27(水) 10:14:46ID:G51s6vJh
何をもって→「$sizeの書式が完全一致」です。
それで2行目に指摘していただいた事でわかりました。
ereg("^([0-9]{1,3})x([0-9]{1,3})$",$size)
のようにすれば良いんですね。大変参考になりました。
0438nobodyさん2010/01/27(水) 10:37:12ID:???
>>434
eregは将来消される関数だからpreg_matchを使うかmb_eregを使おうぜ
0439nobodyさん2010/01/27(水) 11:00:37ID:???
>>436
まあできたんならいいけど
echo strtolower(get_class ($this));
でできるんだぜ
0440nobodyさん2010/01/27(水) 11:06:12ID:???
ソースを置換ってか。
0441nobodyさん2010/01/27(水) 11:36:59ID:TEjoYy4L
>>432
>>433
返事おそくなりました。昨日はありがとうございました。

おかげで仕組みややるべき事、調べることなどがわかりました。

0442nobodyさん2010/01/27(水) 13:40:47ID:/HDfkq3h
WindowsXPでPHP5.2.12,MySQL5.1を使用してます
環境変数にphpを登録するとコマンドラインでどのフォルダからでも楽にphpが使用できるのですが
ブラウザでMySQLを利用するスクリプトを使うとApacheが異常終了します
CLIも使えてApacheのモジュールとしてブラウザからも利用する方法はありませんか?
0443nobodyさん2010/01/27(水) 13:53:23ID:???
はい?異常終了するのは環境変数に追加したことが原因なの?
0444nobodyさん2010/01/27(水) 14:02:35ID:???
>>440
PHPはすでにある関数を置き換えることができる
0445nobodyさん2010/01/27(水) 14:17:58ID:???
>>444
俺に言ってどうするw
0446nobodyさん2010/01/27(水) 14:30:05ID:???
>>445
無抵抗なソースを痴漢する
0447nobodyさん2010/01/27(水) 14:30:36ID:???
異常終了する場合はまずログを見ろ
0448nobodyさん2010/01/27(水) 14:42:21ID:???
>>443
phpにパスを登録するとlibmysql.dllが関係してるみたいです
0449nobodyさん2010/01/27(水) 14:46:50ID:???
>>448
どういう風に?
0450nobodyさん2010/01/27(水) 14:48:00ID:???
PHPが悪いんじゃなくてそのlibmysql.dllが悪いんでしょ?
じゃそれを削除するか場所を変えるかおかしくない奴拾ってくるかすればいいのでは?
0451nobodyさん2010/01/27(水) 14:50:56ID:???
>環境変数にphpを登録すると
原因がわかっているなら、登録を削除すれば解決するんでね?
楽するよりもエラーを吐いて動かない方が重症だろ

>マンドラインでどのフォルダからでも楽にphpが使用できるのですが
PHPをインストールしているディレクトリのショートカットを、デスクトップに貼っとけ
0452nobodyさん2010/01/27(水) 14:53:53ID:???
現状はCLIでの利便性を捨ててパスは削除しています
補足ですが、mysql5.1とphp5.2で動かない症状が出た場合、
mysqlに入っているlibmysql.dllをphpに入っているlibmysql.dllで上書きすると動きます
0453nobodyさん2010/01/27(水) 14:54:43ID:???
>>450
あなたバカでしょ
0454nobodyさん2010/01/27(水) 15:10:59ID:???
それは単にバージョンコンフリじゃないか・・・
エラーを吐くDLL名でファイル検索して、バージョン違いをゴミ箱入れれ
0455nobodyさん2010/01/27(水) 15:22:10ID:???
パスを通す意味がわからない人はコマンドラインを使うことは難しい
0456nobodyさん2010/01/27(水) 15:28:38ID:???
括弧つけなくちゃw
(コマンドラインを使うことは)
■ このスレッドは過去ログ倉庫に格納されています