【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カテゴリ)の各スレで
0086nobodyさん
2008/05/30(金) 18:48:03ID:???処理とかじゃなくて<?phpの前に
改行とかあってもNGなんだけど、だいぢょうぶ?
てか、えらーを確認しる
008783
2008/05/30(金) 19:03:02ID:???もちろん<?phpの前には何も書いてません。
エラーも特に出ておらず、$flg = imagejpeg($img);の前にechoとかすると
エラーが出ることは確認してます。
0088nobodyさん
2008/05/30(金) 20:07:39ID:???display_errorsの設定は?
0089nobodyさん
2008/05/30(金) 21:49:55ID:???画像を表示させるにはどうすればいいのでしょうか?
相対アドレスでひとつひとつ指定していくしかないのでしょうか?
0090nobodyさん
2008/05/30(金) 21:58:28ID:jYsEwVCpありがとう、確かにその方法があった・・・
ATコマンドマニュアル書にも書いてある・・・
でも、もう遅い・・・
今日がリリースだった・・・
遅いよおおお、もっと早く・・・
0091nobodyさん
2008/05/30(金) 22:16:16ID:???0092nobodyさん
2008/05/30(金) 22:43:51ID:???0093nobodyさん
2008/05/30(金) 23:09:04ID:???0095nobodyさん
2008/05/31(土) 09:24:49ID:rg5NRkechttp://ml.php.gr.jp/pipermail/php-users/2004-January/020601.html
0096nobodyさん
2008/05/31(土) 10:25:15ID:???そういうことじゃなくて、
クラスをnewするときに限っての話だと思うよ。
$obj =& new Classname($param);
と
$obj = new Classname($param);
の違い。
使い分ける理由はあるのか?と。
0097nobodyさん
2008/05/31(土) 10:53:26ID:???0098nobodyさん
2008/05/31(土) 14:25:14ID:???0099nobodyさん
2008/05/31(土) 14:27:10ID:VvNY8ycBselect 名前(田中) select select select
select 名前(佐藤) select select select
select 名前(伊藤) select select select
という感じで、名前の部分以外はselectで選択するようになっている。
名前の部分は、選択する必要がなく、labelで書いているんだけど、この名前もselectのものと同じように
配列で取得したいんだ
でもlabelには、元々name属性もvalue属性もないからできない
いい方法ありますか?
0101nobodyさん
2008/05/31(土) 14:46:36ID:YpR0nkCv[PHP]:Ver 4.3.11
PEARのImage_Graphを使おうとしています。
$ pear install --alldeps Image_Graph-alpha
とすると「requires PHP extension "gd"」と出るので、
$ yum install php-gd
をしました。
再度pear install --alldeps Image_Graph-alphaを実行しても
同じエラーが出ます。
どのようにしてImage_Graphを使うようにするのでしょうか?
エラーの詳細です
------------------------------------------------
[root@hoge /]# pear install --alldeps Image_Graph-alpha
pear/Image_Canvas requires PHP extension "gd"
pear/Image_Graph requires package "pear/Image_Canvas" (version >= 0.3.0)
pear/Image_Color requires PHP extension "gd"
No valid packages found
install failed
------------------------------------------------
よろしくお願いします
0103101
2008/05/31(土) 15:36:36ID:YpR0nkCv返信ありがとうございます
[root@hoge ~]# rpm -ql php-gd
/etc/php.d/gd.ini
/usr/lib/php4/gd.so
次に/usr/lib/php.iniの中の
extension_dir = "./"
に従い、
$ cp -p /usr/lib/php4/gd.so /usr/lib/
(php.iniが/usr/libの中にあり、extension_dirが./になっているので
やってみました)
php.iniに
extension=gd.so
を追加。
apacheを再起動。
/usr/lib/の中には
libgd.a
libgd.so
libgd.so.2
libgd.so.2.0.0
があります。
しかし、同じメッセージが出てしまいます
0104nobodyさん
2008/05/31(土) 15:37:05ID:???0106ノシ
2008/05/31(土) 18:34:12ID:???#COM#ランダムコメント1,区切って2,ランダム3#/COM#
とあったら
#COM# から #/COM#
まで,で区切られた文字列を
ランダムに表示させたいです。わかるかたよろよろしくお願いします。
0108ノシ
2008/05/31(土) 20:09:24ID:fD/ntKdG正規表現を使うのも変換するのもわかるのですが
変換ルーチンに
つまり
\\1
で指定した文字を
どのように持ち込むかがわかりません
0109nobodyさん
2008/05/31(土) 20:29:34ID:???0110nobodyさん
2008/05/31(土) 20:52:03ID:???また開始ボタンを押しても一向に起動されないんですけどなぜでしょうか?
パソコン自体を一度再起動してもなりません。
0111nobodyさん
2008/05/31(土) 21:06:24ID:???0112nobodyさん
2008/06/01(日) 04:27:33ID:???0113nobodyさん
2008/06/01(日) 13:15:34ID:Ss8+miwE[OS] WindowsXP
[HTTPD] AN HTTPD 1.42p
[PHP] 5.2.6
[現象]
includeが使えたり使えなかったり。
include "hoge.php"; 以降の記載が無視される。
しかし、使える場合もある。
使える組み合わせ(呼び出す側と呼び出される側の組み合わせ)なら何回やっても使える。
使えない組み合わせだと何回やっても使えない。
そのため、どこの部分で引っかかっているのか判らない
エラーは吐かない。
ちなみに、以前php4(xampp環境)で使用していたときは、問題なく使えていた。
解決のための切り分けのヒントでもいいのでお願いします。
0115113
2008/06/01(日) 13:38:18ID:Ss8+miwEありがとうございます。
現在適応しているphp.iniは
error_reporting = E_ALL & ~E_NOTICE
display_errors = On
です。
よろしくお願いいたします。
0116nobodyさん
2008/06/01(日) 14:01:08ID:???0119nobodyさん
2008/06/01(日) 23:10:35ID:???0120nobodyさん
2008/06/01(日) 23:46:09ID:???0121nobodyさん
2008/06/02(月) 09:47:17ID:???0122113
2008/06/02(月) 10:21:58ID:1QPDvcRnちょっとどちらのコードもかなり大きいのでここに貼り付けるのは不可能。
コード書くのがへたっぴなものでかなり膨大なサイズに・・
だから、切り分けの手段のヒントが欲しかったです。
でもここに貼り付けられるように、パターンが似たサンプルコードを書いていたら、結果として切り分け成功しました。
ありがとうございます。
>>119
>>120 の仰る通り。
include以降が無視される場合が使えない。
ただ、使える使えないって書き方はとても論理的ではなかったですね。
反省・・
>>120
フォローありがとうございます。
こんな論理的でない文章を理解していただけて助かります。
>>121
includeをコードのしょっぱなに持ってきていたので、最初の行ですでにそれ以降が無視されるという現象に・・
0123113
2008/06/02(月) 10:22:37ID:1QPDvcRnincludeされているファイルに問題がありました。
しかし、ここで疑問に思うのは、なぜエラーを吐かないのか
実は、includeされているファイルはさらに別のファイルをincludeするという二重include構造になっていました。
このさらにincludeされているファイルが悪いようです。(下記に示すところのファイルC)
ファイルA ← ファイルB ← ファイルC
( ← はincludeで読み込んでいる)
こいつは単体でアクセスしてもエラーを吐かず、ソースにも何も表示されません
そのため、どこに問題があるのか今の段階ではまだ絞れていません
このファイルCだけならここに張ることも可能なのですが、人様が作ったものでフリーで公開されていたものなので
ここに晒していいかどうかわからないので、とりあえず自分でもう少し絞っていこうと思います。
(このコードがphp5と相性が悪い線が強そうです。)
ご迷惑おかけしました。
皆様のアドバイスでここまでこぎつけたことは事実です。
ありがとう!!
0124nobodyさん
2008/06/02(月) 11:40:17ID:???0125nobodyさん
2008/06/02(月) 11:57:28ID:???php version5.1.6をyumコマンドでインストールしました。
0126113
2008/06/02(月) 12:01:29ID:1QPDvcRnそのファイルCは、RSSパーサーなんですよね。
で、いろんなRSSを突っ込んでみたんですけど、やはり結果は一緒で
でもPHP4だと正常に動くんです。
ちなみに仰られていたので、 exit と die を検索かけて見ましたが使用されていませんでした。
というか、これで思いついた、@マークをすべて消し去ればどこでエラーが出てるかわかるかも・・・
0127113
2008/06/02(月) 12:23:07ID:1QPDvcRn@mb_convert_encoding()
が原因でした。
問題は、PHPのバージョンではなく、私のphp.iniの設定だったようです。
このフリーのRSSパーサー(>>123 でいうところのファイルC)がコードの中に@mb_convert_encoding()でエンコードする
文字コードを別に設定しており、その設定が私のphp.iniと反する設定になっていました。
64 | $page = EUC_JP;
156 | $hoge = @mb_convert_encoding($hoge, $page, 'auto')
みたいな感じになっていました。
切り分けの際に、以前のphp.iniも適用して調べたと思ったのですが、抜けがあったみたいですね。
(再起動忘れたかな・・・)
スレ汚し、失礼いたしました。
ヒントを与えて下さった方々ありがとうございました!
0128nobodyさん
2008/06/02(月) 12:48:43ID:RzwMZ6BKSqlの order by key,value
のようなことをさせるにはPHPではどのようにすれば良いのでしょうか?
0129nobodyさん
2008/06/02(月) 13:10:12ID:???0130うっかりさん
2008/06/02(月) 13:20:46ID:???切腹します。
0132nobodyさん
2008/06/02(月) 14:46:49ID:???0134nobodyさん
2008/06/02(月) 18:52:31ID:SnLmoVqt初歩的な質問で申し訳ないのですが、『WT_HeaderNavi()』という関数を自分で設定し
↓のように記述して
------------------------------------------------------------
<?php
echo '<a href="' . WT_HeaderNavi(999) . '">TEST</a>';
?>
------------------------------------------------------------
実行すると↓のように<a></a>のタグの前に【関数で出力される値】が来てしまいます。
------------------------------------------------------------
【関数で出力される値】<a href="">TEST</a>
------------------------------------------------------------
↓のように順序通り出力するにはどうすればよいのでしょうか?
------------------------------------------------------------
<a href="【関数で出力される値】">TEST</a>
------------------------------------------------------------
色々ググったのですが、見つかりませんでしたのでご教授お願い致します。
0135nobodyさん
2008/06/02(月) 19:34:08ID:???WT_HeaderNavi(999)の中でechoやらprintやらしてねーか?
関数の最後で return 【関数で出力される値】; だな
0136nobodyさん
2008/06/02(月) 19:40:40ID:???その通りでした!!ぐっときました!!
ありがとうございました!!
0137nobodyさん
2008/06/02(月) 19:55:59ID:???0138nobodyさん
2008/06/02(月) 19:58:22ID:???0139nobodyさん
2008/06/02(月) 20:00:55ID:???痛くてゴミんなさい!!怒っちゃやーよ!!
0140nobodyさん
2008/06/02(月) 20:25:46ID:???0142となりのPHP
2008/06/02(月) 21:57:27ID:+h9IA1ezについて皆さんに聞きたい。
お・ま・え・らならどう管理する?
知りたいw
0143nobodyさん
2008/06/02(月) 21:59:08ID:???0144となりのPHP
2008/06/02(月) 22:01:05ID:+h9IA1ezデータベースに保存するの?
フォルダーに保存するの?
これどっちがいいの?
メリットを教えてくれ・・・ ちくび・・・
0145nobodyさん
2008/06/02(月) 22:31:54ID:???0146nobodyさん
2008/06/02(月) 23:17:54ID:???0148nobodyさん
2008/06/03(火) 00:01:19ID:JBxIkCY5Array
(
[くるま] => 15
[ろば] => 14
[もも] => 14
[とけい] => 13
[りんご] => 13
[しょうゆ] => 6
[えんぴつ] => 1
)
のように降順にソートされた連想配列から配列の要素を比較して上位3件
のキー値を取り出してそれぞれ別の配列に入れたいのですが、
どのようにするのがスマートでしょうか?
以下のような結果にしたいです。
配列@ ( [0] => くるま )
配列A ( [0] => ろば [1] => もも )
配列B ( [0] => とけい [1] => りんご )
御指南よろしくお願いします。
0149nobodyさん
2008/06/03(火) 00:31:58ID:nQlafZ13値(数字)をキーにした多次元配列にpushしていったらどうでしょう?
0150nobodyさん
2008/06/03(火) 00:58:26ID:nQlafZ13foreach ($org as $key => $value)
$res[$val][] = $key;
0151nobodyさん
2008/06/03(火) 01:35:06ID:nQlafZ13ごめん1行目と2行目の変数名がバラバラだ・・orz
多分気づくと思うけど2行目は
$result[$value][] = $key;
別々の配列にしたいときは、ループ内でキーを
$result["ex".$value][] = $key;
とか文字列にしておいて、
extract($result);
とか。
0152nobodyさん
2008/06/03(火) 01:59:05ID:JBxIkCY5解決できました!
ありがとうございます。
非常にスマートです!
0153nobodyさん
2008/06/03(火) 02:45:23ID:???0154nobodyさん
2008/06/03(火) 15:11:01ID:O1BZb4u6strip_tags でタグを削除したいと思ったんですが、
元の文字列がUTF8 などだと タグ<>の部分まで合わせて文字にとなっているようで
※その部分が文字化けしているように見える。しかし、htmlに出力すると、文字とタグにちゃんとわかれている。
strip_tags でタグが削除できないようであるのですが、
これをどうにかstrip_tags でタグ削除させる方法はないでしょうか?
0155nobodyさん
2008/06/03(火) 15:37:51ID:???なんか微妙に言ってることがわからないんだが、俺の環境では
echo strip_tags('<a>りんく</a>ああ<b>いい</b>うう');
//出力
りんくああいいうう
なにも問題ないぞ?
こういうことじゃないのか?
0156nobodyさん
2008/06/03(火) 16:07:48ID:z9NWRSRZ「郵便番号の情報が書かれている.phpファイルを
.htmlファイル上で読み込ませ、郵便番号の検索を行えるようにする。」
と言う物なのですが、
実行すると本来住所が書き出されるべき場所に
何故か.phpファイル上のデータが全て書き出されてしまいます。
ttp://www.vipper.org/vip834693.jpg
参考資料と見比べても特に違いが見受けられないので
やはりphp.iniやhttpd.confの設定が間違っていると言うことなのでしょうか。
もし理由の分かる方がいらっしゃいましたら回答をお願いしたいです。
PHP:5.2.6(SQLite込)
Apache:2.0.63
OS:WindowsXP
以下命令文を書きますので
何卒宜しくお願い致します。
0157【yubin01.html】
2008/06/03(火) 16:08:32ID:z9NWRSRZ"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:v="urn:schemas-microsoft-com:vml">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8" />
<head>
<title>郵便番号による検索</title>
<script src="prototype.js" type="text/javascript"></script>
<script type="text/javascript">
function buttonf(){
uri = "yubin01.php";
data = Form.serialize("form1");
option = {method: "post", parameters: data, onComplete:ajaxReq};
new Ajax.Request(uri,option);
}
function ajaxReq(request1){
$("addr").value = request1.responseText;
}
</script>
</head>
<body>
<p>郵便番号を入力してください。 例 : 101-0025,26,35,41,43,46,48,51</p>
<form id="form1">
郵便番号<input type="text" id="zcode" name="zcode" size="10" />
<input type="button" id="b1" name="b2" value="住所検索" onClick="buttonf(); return false;" />
<br />
住所<input type="text" name="address" id="addr" value="" size="80" />
</form>
</body>
</html>
0158【yubin01.php】
2008/06/03(火) 16:09:02ID:z9NWRSRZ$BOM = "\xef\xbb\xbf";
$code1 = $_POST["zcode"];
$code2 = split("-",$code1);
$code = $code2[0].$code2[1];
$address= array(
"1010025" => "東京都千代田区神田佐久間町",
"1010026" => "東京都千代田区神田佐久間河岸",
"1010035" => "東京都千代田区神田紺屋町",
"1010041" => "東京都千代田区神田須田町",
"1010043" => "東京都千代田区神田富山町",
"1010046" => "東京都千代田区神田多町",
"1010048" => "東京都千代田区神田司町",
"1010051" => "東京都千代田区神田神保町"
);
echo $BOM.$address[$code];
?>
0161nobodyさん
2008/06/03(火) 16:47:34ID:???webサーバとはなにか?から出直してら
0162nobodyさん
2008/06/03(火) 16:54:38ID:???わからないので教えてもらえませんか
あと定期的に実行するにはどうやればいいですか
0163nobodyさん
2008/06/03(火) 17:05:50ID:???http://jp.php.net/manual/ja/language.types.array.php
->
http://jp.php.net/manual/ja/language.oop5.basic.php
=&
http://jp.php.net/manual/ja/language.references.php
定期的に実行
cron
0164nobodyさん
2008/06/03(火) 18:07:39ID:???借り物でやったら垢削除ものだが。
0165nobodyさん
2008/06/03(火) 19:02:27ID:???レスありがとうございます
>=>
>http://jp.php.net/manual/ja/language.types.array.php
う〜んarrayにしか使わないってことですか?
>->
>http://jp.php.net/manual/ja/language.oop5.basic.php
すみませんもう少し説明してもらえないでしょうか
(classに関係有るってことくらいしかわかりませんでしたorz)
>=&
>http://jp.php.net/manual/ja/language.references.php
ん、、、、いまいち普通の代入(=)との差がわからないのですが、、、
>定期的に実行
>cron
ありがとうございます
いまいち使い方がわかりませんがもう少し調べてみます
0166nobodyさん
2008/06/03(火) 19:15:03ID:???>う〜んarrayにしか使わないってことですか?
他に使ってる例でもあんの?
>すみませんもう少し説明してもらえないでしょうか
>(classに関係有るってことくらいしかわかりませんでしたorz)
インスタンスのプロパティやメソッドにアクセスするための構文。
C++やJavaでいうドット(.)と同じ。
分からんなら使わなくて特に問題なし。
詳しく知りたければオブジェクト指向について学ぶべし。
>ん、、、、いまいち普通の代入(=)との差がわからないのですが、、、
値渡しと参照渡しの違い。
マニアな人しか使わないから知らなくてもOK。PHPだと最適化してくれるし。
詳しく知りたければ参照について学ぶべし。
>>cron
窓鯖ならタスクでおk
0167nobodyさん
2008/06/03(火) 20:56:04ID:???返信どもです
>インスタンスのプロパティやメソッドにアクセスするための構文。
>C++やJavaでいうドット(.)と同じ。
>分からんなら使わなくて特に問題なし。
>詳しく知りたければオブジェクト指向について学ぶべし。
何となくだけどわかりました、ありがとうございます
0168nobodyさん
2008/06/03(火) 22:32:01ID:???0169nobodyさん
2008/06/03(火) 22:46:55ID:KEz04zwq取得する可能性がある場合、どうしていますか?
自分はREQUESTを使っていますが、↓する方法もあると思います。
if($GET){
$id = $_GET["id"];
}else($_POST){
$id = $_POST["id"];
}
ただこれだとソースが長くなるので、正しいのか否か悩んでいます。
0170nobodyさん
2008/06/04(水) 00:42:39ID:???0171nobodyさん
2008/06/04(水) 02:08:12ID:???0172nobodyさん
2008/06/04(水) 02:40:35ID:???0173nobodyさん
2008/06/04(水) 03:46:25ID:IW2VxFJn以下のようなURLの場合で、
http://hoge/index.php/id/foo/password/bar
index.phpにて「/id/foo/password/bar」の部分を
取得したいのですが、どのようにすれば宜しいでしょうか?
0174nobodyさん
2008/06/04(水) 03:58:25ID:???0175nobodyさん
2008/06/04(水) 04:07:25ID:???$_SERVER{'PATH_INFO']
スラッシュ区切りにする必要はあるのかね
てか認証で使うパスワードをGETで渡すのはどうかと・・・
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:???■ このスレッドは過去ログ倉庫に格納されています