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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2008/01/27(日) 18:17:59ID:jK32tI//
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0871nobodyさん2008/02/07(木) 07:48:44ID:???
去年まではフレームワーク乱立だったけど
今年はCakephpが一人勝ちしそうなかんじだね
1,2年はCakephpで食べていけそうだな
sysmfonyの変な方向に先走った奴は乙!
0872nobodyさん2008/02/07(木) 07:55:04ID:???
?
0873nobodyさん2008/02/07(木) 11:06:45ID:???
>>870
大変ですね
頑張ってください
0874nobodyさん2008/02/07(木) 11:11:42ID:???
cakeにsmartyを入れたがるヤツって、何の意味があってやってるの?
0875nobodyさん2008/02/07(木) 11:12:42ID:???
>>871
最終的には公式フレームワークのZend Frameworkに落ち着きそうだね
バージョンが上がるとZend Framework独自の機能も盛り込んでいくそうだから
PHPの追加ファンクションがZend Frameworkという形になりそう
0876nobodyさん2008/02/07(木) 11:15:29ID:???
>>874
出力のテンプレートフォーマットぐらいは統一した方がいい
webデザイナーでもwebプログラマと連携して仕事するためにsmartyを覚えるからな
0877nobodyさん2008/02/07(木) 11:26:50ID:VmG6Y420
[_example:hoge] => テスト

の値を取得する方法はありませんか?
$var->_example->hogeでは取得できなくて…
08788572008/02/07(木) 11:37:00ID:jG4lF8yz
別の方法でもいいんでお願いします
0879nobodyさん2008/02/07(木) 13:24:30ID:???
>>877
$varをdumpした値を載っけろ

>>857
php5でも動作するよ?
もうちょっと情報出さないとまともな回答なんて無理
0880nobodyさん2008/02/07(木) 14:09:06ID:JateuJqJ
>>873
いや、本当に困っているのですがorz
0881nobodyさん2008/02/07(木) 14:10:59ID:???
>>880
うん、限界なのと困ってるのはわかったよ。
がんばれ。

で、質問がないなら帰れ。
0882nobodyさん2008/02/07(木) 14:14:31ID:???
>>880
んなもんサーバがその設定ならそれに合わせるしかないだろ。
それがダメならサーバの設定を変えろ。
0883nobodyさん2008/02/07(木) 14:31:58ID:CDhH+vVY
>>606でちょっと上がってるんだが質問

mysqlにデータを投げ込むんだが
HTMLタグをそのまま効かせたいんで
「strip_tags」は使いたくない。

けど全部のタグ入力するのはめんd

その場合

trim
mysql_real_escape_string
htmlspecialchars($text, ENT_QUOTES);
str_replace("<?php", "<?php", $text);
str_replace("?>", "?>", $text);

これで大丈夫?

マニュアルに
「文字列からHTMLおよびPHPタグを取り除く」
って書いてあるからこれでいいものか心配。
0884nobodyさん2008/02/07(木) 14:34:31ID:CDhH+vVY
>>883
変換されたorz

str_replace("<?php", "&lt;?php", $text);
str_replace("?>", "?&gt;", $text);

※ 変換対策のために&を全角にしてます
0885nobodyさん2008/02/07(木) 14:42:52ID:???
>>883
その位やってみれば?
俺もまあ、そんな感じで放り込んでる。
0886nobodyさん2008/02/07(木) 15:25:33ID:???
なんでstrip_tagsを使いたく無いのかが解らんのだが
0887nobodyさん2008/02/07(木) 15:52:05ID:CDhH+vVY
>>885
一応いろんな物入れてみたが
発見できなかった。
けど不安で。

>>886
だってタグ消されちゃうじゃん。
0888nobodyさん2008/02/07(木) 15:55:11ID:???
俺ならBase64とかでエンコードするかなぁ
0889nobodyさん2008/02/07(木) 15:57:57ID:bRrDj0qY
動画でさ、phpの解説してるページとかないかな?
0890nobodyさん2008/02/07(木) 16:17:57ID:???
動画で何を説明しろと。

>>880
ひょっとしてそれで質問してるつもりなのか。
何をどうしたいのか具体的なこと言わなきゃ大変ですねとしか俺も言えない。
0891nobodyさん2008/02/07(木) 16:18:27ID:???
>>889
学校に行ったら?
もしくはe-ラーニングとか
0892nobodyさん2008/02/07(木) 16:28:36ID:jG4lF8yz
ググって見たのですがPHP5以降は
allow_url_include がセキュリティ上の問題でデフォルトでOff になっていて
onにすることは推奨されないということが分かりました。
というわけで<?php include("2ch.php"); ?>という記述は実行できない
みたいなのですが、代わりに何を使えばいいのです?
0893nobodyさん2008/02/07(木) 16:33:50ID:???
>>880
文字コードで悩んでるって事は解るが
何をどうしないのかが解らんから答えがないんだよ
情報も少ないし

>>887
通したいタグ定義すれば消されない
カスタムタグも記述すれば消されない
0894nobodyさん2008/02/07(木) 16:36:31ID:CDhH+vVY
>>888
なるほど、そんな手もあるか。

>>893
全部定義すると長くない?
抜けがないかも不安だし。
だったらこっちのがスマートかと思った。
0895nobodyさん2008/02/07(木) 16:38:16ID:???
>>892
その書き方だとローカルにある2ch.phpを読み込んでるんだが
2ch.netのindex内容を取得したいの?

0896nobodyさん2008/02/07(木) 16:39:31ID:???
>>894
解らんタグが通るより自分が想定したタグだけが
通る方がよっぽど良いと思うがな
0897nobodyさん2008/02/07(木) 16:40:30ID:???
>>892
俺素人なんだが

require("2ch.php")

とかじゃダメなの?
0898nobodyさん2008/02/07(木) 16:42:43ID:CDhH+vVY
>>896
確かに。
</div>とかされてレイアウト崩されたりしても困るしな…。
参考にさせてもらってケースバイケースで考えてみる。

まりまと!
0899nobodyさん2008/02/07(木) 16:42:56ID:???
>>897
それはincludeと動作的に大差ないぞ
allow_url_includeはinclude('http://2ch.net/index.php');
とかhttp://とかftp://で始まるincludeとかを
出来なくする物だったと思うのだが
09008922008/02/07(木) 16:49:09ID:jG4lF8yz
すみません。相対パスだと問題なく動作致しました。
09018922008/02/07(木) 16:51:38ID:jG4lF8yz
>>899
おっしゃる通りです。
あとPHP5ではなくPHP5.2以降みたいです
お騒がせしました
0902nobodyさん2008/02/07(木) 16:55:02ID:???
携帯向けAdsenseとかで不都合が出るだけ。

今はもう改良されてるのかな
0903nobodyさん2008/02/08(金) 01:43:51ID:zo3BaTDd
質問です。

関数の前にリファレンス演算子(&)をつける理由が分かりません。
どういうときに用いるのでしょう?

以下の記事やマニュアルを読んでもいまいち利点が分かりません。

ttp://gooddays1.blog37.fc2.com/blog-entry-110.html

どなたかご教授頂ければと思います。
0904nobodyさん2008/02/08(金) 01:48:22ID:???
>>903
宣伝乙
マニュアル見ろ
http://jp.php.net/manual/ja/language.references.php
0905nobodyさん2008/02/08(金) 02:02:15ID:???
>>904
マニュアルを読んでもいまいち利点が分からないのです…
0906nobodyさん2008/02/08(金) 02:44:58ID:???
>>905
とりあえず、糞してチンカス洗って来い
0907nobodyさん2008/02/08(金) 08:11:04ID:eEY2Q0pF
boolean値を反転するにはどうしたらいいですか?
0908nobodyさん2008/02/08(金) 09:04:15ID:???
関数の前につけるってできるの?
戻り値のリファレンスなの?
それって関数の中の戻り値用の変数のリファレンスってこと?
自動変数の参照って怖くね?
0909nobodyさん2008/02/08(金) 09:44:25ID:???
> 自動変数の参照って怖くね?
Cのような古い言語と一緒にするなよw
0910nobodyさん2008/02/08(金) 09:50:13ID:???
>>909
Cが古いってwww
VISTAもCで書かれているわけだが・・・
コイツは、間違いなくニート。ウザイ。市ね。お前は社会の屑だ。
0911nobodyさん2008/02/08(金) 10:13:23ID:ThV07EJ+
エックスサーバーで作ってるんですが、
PHPのheader("location: 〜〜〜");
でリダイレクトしてくれません。
なんででしょう?
output_buffering = On
にしてます。
0912nobodyさん2008/02/08(金) 10:20:21ID:???
>>911
locationは、Locationて書かないとダメだろ。
それにその〜〜〜をフルのURLでしっかり書いているかも怪しい。
いい加減にしろニート。
0913nobodyさん2008/02/08(金) 10:22:25ID:???
>>912
>locationは、Locationて書かないとダメだろ。
そこは関係ないだろ。いい加減恥ずかしいレスするのはやめろ。

といいつつ原因が思い当たらなくて答えてやれないが。
0914nobodyさん2008/02/08(金) 10:24:27ID:???
test
0915nobodyさん2008/02/08(金) 10:26:37ID:???
>>907
$bool = TRUE;
$bool = ($bool === TRUE)? FALSE : TRUE ;
0916nobodyさん2008/02/08(金) 10:33:55ID:???
!$bool
0917nobodyさん2008/02/08(金) 10:51:34ID:???
>>913
ニートの癖に無駄なレスつけるんじゃねーよ。
「自分はニートです、社会のゴミです。」と言って見ろ。
0918nobodyさん2008/02/08(金) 10:57:34ID:???
>>917
鏡見て糞して寝ろ
0919nobodyさん2008/02/08(金) 11:38:51ID:???
変なのいるけど相手しないのが吉。

>>913
思いつくのはheaderの前にすでに何か文字出力しているか、
locationの指定先が相対パスなくらいかな。
0920nobodyさん2008/02/08(金) 11:45:57ID:???
warningを表示させると、何て出る?
0921nobodyさん2008/02/08(金) 12:17:53ID:Y/kRkYzF
Smartyでコンパイル後のパスとプログラムで処理するパスが違うのは何が原因なんでしょうか。

Smarty側
Warning: Smarty::include(Path/\%%77^774^774BE9C9%%index.html.php)

コンパイル側
wrt106C.tmp

テンプレート名
index.html

テンプレート内は特に変わった書き方はしていません。
(HTML文と{$title}があるだけです)
0922nobodyさん2008/02/08(金) 12:38:16ID:???
>>903
例えば$valueの内容がa〜zのどれかに決まっていて、
それぞれに対応して呼び出すべき func_a func_b func_c ... func_z てのがあるとする。

毎回$valueを判定して関数の選択もできるけど、最初の1回だけ判定して $func に関数を入れておけば以降$func呼び出すだけで済む。
呼び出しが数百程度ならたいした問題じゃないけど数千数万とかのデータごとに呼び出される場合に毎回判定すると手間でしょ。
クラスも使えるし今のところ関数のリファレンスは気にする必要ない。
0923nobodyさん2008/02/08(金) 14:01:48ID:???
>>921
Smartyのテンプレート生成modelの仕様らしいけど。
http://1rg.org/up/5422.html
0924nobodyさん2008/02/08(金) 14:05:08ID:???
>>923
業者乙
0925nobodyさん2008/02/08(金) 16:33:32ID:???
マジレスすると、焼死体より水死体の方が無惨だったよ。
あれは人じゃない。強烈な吐き気に襲われる位すごいよ。
見たい?
0926nobodyさん2008/02/08(金) 18:30:39ID:???
アップローダか何かか?
こわくてクリックできん。
0927nobodyさん2008/02/08(金) 19:28:46ID:???
PHPでDBアクセスする場合について教えてください。

Windows環境だと、PEARよりADOの方が高速で機能が豊富で優れてましたが、
Linux環境では、PDOがPEARより優れているのでしょうか?

初歩的な質問で済みません。
Linuxに詳しい方、どうぞアドバイスを頂けないでしょうか。
0928nobodyさん2008/02/08(金) 20:09:53ID:???
>>910
大好きなCが古いといわれてぶちきれたのか?w

自動変数の参照が問題になるのは、CとC++ぐらいなもんだろ。
C/C++は自動変数の参照 = ポインタ = 単純なアドレスを表す数値 を返し、
そのアドレスの先がどういう状態でも(たとえば変数が消滅していても)アクセスしてしまうが、

他の言語では参照しているものがある限り生き続け、参照されなくなったときに
消滅するという、”参照(リファレンス)”だから問題ねーんだよ。

もう少し他の言語も使えな。
0929nobodyさん2008/02/08(金) 20:16:00ID:eEY2Q0pF
imagettfbboxって四つの座標(8つの値)を返してくるけど
矩形を表現するなら二つの座標だけでいいよね?
なんでこんなに返してくるの?あほなの?
0930nobodyさん2008/02/08(金) 20:21:08ID:???
アホなのではなく、アホのために8つ全部返してくれてると考えるべきかな
0931nobodyさん2008/02/08(金) 20:23:24ID:???
  _
 /_/
0932nobodyさん2008/02/08(金) 20:52:30ID:???
矩形とは限らんわけだが
0933nobodyさん2008/02/08(金) 21:05:09ID:???
>>928
それってGCのある言語だけじゃないの?
通常ローカル変数の参照を返すのはNGって
考えてた方が健康にいいんじゃね?
0934nobodyさん2008/02/08(金) 21:08:12ID:???
参照カウンタも知らんのか…。
0935nobodyさん2008/02/08(金) 21:09:32ID:???
いまどき、GCが無い言語なんて・・・
0936nobodyさん2008/02/08(金) 21:11:21ID:???
またレベルがどーのこーのってヤツが出てきそうだなw
0937nobodyさん2008/02/08(金) 21:13:04ID:???
>>932
どういう意味?矩形以外のバウンディングボックスなんてありうるの?
ボックスって言ってるのに…?
っていうかgd2でもimagettftextのサイズ
ポイント指定じゃなくてピクセル指定じゃん
imagettfbboxの値とズレズレだからおかしいと思ったら…
0938nobodyさん2008/02/08(金) 21:13:22ID:???
>>936
レベルひっ
0939nobodyさん2008/02/08(金) 22:02:29ID:???
C言語の例に何でVista?VistaはCとC++と.NETが混じっているのに。
PHPが真っ先に出てきそうなんだけど。
>>933
厳密に言えば、スタックに確保して、サブルーチンから復帰[する前/した直後]にスタックの巻き戻しを行う言語だな。
928はガベコレのある言語しか触ったことがないだけだろう。
>>927
速さを気にするなら、PDOとかPEAR以前に、PHP以外の速い言語を使うべき。
どうしてもというなら、たいていPDOの方が速い。PEARはpure PHPだから。
0940nobodyさん2008/02/08(金) 23:45:37ID:???
>>932
やっとわかった
アングルかけてる場合か
たしかに4点必要だ
0941nobodyさん2008/02/09(土) 02:14:59ID:???
ちょっとお知恵を拝借させてください。
文字列「ABCDEFGH」からこんな配列を作るにはどうしたらいいでしょう?

Array
(
[0] => A
[1] => AB
[2] => ABC
[3] => ABCD
[4] => ABCDE
[5] => ABCDEF
[6] => ABCDEFG
[7] => ABCDEFGH
)
0942nobodyさん2008/02/09(土) 02:35:29ID:???
>>941
substr
0943nobodyさん2008/02/09(土) 04:33:51ID:???
$abcdefgh = "ABCDEFGH";
$dest = array();
$len = strlen($abcdefgh);
for ($i = 1; $i <= $len; $i++) $dest[] = substr($abcdefgh, 0, $i);
var_dump($dest);
0944nobodyさん2008/02/09(土) 04:42:29ID:???
>>940
だから>>931で絵で教えてあげたのに・・・
0945nobodyさん2008/02/09(土) 04:46:39ID:???
>>944
わかりにくいですw
でもありが�d�d
0946nobodyさん2008/02/09(土) 04:53:52ID:???
>>941
$abcdefgh = "ABCDEFGH";
$dest = array();
foreach(str_split($abcdefgh) as $chr){
$dest[] = $wk .= $chr;
}
var_dump($dest);
0947nobodyさん2008/02/09(土) 05:00:21ID:???
str_splitなんて知らんかったわ・・・w
0948nobodyさん2008/02/09(土) 05:39:28ID:???
>>947
そんなことも知らないお前は間違いなくニート。市ね。
0949nobodyさん2008/02/09(土) 08:39:04ID:???
Xの中にはa, bが含まれている。

値から一定のキーを作る
a = 000010000100000000000000000000
b = 000000000000000000000000001010

これをがっちゃんこして
X = 000010000100000000000000001010

後にaという値からキーを作ってXを見た時、aが含まれていることを期待できる

・・・これについて詳しく解説してるサイト知らない?
Web2.0とかLightweightLanguageとか、その辺で見た記憶があるんだけど・・・

数百万件のデータにクエリーするんだけど、80%程度の合致率でOKっていう
曖昧検索が実装したいんだ
0950nobodyさん2008/02/09(土) 08:52:18ID:???
>>718
09519492008/02/09(土) 08:54:59ID:uCIPYf4z
スマンス
0952nobodyさん2008/02/09(土) 09:39:43ID:???
質問です。
WinXP SP2 + Apache2 + php5.2.3 + adodb V4.94
+ mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
でInnoDBな環境なのですが、
データを追加した後、
トランザクションを開始してデータ更新、コミットした後
さらにtruncate tableを実行するとなぜかエラーになってしまい困惑しております。

具体的には以下のコマンドを発行して最後のtruncateでエラーが発生します。

insert into `foo` (id, c1, c2) values (null, 2, 3);
select last_insert_id(); -- id = 1
set autocommit=0; -- adodb->SmartTrans();
begin;
select * from `foo` where `id`=1 for update;
insert into `backup_foo` (bid, id, c1, c2) values(null, 1, 2, 3);
update `foo` set id=1, c1=4, c2=6 where id=1;
commit; -- adodb->CompleteTrans();
set autocommit=1;
truncate table `foo`; -- ここでエラー
-- "ERROR: Can't execute the given command because you have active locked tables or an active transaction"

DOSプロンプトのmysqlフロントエンドから同じようにしても問題がないので、
adodbの問題だと思ったのでバージョンを最新の4.97にあげたら直りました。
本当にありがとうございました。
0953nobodyさん2008/02/09(土) 10:31:19ID:???
>>718
09549532008/02/09(土) 10:43:46ID:???
スマンス
0955nobodyさん2008/02/09(土) 10:50:58ID:???
>>952は質問なのか、報告なのか、良く分からない件
0956nobodyさん2008/02/09(土) 12:16:05ID:???
微調整だけど
>>718 のテンプレにリンクって文もあったほうが参照しやすいかもしれない。
>過去スレ、関連スレ、関連リンク、FAQなどは>>2-10辺り
あと注意書きは必ず読んでくださいとか書くのは・・・やっぱ見ない人は見ないか。
0957nobodyさん2008/02/09(土) 12:58:11ID:???
次スレはこうなるんですね。わかります


1 名前:nobodyさん[] 投稿日:2008/02/10(日) 02:18:29 ID:fgH88yui
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
過去スレ、関連スレ、FAQなどは>>718

2 名前:nobodyさん[sage] 投稿日:2008/02/10(日) 02:20:14 ID:hG8akkdB
遠いよw
0958nobodyさん2008/02/09(土) 13:19:07ID:1j1ueCOn
PHPからrsyncでバックアップを取るバッチを作成したいのですが、普通にrsyncを叩くとパスフレーズを
求められてしまいます。proc_open()で標準入力を操作してみたのですが上手くいきませんでした。
PHP上からパスフレーズを投げてうまく同期を取る方法はないでしょうか。

0959nobodyさん2008/02/09(土) 13:51:06ID:???
で、次スレは64だから立てる人そこのところよろしく
0960nobodyさん2008/02/09(土) 14:02:58ID:???
何時もIDIDって言ってるやつのレス見て思うのだが
何でトリップじゃダメなんだ?
IDなんてIP変われば変わる訳だが

0961nobodyさん2008/02/09(土) 14:12:19ID:???
トリップでもありだからせめてどっちか書けばいい。
そもそもこのスレに荒らし常駐してなきゃそんなもんも必要ないはずだけどな。
0962nobodyさん2008/02/09(土) 14:40:34ID:???
つまり、荒らしが常駐してる事だな。
0963nobodyさん2008/02/09(土) 14:43:44ID:???
>>960
答えてもらいたいなら目立つようにageるだろ普通。
ID表示よりもスレをageるのが一番の目的。
偽者防止にもなるし一石二鳥。
0964nobodyさん2008/02/09(土) 14:47:45ID:???
トリップの方が面倒臭いだろ。バカじゃねーの?w
0965nobodyさん2008/02/09(土) 14:55:57ID:???
トリップOKで立てちゃったじゃねーか

【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/

>>964
日付変わればID変わる訳だが?

0966nobodyさん2008/02/09(土) 15:09:42ID:???
>>965
>日付変わればID変わる訳だが?
そこまで責任もたんでいい
0967nobodyさん2008/02/09(土) 15:22:50ID:???
>>966
そうなると23時以降は日付が変わるまで出きる限り質問するなって事になるぞ?

>>963
ageが目的の場合別にageを必須にしなくても良いよな
偽者防止が目的ならage必須は解るが
0968nobodyさん2008/02/09(土) 15:28:25ID:???
>>967
めんどくせえやつだな。ageときゃいいんだよとりあえず。
gdgdうっせーともう来なくていいよ。
0969nobodyさん2008/02/09(土) 15:29:41ID:???
>>968
こういう自分の意見が通らないくなるとすぐ切れる奴は間違いなくニート。市ね。
0970nobodyさん2008/02/09(土) 15:37:29ID:???
今日にも、露が日本に対して宣戦を布告。

9日午前7時半ごろ、日本の南約700キロの太平洋上の伊豆諸島南部で、
ロシア国籍とみられる航空機が日本の領空を侵犯した。侵犯は同30分から33分まで約3分間続き、
航空自衛隊百里基地のF15戦闘機など計24機が緊急発進(スクランブル)した。ロシア機の侵犯は06年1月以来。
防衛省によると、航空機はロシア空軍の爆撃機とみられる
レス数が950を超えています。1000を超えると書き込みができなくなります。