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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/11(水) 17:50:01ID:fYd+34US
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0363nobodyさん2007/07/18(水) 13:48:29ID:EIaU60X9
>>362
そのSQL文がよくわからないんです
一応参考書どおりに書いたんですけど反映されません
0364nobodyさん2007/07/18(水) 13:53:31ID:???
勉強してください
0365nobodyさん2007/07/18(水) 14:01:56ID:2QFnxZCZ
bool値を一番シンプルに反転するコードはどうすればいいですか?
0366nobodyさん2007/07/18(水) 14:01:59ID:???
例だけでも教えてください
0367nobodyさん2007/07/18(水) 14:02:56ID:???
改行コードCRLFをLFに修正するスクリプトを作成したいのですが、
肝の「正規表現で改行部分を修正」というのが自信がありません。

$text_data = preg_replace("/\r\n$/m", "\n", $text_data);

↑これでモウマンタイでしょうか?
0368nobodyさん2007/07/18(水) 14:06:20ID:???
>>365
!
0369nobodyさん2007/07/18(水) 14:09:50ID:???
>>363
hoge_tblという名前のテーブルにhogei(int型)とhoget(text型)というカラムに入れる場合は
INSERT INTO hoge_tbl(hogei,hoget)values(1,'ああああああ')
を実行する
テーブル名とカラム名は時分の設計したDBにあわせて変更すること
あとは試行錯誤するか他の暇なやつが現れるのまて
0370nobodyさん2007/07/18(水) 14:15:01ID:FfDpKpOg
>>どこにも格納されていない
>>なのでJS使って自前でPOST
onclickで複合技なのですね、ありがとうございます。
0371nobodyさん2007/07/18(水) 14:20:39ID:???
>>369
暇じゃないが、一言いっておくと、そのSQLだとvaluesが小文字になっているから動かないよ。
あと、テーブル名も大文字にしておかないと、Windowsでは動くけどLinux上では動かなくて慌てる。
どうしてかは、もう分かったよね?
0372nobodyさん2007/07/18(水) 14:24:50ID:EIaU60X9
>>369
ありがとうございます
SQL文はできたと思うんですが
ほかに足りないステートメントがあるんでしょうか
0373nobodyさん2007/07/18(水) 14:26:26ID:???
valuesが小文字だと動かないDBなんてあるのか?
0374nobodyさん2007/07/18(水) 14:27:50ID:bXBOiS7Y
PHPの最初に
<?xml version="1.0" encoding="Shift_JIS"?>
header('Content-Type: application/xhtml+xml');
を記述すると、どうしてもファイルのダウンロードになってしまうんですが、
どうすればちゃんと表示できるのでしょうか?
0375nobodyさん2007/07/18(水) 14:32:50ID:???
>>373
MySQLの5.0からは、予約語の小文字は動かなくなっている。
03763742007/07/18(水) 14:36:13ID:bXBOiS7Y
ごめん、なんでもない
自分でも何がしたいのかわかんね
0377nobodyさん2007/07/18(水) 14:41:07ID:???
>>375
ソースくれ
少なくとも今俺の手元にあった5.0.38では
INSERT INTO (〜) values (〜) でも動作している
0378nobodyさん2007/07/18(水) 14:43:57ID:???
>>377
つ公式サイト
0379nobodyさん2007/07/18(水) 14:47:35ID:???
>>374
( ´∀`)σ)´Д`)
0380nobodyさん2007/07/18(水) 14:48:16ID:???
>>372
371がいったことも考慮して
まだ入らないなら
1、DB接続チェック
2、カラム名のスペルチェック
3、インサートのVALUESのチェック
intは未入力はデフォルトが設定されていないとエラーになる0かNULLを入れること
textとdateはシングルクォートが必要
4、文字コードのチェック

>>375
へぇ〜MySQLってそうなんだ
0381nobodyさん2007/07/18(水) 14:48:34ID:???
>>377
INSERT INTO T_SAMPLE values(1, '半井は、最近調子に乗りすぎ');
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values' at line 1
0382nobodyさん2007/07/18(水) 14:51:54ID:???
予め予約語を大文字で書く癖つけてる俺は勝ち組wwww
PHPだと逆だけどね・・・
0383nobodyさん2007/07/18(水) 14:59:51ID:???
>>378
予約語のとこにも載ってない
てかSQLでそんなケースセンシティブなことってあるか?
予約語で使われてる同名の識別子を
バッククォートしてないとかならともかく

>>381
integerとtextカラムのtableで試したけどそれでINSERTできるよ
そっちのバージョンは?
0384nobodyさん2007/07/18(水) 15:01:21ID:???
英文も読めないバカがおおいいな
0385nobodyさん2007/07/18(水) 15:29:03ID:EIaU60X9
>>380
入りました
でも1行目に入ってしまうんですがどうすればいいのでしょうか
入れたいのは4行目なんです
0386nobodyさん2007/07/18(水) 15:31:29ID:???
>>385
取り出すときに並び替えりゃいいんじゃないの?
0387nobodyさん2007/07/18(水) 15:32:53ID:???
あるファイルに記述された関数の中から、呼び出した側のファイル名を
知る方法があれば教えてください
0388nobodyさん2007/07/18(水) 15:34:50ID:???
>>385-386
auto_incrementのこといっているのか?
一回、内部インデックスをクリアーしないと駄目じゃないか?
0389nobodyさん2007/07/18(水) 15:40:19ID:EIaU60X9
間違えました
入ってませんでした;;
何がいけないんでしょうか
0390nobodyさん2007/07/18(水) 15:40:57ID:???
環境によってことなるファイルパスの区切り子を知る方法ありませんか?
__FILE__とか使えばイモっぽい方法で分かりますが
もっとクールに知りたいです
0391nobodyさん2007/07/18(水) 15:44:56ID:???
>>385
DB内の並び順は当てにしない
386の言う通り取り出し時にソートする

並び替えが必要ならユニークなシーケンスをふって取り出すときに
order by(ソート) すれば入れた順に並び替えができる
任意番号をふってもOKでその場合も取り出し時にソートをすればいい
SQLの方が早いが最悪PHPでソートするという手もあるにはある…

ちなみに内容が板違いになっていっているのでDB板で聞いたほうが
良いと思う
0392nobodyさん2007/07/18(水) 15:45:16ID:???
>390

php パス 区切り
で google 検索したら 4番目に出てきませんか?
0393nobodyさん2007/07/18(水) 15:47:49ID:???
>>392
さりげなく、自分サイトの宣伝乙
0394nobodyさん2007/07/18(水) 15:49:07ID:???
>>392
ありがとうございました
>>393
恥を知れ
0395nobodyさん2007/07/18(水) 15:56:53ID:???
宣伝乙
0396nobodyさん2007/07/18(水) 16:02:49ID:bXBOiS7Y
とりあえず聞きたいことがまとまったので書きます。

DoCoMoでCSSを使いたいのですが、XHTML形式じゃないとダメみたいなんです。
これは、形式をxhtmlにしなくてもheaderでxhtmlを宣言していれば大丈夫ということなのでしょうか?
metaでxhtml+xmlで試してみたのですが、DoCoMoではうまくCSSが使えません。
headerでxhtml+xmlを宣言した場合、なぜかPCで見るとファイルのダウンロードになります。
どなたかアドバイスお願いします。
0397nobodyさん2007/07/18(水) 16:02:57ID:???
たちの悪い冗談ぐらい華麗にスルーしましょう
0398nobodyさん2007/07/18(水) 16:07:17ID:???
>>396
「docomo css」で検索したらそれらしいのがゴロゴロ出てきたけど。
ヘッダーがそもそも違うみたいだからUAとかで判別してヘッダー出せばいいんじゃないの?
とちょろっと検索しただけで適当に言ってみる。
0399nobodyさん2007/07/18(水) 16:11:30ID:bXBOiS7Y
>>398
有難うございます。
UAで判別して携帯のみheaderでxhtml宣言することにします。
当方auなので確認する術がありませんので、知人にテストしてもらいます・・・。
0400nobodyさん2007/07/18(水) 16:28:12ID:sSp2i6sO
ページを移りかえるたびにfile関数でファイルを読み込むのはやめたほうがいいですか?
負荷はあんまり気にしないほうがいいでしょうか?
0401nobodyさん2007/07/18(水) 16:31:06ID:???
そんな大量のアクセスじゃなければ問題ないよ
0402nobodyさん2007/07/18(水) 16:32:44ID:???
え?fileになんか問題あんの?
そんなのよくある処理じゃね
0403nobodyさん2007/07/18(水) 16:34:52ID:sSp2i6sO
大量のアクセスはないとは思うのですが、少しでも負荷をへらしたいとおもってます。
いちおう、セッションつかって一回しか読み込まないようにしてみたんですけど
数字的にみて、毎回ファイルを読み込むのと↓のコードはどちらが効率がいいですか?

session_start();



if ($_SESSION['a'] != 1) {

echo $_SESSION['a'] = 1;
echo "ファイルを読み込みました";

$filename = "../data/schedule/schedule.dat";
$_SESSION['str'] = file($filename);

}


echo "出力";

print_r($_SESSION);
0404nobodyさん2007/07/18(水) 16:35:11ID:EIaU60X9
SQL文を入れるだけではだめなんでしょうか?
関数は何を使えばいいんですか?ODBCです
0405nobodyさん2007/07/18(水) 16:37:11ID:???
>>403
おまえ頭いいな
0406nobodyさん2007/07/18(水) 16:37:42ID:???
>>403
負荷気にするならDB使えばいいと思うんだが
0407nobodyさん2007/07/18(水) 16:40:22ID:???
>>405
お前は馬鹿かw

>>403
負荷を減らしたいなら
一般的にはそのdatファイルの更新がかかった際に静的なHTMLページを更新するってのが一般的かな
SESSIONの場合更新がかかったとしても古いデータを読むことになるからね。
0408nobodyさん2007/07/18(水) 16:44:02ID:sSp2i6sO
DB使いたいのですがサーバの仕様上インストールされてないので使えませんでした。
静的にHTMLページを作成することにします。
0409nobodyさん2007/07/18(水) 17:03:09ID:???
>>408
そんな貴方にsqlite
0410nobodyさん2007/07/18(水) 17:35:13ID:???
そんな貴方にXML
0411nobodyさん2007/07/18(水) 18:55:58ID:???
私、今ぼっきしているんです。
_ト. ̄|○
0412nobodyさん2007/07/18(水) 19:05:33ID:???
反応にこまるんだが
0413nobodyさん2007/07/18(水) 19:22:32ID:sSp2i6sO
ユーザー関数aaaから帰ってきた配列(1,テスト)のテストという部分を出力したいのですが、
echo aaa()[1]では以下のエラーが返ってきました。
Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\www\test.php on line 2

echo aaa()[1]をどのように直せばテストと表示できるのでしょうか?

<?php
echo aaa()[1];


function aaa(){

$abc = array(1, "テスト");

return $abc;

?>}
0414nobodyさん2007/07/18(水) 19:28:45ID:???
式の戻り値から直接ブラケットで
配列アクセスする事はPHPではできない
一旦変数に入れるか、array_slice(aaa(), 1, 1)か
0415nobodyさん2007/07/18(水) 19:39:20ID:???
>>413
PHPでは返り値がオブジェクトなら出来るけど配列だと出来ないんだよねぇ
その場合ならend()を使うという手もある。
0416nobodyさん2007/07/18(水) 19:40:30ID:???
>>415
は?!オマエ馬鹿か?
普通に配列を戻り値にできるだろwwww
0417nobodyさん2007/07/18(水) 19:40:37ID:???
>>413
関数の引数になんか付けて「テスト」だけ返すようにするとか・・。
用途が分からないからなんとも助言しにくい。
0418nobodyさん2007/07/18(水) 19:43:04ID:???
>>416
アクセス演算子の話だどあほう。
0419nobodyさん2007/07/18(水) 19:44:37ID:???
>>415
馬鹿すぎて吹いたw
0420nobodyさん2007/07/18(水) 19:49:09ID:sSp2i6sO
ありがとうございます、おかげさまで助かりました。
0421nobodyさん2007/07/18(水) 19:51:35ID:27CSX6XY
>>415 の意味を理解せずにつっこんでいる奴らに絶望したw
0422nobodyさん2007/07/18(水) 19:55:42ID:???
>>421
>PHPでは返り値がオブジェクトなら出来るけど配列だと出来ないんだよねぇ

頭大丈夫?
この1行の意味だけを読めよ馬鹿がw
0423nobodyさん2007/07/18(水) 19:59:21ID:sSp2i6sO
最後にひとつ確認したいことがあります。
XSS脆弱性チェックをしているのですが、

$str = "<br><b>てすと";←タグなどを含んだ値を格納
<input type="text" name="text" value="<?php echo $str;?>">

これからXSSの実験をしているのですが確認できませんでした。
たまたま実験数が少ないだけかもしれませんが、
inputないに文字列をテキスト表示したからといって信頼できるのでしょうか?
0424nobodyさん2007/07/18(水) 20:00:10ID:???
>>422
返り値「が」だぜ?
返り値「に」や返り値「を」じゃないぜ?
0425nobodyさん2007/07/18(水) 20:06:11ID:???
そもそもが日本語がおかしい
0426nobodyさん2007/07/18(水) 20:06:59ID:???
中島敦「山月記」の中で、主人公が自分の半生を回顧して、
「己は次第に世と離れ、人と遠ざかり、憤悶と慙恚とによって益々己の内なる臆病な自尊心を飼いふとらせる結果になった。」
と言ったが、君達は正にそれだな。
0427nobodyさん2007/07/18(水) 20:10:51ID:???
>>422

>>413の質問内容とそれに返答する>>415の内容から何を言わんとしているか判断出来ないのは
やはりゆとり脳のせいでしょうか?
0428nobodyさん2007/07/18(水) 20:34:54ID:???
>>423
信頼出来ない。"や">で要素やタグを終了出来るし、
そもそもHTMLでは要素内であっても特殊文字はHTMLエンティティにすることが推奨されている。
0429nobodyさん2007/07/18(水) 20:52:31ID:???
>>427
変な子がこのスレに取り憑いているだけだ
このスレ全体を眺めればわかる
まあ、気にするなってこと
0430nobodyさん2007/07/18(水) 21:53:25ID:sSp2i6sO
""で囲まれた中でも危険なんですか?その危険がどうしても発生できません。
以下のサンプルで試してみましたがXSSは確認できませんでした。
どのようなケースのときにXSSがおこりえるのでしょうか?

$str = "あああ>";
value="<?php echo $str;?>
0431nobodyさん2007/07/18(水) 21:54:54ID:sSp2i6sO
すみません、気のせいでした。XSS可能でした
0432nobodyさん2007/07/18(水) 22:33:35ID:???
>>426
「他人より出来る」と思い込みたいんだから仕方ない。
ずっと前からそうだ。今になってわざわざ言う必要はない。
0433nobodyさん2007/07/18(水) 23:00:43ID:7tC2FFCS
>>426
何を言っているのか何を言いたいのかさっぱり分からないが
酒鬼薔薇事件で子供ほど難しい漢字や言葉を使いたがるというのを思い出した俺ガイル
0434nobodyさん2007/07/18(水) 23:12:54ID:???
>>433

自ら回答はせず、他者の回答に対し「おまいらは馬鹿かと反射的にレスしている」(+俺の勝ちとか思いこんでしまっている節もある)人が
自分の間違いと理解力不足に気づいていない事を皮肉っている。
0435nobodyさん2007/07/18(水) 23:21:25ID:7tC2FFCS
>>434
お前よくわかるな。俺は「慙恚」この漢字すら読めないZE
だからといってGoo辞書ひく気はまったくないけどな

そもそも聞いたことのないやつの自叙伝かなんかから
そんな崇高(だと思われる)な文章を引用されても
皮肉かどうかすらさっぱり分からん

大人って言うのは万人に分かりやすく説明する能力に長けているもんだっていう皮肉が>>433
0436nobodyさん2007/07/18(水) 23:29:23ID:???
サスペンドサスペンドってうるせ〜や!!
保留っていえや!!
0437nobodyさん2007/07/19(木) 00:11:24ID:???
>>434
いや、だからここはそういうとこなんだって
0438nobodyさん2007/07/19(木) 01:04:59ID:???
別にその場に無理に染まる必要も無いでしょう
0439nobodyさん2007/07/19(木) 01:32:28ID:???
まぁまぁ、そんな熱くならずに自分のおならの臭いを嗅いでエクスタシーを感じようよ。
0440nobodyさん2007/07/19(木) 01:48:35ID:???
染まれとは言ってない
意外とものわかり悪いな

自明なことをわざわざ言う必要はないってことよ

まあ上で言われたし、エクスタシー感じながら寝るか
0441nobodyさん2007/07/19(木) 04:29:36ID:???
全員が自明の事だと何故分かるのかと小いt(ry
0442nobodyさん2007/07/19(木) 08:59:15ID:IPLKMfOV
質問です  winXP apache2 php5.2.3で開発してます
test/test.php の中で、
require_once("Auth/HTTP.php");
というコードを実行した時、Auth/HTTP.php は test/Auth/HTTP.php という
階層構造でなければならないんでしょうか?
php.iniでのinclude_pathは .;C:\PHP\pear となっており、
実際の階層は C:\PHP\pear\Auth\HTTP.php となっています

ちなみに、test/test.phpで
if(require_once("Auth/http.php")){ echo" OK"; }
を実行したら OK が表示されました。 お暇な方回答おねがいします
0443nobodyさん2007/07/19(木) 09:00:55ID:???
>>442
OKってでたならOKだろ?
0444nobodyさん2007/07/19(木) 09:01:40ID:H7YXRZIl
Simplateっていうテンプレートエンジン使ってる人いますか?
よさげなので使ってみようと思ったのですが、ドキュメントがどこにもなくて
プラグインの使い方が良くわかりません。
テンプレート側で

{htmlspecialchars($hoge,ENT_QUOTES)}

みたいにPHPの関数をそのままかけるところまではわかったのですが
ここに独自関数を使えるって言う事じゃないのでしょうか?
メンバー変数に$_pluginっていうのがあるので使えそうなのですが、
どんな感じで使うのでしょうか?

ソースがPHPじゃないので、読むことも出来ないしOTZ
ご存知の方いらっしゃいましたらお願いします
0445nobodyさん2007/07/19(木) 09:10:39ID:IPLKMfOV
>>443
ありがとうございます 確認したいんですが
require という関数は、
・そのファイルのある階層からの相対パス
・rootからの絶対パス
・include_path で指定したディレクトリ以下のパス
の3種類を取れるってことなんでしょうか?
0446nobodyさん2007/07/19(木) 09:15:01ID:???
>>444
基本的にSmartyと互換とっているみたいだから
Smartyのドキュメントを参考にしたら?
0447nobodyさん2007/07/19(木) 09:16:54ID:???
>>445
そんな基本的なことは、まずドキュメントに書いてある
それを読め
0448nobodyさん2007/07/19(木) 09:19:53ID:???
>>445
マニュアル引用
> 読み込むファイルはまずカレントのワーキングディレクトリからの相対パスとしてinclude_path で探され、それから、カレントのスクリプトのディレクトリからの相対パスとしてinclude_path で探されます。
0449nobodyさん2007/07/19(木) 09:24:55ID:???
>>444
そんな状態の人間はSimplateなんて使うな
Smartyを使ったほうがましだ
0450nobodyさん2007/07/19(木) 09:33:46ID:IPLKMfOV
>>447-448
申し訳ないです  書いてありました
ありがとうございました
0451nobodyさん2007/07/19(木) 09:49:41ID:0PZWkZf0
テキストファイルの一行目を取り出したいんですが、出来ますか?


出来ればやり方を教えて頂きたいんですが…
0452nobodyさん2007/07/19(木) 09:59:10ID:???
メモ帳を起動

[ファイル[F]]->[開く(O)]

テキストファイルの選択

一行目をマウスで選択

Ctrl+C
0453nobodyさん2007/07/19(木) 11:55:35ID:???
>>451
「file()」「fopen()」でマニュアル検索汁
0454nobodyさん2007/07/19(木) 12:47:36ID:???

>>451
$fp = fopen("thx.txt", "r"); //読み込み
$subject_thx = fEncCvt( fgets($fp, 10000) ); //件名
while ( $data = fgets( $fp, 10000 ) ){
$msg_thx .= fEncCvt($data); //本文
}
fclose($fp);

0455nobodyさん2007/07/19(木) 12:56:23ID:AESNaKiL
参照アップロードのインプットフォームを
サーバー側で自動で代入するのはjsでもphpでもできませんよね?

(毎回参照ボタン押さないようにしたいけど、勝手にローカルファイルの指定するのは危険になるから?)
0456nobodyさん2007/07/19(木) 13:04:36ID:???
>>455
もしそれができたら、欲しいファイルがありそうな
ところのパスいれておいて、javascriptとかで
勝手にsubmitするぜw
0457nobodyさん2007/07/19(木) 13:05:15ID:???
>>455
できません。理由はその通りです。
0458nobodyさん2007/07/19(木) 13:13:12ID:???
レベルが低いな。ちょっと小細工かければできるだろ
0459nobodyさん2007/07/19(木) 13:32:54ID:???
>>458
javascript と phpだけでどうやるんすか?

ActiveX VBScript Javaアプレット使うわけでもない。
metaタグに仕込む奴は最近は、使えない気がするが。

<input type='file' に対してはjavascriptは無力ではないか? むしろ小細工できるならマジで知りたい。
04604442007/07/19(木) 13:45:16ID:EtVjENa1
>>446
プラグイン周りはそのままやっても動きませんでした。

>>449
そこをどうにかお願いしますw

使いたいメソッドを持ったインスタンスを登録して
テンプレート側で何らかの記号で呼び出すとかでしょうか?
それとも、普通に{hoge($foo)}と呼び出せたりするのでしょうか?

Smartyのように$_pluginsにはパスを登録すればよいけど
そこにおくファイルフォーマットが違うのでしょうか?

$_pluginsには何を登録するのか?
テンプレートではどのように書くのか?

この二点だけでもお願いします!
0461nobodyさん2007/07/19(木) 13:58:21ID:???
お断りだぜ!!!
0462nobodyさん2007/07/19(木) 15:07:58ID:pASguBwm
phpでテンプレートエンジン?
■ このスレッドは過去ログ倉庫に格納されています