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

【PHP】下らねぇ質問はここに書き込みやがれ 54

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/09/09(日) 12:42:57ID:64tYOx8R
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0622nobodyさん2007/09/20(木) 10:42:41ID:???
自社のプログラムのトラブルをここで聞くか…
0623nobodyさん2007/09/20(木) 10:44:27ID:???
>>621
エスパーキターーーーーーーーーーー
0624nobodyさん2007/09/20(木) 10:51:06ID:RRR2JFqm
>621

具体的にはどうすればいいんですか?


>622

新人だけど一人でやってます・・・
0625nobodyさん2007/09/20(木) 10:52:08ID:???
会社でyomi-searchを使ってるのはなぜ?
0626nobodyさん2007/09/20(木) 11:40:37ID:???
>>623
require("db/$cfg[db_sql].php");
となってて
エラー内容が
Failed opening required 'db/.php'
となってりゃエスパーじゃなくてもすぐ分かるだろ。

>>624
$cfg["db_sql"] に適切なDB名を設定する。

これが>>625の言う通りyomi-searchのPHP版なら以下参照
ttp://sql.s28.xrea.com/src/
0627nobodyさん2007/09/20(木) 11:55:42ID:IWhkcLGD
>>620
そんな会社普通はすぐやめる。
webの会社でhpが表示されないとかありえない。
車売ってるくせにエンジン直せないのと同じこと。
0628nobodyさん2007/09/20(木) 12:14:13ID:???
いや、Webの会社とは一言も言ってないけどな。
新人1人しかいない時点でそりゃWebの会社じゃないだろ。
0629nobodyさん2007/09/20(木) 12:40:38ID:IWhkcLGD
最近WEBの仕事を始めた者が働いてる会社が八百屋なわけがない。
0630nobodyさん2007/09/20(木) 12:44:16ID:???
節操の無い奴を相手にしちゃ駄目

くだすれPHP(超初心者用)2
http://pc11.2ch.net/test/read.cgi/php/1164617202/833
06316202007/09/20(木) 12:59:19ID:RRR2JFqm
>626
ありがとうございます^^早速見てみますね

>627
会社はWeb系ではないです^^;
0632nobodyさん2007/09/20(木) 12:59:24ID:???
>>628が何気に良い所を突いた件
0633nobodyさん2007/09/20(木) 13:59:56ID:KlmMrt1+
マジッククオートを自動で付加しているのですが、
POSTで取得したときに「ソ」や「表」に「\」が入りますよね。
これはどの時点での文字化けを防いでいるのでしょうか?
POSTで取得したデータを全てクオート解除しても大丈夫なのでしょうか?
0634nobodyさん2007/09/20(木) 17:01:09ID:KlmMrt1+
誰もいなすwww

preg_replace_callbackってPHP5.0.4と5.1.1で動き違うんだけど
5.1.1でバグ発生してるとかないよな?
0635nobodyさん2007/09/20(木) 17:05:29ID:???
>>633
ホントだ
なんでこんな余計なのが付加してるの?
06366352007/09/20(木) 17:24:46ID:???
よかった解決した
php.iniっての作ってmagic_quotes_gpc = Off
で再起動だね、、憶えておくよ
0637nobodyさん2007/09/20(木) 17:36:57ID:???
こらこらSJISの仕様で問題あるからそうなってんだよ
0638nobodyさん2007/09/20(木) 17:45:37ID:QNx3pq8z
>>636
勝手に解決するな
ini_setで解決しないんだよ
0639nobodyさん2007/09/20(木) 17:48:27ID:???
>>634
なんでそんな古いバージョンのを使うの?
0640nobodyさん2007/09/20(木) 18:44:06ID:???
>>639
レンタルサーバーに入っているからだろ?
0641nobodyさん2007/09/20(木) 18:55:42ID:???
>>638
目に余るレスを見かけたので続きのほうは以下のスレへ訪問よろ

くだらない質問でもど偉そうに聞いていいスレ
0642nobodyさん2007/09/20(木) 19:09:31ID:???
>>637
SJISの仕様でどんな問題があるの?
0643nobodyさん2007/09/20(木) 19:18:15ID:???
ヤフーでググれカス
0644nobodyさん2007/09/20(木) 19:25:21ID:???
答えられないやつはだまっとれ
0645nobodyさん2007/09/20(木) 20:57:35ID:bTS/b7yb
PHPとMySQLを使ってツリー構造をHTMLで表示させたいんですけど
一応、DBにカテゴリ名、ID、親IDとして保存させてるんですけど
表示させるときにどのようにしたらいいのかわからないのですが
どのようにしたらできますか?
0646nobodyさん2007/09/20(木) 21:00:30ID:???
一応じゃないスキーマを考える
06476452007/09/20(木) 21:05:10ID:bTS/b7yb
一応、親ノード取得してその親にポインタしてる子ノードを
探して・・ってやってるんですがすべてのノード表示させるようにできないんです
いくらノードを追加してもすべてのノードを表示させる方法ってないですか?
0648nobodyさん2007/09/20(木) 21:05:56ID:???
一応じゃないアルゴリズムを設計する
06496452007/09/20(木) 21:08:07ID:bTS/b7yb
どのようにして設計したらいいのですか?
一応、5日ぐらい考えたのですが僕の脳みそじゃ解決しません
0650nobodyさん2007/09/20(木) 21:11:12ID:???
わかんねーやつはレスすんな
0651nobodyさん2007/09/20(木) 21:13:45ID:???
どんだけ〜
0652nobodyさん2007/09/20(木) 21:32:07ID:???
全部じゃなきゃどこまで表示出来てんだよ
原因の切り分けをする努力を放棄してたら先に進むわけなし
0653nobodyさん2007/09/20(木) 21:38:09ID:???
どんだけ〜
06546452007/09/20(木) 21:47:26ID:bTS/b7yb
$sql = "SELECT * FROM `CATEGORIES` WHERE `親ノード番号` = {$親ノード番号} ";
$parent_nodes_result = mysql_query($sql);
while ($row = mysql_fetch_array($parent_nodes_result, MYSQL_ASSOC)) {
echo "<li>{$row['ノード名']}\n<ul>\n";
$sql = "SELECT * FROM `CATEGORIES` WHERE `親ノード番号` = {$row['番号']} ";
$child_nodes_result = mysql_query($sql);
while ($row = mysql_fetch_array($child_nodes_result, MYSQL_ASSOC)) {
echo "<li>{$row['ノード名']}</li>\n";
}
echo "</ul>\n</li>\n";
}

こんな感じなんですけど
これだと2階層までしか取得できないんです
0655nobodyさん2007/09/20(木) 21:48:57ID:???
もう一個付け加えれば3階層までできるじゃん!
06566452007/09/20(木) 21:53:25ID:bTS/b7yb
>>655
それがもっと多い階段まであった場合に、すごいソースになってしまうので
なんかwhileを使って出来ないかと思って考えてるんですがわからなくて
0657nobodyさん2007/09/20(木) 21:57:08ID:???
>>645
あなたみたいな人はフレームワークを使えばいい
思い通りの動作をやってくれるでしょう
0658nobodyさん2007/09/20(木) 21:57:52ID:???
線形で増えていくだけだから大した問題ではないよ。
すごいソースで何が悪い。見た目なんか気にするな。
0659nobodyさん2007/09/20(木) 21:58:29ID:???
>>654
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280408/?ST=oss
この辺読んで再チャレンジ
06606452007/09/20(木) 22:02:48ID:bTS/b7yb
みなさん返信ありがとうございます
>>654
読んでみます
06616452007/09/20(木) 22:03:42ID:bTS/b7yb
間違えました
>>660>>659へのレスです
0662nobodyさん2007/09/20(木) 22:04:29ID:???
木構造といったら、まず再帰を考えないか普通
0663nobodyさん2007/09/20(木) 23:27:38ID:???
どんだけ〜
0664nobodyさん2007/09/20(木) 23:42:57ID:mjQwk2aW
プログラムで実行される関数がどのファイルで定義されているかを効率的に
探す方法を教えてください。少し規模の大きなプログラムだと見つけるのに
時間がかかってしまします。
エディタの機能になるのでしょうか。もしそうであればそのエディタを
教えてください。
0665nobodyさん2007/09/20(木) 23:44:38ID:???
どんだけ〜
0666nobodyさん2007/09/20(木) 23:47:55ID:???
functionで検索〜
0667nobodyさん2007/09/21(金) 03:19:02ID:???
どんだけ〜
0668nobodyさん2007/09/21(金) 06:54:05ID:/lN3SBgs
$data = array("$data","$data2","$data3");
fputs($fp, implode("", $data));

$data = $data.$data2.$data3;
fputs($fp, $data);

どちらが負荷が低くなりますか?
0669nobodyさん2007/09/21(金) 07:29:03ID:???
>>668
上は関数呼び出しが2回多いから下のほうがいい気がする
0670nobodyさん2007/09/21(金) 07:35:53ID:???
>>669
どうもー。
下でいきます。
0671nobodyさん2007/09/21(金) 09:28:38ID:???
>>664
exuberant ctags
0672nobodyさん2007/09/21(金) 13:04:43ID:???
phpの標準関数を自分の作った関数で置き換えって出来ないですよね?
0673nobodyさん2007/09/21(金) 13:20:47ID:???
できる
0674nobodyさん2007/09/21(金) 13:46:29ID:???
ありがとう。自分で置き換えてみます
0675nobodyさん2007/09/21(金) 14:25:51ID:5JzPFtpG
phpでxml文書のノード名と属性の値を指定して部分的にデータを取得するには
どうすればよいですか?
0676nobodyさん2007/09/21(金) 14:37:00ID:???
>>675
SimpleXMLとかpearのXML_Unserializerとかを使えば良いんじゃ
0677nobodyさん2007/09/21(金) 14:41:31ID:QV6ADNlt
PEARのMDB2に乗り換えようとしているんですが、
require_onceしただけでStrict Standardsエラーがたくさん出るのは何故?
エラーレベルを高くしてるから?
どなたかよろしくお願いします。
0678nobodyさん2007/09/21(金) 14:49:28ID:fJKnQpQm
php5でpear使うと吐きまくるよ。
だから俺はpear使わない。
error_repoting E_STRICT とかでぐぐればエラー出さない方法はわかるとおもうけど。
厳密にはエラーっていうかワーニングか、動くしな
ちなみにオブジェクトをリファレンス渡ししたり、クラスのオーバーロードすると出る
0679nobodyさん2007/09/21(金) 14:50:42ID:???
>>677
そう

実際使うときはwarningあたりかE_ALLでログに全部書き出しだろうから
気にする必要ない
0680nobodyさん2007/09/21(金) 14:56:05ID:QV6ADNlt
>>678-679
ありがとうございます。
開発レベルではStrictで行いたいのですが、MDB2だけのエラーを非表示にできないんですか?
あるいはリファレンス渡ししない方法などはないのでしょうか。
0681nobodyさん2007/09/21(金) 14:59:59ID:5JzPFtpG
>>676
SimpleXMLの場合での取得方法がわからないんです。
<tag1 id="1" >
<tag2 >a</tag2>
<tag2 >b</tag2>
<tag2 >c</tag2>
<tag1 id="2" >
<tag2 >d</tag2>
<tag2 >e</tag2>
<tag2 >f</tag2>

の場合に<tag1 id="1" >のデータ(a,b,c)を取り出したいんですが
この場合SimpleXMLでだとどうすればよいのですか?
0682nobodyさん2007/09/21(金) 15:00:59ID:???
>>681
オブジェクトとして返されるから
それを取得するような感じでいいんじゃね?
0683nobodyさん2007/09/21(金) 15:12:23ID:5JzPFtpG
>>682
すんません、初心者でXMLのデータ処理をするのが初めてなので
取得方法自体がわからないんです。
どう書けばよいの?
0684nobodyさん2007/09/21(金) 15:12:57ID:fJKnQpQm
>>680
pearの
$a =& new ex();
って書き方の「=&」ここの部分を全部「=」に直せば問題は解決さ、どれくらいあるかわからないけどw

もしくはpearモジュル使う部分のファイルにだけerror_reporting(E_ALL);とか書いておけばいいんじゃねーの?
0685nobodyさん2007/09/21(金) 15:19:00ID:QV6ADNlt
>>684
後者の方法で頑張ります^^;
ありがとうございます。
0686nobodyさん2007/09/21(金) 15:45:01ID:???
>>683
うん、>>1は読んだ?
0687nobodyさん2007/09/21(金) 15:45:32ID:???
>>685
ファイルから置換すりゃーいいのに
0688nobodyさん2007/09/21(金) 15:52:51ID:???
>>687
単純に =& が問題なわけじゃないから全部置換するのはどうかと思うだよね〜
オブジェクトのリファレンス参照時のみ限定だから、それ以外は置換しないほうがいいし
じゃあ、 =& new のとこ置換すればすむのかな・・・
0689nobodyさん2007/09/21(金) 15:52:52ID:oG3isgYA
$fp = fopen($path, 'r+');
でファイルを読み込み・上書き(更新・一行削除)をしているのですが
上書き前のデータより小さいデータを保存する際最終部にごみがつき
困っています
保存直前にtrimしたりもしましたがだめでした。
このごみを何とかする方法を教えてもらえませんか?
0690nobodyさん2007/09/21(金) 15:55:45ID:???
>>689
エアーダスターとかお勧め
0691nobodyさん2007/09/21(金) 16:03:10ID:???
>>689
ごみって何だよ、具体的に書け。そんなんでわかったらエスパーだっつーの
あと、環境と文字コードも書け
あとfputs使ってるんだと思うがそこのコードと書き込む内容生成してるとこも書け。
06926892007/09/21(金) 16:04:48ID:oG3isgYA
自己解決
0693nobodyさん2007/09/21(金) 16:13:44ID:???
どのようにだよ。まじ最悪な質問者だな
0694nobodyさん2007/09/21(金) 16:36:47ID:OocRHBzD
phpBB2の質問はここでいいですか?専用スレが過疎ってるようで反応がありません。
0695nobodyさん2007/09/21(金) 16:44:30ID:???
>>689みたいなのになったことあるな
1:aaaa
2:bbbbb
3:ccccc
みたいな3行のテキストファイルを加工しようと全部読み込んで、
1・3行目だけを書き出したら実際のファイルが
1:aaaa
3:ccccc
3:ccccc
みたいになるってことだろ?(3行目の3:cccccがごみ)
0696nobodyさん2007/09/21(金) 16:48:07ID:???
>>694
ここ数日中に色々なところで
phpBBでrss配信したいんだゴルァ
ってのがマルチされてるけど、それじゃないなら答えない事もない
0697nobodyさん2007/09/21(金) 16:54:42ID:OocRHBzD
>>696
マルチなんですけどよかったら教えてください。どこいっても反応がないんですよね。
0698nobodyさん2007/09/21(金) 17:08:35ID:???
>>697
rss生成するスクリプト作るなりして
phpbbで投稿あった時に走らせるようにしたらいいやん
0699nobodyさん2007/09/21(金) 17:10:36ID:OocRHBzD
>>698
どうもありがとうございます。
そういうスクリプトをつくれないので、出来合いでなにか
そういうものがないかなと探しているのですが、どうもしっくりくるものが
ありません。どこかそういうスクリプトを公開してるサイトなどないもので
しょうか?
0700nobodyさん2007/09/21(金) 17:20:10ID:???
>>699
自分で作れカス
0701nobodyさん2007/09/21(金) 17:21:40ID:OocRHBzD
>>700
カスなのでつくれません。すいません。
0702nobodyさん2007/09/21(金) 18:11:52ID:???
>>693
解決法はftruncate( )しかないだろう
0703nobodyさん2007/09/21(金) 19:53:49ID:???
>>701
少しずつ段階的に解決してけばいい。
それすら怠る怠け者なら自力で探してくるしかない。
0704nobodyさん2007/09/21(金) 20:47:15ID:???
>>701
これ、お前の母親だろ

近所の住民を「殺すぞ」などと脅したとして、大阪府警吹田署は20日までに、
暴力行為等処罰法違反の疑いで、吹田市片山町、主婦井手真知子容疑者(49)を逮捕した。

嫌がらせは15年ほど前から続き、引っ越した住民もいたという。
井手容疑者は「わたしが被害者だ」と容疑を否認している。
 調べでは、井手容疑者は8月25日から9月2日にかけ、近所の男女3人に対し、家の壁をたたいたり、「なめとんのか。殺すぞ」などと脅したりした疑い。
0705nobodyさん2007/09/21(金) 20:48:03ID:???
http://headlines.yahoo.co.jp/hl?a=20070921-00000162-jij-soci
0706nobodyさん2007/09/21(金) 22:14:49ID:QV6ADNlt
MDB2のプリペアドステートメントした後に、executeすると、
Call to undefined function: MDB2_Driver_mysql::execute()
となります。MDB2のmysqlドライバはインストール済みです。
ソースは以下です。


require_once 'MDB2.php';


$dsn = array(dsnの指定); // 省略
$mdb2 =& MDB2::connect($dsn);


$sth = $mdb2->prepare("INSERT INTO board VALUES (?, ?, ?, ?, ?)");

$data = array(データ * 5); // 省略
$mdb2->execute($sth, $data);
$mdb2->disconnect();

ちゃんとprepare関数は実行されてるみたいなんです。
どなたかよろしくお願いします。
0707nobodyさん2007/09/21(金) 22:16:34ID:???
>>706
そのコードは何を参考にして書いたの?
07087062007/09/21(金) 22:20:19ID:QV6ADNlt
>>707
PEARのマニュアルを主に参考にしましたが、理解不足のようです。
0709nobodyさん2007/09/21(金) 22:31:22ID:???
>>708
どのページ?
07107062007/09/21(金) 22:34:10ID:QV6ADNlt
>>709
Googleにおいて"php mdb2"で検索した結果の上10サイトほどです。

http://www.phpied.com/db-2-mdb2/
このサイトを参考にし、>>706のソースを
$mdb2->execute($sth, $data); → $sth->execute($data);
としたらできました。
私の勘違いだったようです・・・
0711nobodyさん2007/09/21(金) 22:56:05ID:n9Z4wW7K
PHP 5.2.4 (cli) @ winXPでshell_execを用い外部コマンドラインアプリを起動したいのですが、うまくいきません。
例えば7zでファイルを解凍するとき、

 shell_exec('"c:\program files\7-zip\7z.exe"');

は起動しusage他を返してくれるのですが、

 shell_exec('"c:\program files\7-zip\7z.exe" x "c:\program files\7-zip\archive.zip"');

などにすると起動せずPHPのエラーも発生しません。 (プロンプトに直打ちで起動するのは確認してます)
どうやら引数に”が入るとダメみたいですが解決法はありますか?
0712nobodyさん2007/09/21(金) 23:20:17ID:???
ありまsn
0713nobodyさん2007/09/21(金) 23:22:41ID:QV6ADNlt
たびたびすみません・・・

PHPからのデータをデータベースに格納するとき、文字化けしてしまいます。
php.iniのenternal_encodingはutf-8、mysqlのdefault-charsetはutf8、データベースの照合順序はutf8_general_ciとなっています。

この解決方法として、データベースに格納するときに、
SET NAMES utf-8;
というクエリを発行すると良いということが分かったのですが、そのほかに方法はありますか?
よろしくお願いします。
0714nobodyさん2007/09/21(金) 23:25:36ID:???
>>713
FWなんかだと回避方法が色々あるかもしれんが
べた書きでSQLのバージョンがいくつか忘れたがある以上のバージョンだとそれしかない。
0715nobodyさん2007/09/21(金) 23:39:38ID:???
SET NAMESは禁止
http://blog.ohgaki.net/index.php/yohgaki/2007/08/22/set_namesa_mcb_asc

SET NAMESは禁止?
http://cakephp.seesaa.net/article/52562968.html
0716nobodyさん2007/09/21(金) 23:47:48ID:QV6ADNlt
>>714-715
ありがとうございます。
文字コード問題、難しいですね。
とりあえず今は開発段階なので、自分のサーバのMySQLの[mysqld]のところに、
skip-character-set-client-handshake
を記述して一時退避と思います。
0717nobodyさん2007/09/22(土) 06:08:18ID:+WbXSWsd
xreaで
http://example.com/ほげほげ/でアクセスした場合、mod_rewriteで?wd=ほげほげにして渡したいのですがこれをすると500エラーになります。
文字コードの影響かと思いmb_convertしてみましたが変わりありません。
どんな方法がありますでしょうか?
0718nobodyさん2007/09/22(土) 06:46:17ID:???
URLに日本語をそのまま流すとな?
0719nobodyさん2007/09/22(土) 07:12:11ID:???
mb_convert_encodingを使うと何故か変なところに変な文字が挿入されることがあります。
EUC-JPをUTF-8に変換すると、
「プロバイダー」が「プロ ff8 バイダー」になったり、ならなかったり、
「退会」が「退 198 会」や「退 ffa 会」になったり、ならなかったり…

これは既知のバグなのでしょうか?何か設定がおかしいのでしょうか?
環境はPHP4.4.7cliで、
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
mb_substitute_character(63);
を指定しています。スクリプトの文字コードはUTF-8です。
0720nobodyさん2007/09/22(土) 07:13:25ID:v/rJVSv7
age忘れました。
0721nobodyさん2007/09/22(土) 07:21:03ID:???
既知のバグです
■ このスレッドは過去ログ倉庫に格納されています