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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/03/17(水) 23:17:41ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0412nobodyさん2010/03/28(日) 11:00:32ID:???
気が向いたら何時もキャッシュとクッキーを削除している俺のような奴もいる。
そこまで気にするならnameとpasswordで取り扱うしかないかと。
0413nobodyさん2010/03/28(日) 11:05:48ID:???
>>411
410は408に対する409について書いたの
0414nobodyさん2010/03/28(日) 15:40:46ID:???
クッキー→クライアント側でコントロールできてしまう、よって×

IP→固定IPでない限り常に流動的、よって×

同一人物特定可能な機器の固有情報→ないわけではないが機器がない人もいるしセキュリティ的にもやってはいけない、よって×

IDとパスを登録してもらって鯖側で管理する→会員制サイト向け、もっとも現実・実用的
ログイン後にユーザ別に操作する情報があるなら話は別だが「こんにちは名前さん」のためだけにログインさせるのはアフォ

結論、動的ページに感動して初心者にはありがちな行為だがやめたほうがいい。
俺も最初はうれしくてついついサイトのトップにJavaScriptで時計表示したり、
むやみに訪問者のIP出してみたりしたっけなぁ。
今思えば痛々しい。
0415nobodyさん2010/03/28(日) 15:54:28ID:???
IDとパスものクッキー使うが
yahooとか
0416nobodyさん2010/03/28(日) 16:24:20ID:???
そりゃそうだ毎回のログインが大変だからな。
>>414のクッキーってのは初回訪問時(orクッキーが消えた次の訪問時)に
名前を入力させてそれをクッキーに入れるということでしょ。
でもまークッキーが見つからなかったら結局何かを入力するという点では一緒なわけだから、
普通にクッキーが見つからなかったら名前入力させて食わせるでいいと思うけどな。
ただそんなめんどくさいのをユーザーは望まないし、
作り手の自己満足だからやめたほうがいいとは思うが。
0417nobodyさん2010/03/28(日) 17:16:58ID:I5spPOJr
携帯向けサイトを作成していて、認証やID登録にSSL通信を使おうと考えています。
ベリサインのグローバルIDは高すぎるので他の安いものを探しているのですが、
たとえば、ベリサインのセキュアIDにして、
対応している端末はSSL通信を行い、非対応の機種はなんらかの判別処理をして
非SSL通信にしてしまうなんて、都合の良い方法はあるでしょうか?
0418nobodyさん2010/03/28(日) 17:18:04ID:LnmjTtuZ
basic認証を破る方法を教えてください
0419nobodyさん2010/03/28(日) 18:32:25ID:???
ベリサインの手続き踏んで高い金払ってるサイトだから信頼が得られるのに
金払わずに取り繕うなんて馬鹿じゃないの
0420nobodyさん2010/03/28(日) 19:00:28ID:I5spPOJr
>>419
おっしゃることはごもっともです。
ただ、利用者がセキュリティを気にする層と気にしない層がいて、
古い機種を所有している人に特に気にしない層が当てはまるんです。
なので、古い機種を使用しているあまりセキュリティを気にしない人は非SSLで運用を考えているんです。
0421nobodyさん2010/03/28(日) 19:03:21ID:???
セキュリティを気にするのはサイト管理者だろうが
自分がケチなのを利用者のせいにするな
0422nobodyさん2010/03/28(日) 19:09:19ID:???
>>421
営利目的でない為、運用の都合上、コストがそのまま利用者にかかるんですよ・・・。
コストが上がっても、私の腹は痛みません・・・。
扱う情報がメールアドレスと氏名くらいなので、できればSSLを使わずにしたいのですが、
SSLじゃないと嫌だという利用者もいるので、上記のような方法を考えているんです。
0423nobodyさん2010/03/28(日) 19:52:07ID:???
言ってることがよく分からない。

SSL要らないからコスト上げるな、って顧客と
コストかかってもいいからSSLを入れろ、って顧客がいて

どっちにも対応できる道を探してるということ?
0424nobodyさん2010/03/28(日) 19:55:32ID:???
利用者がいるんでしょ
0425nobodyさん2010/03/28(日) 20:17:00ID:???
単純に機種別にSSLかけるかかけないかしたいって読めばいいんじゃねーの
0426nobodyさん2010/03/28(日) 20:40:56ID:???
SSL通信はするけど認証機関はとおさなければ良いんでは
無料
0427nobodyさん2010/03/28(日) 20:42:07ID:???
無料の認証機関ってなかったっけ?
0428nobodyさん2010/03/28(日) 20:49:55ID:???
要するに証明書が対応、非対応の判別処理がphpでできるか?って事じゃね
SSL、非SSLのリンク並べた方が楽じゃね
使いたい奴は使えと、使いたいけど非対応の端末は買い換えろと
0429nobodyさん2010/03/28(日) 21:04:02ID:???
その方法は単純にSSLに対応したサイトだわな
0430nobodyさん2010/03/28(日) 21:04:33ID:???
Rails使えば解決するよ!
0431nobodyさん2010/03/28(日) 22:54:42ID:rVlISy+X
PHPでunixtimeを表示したいのですが、どのようにすれば表示できますか?
0432nobodyさん2010/03/28(日) 22:56:57ID:I5spPOJr
>>423
そういうことです。
>>428
やっぱり、それが賢明ですかね。
>>426
携帯サイトなので、たしかauは通信できなかったように思います。
実機がないのでわからないのですが、そういった記事を目にしたことがあるので。
0433nobodyさん2010/03/28(日) 22:58:42ID:???
>>431
print time();
0434nobodyさん2010/03/28(日) 23:01:51ID:rVlISy+X
>>433
ありがとうございます><
0435nobodyさん2010/03/29(月) 09:47:34ID:4cY5kwZW
すみません、質問させてください。
centOS環境にて、公開フォルダ下にphpMyAdminを入れました。
そしてhttp://localhost/phpMyAdminとブラウザで入れたのですが、
You don't have permission to access /phpMyAdmin on this server.
とエラーが出ました。
で、パーミッションを見てみた所、drwxr-xr-x となっておりました。
しかし、アクセスできるフォルダ(例えばhogeフォルダ)もdrwxr-xr-x とパーミッションはなっておりました。
同様に-rw-r--r--とパーミッションの与えられているphpMyAdmin内のindex.phpにも当たり前でしょうが、
http://localhost/phpMyAdmin/index.phpでアクセスしてもダメでした。
どのようにすればphpMyAdminを実行出来るのでしょうか?
0436nobodyさん2010/03/29(月) 09:56:22ID:???
ちなみに公開ディレクトリはapacheの初期設定のまま?
0437nobodyさん2010/03/29(月) 10:11:49ID:???
>>436
ハイそうです
centOS、Apacheの初期設定のままです
特にphp.iniとかは何もいじっておりません
0438nobodyさん2010/03/29(月) 11:37:55ID:FXTZBx7Y
ローカルでメール送信プログラムのテストをしたいです。

さくらのメールボックスなどのメールアカウントを持っていますが、
POP before SMTPなどややこしい機能があるみたいです。

この場合、ローカルにメールサーバを立てるのが一番手軽でしょうか?
0439nobodyさん2010/03/29(月) 11:46:10ID:???
うん
0440nobodyさん2010/03/29(月) 11:51:52ID:???
お手軽
「windows php メール」とかで検索あれ
0441nobodyさん2010/03/29(月) 11:53:00ID:FXTZBx7Y
ありがとうございました!
0442nobodyさん2010/03/29(月) 13:51:48ID:Th+hpH2Z
お願いします。
これからphpを学ぼうと、Amazonでphpの本を探してみたのですが、どれも高くて気軽に買えません。
phpというと、Wikiなどを見ながらApacheでrep2を一週間かけて動かしたぐらいしか経験無いのですが、
そんな初心者にオススメのphpの本を教えていただけませんでしょうか。
0443nobodyさん2010/03/29(月) 13:55:43ID:???
まずhttp://www.php.net/manual/ja/の言語リファレンスを全部やってから家
0444nobodyさん2010/03/29(月) 14:09:14ID:???
>>442
今までにCとかC++とかPerlとかJavaとか、まあそのあたりの言語でのプログラミングを
してたなら、「PHP 入門」とかでぐぐって出てくる適当なサイトで十分いけるよ。
それでどういうものなのか、とりあえずどう使うのかを掴んだら、後は>>443を随時参照でおk。
0445nobodyさん2010/03/29(月) 15:10:31ID:???
smartyのアンチと信者ども前スレの続きするぞ
ttp://pc11.2ch.net/test/read.cgi/php/1269841264/
0446nobodyさん2010/03/29(月) 15:12:34ID:???
知るかバカ
0447nobodyさん2010/03/29(月) 17:20:21ID:1Ehd5H1b
throwの挙動なんですが、returnと同じでthrowしたらその関数はそこで終了するということでよろしいですか?
0448nobodyさん2010/03/29(月) 17:27:58ID:???
せやで!
04494472010/03/29(月) 17:44:03ID:???
ありがとうー
0450nobodyさん2010/03/29(月) 18:12:06ID:???
throw new Exception();
return;

と書いてた俺に一言
0451nobodyさん2010/03/29(月) 18:16:46ID:???
(;゚Ж゚;)ブホォ
0452nobodyさん2010/03/29(月) 18:16:47ID:???
読みやすくていいと思います・・
0453nobodyさん2010/03/29(月) 19:25:19ID:???
いまどきのまともなコンパイル型の処理系なら、
こんとろーるふろーがそこまで行かないぞって警告くらい出してくれたろうけどなぁ。
0454nobodyさん2010/03/29(月) 19:25:45ID:MUiCUZA9
【OS名】linux
【PHPのバージョン】php5.26
【連携ソフトウェア】特になし
【質問内容】

ブログのコメント機能に似たものをPHPで実装しています。

これを自分のサイトの各ページに読み込ませることで擬似的にブログの様に閲覧者が各ページで
自分の意見を自由に投稿できるようになります。

そこで疑問なのですが、自動的に生成するログファイルの命名規則をどう扱うべきかで悩んでいます。
各ページ毎にログは独立させるつもりなので、ページが複数あれば必然的にログファイルも複数になります。
メンテナンスのことを考えるとログファイル一式は一カ所のフォルダに保存しておいた方がいいと思います。

たとえば次のようなページ構成の場合・・・

/public_html/FolderA/index_1.html
              index_2.html
        /FolderB/FolderC/index_1.html

3つのページにコメントスクリプトを埋め込むので合計3つのログファイルが生成されるわけですが

/public_html/log/

フォルダに3つのログファイルを保存するとき、ログファイルそれぞれのファイル名はどういう規則で
自動生成するべきでしょうか?ちなみにlogフォルダの下にはフォルダは一切作らないでおきたいと
思っています。またメンテナンス性を高めるためログファイルの名前はランダムな文字列ではなく
どのページに関するものか人目で判別できるようなものにしたいと思っています。
0455nobodyさん2010/03/29(月) 19:29:39ID:???
お前の都合に合わせろよ
0456nobodyさん2010/03/29(月) 22:39:29ID:???
PHPのランダム表示についての質問です。
ランダム表示をしてさらに表示頻度を設定したいのですが、どのようにすればいいか教えてください。

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$length = count($rndtxt) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$rndtxt[$num]");
?>

現在は上のPHPで広告をランダム表示しています。
これのテキスト1を60%、テキスト2を20%、テキスト3を20%の割合で表示させたいです。

どのように書けばそのように設定できるのでしょうか?
0457nobodyさん2010/03/29(月) 22:48:10ID:???
>>456
$weight = array(0, 0, 0, 0, 0, 0, 1, 1, 2, 2);
$num = $weight[round(rand(0, count($weight) - 1))];
print("$rndtxt[$num]");

それか0から9のランダムな整数出して
if ($num < 6) {
$rndtxt[0];
}
else if ($num < 8) {
$rndtxt[1];
}
..

とか
広告をランダムに出したいっていう質問かなり多いなw
0458nobodyさん2010/03/29(月) 22:55:14ID:???
>>457
えっ11%で表示したくなったらどうすんの?100個の要素作るの?w
0459nobodyさん2010/03/29(月) 23:02:25ID:???
>>458
スレタイ
0460nobodyさん2010/03/29(月) 23:03:19ID:???
>>457
ありがとうございます。
完成型は下を単純に入れ換えてこうなるのですか?

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$weight = array(0, 0, 0, 0, 0, 0, 1, 1, 2, 2);
$num = $weight[round(rand(0, count($weight) - 1))];
print("$rndtxt[$num]");
?>

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
if ($num < 6) {
$rndtxt[0];
}
else if ($num < 8) {
$rndtxt[1];
}
..
?>
0461nobodyさん2010/03/29(月) 23:10:18ID:???
>>460
上のほうはたぶんそんなんでいけると思うけど、
下の方は別のやり方で

$num = rand(1, 10);//分かりやすく1から10の整数
if ($num <= 6) {//1から6の6割の確立
print $rndtxt[0];
}
else if ($num <= 8) {//7から8の2割の確立
print $rndtxt[1];
}
else {//9から10の2割の確立
print $rndtxt[2];
}
0462nobodyさん2010/03/30(火) 00:25:21ID:???
>>461
丁寧にありがとうございます。
0463nobodyさん2010/03/30(火) 01:48:09ID:vJQ1xggI
クラスオブジェクトを生成するとき、条件に合致しない場合はオブジェクトを生成せずnullを返したいと思っています。

たとえば、MyClassというクラスを作製する際初期値numberが正の値のときは

if ( $obj = new MyClass(5) )
{
・・・
}

普通にオブジェクトを生成し、負の値の時は

if ( $obj = new MyClass(-3) )
{
・・・
}

オブジェクトを生成せずnullを返すようなプログラムを組みたいです。

そういうクラスを作製することは可能でしょうか?
もし可能だとしたら(おそらく__construct($number)に)どう記述すれば実現できますか?
0464nobodyさん2010/03/30(火) 02:00:03ID:???
オブジェクト生成では返り値指定できないでしょ
0465nobodyさん2010/03/30(火) 02:21:32ID:vJQ1xggI
返り値は指定できませんか・・・

代わりに「条件を満たさないときはオブジェクトを生成しない(=newに失敗する)」ようにはできないでしょうか?
0466nobodyさん2010/03/30(火) 02:26:05ID:wKtmg6ou
ですのでで来ません
0467nobodyさん2010/03/30(火) 02:51:17ID:???
>>465
正の値しか受け付けないコンストラクタに何かのミスで負の値を渡された時には
コンストラクタ内で例外を投げて止めるが、
正負どちらの値も有り得るのならstaticなメソッドを用意した方が行儀がいい

class Klass { public static function create($c) { return $c ? new self() : null; }}
0468nobodyさん2010/03/30(火) 03:02:58ID:vJQ1xggI
>>467
ありがとうございました。
メソッドのほうでnullを返すようにさせますm(_ _)m
0469nobodyさん2010/03/30(火) 05:50:51ID:g1YqBDS1
<?php
$foo = 'Bob'; // 値'Bob'を$fooに代入する。
$bar = &$foo; // $fooを$barにより参照
$bar = "My name is $bar"; // $barを変更...
echo $bar;
echo $foo; // $fooも変更される。
?>

これで'My name is Bob'が2回出力されるのがわからない。
$fooが書き換えられたら、元の 'Bob' という文字列は "My name is $bar" に上書きされて消えちゃうんだよね?
そしたら$barと$fooをechoで出力するときに 'Bob' という文字列はどこから来てるの?
0470nobodyさん2010/03/30(火) 07:22:34ID:???
非国民端末iPhoneだけを観覧禁止にすることは可能ですか?
0471nobodyさん2010/03/30(火) 07:28:31ID:???
pandaなんちゃらを弾けばいいんじゃね?ワイファイは知らんが
0472nobodyさん2010/03/30(火) 10:36:09ID:???
>>469
右から評価される

$bar = "My name is $bar"; // $barを変更...
ここは

$bar = "My name is Bob";
という動作になる。
0473nobodyさん2010/03/30(火) 17:36:46ID:dG8PavZ2
$arrayには以下が入ってます。
[0] => 1-text [1] => 2-text [2] => 21-text [3] => 27-text [4] => 3-text
rsortで配列を並べ変えてるんですが
[0] => 3-text [1] => 27-text [2] => 21-text [3] => 2-text [4] => 1-text
このようになります。
下記のように数が多い順に並べ替えたいのですがどの関数を使えばいいのでしょうか?
[0] => 27-text [1] => 21-text [2] => 3-text [3] => 2-text [4] => 1-text
0474nobodyさん2010/03/30(火) 17:40:39ID:???
>>473
http://jp.php.net/manual/ja/function.natsort.php
04754732010/03/30(火) 18:00:50ID:dG8PavZ2
>>474
こんな関数あるの知りませんでした。
ありがとうございます。
0476nobodyさん2010/03/30(火) 18:19:22ID:???
新アルゴリズム 納豆ソート
0477nobodyさん2010/03/30(火) 18:41:47ID:jgFCVhFf
アクセスカウンタの作り方を下記ページで勉強してるのですが、
http://www.phpbook.jp/appli/accesscounter/index3.html
<?php
$counter_file = 'counter.txt';
$counter_lenght = 8;
$fp = fopen($counter_file, 'r+');
★if ($fp){
★if (flock($fp, LOCK_EX)){
$counter = fgets($fp, $counter_lenght);
$counter++;
rewind($fp);
if (fwrite($fp, $counter) === FALSE){
print('ファイル書き込みに失敗しました');
}
★flock($fp, LOCK_UN);
}
}
fclose($fp);

★のつけたところがよくわかりません・・・。if文の == TRUEが省略されてるんだと思うんですが、
全体の意味が理解できません・・。1つ目のifがtrueで処理がされて、その次のif (flock($fp, LOCK_EX))
ここはどういうことなのでしょうか?読み書き禁止 == TRUEの場合?
0478nobodyさん2010/03/30(火) 18:47:09ID:???
>>477
★1つ目:fopenに成功した時
★2つ目:flockでの書き込み禁止ロックが成功した時
★3つ目:flockでのロックを開放する
0479nobodyさん2010/03/30(火) 18:50:45ID:???
>>477

$fp = fopen();
でファイルを正常に開くと$fpはファイルへのポインタになって、失敗するとfalseになる
if ($fp) は if ($fp != false) と同じ

flock($fp, LOCK_EX)は戻り値で成功したらtrue、失敗したらfalseを返す

if (flock($fp, LOCK_EX)){
は
$succeed = flock($fp, LOCK_EX);
if ($succeed){
と同じ
0480nobodyさん2010/03/30(火) 18:53:51ID:???
リソース型は特殊だけどリソースが返ってくるということはbooleanでtrueであることだと思えばよい。
そのほかの型については、
http://php.net/manual/ja/types.comparisons.php
例えば、$x = 0;のboolean項目はFALSEとなっているので、
if ($x)は通らないがif(!$x)は通る。
04814772010/03/30(火) 19:03:25ID:???
うおーみなさん素早いレスありがとうございます!
ひとつづつ噛み砕いてみます!
04824772010/03/30(火) 19:14:26ID:???
大変すみませんまたよろしいでしょうか・・・・
$fp = fopen($counter_file, 'r+');
★if ($fp){
ここでr+にして、まず読み書き許可しますよね?

★2つ目 flockでの書き込み禁止ロック
ここで、どうしてすぐに書き込み禁止にしてしまうのでしょうか・・?
イメージとして、読み込んだテキストから数字8を取り出して、1つ足して数字9にして
ファイルを閉じる、というのがあるのですが、書き込み可能にしてすぐ書き込み禁止にする
行為がイメージつきません・・・だもんで、★2つ目から下の文の内容もよくわからんのです・・・

04834772010/03/30(火) 19:16:55ID:???
あれ?禁止ロックは条件指定で、実際はしてないのかな?混乱してきた・・・・
0484nobodyさん2010/03/30(火) 19:20:00ID:???
>>483
排他処理でぐぐれ
0485nobodyさん2010/03/30(火) 19:22:29ID:???
>>477のリンクが開けない
0486nobodyさん2010/03/30(火) 19:43:54ID:???
//カウンター数が書かれてるファイル
$counter_file = 'counter.txt';
//カウンターの最大桁数
$counter_lenght = 8;
//ファイルオープン成功時リソースを$fpにセット失敗時は$fp = false;
$fp = fopen($counter_file, 'r+');
//オープン成功してたら
if ($fp){
 //他の訪問者と処理かぶった時にデータが狂わないようにロック
 if (flock($fp, LOCK_EX)){
  //カウンター数を桁数分読み込む
  $counter = fgets($fp, $counter_lenght);
  //読み込んだカウンター数に1足す
  $counter++;
  //ファイルを上書きするためにファイルポインタを先頭にもっていく
  rewind($fp);
  //新しい数値(足した数値)を上書きする
  if (fwrite($fp, $counter) === FALSE){
   //失敗時
   print('ファイル書き込みに失敗しました');
  }
  //ロックを解放し他の人が処理できるようにする
  flock($fp, LOCK_UN);
 }
}
fclose($fp);
0487nobodyさん2010/03/30(火) 19:47:02ID:???
どうでもいいがlenghtじゃなくてlengthな
0488nobodyさん2010/03/30(火) 21:24:19ID:???
恥ずかしいけど間違いじゃないからどーでもいい
0489nobodyさん2010/03/30(火) 21:53:56ID:???
>>488
間違いは間違いだろwww
0490nobodyさん2010/03/30(火) 23:11:49ID:PJO3T1x9
最近wordpressを使いだしてPHPに興味が出てきたんですが、
wordpressテーマみたいに、PHPでソースを吐き出させるPHPと
アプリを作ったりするPHPは別物なんでしょうか?

まずはブログのテーマを作って、その後は検索システムとか掲示板とか作りたいなって
思ってるんですが、書籍を見てても、ブログ系はブログ。アプリはアプリみたいにわかれてるんで、
同じものなのか自信がなくなってしまいました。
0491nobodyさん2010/03/30(火) 23:21:21ID:???
PHPで作れるアプリケーションは大きく分けて3つ

Webアプリケーション
デスクトップアプリケーション(ただし向いてはいない)
コンソールアプリケーション(コマンドラインから使うやつ)

んでブログやらブラウザでサーバにアクセスして動かすものはみなWebアプリケーションだ
0492nobodyさん2010/03/30(火) 23:43:46ID:PJO3T1x9
なるほど、つまり僕が言う物は2つとも同じ種類なわけですね。
ありがとうございます。

これですっきりしたんでwordpressのテーマ作成の本でも探してみます。
0493nobodyさん2010/03/30(火) 23:53:27ID:???
「めんどくさい、使いにくい」と思いながらもWindows使うよりLinux使う比率が圧倒的に高い俺はもはや変態なんだろうな・・・
0494nobodyさん2010/03/31(水) 00:09:51ID:???
if や while が複数の判別式をもっているとき、左から順番に判別されていって false が一つでも返ってきた
段階でそれより右側の判別式の判別は中止されるとおもってよろしいですか?

たとえば

if ( 5 < 0 && 2 < 5)

という判別式の場合、最初の 5 < 0 でfalseが返ってきた時点で残りの 2 < 5 の評価は放棄されると
思ってよろしいですか?
0495nobodyさん2010/03/31(水) 02:01:29ID:???
ホントくだらない質問で申し訳ないのですが
WEB上にあるPHPはダウンロードすることは可能ですか?
とあるスレで外人が親切にfixedしてくれて、ほれこれで動くぞ持ってけ
いわれてるけど名前をつけてリンク先を保存にしてもドキメントしか落とせなくて困ってます。

http://www.arrastheme.com/forums/post5050.html#p5050

wordpressのプラグインget-the-image.phpです
0496nobodyさん2010/03/31(水) 02:16:32ID:???
鯖側のエラーっぽいけど
0497nobodyさん2010/03/31(水) 05:34:24ID:1040mT1O
テスト環境のfedora7では問題なかったのですが
本番サーバのCentOS5/64bitで、escapeshellcmdを通すと日本語(たとえば「てすと」)が
消失する現象が出ています
文字コードはUTF-8です
どうしたものでしょうか
0498nobodyさん2010/03/31(水) 05:44:45ID:???
文字コードをもう一度確認
0499nobodyさん2010/03/31(水) 08:26:19ID:???
文字コード確認してもUTF-8だし
cliだと問題ないなど謎ですが
strtrで自前エスケープするようにしました・・
ちなみに5.2.13です
64bitだからかなぁ・・
0500nobodyさん2010/03/31(水) 09:09:20ID:???
setlocale(LC_ALL, ja_JP.UTF-8); でどうでしょうか。
0501nobodyさん2010/03/31(水) 09:19:16ID:???
いけました!
こんな関数はじめてみました
ありがとうございました
05024772010/03/31(水) 15:20:08ID:???
バイト行ってました・・・
みなさん遅れてすみませんありがとうございました!
テクニックがあるんですね知りませんでした。
理解できました!
0503nobodyさん2010/03/31(水) 16:03:31ID:qgSssQGe
全変数を初期化してもPHP Notice: Undefined offsetが出ることがあるので
error_reporting(1)を最初に追記しました。
PHP Notice: Undefined offsetはでなくなりましたが、error_reporting(1)は
追記したファイルにのみ有効という解釈でいいんでしょうか?
test1.phpとtest2.phpでエラーで発生していて、test1.phpにだけerror_reporting(1)を追記した場合
test1.phpはエラーは出なくなりtest2.phpではエラーは出るという事で大丈夫でしょうか。
0504nobodyさん2010/03/31(水) 16:20:45ID:???
test1.php内で以下のように書けば当然test2.phpでも有効さ
<?php
error_reporting(1);
include './test2.php';
0505nobodyさん2010/03/31(水) 16:49:51ID:???
記号のフォントをGDで使用する方法はありますか?
そもそも、どうやって指示すれば良いのかもわかりません。
hoge.ttfと0×0050とかで指示できたりしますか?
0506nobodyさん2010/03/31(水) 19:21:18ID:???
>>505
記号のフォントってのがいまいちだけど、文字コードと出力される字形は別モンなので単純に
chr(0x50)
でいいんじゃ?
0507nobodyさん2010/03/31(水) 22:34:38ID:5rD6sntL
SimpleXMLElement::xpath->SimpleXMLElement:: addChild($name.$value)みたいには書けないの?
0508nobodyさん2010/03/31(水) 22:42:26ID:F5ZddSdm
PHPで、特定のオブジェクトに対する処理(メソッド実行やプロパティへの代入など)を
一括して行う方法というのは無いでしょうか(オブジェクトの表記を省略したい)。
(VBScriptのWithステートメントのようなモノを考えています)

$object->method1();
$object->method2();
$object->method3();
   これを
With($object){
 ->method1();
 ->method2();
 ->method3();
}
こういう風に省略できたら見た目にもすっきりしていいなーと思うのですが。
また、無いとしたら何か他に何か、良い短縮方法というのはありますか?

因みに間違えてプログラム板でこの質問をしてしまったんですが
「短縮は可読性を下げる」と言われてしまいました。
やはり短縮しないで書いた方がいいんでしょうか。
0509nobodyさん2010/03/31(水) 22:49:36ID:???
残念ながら!
0510nobodyさん2010/03/31(水) 23:07:36ID:???
>>508
return $this;
05114972010/04/01(木) 02:38:01ID:H0tjueQL
調べたところ、ロケールLC_ALLが"C"=7ビット文字列になっていることが原因のようでした
動作は教えていただいた方法で解決できたのですが、
「PHPで使われるロケール設定」はどこで設定したものが使われているのでしょうか?
テスト・本番の両環境で、
/etc/sysconfig/i18n
にてja_JP.UTF-8をロケールに設定しており、
シェル上のlocaleコマンドでも確認できますが、
それはPHP内では使われていないようです。
まともに動いていたテスト環境でも、
LC_CTYPE=en_US.UTF-8;等と設定されており、
これもどこに由来するのか分かりません。
「偶然うまく動いていた」に過ぎないようです・・
■ このスレッドは過去ログ倉庫に格納されています