【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カテゴリ)の各スレで
0177の
2008/06/04(水) 16:07:38ID:???index.php?test
が作れて、
GETでは
index.php?test=testが作れるのは知ってるんですが
PATH_INFOかクエリで
で
index.php?test/test
と取得するにはどうしたらよいのですか?
0178nobodyさん
2008/06/04(水) 17:03:50ID:???0179nobodyさん
2008/06/04(水) 17:19:13ID:???質問に質問して悪いんだけど、
クエリで index.php?test が作れる、ってどういうこと?
PHP クエリ、なんかでググってみたけど出てこなかった。
index.php?test で値を渡せるの?
0180noun
2008/06/04(水) 17:53:03ID:3HEKVG38$query = getenv ("PATH_INFO");
$var = split ("[/\.]", $query);
echo "引数は「$var[1]」と「$var[2]」です。";
?>
このようばスクリプトをindex.phpで作ったら
index.php/a
でアクセスすると
引数は「a」と「」です。
と表示されます。
index.php?a/b
とアクセスすれば
引数は「a」と「b」です。
と表示させるにはどのようにしたらよいのですか?
このように考えてみましたけど動きませんでした
<?php
$query = getenv ("PATH_INFO");
$var = split ("[?\](.+)[/\.]", $query);
echo "引数は「$var[1]」と「$var[2]」です。";
?>
宜しくお願いします
0181nobodyさん
2008/06/04(水) 18:02:16ID:???<?php
$query = $_SERVER["QUERY_STRING"];
list($q1,$q2) = explode("/",$query,2);
echo "引数は「{$q1}」「{$q2}」です。";
?>
0182nobodyさん
2008/06/04(水) 20:01:45ID:???0184nobodyさん
2008/06/04(水) 20:37:04ID:???$fileName = "conf.xml";
$xml = simplexml_load_fileName($fileName);
$db = $xml->db;
print $db->id ."<BR>";
print $db->pass ."<BR>";
print $db->host ."<BR>";
print $db->dbname ."<BR>";
?>
とすると $xml = simplexml_load_fileName($fileName); エラーとでます、何が悪いんでしょうか?
0185nobodyさん
2008/06/04(水) 21:18:54ID:???0186nobodyさん
2008/06/04(水) 21:20:15ID:???0187nobodyさん
2008/06/04(水) 21:21:53ID:???simplexml_load_file($filename);
0188nobodyさん
2008/06/04(水) 21:23:42ID:???やさしくレスしてやろう
そんんあ関数無い
simplexml_load_file
http://jp.php.net/manual/ja/function.simplexml-load-file.php
これだろ?
0189nobodyさん
2008/06/04(水) 21:36:14ID:???いえ、喧嘩売ってません。 シリアスです。
>>186
別人ですね。
>>187
>>188
ありがとうございます^^
しかし、$xml = simplexml_load_fileName($fileName);
をsimplexml_load_file($filename);にしてみたところ、エラーが出ます。
何が悪いんでしょうね・・・
0190nobodyさん
2008/06/04(水) 21:42:22ID:???>>1を読まない -20
マニュアルを読まない -10
検索しない -10
エラーを書かない -10
上げない -5
丁寧語を使用 +5
合計点:-50
評価:非常に悪い質問です。
php.iniでphp_xmlをロードしてから出直してきてください。
0191nobodyさん
2008/06/04(水) 21:42:30ID:???0192nobodyさん
2008/06/04(水) 21:43:57ID:???$xml->db ← マニュアル読めとしか言いようがない
0194(^ω^)
2008/06/04(水) 21:50:18ID:+gTsOca6前レスであった
PATH_INFO
とクエリを同じに使うやり方が気になったのですが誰か教えてくれませんか?
index.php?test/b
とかのURLのが気になります
0197nobodyさん
2008/06/04(水) 21:56:43ID:???>index.php?test/b
PATH_INFO関係ない。それはクエリだ。
PHPerバカばっかか。
0199(^ω^)
2008/06/04(水) 22:09:58ID:+gTsOca6w(°0°)w?
どうやって取得するのですか?
index.php?test
なら取得できますけど
index.php?test/a
までは取得できません…
0201nobodyさん
2008/06/04(水) 22:19:33ID:O5TCb6Oo0202help
2008/06/04(水) 22:29:52ID:hG5521Jrを10進数に変換するプログラムを書き、桁とその桁の値に該当する
10進数(例えば、4桁目は2の3乗で8である)および変換された
10進数を表にして出力せよ。
0205(^ω^)
2008/06/04(水) 22:43:13ID:+gTsOca6http://s.sameha.net/?xtool/test
これは
http://s.sameha.net/?id=xtool&kp=test
みたいなのです。
http://s.sameha.net/?id=xtool&kp=test
これはGETで受け取ってるだけですが
http://s.sameha.net/?xtool/test
これはクエリで受け取りたいのですが、受け取れません(@_@;)
教えてください
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
もっとよく読めよ。
■ このスレッドは過去ログ倉庫に格納されています