【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0206help
2008/06/04(水) 22:44:02ID:hG5521Jr書き出しからまったくわからないので、
どなたか教えてください。javascriptでお願いします。
0207nobodyさん
2008/06/04(水) 22:48:28ID:???なんでわざわざスラッシュ区切りにしたいの?
>>206
<script type="text/javascript">
0209nobodyさん
2008/06/04(水) 22:56:15ID:???そうだよな? さすがにここまで低次元なわけないよな。
頼むよ、マジで……。
0210nobodyさん
2008/06/04(水) 23:24:54ID:???しかも1も昔のに変えるし
初心者は初心者スレがあるのに・・・
0211nobodyさん
2008/06/04(水) 23:32:13ID:???スーパーヒントやるから、これアレンジしてみろ。
$bin_num = "1111111111111111111111111111111";
$digits = strlen( $bin_num );
$i = 1;
$bin_num = 1;
while(1)
{
if( $i > $digits ) break;
print $i . " | ";
if( $i <> 1 ) $bin_num .= '1';
print bindec( $bin_num ) . "<br />";
$i++;
}
0213nobodyさん
2008/06/05(木) 03:53:21ID:nVJ3HHkI途中で関数がある場合、プログラムがそこで止まってしまいます。
ページ内にその関数が無くてもページ全体を読み込ませる(エラーを出さない
ようにするには、どうすればいいのでしょうか?
0214nobodyさん
2008/06/05(木) 03:59:39ID:???0215nobodyさん
2008/06/05(木) 05:48:02ID:???0216nobodyさん
2008/06/05(木) 06:02:42ID:???0217sage
2008/06/05(木) 07:24:33ID:SaqvuSsK0218nobodyさん
2008/06/05(木) 09:42:23ID:???ぐぐっても出てこない。
0219nobodyさん
2008/06/05(木) 10:53:03ID:???ttp://xdebug.org/docs/all_functions
0220213
2008/06/05(木) 11:01:36ID:???デザイン用のファイルに関数を入れている場合(エラー出力など)
があるのですが、関数のある・なしを調べるのではなくて、
ある場合でも無視して出力したいのです。
やっぱり、そういう事は出来ないのでしょうか?
0222nobodyさん
2008/06/05(木) 12:22:00ID:AlWPneO4OSX(10.4.11)にPHP5.2.4をインストールしましたが
cli版は4.xのままになっています。
インストール手順はtar.gzを解凍
↓
./configure時に--enable-cliを指定
↓
make
↓
make install
↓
ターミナルでphp -vで確認すると4.x
cli版のアップグレードは別の方法があるのでしょうか?
何かヒントを頂ければ有り難いです。
0224nobodyさん
2008/06/05(木) 13:45:58ID:???0225nobodyさん
2008/06/05(木) 14:05:43ID:86SziVzy確認したらprefix指定していませんでした。
だから今はphp4のcli版とphp5のcli版が共存している状態で
そのままphp -vすると4.x、php5のディレクトリのcli版を
指定すれば5.2.4と表示されていたのですね。
prefix指定して再インストールしてみます。
ありがとうございました。
0226nobodyさん
2008/06/05(木) 17:01:33ID:???CentOS5.1のphp5.1.6に組み込まれていません。
セキュリティフィックスのことを考えると
自分でコンパイルするのは選択肢になりません。
これを読むと、あとから追加する方法はあるようなのですが
どうすればいいでしょうか?
http://blog.poyo.jp/archives/id-1075268306
0227nobodyさん
2008/06/05(木) 17:12:42ID:tEsaaIDAということはPHPで可能でしょうか?
JavaScriptでは検索するとあったのでやり方が分かったのですが、
PHPで書いている他のスクリプトと出来れば一緒くたにしたい
と思っての質問です。
スレのテンプレやマニュアル、検索などしてみたのですが、
これ!という関数を見つけることが出来ませんでした。
アドバイス頂けるようでしたらよろしくお願いいたします。
0231JAM
2008/06/05(木) 18:11:04ID:???http://php.s3.to/
にあるPHP proxyのfsockopen(ソケット接続)
ができないのですが、PHPプロ串を動かすのに何か条件はいりますか?
パーミッション644にしていまして、777にしても動きませんでした。
0232nobodyさん
2008/06/05(木) 18:20:11ID:???パーミッションわからないのにいじるのはやめとけ
0234nobodyさん
2008/06/05(木) 21:43:30ID:???3000件前後の商品の検索システムと、商品の登録・編集システム(DBを使った)を1ヵ月半で作れると思いますか?
0235nobodyさん
2008/06/05(木) 22:22:48ID:???0236nobodyさん
2008/06/05(木) 22:24:37ID:???0237nobodyさん
2008/06/05(木) 22:31:32ID:???forループなどで一要素ずつ吐き出していくしかないでしょうか?
print_r( array_values( $array ) ); のような手軽な方法があれば、教えて下さい。
また、print( array_values( $array ) ); の場合、Arrayが返されますが、
この理由はなぜでしょう?
0238nobodyさん
2008/06/05(木) 22:42:23ID:???簡単じゃん。
SQLのDBにあるテーブルを
INDEX, ITEM_NAME, PRICE と言うようなものを作るんだろ?
登録は、ITEM_NAMEが一致しないか、まずSELECTで検索してから
INSERTかUPDATE(値段の更新)かを実行すればよし。
商品を削除するには、商品名でSELECTして、ユーザに選択させて
DELETEすればよし。
検索は、条件(商品名部分一致、値段上下)くらいだろうから、普通に
SELECT文で、画面表示すればいいじゃん。
コア部分をまず作成して、多分これが1週間くらい。それから、だんだんと
拡張してゆけばよし。
それから。
SQLインジェクションとか、最初にそういうセキュリティ面の共通関数を
作っておかないと、後で大変なことになるから…
0239nobodyさん
2008/06/05(木) 22:43:21ID:???0240234
2008/06/05(木) 22:59:12ID:???1ヵ月半で作り上げて客先に納品できますでしょうかね?
0241nobodyさん
2008/06/05(木) 23:10:43ID:MYkhFPuIAccessを使って作ってしまった方が簡単にできるんじゃないですか?
それと並行して時間を見つけてPHPで作ってみて
上手くいったら裏で切り替えるとか
0242nobodyさん
2008/06/06(金) 00:39:43ID:???精魂込めた1店舗より、適当に増殖させまくった1000店舗の方が、圧倒的桁違いに儲かるという事実を顧客に教えてやれよ。
0243nobodyさん
2008/06/06(金) 00:47:24ID:5yuWZEZB以下のようにしたのですが、表示されません。
$GLOBALS['test']="aaa";
class class_test{
global $test;
function test_a(){
echo $this->test;
}
}
$obj = new class_test("");
$obj->test_a();
0244nobodyさん
2008/06/06(金) 01:02:38ID:???0245243
2008/06/06(金) 01:06:18ID:???parse error, unexpected T_GLOBAL, expecting T_FUNCTION in
パースエラーが出ます。やはりこういう書き方は駄目なのでしょうか?
0246nobodyさん
2008/06/06(金) 01:07:47ID:???0247nobodyさん
2008/06/06(金) 03:14:20ID:XxyWIPlY立ち上げ可能な最大プロセス数を算出しようと思います
このような用途の場合、
memory_get_peak_usage (true)
か
memory_get_peak_usage (false)
のどちらが適切でしょうか?
falseの場合、
emalloc() が使用するメモリのみを報告するとのことで、
trueの場合の値とは大きさがかなり異なるので迷っています
0248nobodyさん
2008/06/06(金) 06:27:29ID:???ファイルサイズは1Mもなくて、Php.iniのMaxサイズは超えてないのに。
0249nobodyさん
2008/06/06(金) 06:37:23ID:???0250237
2008/06/06(金) 07:06:03ID:???0252nobodyさん
2008/06/06(金) 07:49:30ID:???0253nobodyさん
2008/06/06(金) 07:51:58ID:???それです!
ありがとうございました!
マニュアルにおける配列関数のページばかり見ていて、
文字列関数を見落としていました。
0254nobodyさん
2008/06/06(金) 09:54:25ID:7wBcJbju$result = mysql_num_rows($request);
if($result) {
while( $result = mysql_fetch_assoc($request) ) {
foreach($result as $key => $value) {
print "{$key} : {$value}";
}
}
} else {
print "該当なし";
}
検索結果がない場合を考慮して、
mysql_num_rowsで検索結果数を確認しているのですが、
mysql_fetch_assocも使っていて、
mysql_num_rowsは、非効率な処理をしているのではないかという気になります。
検索結果がない場合の処理として、
もっと最適な方法はありますでしょうか?
スピード重視ですので、PDOなどを利用する予定はありません。
0256nobodyさん
2008/06/06(金) 10:59:21ID:???フォームの内容を次のページで確認したりするために表示すると
「表示」という文字列が「表\示」というふうに間に半角の¥マークが入ったりします。
他にもいくつかの文字列で確認できています。
\を省くようなプログラムを書いてしまうと本来の\を記入したいときなどに
不都合が起きてしまうので
それ以外の方法で何とかしたいのですが
原因・解決方法を教えてください
よろしくおねがいします。
0257nobodyさん
2008/06/06(金) 11:05:11ID:???0258256
2008/06/06(金) 11:30:51ID:???スレ汚しすいません
0259nobodyさん
2008/06/06(金) 14:53:07ID:???apache+mod_fcgidでphp動かすのと
apache+mod_phpで動かすのどっちが早いのでしょうか?
やっぱり圧倒的にmod_phpですかね・・・
0260nobodyさん
2008/06/06(金) 17:07:39ID:???0261227
2008/06/06(金) 17:19:55ID:qm+hYxPW>>227を実現したかった環境はPHP5.2の入っているレンサバです。
今回はPHPでの実装をあきらめて、JavaScriptで実装してみます。
お答えいただきました皆さま、ありがとうございました。
0262254
2008/06/06(金) 17:44:36ID:???ご回答ありがとうございます。
外のifを外してしまうと、
$result(クエリ)が存在しない場合、
whileループをしなくなり、
foreachループでも「データが存在しない配列データ使うな」というエラーが
出てしまいますのです。
一応の善後策として、print書き出しのところを変数$fooに代入して、
whileループ後、$fooが空だったら、「該当無し」を代入してから書き出し、
という方法を取ってみました。
入門書以外の書籍を見つけられないので、
どうもPHP+MySQLはつまづきやすいです。
定石集みたいな本があれば嬉しいのですが、何かお薦め本ありますか?
0263nobodyさん
2008/06/06(金) 17:59:09ID:9VzUi8vG特定の文字列以外はNGにしたいのですが、
$hoge = $_POST["data1"];
$hogehoge = "ここがわかりません。"
if(!stristr($hoge , $hogehoge)){
echo "NG";
}else{
echo "OK";
}
こんな感じでテキストボックスから「数字 か "n"」のみを受付たいのですが、
どなたかお力を貸してください。お願いします。
0264nobodyさん
2008/06/06(金) 18:07:11ID:???ちなみに後者の方がちょっと早いけど、たぶんそこまでこだわるの無駄。
0265263
2008/06/06(金) 18:39:49ID:???さっそくググってみました。
正規表現がいまいちわからないのですが、
数字 か "n" の場合
/[n\d]/
で合ってるのかな?
一応テストしてみたら思うとおりに動きました。
ありがとうございました。
0266nobodyさん
2008/06/06(金) 18:51:20ID:???/\d|n/
nで始まる複数の数字(例:n012345678)って決まってる場合は、
/^n[\d]+?$/
とかじゃね?
0267nobodyさん
2008/06/06(金) 18:55:46ID:???これを直すにはコンパイルしなおすしかないのでしょうか?
システム全体はUTF8でGD内部だけEUCなのが使いにくくてしょうがない・・・
0268263
2008/06/06(金) 19:00:30ID:???数字(何桁でも可。数字以外が含まれるとNG)
n (1文字だけならOK。 n0123とか nabcとかはNG)
の正規表現を教えて下さい。
何度もごめんなさい。
0269nobodyさん
2008/06/06(金) 19:14:20ID:???丸投げやめれ
限りなく答えに近いヒントは書いた
>>267
GDってUTF-8対応してたはず。(2.0以降?)
アップグレードしてみれば?
0270267
2008/06/06(金) 19:40:41ID:???ソースから入れた5.2.6が内部EUCという非常に意味不明な状況。
phpのconfigureに文字コード指定もないっぽいし、GD自体はソースから入れたほうがもちろん新しい。
やっぱりどこかに文字コード指定する場所があるんですかね?
0271nobodyさん
2008/06/06(金) 19:50:57ID:+VeYItW2今「PHPによるWebアプリケーションスーパーサンプリング」って本で勉強しているんですが
PEAR、Smarty、MySQLとかいろいろなPHPと連携出来る
プログラミングが出てきて、どれを選ぶべきか困ってます。
Smartyだとこういうコトが出来て
MySQLだとこういうコトが出来る
みたいなのが分からないので
掲示板作りにもっとも適しているのはどれなんですか?
0272nobodyさん
2008/06/06(金) 19:59:15ID:???0273271
2008/06/06(金) 20:11:09ID:+VeYItW2マジですか?
今考えてるのが明和水産のような形式の画像掲示板を作ろうと思ってるんですが
全部必要でしょうか?
0274nobodyさん
2008/06/06(金) 20:16:42ID:???PHPの問題かGDの問題かまず切り分けてくれよw
というか、主語が不明瞭で文章が分かりづらいよ。
>phpのconfigureに文字コード指定
php.iniのmbstring.internal_encoding = EUC-JP
が有効になってるとかそういうことじゃなくて?
0275nobodyさん
2008/06/06(金) 20:17:40ID:???>Smartyだとこういうコトが出来て
>MySQLだとこういうコトが出来る
>みたいなのが分からないので
つーか、その仕組みを理解するために本買ったんだろw
もっとよく読めよ。
0276nobodyさん
2008/06/06(金) 20:53:34ID:???0277nobodyさん
2008/06/06(金) 21:16:01ID:???遅レスだけど、比較するまでもなく、mod_phpに決まってるだろ。
ソケット介さず、HTTPD直接動かすんだから。
0278nobodyさん
2008/06/06(金) 21:58:27ID:liAI2iTpショッピングなどので注文ボタンを連続して押すと注文データが二つ出来てしまうという件です。
webで検索するとJavaScriptの方法があるのですが、それですとJS無効にしている人には対応ができません。
それで、トランザクションIDなどを発行して、formにhiddenで埋め込んで、送信されてきたIDとセッションに保存されたIDを比較するというやり方が
あると思うのですが、それでも、0.1秒くらいの間隔で連続送信された場合、セッションの処理が追いつかず二度受付がされてしまいます。
お金が絡むことなので、かなりシビアな管理が必要なのですが、どのような方法がありますでしょうか?
私が考えたのは、一回送信したら送信完了画面の表示処理になるまでロックするとか。
そうすると、ロックの解除タイミングが難しく異常終了した場合に、永遠にロックがされてしまい、
OSのリブート以外復旧する方法がなくなってしまうのではないかと、危惧してしまいます。
又は、メールで一回確認メールを送りつけて、そのメールに記載されているURLをクリックすると
注文完了になる、というロジックも考えたのですが、そのような方式でやっているネットショップを、
10年間位ネット使用歴がありますが、見たことがありませんし、利便性が悪いこともわかります。
それで、別の方法として注文ボタンを押しても完了とはせずに、
手動でこちらが確認して注文確認のメールを送るという案も考えました。
が、それも前述と同様で手間がかかる上に、利便性が悪いということで躊躇しています。
あとは、二重注文を承知で、返品を受け付けるという処理があるのですが、
利便性はいいのですが、お客さまからの苦情がこないか不安です。
もちろん、二重注文の免責事項として注文ボタンの前に書きます。
結局、あれやこれや考えたのですが、結論が出ませんでした。お知恵を貸して頂けないでしょうか?
宜しくお願いします。
0280nobodyさん
2008/06/06(金) 22:12:57ID:???単純に、客がWEB上で注文の確認とキャンセルできる仕組みを用意した方が良い。Amazon方式。
それかロック処理に時間制限を付けるとか。ネットバンク方式。
0281nobodyさん
2008/06/06(金) 23:43:30ID:sB0HvGVDいや、そのコードはおかしい。
0282nobodyさん
2008/06/06(金) 23:53:56ID:???コンストラクタ内で呼ぶしかないんじゃない。
$GLOBALS['test'] = 'aaa';
class class_test{
var $test = null;
function class_test(){
global $test;
$this->test = $test;
}
function test_a(){
echo $this->test;
}
}
$obj = new class_test();
$obj->test_a();
0283nobodyさん
2008/06/07(土) 00:06:58ID:???グローバル変数使ったら意味ないじゃん。
いわゆるデータメンバを使うべき。
0284nobodyさん
2008/06/07(土) 00:17:23ID:???× hoge.php?foo=aaa&foo=bbb&foo=ccc
× hoge.php?foo[]=aaa&foo[]=bbb&foo[]=ccc(※[]はシリアライズされる)
○ hoge.php?foo=aaa,bbb,ccc
みたいにすることはPHP側でできますか?
0285282
2008/06/07(土) 00:32:36ID:???283が言いたいのは、こんな感じってこと?
class DataMember{
var $test = 'aaa';
function get(){
return $this->test;
}
function set($value){
$this->test = $value;
}
}
class class_test{
var $DataMember = null;
function set(&$obj){
$this->DataMember =& $obj;
}
function test_a(){
echo $this->DataMember->get();
}
}
$mem = new DataMember();
$obj = new class_test();
$obj->set($mem);
$obj->test_a();
0286nobodyさん
2008/06/07(土) 00:48:17ID:???0287nobodyさん
2008/06/07(土) 00:54:03ID:???0288282
2008/06/07(土) 01:02:25ID:???PHP4の書き方はキモイのかw
レンタル鯖とか今だPHP4が多いからこっちのほうが汎用性あるかと思ったんだけど。
(まぁ、PHP5の書き方は勉強してないのでわからんけど)
PHP4も今年でサポートきれんだっけかね。
0289nobodyさん
2008/06/07(土) 01:24:09ID:7vwhHYDOhttp://www.fxtokyo.jp/
0290nobodyさん
2008/06/07(土) 01:26:16ID:???わからんなら今からやれ。1時間後にスラスラ書けてなきゃ自分の無能を呪え。
0291nobodyさん
2008/06/07(土) 01:34:40ID:???メンバ変数にスコープがつけられるとか、メソッドチェーンができるとか、
コンストラクタが__constructとかするとか、__callとか__destructがあるとか
ソレぐらいしか分からんすけど、今度やってみます。
>>289
ソース見る限り、JavaScriptですね。非同期通信って奴かな。
0293nobodyさん
2008/06/07(土) 05:46:06ID:???0294nobodyさん
2008/06/07(土) 07:47:07ID:???ここぞとばかりにPHP4の書き方を叩いてるな。
もっと他に叩くべき対象は、このスレに溢れてると思うんだが。
0295nobodyさん
2008/06/07(土) 08:05:31ID:???0297nobodyさん
2008/06/07(土) 13:13:44ID:???0298nobodyさん
2008/06/07(土) 13:17:04ID:???0300nobodyさん
2008/06/07(土) 13:40:09ID:???phppgadmin
0301nobodyさん
2008/06/07(土) 13:45:32ID:???0302nobodyさん
2008/06/07(土) 13:50:29ID:5XgOB7asphpの場合明確ではありませんよね。
例えば、日本ユニシスのようにgifを使っていたら、
急に特許使用料を請求されるというリスクがありますか?
Javaの場合は、SunMicrosystemsが明確に使用は無料ということを打ち出しています。
PHPの場合、それが全然明確ではありません。
もしかしたら・・・というリスクが脳裏をよぎります。
実際のところどうなのでしょうか?
0303nobodyさん
2008/06/07(土) 13:52:11ID:???0304nobodyさん
2008/06/07(土) 13:54:20ID:5XgOB7asPHPの使用に当たって、完全にフリーだという公式の文章がどこにもないからです。
つまり、将来的に有料化できることを留保していて使わせているという疑念があります。
■ このスレッドは過去ログ倉庫に格納されています