【PHP】下らねぇ質問はここに書き込みやがれ 45
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/04/27(金) 10:02:42ID:H9gF1SfBPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0422403
2007/05/04(金) 02:35:19ID:???取れました!!
$_POSTの後に何も書かなかったのがダメだったのですね
['name']と入れたら取得できました。
夜分にお騒がせしました。
今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。
便利そうですね。早速使って見ます。
0423nobodyさん
2007/05/04(金) 02:44:24ID:4Tv/1S6hUndefined indexだけなら実用上問題ないか
thx
0424nobodyさん
2007/05/04(金) 05:32:41ID:???(;´Д`)
0425nobodyさん
2007/05/04(金) 05:52:42ID:???自演に必死真面目に答えてる奴もどうかと思うわ
0426nobodyさん
2007/05/04(金) 06:48:35ID:???0427409
2007/05/04(金) 07:00:45ID:???>>422
hiddenなんか使ってもあなたのやりたいことは、無理。
form要素をsubmit分使うなら別だけど、それなら、もともとの質問>>403と合わない。
0428nobodyさん
2007/05/04(金) 11:05:02ID:/O1lAt+h0429nobodyさん
2007/05/04(金) 13:27:04ID:???HTMLもろくに知らないやつでもできるんだーwww
0430403
2007/05/04(金) 13:46:28ID:???HTMLは多少知っている程度でも出来るみたいですねwwww
今はなんとなく書き方が判ったからなんとなく出来てますwwwwwwwww
0431nobodyさん
2007/05/04(金) 13:47:53ID:???HTML使わないケースもあるし
0432nobodyさん
2007/05/04(金) 16:31:43ID:tMlUrrmDPHPスクリプトで作ったRep2というスクリプトを動かすと
php_sqlite.dllがロードできないとエラーが出るようになりました。
php.iniの関連がありそうな
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
のコメントアウトの確認やdllの再コピーを試したのですが全く改善されません。
どなたかアドバイスください。よろしくお願いします。
0433nobodyさん
2007/05/04(金) 16:38:17ID:???・php.iniのextention_dirの設定は?
・正確なエラー文は?
・php_sqlite.dllはちゃんとあるの?
0434nobodyさん
2007/05/04(金) 16:50:51ID:Cy0pzuiX必死真面目とか言うけど、このスレ程解答者が情報出し渋るスレも中々ないから。
昔風の頭の固いお荷物共が答えてる感じしかしない。
0435nobodyさん
2007/05/04(金) 16:56:52ID:tMlUrrmD早速ありがとうございます。
・ApacheのPHPIniDir設定は?
sqlite絡みでないPHPは動いているので大丈夫だと思います。
・php.iniのextention_dirの設定は?
extension_dir = "c:/php/ext/"
Cドライブ直下にPHPをインストールしてます。
同じくsqliteでないほかのextentionは読み込めているので大丈夫だと思います。
・正確なエラー文は?
Error: php_sqlite.dllをロードできませんでした。
です。
・php_sqlite.dllはちゃんとあるの?
>>432で書いたように
PHPのzipパッケージからextフォルダーに
php_sqlite.dll、php_pdo_sqlite.dll、php_pdo.dllの再コピーを行いましたのであると思います。
このrep2、アップグレードするまでは通常に動作していました。
rep2スレでPHPのスレで質問するように誘導されました。
0436nobodyさん
2007/05/04(金) 17:00:11ID:???エラー文はPHPのFatal Errorではなくてスクリプトのエラー表示なのね?
それならコード見せて。
0437nobodyさん
2007/05/04(金) 17:19:13ID:LLBEYpsmpublic $aaa;
public $bbb;
public $ccc;
public function ech($aaa,$bbb,$ccc){
echo $aaa,$bbb,$ccc;
}
}
$obj = new test("aaa","bbb","ccc");
$obj->ech();
この場合、$aaa〜$cccが出力されるはずなのですが、
なぜかエラーが返ってきます。
「Missing argument 1 for test::ech(), called」
function ehc内でglobalで呼び出すしかないのでしょうか?
0438nobodyさん
2007/05/04(金) 17:20:00ID:tMlUrrmD丁寧にありがとうございます。
>PHPIniDir設定は大いに関係ありますです。
とのことなので早速調べてみたのですが
httpd.confの中にPHPIniDirという設定項目がありません。
PHPIniDir "C:/php"
を付け足そうと思うのですが
httpd.confのどこに足せばよいのでしょうか?
自作スクリプトでなくてどこが原因かわかりませんが
ttp://page2.xrea.jp/expack/index.php/download
の
rep2ex-060903-0030.zip (905KB)
を展開して使用してました。
これのread.php、/iv2.phpで前述のエラーが出るようになりました。
0440nobodyさん
2007/05/04(金) 17:23:34ID:???httpd.confの一番最後にでもそれを付け足して再起動して試してみて。
>>437
それだと引数で渡してる先はコンストラクタ。
echメソッドには何も渡してない。
0441nobodyさん
2007/05/04(金) 17:30:29ID:LLBEYpsmclassを宣言するときに、引数をclassに渡して、それをそのクラス内で使いまわしたい場合はどのようにすれば良いのですか?
0442nobodyさん
2007/05/04(金) 17:34:02ID:tMlUrrmD付け加えてPC自体を再起動してみましたが状況は変わりませんでした。
PHPinfoで見るべき場所とかありますか?
0444nobodyさん
2007/05/04(金) 17:39:40ID:???Configuration File (php.ini) Path
extension_dir
mysqliteの段落
0445nobodyさん
2007/05/04(金) 17:40:32ID:LLBEYpsmサンクス
その方法でやってみます
0446nobodyさん
2007/05/04(金) 17:46:22ID:tMlUrrmDConfiguration File (php.ini) Path C:\PHP\php.ini
extension_dir c:/php/ext/ c:/php/ext/
mysqliteという項目が存在しません。
PDO drivers sqlite
PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $
SQLite Library 3.3.16undefined
というのはありますけど違いますよね。
0447nobodyさん
2007/05/04(金) 17:48:39ID:???0448nobodyさん
2007/05/04(金) 17:52:07ID:???何で合体してるんだwwwwwwwwww
0449nobodyさん
2007/05/04(金) 18:02:04ID:???あとは、会員システムが作りやすくなる補助的なもの
0450nobodyさん
2007/05/04(金) 18:13:49ID:???> PHPのzipパッケージからextフォルダーに
> php_sqlite.dll、php_pdo_sqlite.dll、php_pdo.dllの再コピーを行いましたのであると思います。
PHP5.2.2のWindows用zipパッケージなら最初からextディレクトリにphp_sqlite.dllって入ってるだろう。
それ、どっから何を再コピーしてきたのさ?そんな操作は不要なはずだぞ?
PHP自体を再インストールしてみた方がいいんじゃないの?
ちなみに5.2.2を解凍してphp.iniで
extension_dir = "c:\php\ext"
と設定して
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
の3つのコメントを外しただけの状態でphpinfoには
> SQLite
>
> SQLite support => enabled
> PECL Module version => 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.7 2007/03/06 02:17:13 stas Exp $
> SQLite Library => 2.8.17
> SQLite Encoding => iso8859
という項目が現れるはず。
0451nobodyさん
2007/05/04(金) 18:21:06ID:tMlUrrmD>それ、どっから何を再コピーしてきたのさ?そんな操作は不要なはずだぞ?
念のためにphp-5.2.2-Win32をDLして解凍して
extフォルダー内からコピーし直しました。
再インストールしてみます。
0452nobodyさん
2007/05/04(金) 18:24:27ID:???そのコピーが問題なんじゃね。
まずphpinfoで認識されるかどうかを確実にすることが先決だな。
0453nobodyさん
2007/05/04(金) 18:31:06ID:tMlUrrmDどーやら再インストールしようとしたら解決しました。
えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
申し訳ありませんでした。
再インストールの段になって以前のバージョンを削除することに考えがいきました。
削除しながらもしかしてと思って一度再起動して確認したところ
SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.7 2007/03/06 02:17:13 stas Exp $
SQLite Library 2.8.17
SQLite Encoding iso8859
このようなメッセージも確認でき無事にスクリプトも動きました。
アドバイスありがとうございました。
0454nobodyさん
2007/05/04(金) 18:41:49ID:???> えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
要らん再コピーとか無駄なアレンジを加えたための単なる自爆だな。
0455453
2007/05/04(金) 18:48:28ID:???これはこれで動くようになったという人の話をググって見つけたので試してみました。
要るかどうか判断できなかったので。。
でもそれ以前の問題だったようですね。すいません。
0459nobodyさん
2007/05/04(金) 19:31:25ID:???でも内容自体がくだらないので決して良スレには化けない。
くだ質スレなんてどこもそんな感じ。
0460nobodyさん
2007/05/04(金) 19:42:29ID:???0461nobodyさん
2007/05/04(金) 19:54:01ID:???0462nobodyさん
2007/05/04(金) 20:29:43ID:???礼に無神経な質問者が多いから駄目なんだよ。
言われる前に気を払わないと。
てか453は言われてもシカトだしな。
0463nobodyさん
2007/05/04(金) 20:38:16ID:???0464453
2007/05/04(金) 21:15:30ID:???離席してました。
ご回答くださった皆さん、本当にありがとうございました。
0465nobodyさん
2007/05/04(金) 21:43:07ID:4LncoC7VPHP5.xみたいなディレクトリに収まってるはずじゃ
0466nobodyさん
2007/05/04(金) 21:58:58ID:KgO3BPJP0468nobodyさん
2007/05/04(金) 22:05:55ID:???そもそもこのタイトルが悪い
このタイトルを変えない限りここは基地外の巣靴であり続ける
0470nobodyさん
2007/05/04(金) 22:26:10ID:???0471nobodyさん
2007/05/04(金) 22:43:26ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/l50
0472nobodyさん
2007/05/04(金) 22:51:43ID:CQ+J25QfRewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)\.html$ read.php?category=$1&contents=$2&page=$3 [L]
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$ /read.php?category=$1&contents=$2&page=$3 [L]
と書いてアドレス変換するようにしていますが、
rade.phpなどをいじっていると
/xxx/yyy/zzz.htmlでは問題ないのですが、
/xxx/yyy/zzz では白紙になってしまいます。
また、
if (@is_file("./xxx/yyy/zzz/..php")) {
include("./xxx/yyy/zzz/..php");
include("./menu.php");
}else{
header("HTTP/1.0 404 Not Found", true, 404);
include("./error.php");
error();
exit;
としているのですが、これまた
/xxx/yyy/zzz の場合に白紙になってしまいます。
どのあたりをチェックすればいいでしょうか?
0473nobodyさん
2007/05/04(金) 23:20:41ID:JeCkXlLhアクセス数が万などになって、訪れる1人1人が頻繁にSQL文を発行するようなサイトの場合、
PHPで作成した場合とJSP&サーブレットで作成した場合ではどの程度レスポンスに差が出てくるのでしょうか?
〜のサイトがPHPを使ってるなどという情報も教えていただけたら、と思っています。
0474nobodyさん
2007/05/04(金) 23:22:56ID:???0475nobodyさん
2007/05/04(金) 23:38:16ID:???>rade.phpなどをいじっていると
意味不明。
まあ、すくなくとも
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$ /read.php?category=$1&contents=$2&page=$3 [L]
の方は、/read.phpの/が悪さしてるんだろ。
0476nobodyさん
2007/05/05(土) 00:03:04ID:1dXIFJS6レスありがとう。
/ は何かのゴミです。.htaccessには入ってないです。
0477nobodyさん
2007/05/05(土) 00:07:01ID:???.htaccessの書式については
read.phpの冒頭に
var_dump($_GET);を書いてで引数が渡っているかどうかを確認
ここが問題なきゃ後者のfile includeの部分で失敗している。
0478nobodyさん
2007/05/05(土) 00:18:42ID:???phpのバージョンは 4.4.7 です。
オブジェクトのメンバへのアクセスが
$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");
だとNGで
$dbTbl = new clsDB();
$dbTbl.db2table("hogehoge");
だとうまくいきます。
どの資料でも -> でアクセスしているので -> にしたいのですが、
原因は何でしょうか?
0479nobodyさん
2007/05/05(土) 00:25:48ID:???2.うまくいくじゃ分からん。何がどうなる。
ちなみにPHPでメンバにドットではアクセスできません。
0480478
2007/05/05(土) 00:34:58ID:???メンバにドットでアクセスできて、アロー演算子でできなくて困ってます。
$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");
class clsDB{
function clsDB(){
}
}
function db2table($str){
print($str);
}
アロー演算子でメンバにアクセスすると、
Fatal error: Call to undefined method: clsdb->db2table()
となり
Javaのようにピリオドでメンバにアクセすると、
hogehoge
が表示できます。
なぜだろう…
0482nobodyさん
2007/05/05(土) 00:38:17ID:???db2tableってメソッドになってないし
0484nobodyさん
2007/05/05(土) 00:48:35ID:???1.そもそもclsDBクラスでdb2tableメソッドを宣言していない
2.だからドットでアクセスしているというのは勘違い
3.つーかドットでアクセスできないっつってんだろ勝手にPHPコア書き換えんな
4.アクセスの仕方も分からないなら該当部分のマニュアルくらい読もうよ → http://jp.php.net/manual/ja/language.oop.php
5.>>1のルールすら守れないやつは引っ込んでろ
0485nobodyさん
2007/05/05(土) 00:51:00ID:eLQmnQPO最初にヒットした箇所だけを変換したい場合はどうすればいいですか?
0486484
2007/05/05(土) 00:59:36ID:???「いいやこっちの方が正しい。アクセス可能。」と言い張る神経が理解できない。
もしかして間違ってるのは自分のほうかな?と省みることは無いんだろうか。
自分のやってることは全て正しくて、間違ってるのは周りに決まってると思ってるんだろうか。
>>485
preg_replace
0487nobodyさん
2007/05/05(土) 01:08:53ID:wIBq1T/y0488nobodyさん
2007/05/05(土) 01:58:52ID:???行く文字のながれは絶えずして、しかも本のソースにあらずってな
0489nobodyさん
2007/05/05(土) 02:45:33ID:???0490nobodyさん
2007/05/05(土) 03:07:58ID:1dXIFJS6レスありがとうございます。
var_dump($_GET);を書いてやってみました。
.htaccessの内容は
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$
の部分を
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/?$
とした以外変わりないです。
/xxx/yyy/zzz.html だとページは問題なく表示され
array(3) { ["category"]=> string(11) "xxx" ["contents"]=> string(8) "yyy" ["page"]=> string(5) "zzz" }
と表示されています。しかし
/xxx/yyy/zzz だとやはり白紙です。
また/xxx/yyy/z と少しアドレスをきると、404が帰ってて、その上部にarray(3)・・・と同じものが表示されます。
それと、RewriteRule ^(.*)/(.*)/(.*)/?$ read.php?category=$1&contents=$2&page=$3 [L]
に変えてみらところ、/xxx/yyy/zzz では、白紙ではなく、404が戻ります。
404は、rade.phpで if (@is_file ・・・ していて該当ファイルがない場合
header("HTTP/1.0 404 Not Found", true, 404);でエラードキュメントを表示するようにしてるためだと思うのですが、
上記の時に、/image/rrr/sss.jpg などが直リンできなくなります。
いったいどこがどうなっているのかさっぱりです・・・
0491nobodyさん
2007/05/05(土) 03:08:07ID:1lZd7YECTEST 1
TEST 2
TEST 3
</HTML>
上から 1,2,3という数を正規表現で抜き出したいです。
preg_match_all()を使用して、
"/<HTML>(TEST ([0-9])\n)+<\/HTML>/s"
のようにしていますが、
3しか取得できません。
「TEST [0-9]」の数が定まっていれば簡単ですが、
変化する場合、()の使い方がイマイチわかりません。
どのようにすればよいでしょうか?
0492nobodyさん
2007/05/05(土) 03:17:45ID:???素直にソース出したほうが早い
なんとなくpreg_match_allのマニュアル読み直すと解決しそうな匂いはする
0493nobodyさん
2007/05/05(土) 04:04:49ID:???0494nobodyさん
2007/05/05(土) 04:09:10ID:???単に改行コードが\r\nなだけじゃ?
初めから終わりまで指定してまうと
その間の全ての文字を考慮しないといけなくなるから
(もちろんそれが必要になる場合もあるけど)
'/TEST ([[:digit:]]+)/'
その場合単にこうしてしまった方がいいと思うけど。
0495494
2007/05/05(土) 04:13:01ID:???0496nobodyさん
2007/05/05(土) 05:32:40ID:???入力値に正規表現の特殊文字が含まれているかもしれないですよね?
そんな特殊文字を一括してエスケープする方法はありますか?
0497nobodyさん
2007/05/05(土) 05:40:53ID:???0498nobodyさん
2007/05/05(土) 05:47:39ID:2h7OPxMf0501nobodyさん
2007/05/05(土) 10:29:56ID:???例、
こども人口、26年連続減少の1738万人
↓
こども人口、年連続減少の万人
0503nobodyさん
2007/05/05(土) 11:20:07ID:???UTF-8ならpreg_replaceでuオプションを付けて、
他のエンコードならmb_ereg_replaceで、
[0-90-9]を指定。
0504nobodyさん
2007/05/05(土) 11:24:53ID:???セッションが勝手に破棄されることってありますか?
maxのlifetimeという表現が気になります
0506501
2007/05/05(土) 11:50:38ID:???0507nobodyさん
2007/05/05(土) 12:13:54ID:???0509nobodyさん
2007/05/05(土) 13:13:52ID:???さっきphp5.2.2ダウンロードして、今httpd.confを編集中のあたりでもうすでにでっかい壁が出来ました。
AddDefaultCharset none
LoadModule php5_module C:/php/php5apache2.dll
AddType application/x-httpd-php .php
をちゃんと置いてるはずなのにphpinfo.phpがちゃんと表示されない(ソースが出る)。
これってやっぱhttpd.confの設定が駄目なんすかね?あと、php.ini編集した後にapache再起動するの忘れた。
もしかしてそれのせい?
0511nobodyさん
2007/05/05(土) 13:22:14ID:???0512nobodyさん
2007/05/05(土) 14:51:25ID:???面白半分に騙る奴が出て来るんだよ馬鹿。
0513nobodyさん
2007/05/05(土) 15:35:13ID:KTSUFz5Dファイルロックはしておく必要があるのでしょうか?
flock は使えないみたいですし…
読み込むだけなら別にロックしなくてもいいんですかね?
0514nobodyさん
2007/05/05(土) 15:42:13ID:???そりゃそうだ
0515513
2007/05/05(土) 15:46:33ID:???http://nyx.pu1.net/practice/file_ope/file_ope9.html
0516nobodyさん
2007/05/05(土) 15:54:47ID:???「ファイルロックって何?」って思わないもんなん?
0517nobodyさん
2007/05/05(土) 16:02:16ID:???読み込むだけなら〜 の部分は readfile などがロックしてるのかと思って書いたものです
急いで書いたため全然違う日本語になってしまいましたが…
0518nobodyさん
2007/05/05(土) 16:28:34ID:???日本語も分かってないんじゃねw
まずマニュアル読めよ
0519nobodyさん
2007/05/05(土) 18:17:10ID:H+RxaHTQ<a href="../test/read.cgi/php/1177635762/500" target="_blank">
↓
<a href="#500">
<a href="../test/read.cgi/php/1177635762/249-250" target="_blank">
↓
<a href="#249">
こんな感じに変換したいんですが、うまくいきません。
お力添え御願いします。
0520nobodyさん
2007/05/05(土) 18:34:55ID:???■ このスレッドは過去ログ倉庫に格納されています