【PHP】質問スレッドpart23【php】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
04/10/05 17:36:38ID:???・新規質問の方は上げてください。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
0896nobodyさん
04/10/30 01:33:39ID:???imagepng($image);
こう書いたんですが、
臼NG
としか表示されないんですがどうしてでしょうか?
鯖はXREAで、GDライブラリも最新版のものが入っていたはずです。
0900nobodyさん
04/10/30 07:07:04ID:???あーあ、マニュアルチェックしてから書けばよかったのに・・・
http://www.php.net/manual/ja/function.join.php
> join() は implode() の 別名で、実体はまったく同じものです。
0901nobodyさん
04/10/30 07:49:34ID:???ココを嫁!
http://www.pahoo.org/e-soul/webtech/phpgd/phpgd-02-02.shtm
0903nobodyさん
04/10/30 09:32:45ID:???でもjoinならperlに全く同名でほぼ同じ働きの関数があるから、
perlからの移行組なら簡単に理解するんじゃないかと
884や886は思ったんじゃないか?
でもその意図は元質問者には理解されなかったようだけど・・・
0904nobodyさん
04/10/30 10:24:48ID:eL+7QS/f今PHPでのディレクトリ操作等について勉強中なのですが、
年別フォルダを作成し(今年ならば2004)
フォームに内容等を書き込み日付_101(1030_101,1030_102)というようなファイルを作成して、
そのファイルに変数として内容格納し,それをインクルードさせて一覧表示する。
といったようなプログラムを作成中です。
ディレクトリ、ファイルの作成、変数の書き込みはうまく行ったのですが最新のファイル順に読み込んで表示させるといった部分で詰まってしまいました。
良い方法がないもんでしょうか・・・
0905nobodyさん
04/10/30 11:03:48ID:???自慢げにまぬあるのURL晒されてもな・・
0907nobodyさん
04/10/30 12:36:52ID:???0908nobodyさん
04/10/30 12:37:47ID:X9SzlMJ/↑の掲示板をサーバー設定EUC環境で設置したいのですが、
具体的にどこをいじればいいでしょうか?
何もしない状態でFFFTPでアップすると書き込んで更新するときに文字化け+
エラーが出ます。
サクラエディタですべてのファイルを、charset="Shit_JIS"を全てcharset="EUC-JP"に変更 且つ
EUCコードで保存してアップすると真っ白の画面が出てくるだけですo(-_-;*) ウゥム…
どうすればいいでしょうかil|l|_| ̄|○|l|li
0910nobodyさん
04/10/30 12:54:48ID:???どこがどう文字化けしてんだよ。
もっと具体的に書け
0911nobodyさん
04/10/30 12:58:41ID:???廃止予定の関数でもあるまいに。
0913nobodyさん
04/10/30 13:15:03ID:X9SzlMJ/<何もしない状態でFFFTPでアップすると書き込んで更新するときに文字化け+
<エラーが出ます。
・管理メニューの設定変更という画面で設定更新というボタンをクリックして更新
しようとすると漢字平仮名がすべて半角カタカナ、点などに文字化けします。
(アップして何もしない状態では文字化けは発生していません。早い話更新をするとすべてが文字化けします)
・書込みが可能な画面で書込みをしようとするとERROR:ユーザー設定が消失しています!
というエラーが発生し、書き込もうとした内容がすべて文字化けしています。
0914nobodyさん
04/10/30 13:16:48ID:X9SzlMJ/ほかに設置した掲示板は
>サクラエディタですべてのファイルを、charset="Shit_JIS"を全てcharset="EUC-JP"に変更 且つ
>EUCコードで保存
のみで正常に作動しますた( ゚∀゚)
0915nobodyさん
04/10/30 13:32:07ID:???0916nobodyさん
04/10/30 13:34:16ID:???それはおかしな話だな。
grep -r sjis *を掛けると mb_convert_kanaが見つかったのだが。
地道に全部のファイルに目を通して修正していくのが良かろう。
0917nobodyさん
04/10/30 14:45:39ID:???>>901
どもありがとう。
ということで
header("Content-type: image/png");
$img = imagecreatefrompng("./puyo/w_01.png");
imagepng($img);
imagedestroy($img);
こう書いてみたんですが、やはり同じエラーになってしまいます。
何か他に原因があるのでしょうか?
0918nobodyさん
04/10/30 15:00:15ID:c8pJE3eDあるクラス内で使いたい関数が他のクラス内にある関数と全く同じものだった場合、
そこから呼び出してきたほうがいいのでしょうか?
これはオブジェクト指向の考え方とすこし違うような気もするし、
呼び出した場合もコードが長くなって、なんだかな・・・といった感じです。
どのようにするのが最善な方法でしょうか?
0919nobodyさん
04/10/30 15:01:39ID:c8pJE3eDは、
>呼び出さない場合もコードが長くなって、なんだかな・・・といった感じです。
でした、すみません。
0920nobodyさん
04/10/30 15:31:54ID:X9SzlMJ/頑張ってみます
0922nobodyさん
04/10/30 17:06:57ID:KmTYtaw8apache_module じゃなくて。
javaだとserlvetで言うところのapplicationContextに常駐キャッシュ置いたりして使えるような。
0923nobodyさん
04/10/30 17:14:54ID:c8pJE3eD返信ありがとうございます。
あれから、調べてみたのですが、
さっきの二つのクラスに基底クラス(抽象クラス)を作り、
継承させればいいということでしょうか?
(的外れだったら申し訳ありません。)
0924899
04/10/30 18:01:12ID:???PHPは関数名がコロコロと変わる
例
set_socket_timeout()
↓
socket_set_timeout()
↓
stream_set_timeout()
急に互換性なくなったかと思えばPHP5になっても残ってたり。
だから、エイリアスより本命の関数を使えと言いたかったのが一つ。
んで、注意しなければいけないのが、split()とexplode()は意味が違う事。
俺はPHPではsplit()を使う事はまずなく、動作速度も速いpreg_split()を使う。
だから、implode()⇔explode()の対で覚えた方が良いというのが一つ。
正規表現が必要な時のみpreg_split()を使うと覚える。
とまぁ>>899の2行からこの程度の事は汲み取って欲しいわけだが、お前らには無理ですか?
0925899
04/10/30 18:10:11ID:???質問の際は名前の部分に元質問の番号を書いておいてくれると見やすい。
XREA使ってるそうだけど、広告が自動挿入される無料鯖では?
0926896
04/10/30 18:24:04ID:???0927896
04/10/30 18:28:06ID:???どうもご迷惑をおかけしました<(_ _)>
0928nobodyさん
04/10/30 19:25:45ID:???ログファイルに記事を書き込ませて、それを管理側が読むって形はまずいでしょうか?
簡単に第三者に覗かれちゃいますか?
0929nobodyさん
04/10/30 19:43:31ID:???PHP関係ないよ
0931886
04/10/30 22:18:16ID:???いいたい事は理解できるが、俺はまさに>>903が指摘してくれた理由で
joinを使ったんだよ。一旦echoと書きたところをprintに直したのもそう。
似たような関数で速度が異なるのもそうだが、引数の順番が微妙に
入れ替わってたりするのもいやんだな。そういう部分に手が入ることは
この先もずっと無いのだろうか?
0932nobodyさん
04/10/30 22:55:10ID:NqoZ1zP0コンプレックスの応酬ってさ、見てて気持ち悪いだけだしさ
0933nobodyさん
04/10/30 22:59:32ID:mTugq4bl|
|
J
/V\
/◎;;;,;,,,,ヽ
_ ム:::(;゜Д゜):| ドキドキ
ヽツ.(ノ:::::::::.:::::::.:..|)
ヾソ::::::::::.:::::::ノ
` ー U'"U'
while(){
$n = 2n;
$hoge = $array["$n"];
$hogehoge[] = $hoge;
}
じゃないの?
0935nobodyさん
04/10/31 00:46:00ID:???0936nobodyさん
04/10/31 00:50:05ID:???$a1 = "hhhh";
$a2 = "oooo";
$a2 = "gggg";
for($i=0;$i<5;$i++){
echo $a."$i";
}
$a1 $a2 $a3 とする表現する方法を教えて下さい。
0938nobodyさん
04/10/31 00:58:46ID:???0941nobodyさん
04/10/31 01:49:24ID:R5h305R8PHP + MySQL の環境を作る際の質問です。
ある書籍で
「PHPのインストールの前に必ずMySQLをインストールしておくこと」
というような記述があったのですが、これは何を意図しているのでしょうか?
これを怠った場合にどういうことが想定されるのでしょうか??
ご教授よろしくお願いします。
0942nobodyさん
04/10/31 01:52:37ID:???0943nobodyさん
04/10/31 01:54:51ID:???漏れはやったことないから分からん。
簡単な予想としては、MySQLを先にインスコしたあとPHPをインスコするとMySQLのインスコ状態を認識して
自動でMySQLが使えるようになるんじゃね?
ありがとう
0945nobodyさん
04/10/31 05:04:12ID:???mysqlのクライアントライブラリやヘッダーファイルの食い違いの問題。
だだ、そこの「必ず」は(スムーズにインストールを進めるためには)必ず程度の意味だと思うよ。
0946nobodyさん
04/10/31 13:04:25ID:sxTaJgq6対象ページにイメージタグ
<img src="http://dabudabu.hoge.co/hoge.php" width="1" height="1" />
を挿入することで、
対象ページ間の移動を把握したいです。
しかし、上記 hoge.php にてクッキー発行処理を行っても、
うまいこと処理されません。
もちろん、HTTPプロトコル上、
クッキーの設定はHTML出力前のヘッダー部で行う必要があることは把握している
のですが、
上記要件をクリアする hoge.php を作成できないものでしょうか?
よろしくお願いします。
0947nobodyさん
04/10/31 13:09:24ID:???0949nobodyさん
04/10/31 13:32:17ID:qucf7+9r送信じゃなくて、作成ってことを言いたいんだろ
0950nobodyさん
04/10/31 13:37:44ID:???クッキー出すところでインクルードでもしてろ
0951nobodyさん
04/10/31 13:58:14ID:sxTaJgq6第三者にアクセス解析を提供したいと考えています。
第三者のホスティングサーバでは必ずしもPHPエネーブルなわけではないので、
第三者が容易に組み込める手法として、HTML内のイメージタグSRCアドレスでアクセス解析を実現したいです。
0952nobodyさん
04/10/31 14:04:19ID:sxTaJgq6例えば、
http://www.uwg.co.jp/
では正に同様の方法で、実際にクッキーが発行されます。
彼らはどんな方法で実現しているのでしょうか。
0953nobodyさん
04/10/31 14:07:41ID:R5h305R8ローカルに環境構築をしている最中です。
インストール後、PHPとMySQL間の連携がとれていないらしく
PHPからMySQLへのコネクションのテストを試みているのですがうまくいきません。
環境構築時に何か特別な設定をする必要はあるのでしょうか。
たとえば明示的にPHPとMySQLを連携しますというような設定を
しなければならないとか。
接続はホスト(localhost)、ユーザ名(root)、パスは(MySQLフォルダのあるディレクトリ
)を与えて試しています。
よろしくお願いします。
0955nobodyさん
04/10/31 14:28:47ID:???> うまくいきません。
どういうインストールの仕方をしたか、どういう風にうまくいかないのか、
全く書いてないから、まぁがんがれとしか言えんよ。
Fatal error : Call undefines function: てのだったら、
わざわざMySQLを使えないように構築したPHPを
好き好んでインストールしたということだから、当然の帰結になる。
0956953
04/10/31 14:47:12ID:R5h305R8//データベース接続開始
$link = @mysql_connect($host,$name,$pass) or die ("接続エラー");
print "データベース接続に成功しました"."<br>\n<hr>\n";
?>
というようなコードをhtml内に記述したtest.phpをブラウザで確認すると
上記のコードに従い、"接続エラー"が表示されてしまうのです。
もちろんコード内で変数はていぎしています。
0957nobodyさん
04/10/31 15:05:38ID:???原因を絞り込めないのも当然の帰結となる。
0958953
04/10/31 15:20:08ID:R5h305R8アドバイスありがとうございます。
@を削除して実行した結果、下記のエラーが表示されました。
Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in /Users/○○○○○○/Sites/con_test_mysql.php on line 27
27行目とは先ほどのコードの
$link = @mysql_connect($host,$name,$pass) or die ("接続エラー");
の部分です。
0959nobodyさん
04/10/31 15:32:02ID:???// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
____________________________________
|Client does not support Authentication protocol | |検索|←をクリック!!
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◎ウェブ全体 〇日本語のページ
0960nobodyさん
04/10/31 15:35:03ID:???not support authentication protocol
これが出るということはPHP側のMySQL Client API versionが
低いということ。つまり、PHPのビルド時に正しくMySQLのパスを
セットしていないのが原因。
確認方法はphpinfo();
0961nobodyさん
04/10/31 15:48:08ID:/ekEcexrカレントディレクトリまでのルートのリンクを作成したいのですが、
お知恵をお貸しください。
HPの上段によく「メイン >> コンテンツ1 >> サブコンテンツ1」
ホームディレクトリから現在表示しているhtmlがあるディレクトリまでの
経路を出していると思うのですが、これをプログラムでやろうとすると、
シェルスクリプトだと、pwdで現在のhtmlがあるカレントディレクトリを
取得して、正規表現を使って、Linkを作成するというのが思いつくのですが、
PHPでやろうとすればまったく思いつきません。
やろうとしているHPの全体は、
HP上段にカレントディレクトリまでのリンク
HP下段左側にディレクトリをリンクとして使うため、下記のようなPGを書き、
$hdl = opendir("/home/k-uda/public_html");
while(($dname = readdir($hdl)) !==false){
if(!is_file("$dname") && $dname != "." && $dname != ".."){
echo " <p><b><a href=$dname>$dname</a></b></font></p>";
}
}
HP下段右側にインフレームでディレクトリの中のhtmlを表示
使用としています。
どなたか、お教えください。お願いします。
0962nobodyさん
04/10/31 16:15:56ID:???phpの問題じゃない気がするけど
HPが
メイン >> コンテンツ1 >> サブコンテンツ1という構成で
サーバー側のディレクトリ構成も同じなら
./でカレント../で一個上../../で二個上のディレクトリを表現できるからそれで良くないか?
0963953
04/10/31 16:38:00ID:R5h305R8最初はPHP4とMySQL4.0だったのですが
最近Mysqlを4.1にしたので、その辺りで
認識がうまくいっていないのだろうと予測してます。
phpinfo(); で確認しました。
ConfigureCommand欄の'-with-mysql=/○○/○○/mysql'は
パスとして合っているようです。
対策としてはもう一度
configure→make→makeinstall
をし直せば、クライアントは最新のversionとして
認識されるんでしょうか??
0964nobodyさん
04/10/31 16:41:58ID:???聞く前にやってみるべし
って、phpを入れ直すんだよな?
そのまま同じソース使うんならmake cleanしてからやらないと嵌るかも。
新しく展開してできるならそっちの方がいい気がする
0965960
04/10/31 17:32:51ID:???確認するのは、MySQL Client API versionだよ。
3.xxになってたら、PHPにビルトインしている奴で、新しいMySQLが
要求する authentication protocol をサポートしていないって事。
あとは>>964のいうとおり。
0966953
04/10/31 17:37:50ID:R5h305R8たびたびすみません。
phpinfo(); で確認しました。
Serverは4.1。
MySQL Client API versionは4.0.21でした。
この違いが問題なのですね。
ですのでClient API のバージョンを4.1に引き上げるのが
問題の解決策になろうと思っていますが方法がわかりません。
ご教授願えませんでしょうか?
>>964
make clean とはアンインストールのようなものでしょうか。
だとするとアンインストールの対象を指定したりする必要は
ないのでしょうか?
0967nobodyさん
04/10/31 17:48:08ID:???アンインストールはmake uninstall
make clean はソースディレクトリ以下にあるmakeしたモノをclean(消す)するだけ
他はここで聞くよりそれっぽいキーワードでぐぐった方が早いような気がする
0968953
04/10/31 17:55:36ID:R5h305R8いろいろとありがとうございます。
makeclean→configure→make→makeinstallを試してみます。
とても助かりました。
0969nobodyさん
04/10/31 19:53:49ID:???<desc>うんたら</desc>
みたいな記述のところは
function startElement( $parser, $tagName, $attrs )
の$tagNameでswitchすれば
うまく引っかかってくれるのですが、
<dc:title>なんたら</dc:title>
とか
<mm:Creator>あの人<mm:Creator>
みたいなところは拾ってくれません。
こういうタグを拾うにはどうしたらいいんでしょうか?
0970nobodyさん
04/10/31 20:03:48ID:???0971nobodyさん
04/10/31 20:54:39ID:PqZ8V0+W$_SERVER = $HTTP_SERVER_VERS;
といったようなものがある(と思う)のですが、ここの
$HTTP_SERVER_VERS
とはなんですか?
マニュアルを検索してもでてこなかったもので…
0973nobodyさん
04/10/31 20:59:55ID:???0975nobodyさん
04/10/31 21:13:40ID:???0976nobodyさん
04/10/31 21:19:14ID:???XMLをパースするのにどういうライブラリを使ってるのか書いてないが
当然察してくれるだろうなどと考えているのではないだろうな
名前空間を認識してくれないライブラリを使っているか、
指定する方法を知らないためにやりそこなっているか
そんなとこじゃないの?
0977nobodyさん
04/10/31 21:37:06ID:???うをほんとだ…それで検索したら出てきた…
拾ったスクリプトにVERSで書いてあったもので…ごまんなさいorz
0978960
04/10/31 22:38:23ID:/ekEcexrありがとうございます。
返事が遅くなり申し訳ありません。
そういやり方ですか、先のプログラムで取得した、ディレクトリ情報に
リンク先のhtmlにあわせて、./ディレクトリ名, .../ディレクトリ名としていくということでしょうか?
その際、インフレームhtmlを読み込む時にリンク先を書き換えるのはやはりPHPとなると思うのですが、
その部分のプログラムはどんな感じになるのでしょうか?
0980nobodyさん
04/10/31 23:43:33ID:EL6QRtaC2. $b = $a;
3. $c = &$a; // 参照渡しによる代入
4. $a = 20;
すみませんが、参照渡し代入がわかりません。
誰か、教えてくださいm(__)m
↑なんですが、こういう解釈でOKでしょうか。
1. $a に、10を入れる
2. $b に、$aを入れる。この時点で、$a と $b は同じ値(10)
3. 現在の、$a は「10」だが、1行目に行って、さらに10を追加。$aは「20」になる
そして、$cに、「20」が入る
4. $a に、「20」を入れる
0982nobodyさん
04/10/31 23:55:37ID:???取りあえずマニュアル読むといい
http://www.php.net/manual/ja/language.references.php
0983nobodyさん
04/10/31 23:55:41ID:???$a (=$c) = ・・・
$c (=$a) = ・・・
と考えれば
0984nobodyさん
04/10/31 23:57:00ID:???3で、=なのに、足すっておかしいですよね
自分でもおかしいとは、思ってるんですが、どのように解釈すれば
いいか、ご教授頂けないでしょうか。
0985nobodyさん
04/10/31 23:57:31ID:???$a=10;
$b=$a;
$c=&$a;
echo "<pre>";
echo '$a='.$a."\n";
echo '$b='.$b."\n";
echo '$c='.$c."\n";
$a+=10;
echo '$a='.$a."\n";
echo '$b='.$b."\n";
echo '$c='.$c."\n";
echo "</pre>";
コレを実行してみたらいいんじゃね?
0986980
04/11/01 00:59:07ID:U1tLM27v2. $b = $a;
3. $c = &$a; // 参照渡しによる代入
4. $a = 20;
1. $aに、10をいれる
2. $bに、$a をいれる
3. $cに、$a をいれる ここまでで、$a $b $c は全て、10
4. $aに、20をいれる。
3行目の、$aは、20になってる!= $cも、値が20である。
980です。みなさんありがとうございますm(_ _)m
なんとなくわかりました!上の解釈でOKでしょうか?
0987nobodyさん
04/11/01 01:10:12ID:Ex4hVsBX0989nobodyさん
04/11/01 01:43:30ID:???0990nobodyさん
04/11/01 01:44:18ID:Ex4hVsBXナルホド!
1 と 0
データがある と データ無い
コレを同じように考えてしまう。。。。悪い癖だなぁ
0991nobodyさん
04/11/01 01:47:18ID:???きちんと覚えましょう。
してるんだけど、File10くらいまでしかMySQLには取り込んでくれません。n=20くらい
一気にすると、どこかがパンクするのですか?
全て納められる方法はありますか?
納める時間は気にしてません。おねがいします。
0994nobodyさん
04/11/01 03:21:34ID:???ワロタ
>992
エラーは出ないんですか?
全部同じTABLEですか?キーなど重複レコードはどうしてますか?
はい。エラーはありません。同じTABLEに入れてます。
流れ的には
1、File1の中身を全て呼び出す
2、一部を取り出す
3、MySQLに入れる
4、ループ抜けるチェック
5、File2にセットする
6、1に戻る
勉強がてらに行ってるので、まだ重複レコードの処理はしてません。
1ループにつき10入れて、ファイルを20くらい読み込みます
全体として200を一気に入れることになってます。
レス数が950を超えています。1000を超えると書き込みができなくなります。