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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2010/05/28(金) 16:33:44ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
09199042010/07/13(火) 10:11:14ID:???
>>917-918
ありがとうございます。

クラス定義する時、どのファイルが必要か分からないようにしたいんです。
フレームワークのように、柔軟に作ったファイルが読み込まれるような。

オートローディングは使っているのですが、
PHP4に対応させたい場合、どうすればいいかと思いまして。

また、918さんのような書き方もB.phpを各ファイルに書かなくてはいけず、
効率が悪いと思います。
0920nobodyさん2010/07/13(火) 10:26:14ID:???
なんだ、オートローディングのPHP4対応の話と言えば早かったのかもね。
俺も困ったけど諦めた。
0921nobodyさん2010/07/13(火) 10:32:32ID:???
もういいかげんPHP4は捨てていいと思うが
09229042010/07/13(火) 10:35:05ID:???
万が一の事を考えて想定していたのですが、
捨てても良いかもしれませんね。Class定義しにくいし。
オートローディングでやります。
0923nobodyさん2010/07/13(火) 20:22:51ID:hmJ3ix43

xmlのエレメントを再帰的に配列に格納したいと思いますが、
いい案が思い浮かびません。

xsltのように捜索してテンプレートにマッチさせ値を取得できればと思っています。
xpathを利用しても、取り出す要素は固定化してるし。

何かいい方法はありませんでしょうか。

0924nobodyさん2010/07/13(火) 20:51:27ID:???
require_once 'Zend/Json.php';
$array = Zend_Json::decode(Zend_Json::fromXml($xml, true));
09259232010/07/13(火) 22:32:14ID:hmJ3ix43
924さん、ありがとうございます。

さすがに、アトリビュートも取得する方法はありませんでしょうか。
一応取得時にarrayでなく、objectも指定しましたがアトリビュートの値までは
取得できませんでした。

0926nobodyさん2010/07/13(火) 23:06:59ID:???
false にすれば @attributes でのるはずです。
09279232010/07/14(水) 01:19:28ID:ez+KFUZ4
すごい!載りました。

ありがとうございました。

0928nobodyさん2010/07/14(水) 08:49:45ID:XR87xhsM
<?php
$b = '$a = "あいうえお"';

var_dump($b);

$aの変数を取り出す方法はありませんでしょうか。

0929nobodyさん2010/07/14(水) 09:37:02ID:???
何がしたいかよくわからんが、

$b = $a.'="あいうえお"';

じゃないのか?
シングルクォートで囲んでたら文字列扱いされるよ
0930nobodyさん2010/07/14(水) 09:42:02ID:XR87xhsM
文字列をphpのコードとして実行させたいです。

0931nobodyさん2010/07/14(水) 09:43:27ID:???
>>930
ttp://php.net/manual/ja/function.eval.php
0932nobodyさん2010/07/14(水) 10:00:23ID:XR87xhsM
ありがとうございました。

javascriptみたいですね。
0933nobodyさん2010/07/14(水) 10:40:28ID:???
>>932
なぜそうなる
0934nobodyさん2010/07/14(水) 10:58:15ID:XR87xhsM

単純にevalで評価するところとか。
0935nobodyさん2010/07/14(水) 14:54:55ID:???
スクリプト言語っぽさがでてるところだね。

>>933は読み間違いをしたんだと思う。
0936nobodyさん2010/07/14(水) 16:43:45ID:oe5o0zrz
ADODBのCacheFlushが全削除かSQL文ごとにしかキャッシュを消せないようなのですが、
テーブルごとのキャッシュを消すためになんかいい方法ないでしょうか?
今のところSQL文を別テーブルに保存してそれを消すときに取り出してひたすらforeachしようかと思っているのですが。
0937nobodyさん2010/07/14(水) 17:54:19ID:???
スレチ失礼。ATNDより、PHP関連の勉強会を紹介します。


■Ktai Library for cakephp 勉強会@関東
URL: http://atnd.org/events/6209
日時: 2010/07/17 11:00 to 15:00
場所: マイ・スペース&ビジネスブース池袋西武横店
参加条件: Masa-Pさんの本「PHPで作る携帯サイト デベロッパーズガイド」を持参、かつ4章までを自力である程度実装できている、もしくは出来る方


■OpenPNE3で学ぶsymfony勉強会
URL: http://atnd.org/events/6255
日時: 2010/07/24 15:00 to 17:00
場所: 手嶋屋新宿御苑オフィス
内容: この勉強会は毎回OpenPNE3の各機能、仕様にフォーカスを当て、ベースフレームワークであるsymfonyを理解していく勉強会です。
参加者はみんなsymfonyに興味のあるプログラマです。Webエンジニアとのネットワークづくりにもお役立てください。


■Python4PHPer 第7回講習会
URL: http://atnd.org/events/6344
日時: 2010/08/12 10:00 to 22:00
場所: 国立オリンピック記念青少年総合センター
内容: Python未経験者向けの、PythonとGoogle App Engine (GAE) の入門講座です。


■第11回 LOCAL PHP部勉強会
URL: http://atnd.org/events/6443
日時: 2010/08/28 14:00 to 16:30
場所: 札幌市産業振興センター セミナールーム9
0938nobodyさん2010/07/14(水) 17:56:29ID:???
スレチ失礼って何もしらずに書き込むよりたちわりいな。しね
0939nobodyさん2010/07/14(水) 18:16:54ID:???
しかもマルチだしな
0940nobodyさん2010/07/14(水) 19:12:50ID:???
Masa-Pさんの名前を出していろんなスレに書き込むとは・・・とりあえずMasa-Pさんを恨むわ
0941nobodyさん2010/07/14(水) 19:14:08ID:???
まさPとやらを叩けばいいってことだな?Masa-Fの兄弟か?
0942nobodyさん2010/07/14(水) 19:14:13ID:???
スパムにマジレスかっけー
0943nobodyさん2010/07/14(水) 20:31:35ID:???
マジレスしてないと思うけど
0944nobodyさん2010/07/15(木) 23:59:02ID:???
スレチ失礼(キリッ

分かってんなら書き込むな氏ね
0945nobodyさん2010/07/16(金) 13:45:22ID:???
ハァ?
0946nobodyさん2010/07/16(金) 14:04:06ID:???
何に対して怒ってんだよ
0947nobodyさん2010/07/16(金) 15:29:50ID:SH5lEMBU
WordPressで先頭に固定表示した投稿の、タイトルや投稿日時などを非表示にするにはどうしたらよいでしょうか。
固定表示した投稿をページのようにまっさらな状態にしたいのですが。
0948nobodyさん2010/07/16(金) 15:41:32ID:???
自己解決しました。
index.phpに、以下の方法で該当部分のコードを囲んで出来ました。
これを機にPHPの勉強をしたいと思います。お騒がせしました。

<?php if (is_sticky()) {?>
<?php } else{ ?>
該当部分のコード
<?php } ?>
0949nobodyさん2010/07/17(土) 04:00:38ID:thvaY0IW
質問させてください
画像をアップロードする時にリサイズしようと思っているのですが
リサイズ後の画像が真っ暗です
どこが悪いのでしょうか?
$src = @imagecreatefromjpeg($move_file);
$dst = imagecreatetruecolor($new_width,$new_high);
imagecopyresampled($dst,$src,0,0,0,0,$new_width,$new_high,$file_width,$file_high);
imagejpeg($dst,"./test.jpg");
0950nobodyさん2010/07/17(土) 04:11:39ID:???
$file_width どこで出してんだ?
0951nobodyさん2010/07/17(土) 12:57:59ID:???
一部しか出してこなかったらその変数がカラかどうかも分からないな
0952nobodyさん2010/07/17(土) 21:59:34ID:z9LmUGB3
Apacheの公開フォルダに入れたWebアプリケーション等のソースコードを、ブラウザからは実行できるものの、ソースコードは他人に見られないように保護するような設定って出来るんでしょうか?
もし出来るのであればWindows、Linux共に方法を知りたいです

例えば友人のパソコンにWebサイトなどを作ってやってApache下に置いたとしても、友人がそのソースコードを真似て他に配布したりというのを避けたいのです
Linuxであればパーミッションでと思ったのですが、相手のパソコンなので、普通にroot権限だとパーミッションなんか関係なくなるので意味が無いなと思いまして
どうしたらいいのでしょうか?
0953nobodyさん2010/07/17(土) 22:28:43ID:???
そんな友人と言えない仲なら何もしないでスルーする。
0954nobodyさん2010/07/17(土) 22:34:13ID:???
難読化でいいんじゃないですか
0955nobodyさん2010/07/18(日) 00:01:33ID:???
友人のパソコン使わせてもらって何を言ってるんだか
0956nobodyさん2010/07/18(日) 12:13:05ID:MZPafWAG
そもそもOSは何だ?
09579522010/07/18(日) 13:21:53ID:???
確かに、おかしな質問だということは分かるのですが、あまり自分のコードを他に使って欲しくない理由がありまして
友人のパソコンを使うのではなく、自分で開発したものをフォルダ内に入れるということです

OSは相手はWindowsXPとか7のHome版です
自分はCentOS使ってますけど

難読化以外には何か対策は無いのでしょうか?
例えば何かソフトでそのフォルダへのアクセスをガードできたとしても、ブラウザ上で実行が出来なければ意味が無いですし

皆さんは商用の場合はどのような対策をされているのでしょうか?
そのままシステムを丸々他にコピーされても困ると思うのですが
例えcopyrightを書いていたとしてもさほど関係なさそうですし
0958nobodyさん2010/07/18(日) 13:34:46ID:???
他に使って欲しくないなら友人のパソコンに入れなきゃ良いだけ。
なんでそれが友人なの?最初から隠さず商用と書けば良いのに。
商用なら色々方法あるし。
0959nobodyさん2010/07/18(日) 13:42:03ID:???
ライセンス契約で縛る。本当に価値のあるソフトウェアの場合、損害賠償額が凄まじい事になる。
最近は「オープンソースにする」という裏技もあるが。

友人と契約なんてできない?そもそも人のコードを勝手に盗む、あるいは盗むかもしれないと疑わないといけないような奴は友人ではない。
09609522010/07/18(日) 13:57:38ID:???
>>958
まぁ友人に頼まれてって感じなのですが、個人で使うならいいのですが、おそらく他人のパソコンにも入れるだろうなと思いまして
例えばWindowsのダウンロード→インストールするタイプのフリー版以外のソフト(詳しく知りませんがCだかVisual C++なんかで作られたものなど)は簡単には他のパソコンには入れられませんが、
PHP何かで作ったものはApache下に置いたフォルダさえあれば言い訳で、どう対処するんだろうと疑問に思いまして
自分は自分の為だけにしか作ったことが無いもので、そういった場合どうするんだろうと思いまして


>商用なら色々方法あるし
具体的にはどのような対処法があるのでしょうか?
もし宜しければ教えていただきたいです


>>959
ライセンス契約ですか
確かにそれが一番だと思います
ただ、興味本位で聞かせていただきたいのですが、その場合中にはそういうのを無視して配布するような人もいて、こちらがそういう相手を認識できないこともあると思いますが、
そういう場合はどのようにするのがいいのでしょうか?

よく考えてみて、こういう問題ってPHPは難しいな、と思いまして
0961nobodyさん2010/07/18(日) 15:18:50ID:???
レン鯖かなんかでwebapi的に動かしたら?
09629522010/07/18(日) 16:47:37ID:???
>>961
確かにそのような事も考えたのですが、アプリケーションによってはlocalhost/のようにネットに繋がなくても使えるものもありまして
特にDBを動かすようなものは

そこで振り返ってみて、PHPでそういう話題とか記事を見聞きしたことが無いな、と思いまして質問させてもらいました
そういう場合に自分ではどうにも対策が分かりませんでした
0963nobodyさん2010/07/18(日) 17:21:45ID:???
ローカルで動かさすならローカルにコード置くしかないだろ
0964nobodyさん2010/07/18(日) 18:42:48ID:VLBtU4j9
おかしいな人。
それはその人を信頼するしかないんじゃないの?
もしくは自分で自宅サーバーを作ってその友達しか入れないように
するとか。
後はライセンスだな。でもこっそりほかの人に配布したら
意味ないし、つーかPHPは難しいなというよりあんたが難しい。
後別にlocalhostでの起動ならphpでなくてもよかったんじゃないの?
0965nobodyさん2010/07/18(日) 20:06:43ID:WiuHCw18
リクエストされたURLを取る方法を教えてください。
ぐぐって$_SERVER ['REQUEST_URI']とか試しましたがドメイン部分が取れません。
他にも色々試しましたがドメイン部分移行の/の後しか取れません。
PHP5.2.11でCentOS、Apache2.2です。
0966nobodyさん2010/07/19(月) 00:05:30ID:???
$_SERVERをvar_dump()するだけで解決するのに
0967nobodyさん2010/07/19(月) 08:29:41ID:???
>>952
システム屋なんかはシステム入りのサーバーを丸ごと貸し出して
内部には入らせないようにするとこもあるらしいけど。
あくまで使用のみの権限にして。まあWEBAPIみたいなもんだけど。
難読化は解読が難しくなるだけで、ブラウザ上でも実行可能だけど。

実は以前これで揉めた事があるので、良い対策方法を俺も知りたい。
0968nobodyさん2010/07/19(月) 11:10:14ID:???
中の確認できないようなサーバーを社内にって
0969nobodyさん2010/07/19(月) 11:26:37ID:???
phpをc++に変換して実行
0970nobodyさん2010/07/19(月) 13:52:04ID:???
>>967
PHPはこの点は難しいよね。
ちょっとPHP知ってる人がいればすぐに真似されたり転用され得るから。
例えばVC++で作られている(と思われる)ソフトなんかは例えばテキストエディタで開いても文字化けしてたりして、詳しくない人はビビってそれ以上やらないだろうけど。
難読化はただ相手に転用される時に判別付きにくくする程度の気休めだろうけどね。




>>969
自分はC++はやったこと無いんだけど、C++に変換とか出来るの?
またそういうので対策になるの?
0971nobodyさん2010/07/19(月) 16:14:03ID:2i1rbnSf
コンパイルすりゃーいい
0972nobodyさん2010/07/19(月) 16:30:35ID:???
すみません 教えてください。 whileを使ってHTMLでテーブル作成するとき、
<?php
while ($row1 = mysql_fetch_array($res1)) {
print "<tr>\n";
print "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";
print "</tr>\n";
}
?>
<td>を<td align="center">とか余分なタグを入れるとエラーがでます。
<table>も同じくです。printするだけなのに、どうしてエラーになるのでしょう?
0973nobodyさん2010/07/19(月) 16:37:57ID:???
"を\"でエスケープしてみたらどうなの
0974nobodyさん2010/07/19(月) 17:51:26ID:sHIUCWJE
レッツPHP!様の新着ブロガー(ttp://php.s3.to/net/)というプログラムを利用しようと思い
RSSサイトURLをひとつだけ設定し、記事表示件数を5としました。
すると表示される一番最初の記事だけが表示され
あとの四行が全て(1970/01/01)と表示されてしまいます。
これは何がいけないのでしょうか?
0975sage2010/07/19(月) 17:53:10ID:Ug5vBszx
print "<td><b><a href=./e=&view_id=".$row1['s_name'].">" . $row1['s_name']."</a></b></td>\n";

シングルクォート使っちゃいなよ。
0976nobodyさん2010/07/19(月) 18:31:31ID:???
>>974
var_dump($ch) してみたら?
0977nobodyさん2010/07/19(月) 23:12:05ID:???
>>973.975
ありがとうございます。 HTMLをprintする時は注意が必要なんですね。
問題点が見えました。
0978nobodyさん2010/07/19(月) 23:34:04ID:???
>HTMLをprintする時は注意が必要なんですね

いや、そうじゃなくてな、
文字列の中に(中略)というわけでそれを言うなら「時は」じゃなくて「に限らず」だな。
0979nobodyさん2010/07/20(火) 01:26:17ID:???
次は

$str = "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";

でエラーになります><

だな
0980nobodyさん2010/07/20(火) 21:20:03ID:???
別に難読化しても解読できるような友人なら初めから>>952に製作を頼まなくね?
だから難読化で無問題だと思う。
0981nobodyさん2010/07/20(火) 23:02:30ID:???
実はPHPの上記のような商用の場合の対策はあるのだよ
そのパソコンでしか使えないようにするような事は
ただ、コードが複雑になってしまう

難読化に関してはまぁしてもしなくてもいいんだけど、出来るならした方がいいと思うね
0982nobodyさん2010/07/21(水) 02:35:12ID:FRhRPQxh
shimmieという画像投稿SNSライクなソースコードを日本語化して運用してるのですが、

http://lh4.ggpht.com/_M6yDAZ34keM/TEXa-23DdOI/AAAAAAAAAEU/pt0imvSvoDs/mbstr.jpg

上記画像のようにフォームから出力された文章の一部がランダムに文字化けしたり、半角空白が挿入されたりしています。
色々試すと、ある程度の長文でマルチバイト文字のみがこうなるようです。
php.iniを見直しても分からずじまいで、原因はどこにあるのでしょうか。
0983nobodyさん2010/07/21(水) 04:07:51ID:???
mb_convert で変換してるなら mb_detect_order の設定が怪しいかも・
それか自前でへんなエスケープしてるとか
0984nobodyさん2010/07/21(水) 22:29:40ID:???
>>982
の内容にちょっとワロタ
0985nobodyさん2010/07/22(木) 00:31:23ID:9L3V/lR5
本当にくだらない質問なんですが
$cgi = $context->getCgi();

この場合の「->」ってどういう働きをしているのでしょうか
0986nobodyさん2010/07/22(木) 00:54:29ID:???
>985
>5 の4。ちなみに名前は「アロー演算子」と言うのだが、あまりこの名称を使っている人を見ない。
つうかこのスレだけで数回出てきているので「->」で検索。

まずは配列(array、連想配列)を思い浮かべてくれ。
$user["name"]とか$user["age"]とか、そういう変数を複数持てるアレだ。

配列だとキー名は単なる文字列だが、オブジェクトの場合はキー名の代わりに変数名みたいなものを使える。
$user->age とか $user->name とかいう形でアクセスできる。 ちなみにうっかり$user->nmae とかタイプミスするとエラーになる。
んで、オブジェクトを使っている場合は、値だけではなく「関数」も持たせられる。
$user->get_price()とかすると、$userの持ってるget_price()という関数が呼び出される。
この関数の中では、$user->ageや$user->nameのような、「オブジェクトの持つ変数」も使えるし、$user->get_gender()のような他の関数も(書いてあれば、だが)呼べる。

詳しくはマニュアルにて熟知すべし。
http://jp2.php.net/manual/ja/language.oop5.php
0987nobodyさん2010/07/22(木) 01:56:48ID:9L3V/lR5
>>986
すばらしいお返事です!ありがとうございました!
0988nobodyさん2010/07/22(木) 02:49:53ID:???
テンプレにあるんだけどな!
0989nobodyさん2010/07/22(木) 08:46:02ID:???
phpでローカルのプログラムをexec() で実行すると遅いんですが、
なにか理由があるのでしょうか。

0990nobodyさん2010/07/22(木) 14:09:39ID:NJJj5G9E
投票サイトで連続投稿とか投票ボタン連打されると
データ保存用のdatファイルの内容が消えたりするんだが
何が原因なの?

サイトurl
http://test001.atumari.net/miku/miku.php
ソースurl
http://test001.atumari.net/miku.zip
0991nobodyさん2010/07/22(木) 14:38:59ID:???
IP抜かれちゃったぜ
0992nobodyさん2010/07/22(木) 14:40:14ID:???
サイトもソースも見てないけど、どうせ排他制御してないんでしょ
0993nobodyさん2010/07/22(木) 14:55:10ID:NJJj5G9E
flock($file,LOCK_EX);
はしてるけどやり方が間違ってるのかな?
0994nobodyさん2010/07/22(木) 15:09:19ID:???
parse_ini_fileで読み込むiniファイルの仕様についての
まとまった説明ってどっかにない? がんばって探してる
けどどうにも見つけられない
0995nobodyさん2010/07/22(木) 15:22:24ID:???
>>993
やり方が間違っている。

排他制御対象のファイルは読むときもロックしないとだめ。
そうじゃないと書き換え中の半端な状態のファイルを読んで
しまうことがある。

"w"でfopenするとその時点でファイルが空になるので、その
あとでflockしても手遅れ。ロック外で書き換えたことになる。
0996nobodyさん2010/07/22(木) 16:54:25ID:NJJj5G9E
>>955
ありがとうございます!
0997nobodyさん2010/07/22(木) 21:45:15ID:???
>>994
iniなんてwindows世界のものなんだから[*]
「PHPで」という風に探さずに
↓という方向で探せばけっこう見つかるよ。
http://www.google.co.jp/search?hl=&q=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E6%9B%B8%E5%BC%8F&sourceid=navclient-ff&rlz=1B3GGLL_jaJP384JP384&ie=UTF-8&aq=1&oq=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB

[*]厳密にそうなのかどうかは、まあ知らん。
0998nobodyさん2010/07/22(木) 22:18:31ID:???
次スレはどこ?
0999nobodyさん2010/07/23(金) 01:27:05ID:???
999
1000nobodyさん2010/07/23(金) 01:27:48ID:???
このスレは1000の風になりました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。