【PHP】質問スレッドpart21【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/27 18:00ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
010292
04/08/29 02:36ID:???なんか怪しくねぇか、それ。
$enameが「さん」のみ「殿」のみとかだったら、後ろに「様」をつけて「さん様」「殿様」にして
「Aさん」「B殿」だったら「A様」「B様」にするんだろ。
$ename = preg_replace( "/(.+?)(さん|君|殿|様)?$/" , '$1様', $ename);
0103nobodyさん
04/08/29 02:56ID:???0104nobodyさん
04/08/29 03:00ID:???0106102
04/08/29 03:13ID:???0107nobodyさん
04/08/29 03:14ID:AyQVtsJd>>102さんので出来ました。
本当にありがとうございました
0108nobodyさん
04/08/29 04:22ID:???0110nobodyさん
04/08/29 05:41ID:???1ページにつき1つのPHPファイルで表示するのと、
全ページを1つのPHPファイルで処理するのではどちらが負荷が軽いですか?
掲示板で言うとTOP,書き込みページ,ログを別々のPHPファイルで処理するみたいな
0111nobodyさん
04/08/29 06:24ID:???負荷よりメンテナンス性で考えろ。
分かりやすい、変化に強いコードを書いてそれで重くなったのなら後からチューニングすればいい。
0112nobodyさん
04/08/29 06:37ID:???フレーム切ってブラウザから多重で呼ぶ作りではなく、
メイン1つとメインから複数のサブを関数的にコールする作り
の話なら負荷の差云々は気にするな。
0114112
04/08/29 08:05ID:???「TOP,書き込みページ,ログを別々のPHPファイルで処理する」
に対応する内容ではなかったな…
素のPHPだけの場合だと、分割の方がメモリ占有の部分で
若干負荷が高い。CPU負過の部分では同等。
しかし、そんなもんは微々たる瑣末なこと。
111の言うとおりメンテナンス性を優先
本当に負荷を気にするほどのレベルなら、
PHPでもプリコンパイルされたバイナリの利用、
全体/部分的にPHP以外の採用も検討。
0116nobodyさん
04/08/29 09:28ID:Kc1bBELSphpで "->"って演算子ですか?
$tmp = $row->tmp;
自力で調べてみましたがよくわかりません。
0117nobodyさん
04/08/29 09:40ID:???0118nobodyさん
04/08/29 10:54ID:???0119nobodyさん
04/08/29 10:54ID:W8RVkldu調べる対象すら判らなかったので助かりました。
012080
04/08/29 13:30ID:???すいません。どうすればいいか分かりません。
install-sh が phpのソースのところにあったり、
インストールしたいPecl APCのところにあるのはわかりますが。
0121nobodyさん
04/08/29 13:39ID:???毎週うちにきて、隣で教えてくれると助かるんだけどね。
もと風俗譲の27歳でした。
012280
04/08/29 14:12ID:???意を決してphpizeをviで開いてみる。
「あ、これshなんだ・・・と気付く」
なんか、インストールのときに変なことをやったらしく、
/..../php/build
になるべきところが
/..../php/php/build
になってました・・・。
viでそのままパスを書き換えたらうまくいきました。
こんな対応でいいのか、いまいち不安ですが、一応解決です。
0128nobodyさん
04/08/29 14:36ID:???$_POSTのデータは、中身に数値以外の情報が入ってることが
確定だった場合、何でもかんでもhtmlspecialcharsでエンコードすべきですか?
0129nobodyさん
04/08/29 14:44ID:???0132nobodyさん
04/08/29 15:14ID:cCH4wkwYもうね、馬鹿かど(ry
0133nobodyさん
04/08/29 15:34ID:???あ ふ ぉ か
だからおまいらのアプリケーションは後からコードを観てもエスケープ処理が分散してて完全な対策が保証されなかったり、
最初に全入力値に対してエスケープ処理かけた結果が入力データの同一保持が壊れたりするんだよ。
出力対象に合わせて直前でエスケープ処理しる!
HTML に出力するんなら、直前 (出来ればテンプレート内部) でかけるんだよ。
Smarty なら escape 演算子使え。Flexy ならもっとスマートだ。
0135133
04/08/29 15:46ID:???PHP アプリケーションの質下がり杉。その手の相談も去年より増えた。
最近 PHP でやるって言うと顧客が不安な顔するし。
0139133
04/08/29 16:14ID:???0141nobodyさん
04/08/29 17:13ID:???まぁ人によりけりだろ。
0142nobodyさん
04/08/29 17:38ID:nmd5+dtj0143nobodyさん
04/08/29 18:34ID:???その後、Pecl APC と TurckMMCacheを入れて、
比較してみたので参考まで。
ベンチは手軽さ優先で ApacheBenchです。
(ab -n 500 -c 10)
ソースはそんなに大きくないですが、連想配列使いまくり。
Smarty使用です。
無し: 10.3 #/sec
Pecl APC: 26.3 #/sec
Turck MMCache: 28.2 #/sec
Zendより良いかは分かりませんが、
Turck の webページの比較はホントっぽい。
ttp://turck-mmcache.sourceforge.net/index_old.html
0144nobodyさん
04/08/29 19:28ID:???0146軟式PHP
04/08/29 19:43ID:???0147nobodyさん
04/08/29 20:20ID:???原因がわからず、こまってます^^;
0148軟式PHP
04/08/29 20:36ID:???0149nobodyさん
04/08/29 20:49ID:???↑こんな文字化けです
0150nobodyさん
04/08/29 20:53ID:???0151nobodyさん
04/08/29 20:58ID:???0153nobodyさん
04/08/29 21:03ID:???文字化けで困っちゃいけないの?
0154nobodyさん
04/08/29 21:16ID:???mb_convert_encodingだけでは文字化けしてしまう場合があります
0155nobodyさん
04/08/29 21:17ID:???0156nobodyさん
04/08/29 21:20ID:xD9nrE3/でもソースをみるとそこの部分は改行されず永遠と右にずらーっと続いています。
ソース上でも改行を加えたりすることはできないのでしょうか?
0159nobodyさん
04/08/29 21:38ID:xD9nrE3/それができないんです。
http://php.s3.to/simple/source.php?nikki.phpの
「$com = str_replace("\r\n", "\r", $com); 」あたりを弄ったんですが
それで編集するとどうもちゃんと更新されません。
0161nobodyさん
04/08/29 22:02ID:xD9nrE3/入力した内容が表示されないんです
0162
04/08/29 22:38ID:ABDLQ/Knあまり経験がなく教えて君なのですが
global変数系をまとめておきたいのですが
<?php
$user = "test";
$password = "2ch";
?>
安易に上記のような感じで記述しようかと思うのですが
開発していく上で問題は起こらないでしょうか?
もし経験者いましたら教えてください。
0163nobodyさん
04/08/29 22:38ID:???0164nobodyさん
04/08/29 22:49ID:fDZT6TXTdefine
0166nobodyさん
04/08/30 00:16ID:LBsDFKrahoge = parts.options[parts.selectedIndex].value;
とかやって、hogeの中に、文字列が入ってるんですが、
この文字列を、phpでつかう
$hoge変数に格納したいんですがどうすればいいでしょうか?
0167nobodyさん
04/08/30 00:20ID:QEqsYWNI私は27歳のOLしてるのぉ〜〜〜っ♪(#⌒〇⌒#)キャハ
うーんとー、私メル友がすっごくすっごく欲しくってー、
探してたら(◎_◎)なんとっ!
>>1さんの素敵なスレッド♪を発見!!!!(^o^)//""" パチパチパチ
てなわけで、ついつい書いちゃったのらー(o^v^o) エヘヘ
メル友に、なってくれるよねっ。(*^-^*)
え?くれないのぉ〜?(;¬_¬)そんなのいやいや〜〜、
なってくれなかったら、( `_)乂(_´ ) 勝負!
☆○(゜ο゜)o ぱ〜んち、☆(゜o(○=(゜ο゜)o バコ〜ン!!
(>_<) いてっ!
(☆o☆)きゃ〜〜(@_@;)やられた〜〜(o_ _)o ドテッ
(+_+) 気絶中。。。
なあんて(#⌒▽⌒#)こんな私っ!σ(^_^)だけど、
お友達になってm(_ _)mくださいませませ♪('-'*)フフ
ということで。(^-^)vじゃあね〜〜〜♪
0168nobodyさん
04/08/30 02:25ID:???なんか他国言語の文字のようだ(´A`)
DBって何使ってるの?そのDBの文字コードは?
そのへんから原因を探ってみてはどうだろう
0169nobodyさん
04/08/30 02:29ID:???見つけたんですが、どうもうまくいかないです。どこが変なんでしょうか?
<?php
$hhh = array("a","b","c");
$hoge = serialize($hhh);
?>
<form action="<?= $PHP_SELF ?>" method="post">
<input type="checkbox" name="box" value="<?= $hoge ?>" />
<input type="submit" value="botan" />
</form>
<?php
if(isset($_POST["box"])) print_r(unserialize($_POST["box"])); //*1
if(isset($_POST["box"])) print_r($_POST["box"]); //*2
?>
*1 何も表示されない。こう表示させたい → Array ( [0] => a [1] => b [2] => c )
*2 出力結果 → a:3:{i:0;s:1: (よく分からんけど、たぶん「Array」の変化したもの)
0170nobodyさん
04/08/30 03:00ID:???デバッグのためにunserializeした後とする前の比較をしてるのに
なんでserializeした後とする前の比較をしないのか不思議でならない
0171nobodyさん
04/08/30 06:45ID:???phpでパースして出力されたHTMLソースを
表示させて眺めると分かるかもよ
<input>タグのあたりとか
つか動作がおかしかった時にHTMLソースを
見るのはデバッグの基本だと思うがどうか?
0172nobodyさん
04/08/30 07:44ID:???0173116
04/08/30 10:39ID:kwBfpaHQもう一つ質問させて下さい"と'の使い分けについてですが
どういう場面でどっちとかあるんでしょうか?
0174nobodyさん
04/08/30 10:59ID:???'は文字型で宣言した変数に文字を代入するのに使います。
実際には文字コードの対応する値が入ります。
"で囲われた文字列は、式としては「メモリの先頭アドレス」を値に持ちます。
0175nobodyさん
04/08/30 11:43ID:???echo "\"$neta\"".'\'$neta\'';
0177nobodyさん
04/08/30 15:22ID:6Aumzc+Nereg("abcd*", $host)はtrueが返るのに、
ereg("abcd*\.abc\.ne\.jp", $host)がマッチしないのはなぜですか?
abc.abc.ne.jp、abcd.abc.ne.jp、abcddd.abc.ne.jp
などにマッチする。やるなら
"abcd.*\.abc\.ne\.jp"
0181軟式PHP
04/08/30 15:52ID:???いいかもしれぬよ。つか台風すげーよ。
018267
04/08/30 16:11ID:???一応原因がわかったので、報告します。
実は元のスクリプトでは、exec の前にカレントディレクトリの変更をするコードが入っていました。
exec が終わった後でカレントディレクトリは元に戻すのですが、その場所を file_exists 判定の
前に書くべきところを、後に書いていました。
こんなかんじ
$cd=getcwd();
chdir($execdir);
exec('make_test');
clearstatcache();
if(file_exists('test.txt')) {
:
:
}
chdir($cd); // ←こいつの場所はここじゃくて exec の直後であるべき
週末にぐーすか寝てからコードを見たらすぐわかりました。
いやはやお恥ずかしい限りです。
"^abcd.*\.abc\.ne\.jp$"にする必要がありますね。
# 関西ですがまだ風が強いだけでそこまで
0184177=180
04/08/30 16:35ID:???前後に何もないことをチェックするんですね。
たびたびありがとうございます〜。
こちらも同じく関西ですが、台風とは思えぬ穏やかさ・・・。
0185カポコン
04/08/30 16:40ID:???シングルとダブルの違いですか〜。。。
結構、面白い質問ですね、
同じ文字列を表現するという部分は一緒ですが・・・
例えば、
<?php
$ANI = array("bear","fox");
$str[0] = "$ANI[0]'s nails are very danger.\n"; //問題なし
$str[1] = 'The $ANI[1]\'s fur is very beautiful.\n'; //問題あり
foreach($str as $val) echo(nl2br($val));
?>
のようにタイポしてみれば、ある程度違いが分かるのではないでしょうか?
他にも違いがありそうなので僕よりエロイ方いたら教えてくださいな。
>>174
よくCってますねぇ・・・(゜д゜::)
0186nobodyさん
04/08/30 16:46ID:???0187カポコン
04/08/30 16:48ID:???ダブルとシングルのクォートの違いは・・・。
エスケープシーケンスの例(↓)
\n 改行; \\ \マーク; \r 復帰; \t タブ; \$ $マーク; \"ダブルクォート
\' (シングルクォート内でシングルクォートを使用したい場合)
0191169
04/08/30 20:00ID:???申し訳ない。base64_encode()追加で簡単に渡せますた。
本当はserialize()使用前後の比較も、HTMLのソースも見てたんだけど
どうも脳みそがグダグダだったようで……(serializeの意味も理解してなかった)
本当はこの配列を、さらに配列にして渡したかったんですが
そっちは簡単にできました。スレ汚しすまんです。
0194nobodyさん
04/08/30 21:47ID:???多重度が低いととってもパフォーマンス悪いんですが、
そんなもんなんですかね?みなさん。
0195nobodyさん
04/08/30 21:59ID:???0196nobodyさん
04/08/30 22:05ID:???楽天市場やヤフーオークションなどによく一覧を見るためにサムネイル画像が使われていますが
それらサムネイル画像には元の画像がありますよね。
元の画像が40kbなのに対しサムネイル画像は4kbとか約10分の1位の容量になっています。
これを単純にHTMLで画像のサイズを小さくしてサムネイルを作ると
40kbのままでサムネイルが出来てしまいます。
画像は同じ画像でもサイズを小さくすると容量まで小さくする関数などがあるのでしょうか?
よろしくご指導お願いいたします。
0197nobodyさん
04/08/30 22:05ID:OUKC12Ijイヤな予感すらしますが、教えてください。
array(3) { [0]=> string(2) "10" [1]=> string(2) "30" }
と言う配列をうまいこと
array(3) { [0]=> string(2) "10" [1]=> string(2) "20" [2]=> string(2) "30" }
にするような関数って無いですよね?
0199nobodyさん
04/08/30 22:14ID:???早速のレスありがとうございます。
>ファイルが2つあるとは考えないのかい?
ということは画像をアップロードする時にサムネイル用の画像も自動で作られるという感じですかね?
0200nobodyさん
04/08/30 22:18ID:???ワラタ
タフだな。
ImageMagic とか GD で調べれ。
面倒か使えるだけの理解力が無ければ >>198 のように、Fireworks や ImageReady といったソフト使って別に用意しる。
0201nobodyさん
04/08/30 22:53ID:???ありがとうございます。
なるほどですね。まさか2枚にしてたとは・・
私はてっきり元画像をどうにかして容量を小さくして見せる方法があるものだと思ってました。
GDは使いやすそうですね
■ このスレッドは過去ログ倉庫に格納されています