【PHP】下らねぇ質問はID出して書き込みやがれ 96
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0861nobodyさん
2010/07/06(火) 12:18:29ID:???0862nobodyさん
2010/07/06(火) 12:25:44ID:???あっさり解決するから。
0863857
2010/07/06(火) 13:34:39ID:???0865nobodyさん
2010/07/06(火) 21:14:40ID:???0866nobodyさん
2010/07/07(水) 00:12:26ID:???0867nobodyさん
2010/07/07(水) 00:32:00ID:???0868nobodyさん
2010/07/08(木) 08:59:00ID:Tsw8WKYJ【質問内容】
PHP で文字列を組み上げるのに、Ruby でいうところの #{} 的な
インラインテンプレートみたいなのってないでしょうか?
sprintf と + で処理の実現自体は可能なんですが、なんかごちゃごちゃしてしまうので
もうちょっとエレガントな記法ってないのかなと思って質問する次第です。
よろしくお願いします。
0869nobodyさん
2010/07/08(木) 09:53:28ID:???0870868
2010/07/08(木) 10:05:54ID:???ただ、それだけのために Smarty 組み込んだところで、余計可読性下げそうでちょっと勘弁。
ありがとうございました。
0871nobodyさん
2010/07/08(木) 10:51:51ID:???まあ、自分でテンプレート処理書いちまえばいいんだと思うけど。
実際は "This is a {$pen}";ですむんじゃねーの?
0872868
2010/07/08(木) 11:04:41ID:???単純に "{$var}" で展開されたのね・・・万事解決です、本当にありがとうございました。
ってかくと感謝してなさそうに見えて不思議ですが、ほんとに助かりました。ありがとう。
0873nobodyさん
2010/07/08(木) 11:07:30ID:???0874868
2010/07/08(木) 11:31:52ID:???0875nobodyさん
2010/07/08(木) 18:18:32ID:???アクセス規制用に以下の部分を別ファイルにしたいのです。
deny from 192.168.0.11
deny from 192.168.0.12
deny from 192.168.0.13
deny from 192.168.0.14
みたいな感じで。
httpd.confを触れるなら include ファイルパス
で、できるのですが。。。。
.htaccessではできないんどえしょうか?
0876nobodyさん
2010/07/08(木) 18:22:36ID:???0878nobodyさん
2010/07/08(木) 22:38:14ID:lGIUgqylDB名を、配列に取得して、プルダウンメニューで選択するようにしたいのですが
ボックスに表示する部分なのですが
mysql_list_dbsを使ってmysql_fetch_arrayでいけますか?
0879nobodyさん
2010/07/09(金) 03:37:15ID:xzt7gYmYユーザー定義関数内でデータベースを扱う場合、
各関数内に
//MySQLに接続
$con=mysql_connect(DB_SERVER, DB_USER, DB_PASS);
//データベース選択
mysql_select_db(DB_NAME,$con);
として一々データベースに接続しているのですが、
パフォーマンスは悪くならないのでしょうか?
みなさんがどうしてるか知りたいのです。
もし一々接続しなくてもいける方法、
もっとパフォーマンスが良くなる方法などがあればご教授ください。
0880nobodyさん
2010/07/09(金) 04:23:31ID:???0882nobodyさん
2010/07/09(金) 17:23:12ID:7d5uHpFB0883nobodyさん
2010/07/09(金) 17:29:30ID:???http://php.net/manual/ja/language.oop5.interfaces.php
0885nobodyさん
2010/07/09(金) 21:53:07ID:???同じ引数で接続する場合は既存の接続を再利用してくれるが
USE `database` を毎回発行するのは無駄なので、
リソースをどこかにプールしておくべき
function get_connection() {
static $c;
if (!$c) {
$c = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
mysql_select_db(DB_NAME,$con);
}
return $c;
}
0886名無しさん@そうだ選挙に行こう
2010/07/10(土) 04:56:21ID:WdQ5SbfS外部へのコネクションが極端に時間がかかるのです。
普通のテキストを読み込むだけで10〜20秒程度要します。
厳密には関係ないかもですが、ネットワーク帯域自体は細いわけではなくサイトは瞬時に表示されます。
ただのこの外部へのコネクション時は非常に時間がかかるんです。
PearのHTTP_Clientを使って接続しているのですが、何か情ありませんでしょうか?
0887名無しさん@そうだ選挙に行こう
2010/07/10(土) 04:58:08ID:WdQ5SbfSPHPは5.1,6です。
0888名無しさん@そうだ選挙に行こう
2010/07/10(土) 05:37:00ID:4d57FSnB$fruit = array("Apple" => "りんご", "Orange" => "みかん",
"Grape" => "ぶどう");
で例えばAppleの中にある文字が本当にりんごだった場合のみ
処理を続行するようなことってできますか?
もしAppleに「みかん」が入っていたら処理を中断するような感じにしたいんですけど
0889名無しさん@そうだ選挙に行こう
2010/07/10(土) 06:07:03ID:WdQ5SbfSif ($fruit['Apple'] === 'りんご') {
echo 'Appleはりんごだよー';
}
else {
echo '中断するよ';
}
887です。
原因はDNS周りにありそうです。汚しましてすいませんでした。
0890名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:37:46ID:2QvhDB/50891名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:41:51ID:2QvhDB/50ch PHP
http://script.s16.xrea.com/2ch/php/
Sch BBS
http://www.sanadake.info/sch/bbs/
0ch BBS
http://0ch.mine.nu/
0892名無しさん@そうだ選挙に行こう
2010/07/10(土) 14:58:38ID:g8ZkkqTi調べるにはどうすればいいのでしょうか?
$text = 'testName';
$type = 'Name';
if (strstr($text, $type)) {
echo $text."に".$type ."は含まれています";
}
とするれば一応出来るのですが、「末尾が$typeである」
という条件を加えたいと思います。やり方を教えてください。
0893名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:01:24ID:2QvhDB/5PHP5とかからだと、文字列の後方検索に対応していたはずだけど。
多くで動くようにするなら、正規表現。
0894名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:10:36ID:g8ZkkqTiif(preg_match("/(.*)+" . $type . "$/", $text, $array)){
echo $text."に".$type ."は含まれています";
}
0895名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:15:33ID:2QvhDB/50896名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:21:46ID:g8ZkkqTiもし別の条件で通ったり通らなかったり無いか自信が無くて・・・
とりあえずこれでいきます。
0897名無しさん@そうだ選挙に行こう
2010/07/10(土) 16:01:10ID:???if( substr( $text, 0-strlen($type)) === $type )
0898794
2010/07/10(土) 17:45:08ID:9rtjPRpZ0899名無しさん@そうだ選挙に行こう
2010/07/10(土) 17:57:03ID:???$title .= "test";
echo $title; //bakatest
0900794
2010/07/10(土) 18:18:52ID:9rtjPRpZ0901名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:32:13ID:0jjmMoFCちなみにPHPのネストの上限ってあります?
後者が内部的にはネスト扱いとなるなら、関係あるのかなーと思って。
0902名無しさん@そうだ選挙に行こう
2010/07/10(土) 23:11:38ID:o7F/R3R50903901
2010/07/10(土) 23:44:49ID:0jjmMoFCなるほど〜。どうもです。
インタプリタ的には前者を使った方が優しいかな。
0904名無しさん@そうだ選挙に行こう
2010/07/11(日) 01:19:52ID:C1oKqEx50905名無しさん@そうだ選挙に行こう
2010/07/11(日) 02:54:27ID:???function is_class_extended($base) {
foreach (get_declared_classes() as $super) {
$class = new ReflectionClass($super);
while ($class = $class->getParentClass()) {
if ($class->getName() === $base) {
return true;
}
}
}
return false;
}
echo 'Exception is extended? ', var_export(is_class_extended('Exception'), true), PHP_EOL;
echo 'stdClass is extended? ', var_export(is_class_extended('stdClass'), true), PHP_EOL;
0906名無しさん@そうだ選挙に行こう
2010/07/11(日) 08:03:31ID:???0907名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:42:10ID:???0908名無しさん@そうだ選挙に行こう
2010/07/11(日) 19:08:50ID:aH0kYx2z./aaaディレクトリ内においてディレクトリ名がbbb/
さらにその中のccc/までたどり着くには
どういった記述がよろしいのでしょうか
0909nobodyさん
2010/07/12(月) 10:44:20ID:???0910nobodyさん
2010/07/12(月) 18:29:55ID:2AUEyQFR正規表現で投票してみればいいさ。
0911nobodyさん
2010/07/12(月) 20:09:58ID:o18xCfm1$res = mysql_query($sql);
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
print_r($row);
}
とした時に、nameの部分が被って配列に代入されます。
フィールド名の指定を「user.name, category.name AS cate_name」
みたいに変更する以外に方法はないのでしょうか?
0912nobodyさん
2010/07/12(月) 21:29:01ID:r9oprwp5結局bind時に変数名がかぶるから、asった方がいいと思う。
0913nobodyさん
2010/07/12(月) 23:47:53ID:???その実装方法は地雷だからやめた方がいい。
「必要なメソッドが実装されているか」だけを検査すべき。
スマートにやるならインターフェイスを使う。
0914nobodyさん
2010/07/13(火) 00:07:54ID:???クラスが継承されている場合、継承元のクラスファイルを読み込む
ような仕様がしたいのですが、これも地雷になるのでしょうか?
0915nobodyさん
2010/07/13(火) 00:43:05ID:lEQMzPMj0916nobodyさん
2010/07/13(火) 00:51:22ID:???0917nobodyさん
2010/07/13(火) 01:02:31ID:???その場合、親クラスは絶対に読み込み済。だから読み込む必要などない。
やってみればすぐ分かるが、親クラスを読み込んでいない状態で子クラスは宣言できない。
0918nobodyさん
2010/07/13(火) 03:29:43ID:???クラス定義する時にどのファイルが必要か判ってるんだから
require_once 基底クラス を書いておくか、
オートローディングを使うのが定石
http://www.php.net/manual/ja/language.oop5.autoload.php
A.php
<?php class A {}
B.php
<?php require_once 'A.php'; class B extends A {}
C.php
<?php require_once 'B.php'; new B();
0919904
2010/07/13(火) 10:11:14ID:???ありがとうございます。
クラス定義する時、どのファイルが必要か分からないようにしたいんです。
フレームワークのように、柔軟に作ったファイルが読み込まれるような。
オートローディングは使っているのですが、
PHP4に対応させたい場合、どうすればいいかと思いまして。
また、918さんのような書き方もB.phpを各ファイルに書かなくてはいけず、
効率が悪いと思います。
0920nobodyさん
2010/07/13(火) 10:26:14ID:???俺も困ったけど諦めた。
0921nobodyさん
2010/07/13(火) 10:32:32ID:???0922904
2010/07/13(火) 10:35:05ID:???捨てても良いかもしれませんね。Class定義しにくいし。
オートローディングでやります。
0923nobodyさん
2010/07/13(火) 20:22:51ID:hmJ3ix43xmlのエレメントを再帰的に配列に格納したいと思いますが、
いい案が思い浮かびません。
xsltのように捜索してテンプレートにマッチさせ値を取得できればと思っています。
xpathを利用しても、取り出す要素は固定化してるし。
何かいい方法はありませんでしょうか。
0924nobodyさん
2010/07/13(火) 20:51:27ID:???$array = Zend_Json::decode(Zend_Json::fromXml($xml, true));
0925923
2010/07/13(火) 22:32:14ID:hmJ3ix43さすがに、アトリビュートも取得する方法はありませんでしょうか。
一応取得時にarrayでなく、objectも指定しましたがアトリビュートの値までは
取得できませんでした。
0926nobodyさん
2010/07/13(火) 23:06:59ID:???0927923
2010/07/14(水) 01:19:28ID:ez+KFUZ4ありがとうございました。
0928nobodyさん
2010/07/14(水) 08:49:45ID:XR87xhsM$b = '$a = "あいうえお"';
var_dump($b);
$aの変数を取り出す方法はありませんでしょうか。
0929nobodyさん
2010/07/14(水) 09:37:02ID:???$b = $a.'="あいうえお"';
じゃないのか?
シングルクォートで囲んでたら文字列扱いされるよ
0930nobodyさん
2010/07/14(水) 09:42:02ID:XR87xhsM0932nobodyさん
2010/07/14(水) 10:00:23ID:XR87xhsMjavascriptみたいですね。
0934nobodyさん
2010/07/14(水) 10:58:15ID:XR87xhsM単純にevalで評価するところとか。
0936nobodyさん
2010/07/14(水) 16:43:45ID:oe5o0zrzテーブルごとのキャッシュを消すためになんかいい方法ないでしょうか?
今のところSQL文を別テーブルに保存してそれを消すときに取り出してひたすらforeachしようかと思っているのですが。
0937nobodyさん
2010/07/14(水) 17:54:19ID:???■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:???0941nobodyさん
2010/07/14(水) 19:14:08ID:???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固定表示した投稿をページのようにまっさらな状態にしたいのですが。
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:???0951nobodyさん
2010/07/17(土) 12:57:59ID:???0952nobodyさん
2010/07/17(土) 21:59:34ID:z9LmUGB3もし出来るのであれば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:MZPafWAG0957952
2010/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:???最近は「オープンソースにする」という裏技もあるが。
友人と契約なんてできない?そもそも人のコードを勝手に盗む、あるいは盗むかもしれないと疑わないといけないような奴は友人ではない。
0960952
2010/07/18(日) 13:57:38ID:???まぁ友人に頼まれてって感じなのですが、個人で使うならいいのですが、おそらく他人のパソコンにも入れるだろうなと思いまして
例えばWindowsのダウンロード→インストールするタイプのフリー版以外のソフト(詳しく知りませんがCだかVisual C++なんかで作られたものなど)は簡単には他のパソコンには入れられませんが、
PHP何かで作ったものはApache下に置いたフォルダさえあれば言い訳で、どう対処するんだろうと疑問に思いまして
自分は自分の為だけにしか作ったことが無いもので、そういった場合どうするんだろうと思いまして
>商用なら色々方法あるし
具体的にはどのような対処法があるのでしょうか?
もし宜しければ教えていただきたいです
>>959
ライセンス契約ですか
確かにそれが一番だと思います
ただ、興味本位で聞かせていただきたいのですが、その場合中にはそういうのを無視して配布するような人もいて、こちらがそういう相手を認識できないこともあると思いますが、
そういう場合はどのようにするのがいいのでしょうか?
よく考えてみて、こういう問題ってPHPは難しいな、と思いまして
レス数が950を超えています。1000を超えると書き込みができなくなります。