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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0367nobodyさん2007/04/05(木) 15:49:15ID:ln1txq/N
>365
アカンがなwwwww
対策練ってくる・・・orz
0368虚弱PHP2007/04/05(木) 15:50:33ID:???
>>364
しかし、そのサーバーまだ全然ページないねw
ページも素人っぽいし。
03693392007/04/05(木) 15:52:18ID:???
そこはきにすんな。
場所が借りれたらいいと思った。今は反省していない。
0370虚弱PHP2007/04/05(木) 16:13:19ID:???
phpinfo発見
http://muryo-de.etowns.net/php.php
0371nobodyさん2007/04/05(木) 16:13:51ID:???
>>355
設定で、どうにでもできる自由度を理解してないだけと思われ。

PHP側でMySQLの設定にあわせて文字変換してもいいし
MySQL側の設定で、MySQL側の変換を無効にしたりとか
PHPに合わせてデータを渡したっていいし、オマイの好きに
出来るよってところかな。

PHPとMySQLの文字変換の関係って言われても
答えとしては、自分がPHPとMySQLでやろうとしてることに
一番いい設定を選べばエエやん?って感じ。
03723392007/04/05(木) 16:20:25ID:ln1txq/N
あわわ・・・
逃げに走って、sendつかわなくていいフォームさがしてう
0373nobodyさん2007/04/05(木) 16:35:54ID:???
ある連想配列の要素全てに htmlspecialchars をかけたい場合、
簡単にする方法はないでしょうか?
0374nobodyさん2007/04/05(木) 16:35:56ID:???
>>366
>だけど、化けまくる場合が多い
これの原因の多くが使ってるmysqlクライアント側文字コードが
デフォルトは「latin1」と設定されてるから。

PHPでEUC-JPやUTF-8に変換してデータ送っても
MySQLサーバの方ではクライアントはlatin1で送るよと表明しているから
latin1→サーバ側に指定された文字コードに変換する。
latin1と思って日本語扱えば、そりゃ文字化けは必至。

だからクライアントの起動オプション、ライブラリならビルド時に指定するか
SET NAMESで「これからクラアントは○○で送るよ」とサーバに教えてやらないと駄目
http://dev.mysql.com/doc/refman/4.1/ja/charset-connection.html
PHPやMySQLの公式ビルドもののクライアントライブラリも「latin1」と設定されてる。
# RHEL系はUTF-8になってるのかね。

まあ自分も
>skip-character-set-client-handshake設定して、
>自分でちゃんと文字コード管理するのがよさげ。
こっち
0375あきら2007/04/05(木) 16:40:24ID:jUd/uPxe
postgresql 7.3.15 で カラムを使って日付の計算を教えてください。
create table kaiin (kaiin_code varchar(6),
kaiin_name varchar(20),
nyukai_ymd varchar(10),
kigen integer,
primary key (kaiin_code));
nyukai_ymd は 日付を表現する文字型のカラム
kigen は 有効期限で1から12(nヶ月)

有効期限切れの会員の検索
入会日(nyukai_ymd) < 今日(2007-04-05)から遡ってkigenヶ月
select * from kaiin where
nyukai_ymd < to_char(to_date('2007-04-05', 'YYYY-MM-DD') - interval 'kigen month', 'YYYY-MM-DD');

ERROR: Bad interval external representation 'kigen month'
と言うエラーが.....!

intervalでカラム(kigen)を使う方法を教えてください。
宜しくお願いします。
03763552007/04/05(木) 16:43:30ID:???
>>366
>>371
>>374
レスありがとうございます。

>MySQL4.1以降だとそうなるはず。
つまり4.1以降のクライアント側の文字コードがEUCに設定されている場合、の話ですよね。
では、4.0以前のサーバー側の文字コードって何の意味を成しているのでしょうか?
0377nobodyさん2007/04/05(木) 16:43:47ID:???
>>375
それのどこにPHPの質問があるのだね
0378nobodyさん2007/04/05(木) 16:45:03ID:???
>>373
$array = array_map('htmlspecialchars',$array);
0379nobodyさん2007/04/05(木) 16:46:08ID:Y4vj6k1c
PHP初心者です

今まで無料鯖で自作ブログみたいなのをつくってましたが、今回SSLが使えて広告もない鯖をタダで
使えるようになりました。そこで特にその必要はないのですが、あるならやっぱ使いたいのでコメント
やユーザー情報の入力はセキュアな状態で行うように改造したいと思ってます。

そこで質問なんですが、サイトのアドレスはhttp://mydomain.xxx.xxx/で、SSLはhttp://secure.xxx.xxx
というサブドメインでしか使えなくなってます。鯖は同じなのでmydomainで使ってるサイトの外見テンプ
レートをsecureから参照したいのですが、どうすればいいのかわかりません。

例えば、mydomain/tpl/tpl.phpといったテンプレートファイルをsecure/index.phpから参照するにはどう
すればいいですか?

日本語怪しかったらスミマセン
お願いしまッス!
03803392007/04/05(木) 16:46:37ID:ln1txq/N
鯖を変えてみた。
http://0web.cjb.net/
うごく・・・し、送れるんだけど鰓がでるお。。
Notice: Undefined variable: err_message in
0381あきら2007/04/05(木) 17:01:57ID:jUd/uPxe
詳細が抜けててすみませんでした。
FreeBSD 5.3
Apache/1.3.37
php 4.4.4
postgresql 7.3.15

実際は
$today = date("Y-m-d");
$result = pg_Exec($conn,"select * from kaiin where nyukai_ymd < to_char(to_date('$today', 'YYYY-MM-DD') - interval 'kigen month', 'YYYY-MM-DD');");
です。
宜しくお願いします。
0382nobodyさん2007/04/05(木) 17:04:36ID:???
Smartyいじってるんですけど、こんなエラーがでました。
Warning: Smarty error: unable to read resource: "menu.tpl" in C:\php\include\SMARTY\libs\Smarty.class.php on line 1095
正直Smartyにエラーが出るなんて想像もしてなかった
1000行も見返して問題チェックなんてする気にならないというか、
変にいじったら予想外の部分にまで後々障害出そうで怖いんですが、、
皆さんこういうトラブル発生しましたか?
0383nobodyさん2007/04/05(木) 17:04:45ID:???
>>381
Postgresの質問だろ?
0384nobodyさん2007/04/05(木) 17:05:29ID:???
>>380
少し黙ってろお前の口調うざい
0385nobodyさん2007/04/05(木) 17:06:38ID:???
>>382
その文章まず読めよ
0386nobodyさん2007/04/05(木) 17:08:56ID:???
>>380
$err_message使ってないみたいだから174行目削除
0387あきら2007/04/05(木) 17:12:49ID:jUd/uPxe
>>383
サーバーサイドプログラミング関連の話題を扱っています。

Perl, PHP, Java, Ruby, C, Tcl といった言語処理系の話、
Apache, CGI, JSP/Servlet, ASP, ColdFusion といったアプリケーション実行環境の話、
Oracle, PostgreSQL, MySQL といったデータベースの話などをテーマにしています。

とあったのでココでいいと思いました。
場違いでごめんなさい。
0388nobodyさん2007/04/05(木) 17:22:10ID:???
>386
special thxxxxxxxxxxx!
なにかうろこのようなものがとれた
0389nobodyさん2007/04/05(木) 17:37:58ID:???
反省の弁を綴りつつも自己正当化する>>387に乾杯
0390nobodyさん2007/04/05(木) 17:38:59ID:???
>>385
すみません、
「Smarty.class.php の1095行目のmenu.tplを読めない」 と書いてあるのかなと
思うんですが、、
良くわかりません
0391nobodyさん2007/04/05(木) 17:40:32ID:???
>>387
それはこの板全体の説明で、このスレッドは「PHP」の
質問スレッドだよ

PostgreSQLの話題は別のスレッドが基本

面倒だから答えるけど
エラーメッセージ見てわかるように
interval 'kigen month'
この表現がおかしいんだよ
interval の指定はこんなふうにはできない
interval '1 month' とか interval '2 month' ならできるけど
カラム名の指定は、少なくともPostgreSQL では無理
Oracleでも無理だと思うけど
0392あきら2007/04/05(木) 17:45:14ID:jUd/uPxe
>>391
大変すみませんでした。
答えてくれて有難うございました。
0393nobodyさん2007/04/05(木) 17:46:59ID:???
>>390
意訳しすぎ
勝手にコロンで区切られた文章を連結するなよ
素直に前から読んだら良いじゃないか

テンプレートファイル menu.tpl が読めなくなっているのだろ
1095 行目は実際にエラーを発行している場所であって、
そこに問題あるってわけじゃないぞ
何を触ったのかは知らないけど、テンプレートパス指定が
おかしくなったのか、menu.tplを消したかは知らないが
0394nobodyさん2007/04/05(木) 17:48:32ID:???
>>392
今後Postgresの質問するなら適切な場所へ行ってね

PostgreSQL 2テーブル目
http://pc11.2ch.net/test/read.cgi/php/1047317680/l50

DB@2ch
http://pc11.2ch.net/db/
0395nobodyさん2007/04/05(木) 17:49:58ID:???
>>393
お恥ずかしいです。
まともに動かせるように頑張ります
0396nobodyさん2007/04/05(木) 18:00:08ID:???
>>336
その再帰手法を個別に書かないで、XMLとして処理すればいいんだよ。
<table と </table> の最長一致文字列を探したあとは、それをXML処理にゆだねればいい。
その場合おっしゃるidなどの要素内属性記述は、逆に邪魔になるからそれを消して渡す。
03973382007/04/05(木) 18:21:18ID:???
無視すんなや!くらぁ!(#´;ω;`)
無視されるのは大嫌いなんだ!
0398nobodyさん2007/04/05(木) 18:48:58ID:???
>>397
質問者はID出せよ
GD入れなくてもできる
バイナリデータをいじくって、なんらかのフォーマットの
画像データを出力するスクリプトが書けるのなら
そんなのがいやらなら、GD入れるなり、ImageMagick使うなり
したらいい

バイナリデータをDBに登録するかどうかは、その案件しだい
としか言いようがない
selectで遅くなるとは普通考えられないが、これは
DBの仕様次第だろう
03993792007/04/05(木) 18:49:27ID:Y4vj6k1c
ここにもいるよぉ〜
ノシ
0400nobodyさん2007/04/05(木) 18:54:44ID:???
>>399
同じサーバにあるのなら、何も悩むことなく読み込めるだろう
パスの指定は、ドメインとは関係ないのだから

テンプレートだろ?画像じゃなくて
画像であっても、シンボリックリンクでも貼れば解決するだろうけど

0401nobodyさん2007/04/05(木) 19:14:07ID:???
コメントやユーザ情報の入力にSSLって・・・
0402虚弱PHP2007/04/05(木) 20:07:19ID:???
>>373
PHP5なら array_walk_recursive が使えるよ。
再帰的に負う必要がないなら、array_walkでOK。
こっちはPHP4でも使える。
0403虚弱PHP2007/04/05(木) 20:12:16ID:???
>>397
Linuxなら明示的に指定しない限り、GD付属してたとおもったけど。
Windowsならphp.iniでコメント外すだけ。
0404nobodyさん2007/04/05(木) 20:15:43ID:???
>>401
詠嘆口調で話ししろって躾けられたのかお前?
0405nobodyさん2007/04/05(木) 21:08:26ID:MctJVuph
すいません、テキストファイルの書込に関してなんですが。

後部に追記ならfopen(filename,"a")で簡単ですが、
先頭に追記していきたい場合はこれだと無理です?

一度中身を変数なりに入れてからfopen(filename,"w")あたりで
追加分+中身を入れないとダメ?

初心者ですいません。
0406nobodyさん2007/04/05(木) 21:13:07ID:???
>>405
そのとおり
メモリに読み込んで先頭に追加して
書き込む
0407nobodyさん2007/04/05(木) 21:15:25ID:???
>>404
スレ違いうざいなこいつ・・・
0408nobodyさん2007/04/05(木) 21:16:44ID:???
SSL使うのいいけど、CAはどうするの
0409nobodyさん2007/04/05(木) 21:19:59ID:???
勉強のために本買ったが全然わかんねーwwwwww
04104052007/04/05(木) 21:25:43ID:MctJVuph
>>406
サンクス。

マニュアルを読むと fopen(filename, "r+") でfpが先頭にあるみたいなので
いけるかと思ったんだが、ファイルにゴミがまざる orz

一時保存して追加するしかないのね。
0411nobodyさん2007/04/05(木) 21:30:03ID:???
>>409
あきらめれ
0412nobodyさん2007/04/05(木) 21:53:06ID:???
>>407
>>404
0413nobodyさん2007/04/05(木) 22:15:05ID:???
>>412
これだけで明らかに社会不適合者に見えるこいつの異常なキモさって・・・
04143792007/04/05(木) 22:39:38ID:BEBjQR7Y
>>400
どうもです
なんつーか、インクルードしたいんですけど無理ですかね?
シンボリックってググッたけど意味わかんないっす。
PHPじゃなくてサーバーの専門用語っぽいことはわかったんだけど
馬鹿ですんません
0415nobodyさん2007/04/05(木) 22:40:36ID:???
なんでincludeできないの?
04163792007/04/05(木) 22:43:15ID:???
なんかしらないけどできないっす
同じフォルダにないとインクルードできないっぽいっす
0417nobodyさん2007/04/05(木) 22:47:10ID:???
>>416
バージョンは?
04183792007/04/05(木) 22:50:11ID:???
>>417
PHPが5.1.6でアパッチが2.0っす
0419nobodyさん2007/04/05(木) 22:51:34ID:???
>>418
allow_url_fopenは?
04203792007/04/05(木) 22:53:36ID:???
わかんねっす
どこをみりゃいいっすか
0421nobodyさん2007/04/05(木) 23:00:03ID:???
エラーメッセージ書けよ
0422nobodyさん2007/04/05(木) 23:05:54ID:???
/home/mydomain/tpl.php
/home/secure/index.php

<?php
include('../../mydomain/tpl.php);

?>
で inlcude できるだろ
セーフモードで制限がかかっているのか?

0423nobodyさん2007/04/05(木) 23:06:51ID:???
あ、一個上に上がりすぎた
include('../mydomain/tpl.php');

0424nobodyさん2007/04/05(木) 23:07:58ID:???
>>420
http://php.benscom.com/manual/ja/ref.filesystem.php

一つ要望だけど普通の言葉で書いてもらえますか?
0425nobodyさん2007/04/05(木) 23:08:57ID:1F/X4KzL
質問です。
ディレクトリに書き込み権限があるかどうか調べるにはどうしたらいいでしょうか?
0426nobodyさん2007/04/05(木) 23:24:19ID:FIQWGizo
2007-04-05 23:20:53

こういう形式の日時から、タイムスタンプを取得したいのですが、
どうすれば良いのでしょうか?
0427nobodyさん2007/04/05(木) 23:25:20ID:???
>>425
サーバにSSHで入ってls -allで目視確認
Apacheユーザも目視確認
0428nobodyさん2007/04/05(木) 23:26:41ID:???
>>426
それ本気で言ってるの?
0429nobodyさん2007/04/05(木) 23:31:30ID:???
>>425
is_writable()

>>426
strtotime("2007-04-05 23:20:53")
0430nobodyさん2007/04/05(木) 23:33:36ID:FIQWGizo
>>429
ありが研ぐお座います
0431nobodyさん2007/04/06(金) 01:36:07ID:7OEWd9FE
htmlタグをすべて小文字にすることはできませんでしょうか?
よろしくお願いいたします
0432nobodyさん2007/04/06(金) 01:47:04ID:???
<ここの文字を取得>

大文字を小文字にする関数
0433nobodyさん2007/04/06(金) 03:30:56ID:???
一文字ずつ判定して、以下を繰り返す↓

Aだったらaに変換
Bだったらbに変換・・・・

いいんですよ効率悪くても。このやりかたで不満をもって自分で効率のよいコードがかけるようになりなさいな
0434nobodyさん2007/04/06(金) 03:47:19ID:???
大文字やら小文字やらこだわる前に
まず魅力あるコンテンツを作れるようになろうぜ
0435nobodyさん2007/04/06(金) 04:03:19ID:???
魅力のないレスだな
0436nobodyさん2007/04/06(金) 04:05:36ID:???
お前がな
0437nobodyさん2007/04/06(金) 04:43:10ID:???
>>432
strtr("AbCDeF", "ABCDEFGH...", "abcdefgh..."); #=> "abcdef"
0438nobodyさん2007/04/06(金) 05:18:26ID:???
PerlとPHPはどっちのほうが難しいですか?
0439nobodyさん2007/04/06(金) 05:27:44ID:???
C++
0440nobodyさん2007/04/06(金) 05:45:43ID:???
Perlに気間ってんだろ
0441nobodyさん2007/04/06(金) 05:46:01ID:???
>>438
Perl
0442nobodyさん2007/04/06(金) 06:33:23ID:???
>>439
氏ね
0443nobodyさん2007/04/06(金) 08:46:53ID:???
Perlは人の書いたコードは読めない。
0444nobodyさん2007/04/06(金) 09:59:03ID:???
perl は言語仕様を隅々まで目を通さないと、
他人の書いたコードが読めなくなるからな
0445nobodyさん2007/04/06(金) 10:16:48ID:???
>>442
くたばれ
0446nobodyさん2007/04/06(金) 10:23:16ID:???
>>431
$html = '<FORM>
A
<IMG SRC="./NULLPO.GIF" />
<INPUT
TYPE="CHECKBOX"
CHECKED />
A
</FORM>';
$html = preg_replace_callback('/<[^<>]+>/',create_function('$matches',
'if(strpos($matches[0],\'=\') === false) return strToLower($matches[0]);
$length = strlen($matches[0]);
$quote = false;
for($i = 0; $i < $length; $i++) {
if($matches[0][$i] === \'"\') $quote = !$quote;
elseif(!$quote) $matches[0][$i] = strToLower($matches[0][$i]);
}
return $matches[0];'),$html);
var_dump($html);

string(79) "<form>
A
<img src="./NULLPO.GIF" />
<input
type="CHECKBOX"
checked />
A
</form>"

まぁおおよそ効率の良いやり方じゃないが、な…。
即席なんで不備があるかもしれん。
0447nobodyさん2007/04/06(金) 12:30:19ID:???
pearのAuthを使って認証しようとしてるんですが、 Class 'DB' not found in
というエラーになります; DBクラスが見つからないと言っているんでしょう
けどDB.PHPはちゃんとあるし、何故なんでしょうか?
0448nobodyさん2007/04/06(金) 12:32:35ID:???
>>447

マルチ乙
0449nobodyさん2007/04/06(金) 12:39:44ID:???
>>448
板間違えて書き込んだので直ぐ誤ってますよ。

昨日一日考えてたんですが、今自己解決しました。
pear DBをインストールしたらOKでした。
0450nobodyさん2007/04/06(金) 12:56:23ID:???
配列のキーの値に、文字数制限などあるんでしょうか?
0451nobodyさん2007/04/06(金) 13:06:15ID:???
>>447
まさかとは思うが、pear/DB.php がないってことはないだろうな
0452nobodyさん2007/04/06(金) 13:06:52ID:???
あ、すでに自己解決していたか
04533382007/04/06(金) 14:28:35ID:???

class内でpreg_replace_callbackする際、
あらかじめ配列化された$this->mojiを使用することが出来ません。
こんなときどうすればいいんでしょうか?

#$this->moji= array('001'=>'<font size="1">', '002'=>'<font size="2">'…);
#$str = '!001!';だとした場合

function hoge_ForOutput($str)
{
$hoge = preg_replace_callback(
"/!(\S{4})!/",
array($this, 'conv_func'),
$str
);
return $hoge ;
}
function conv_func($str)
{
if($this->moji[$str['1']]=="")
{
return $str; }
else
{
return $this->moji[$str['1']];
}
}
}
04544532007/04/06(金) 14:30:08ID:2B8Av++o
ID出し忘れました
名前も間違えました。。
すみません
0455nobodyさん2007/04/06(金) 14:56:10ID:???
>>453
\S{4}?\S{3}じゃなくて?
04564532007/04/06(金) 15:05:58ID:2B8Av++o
>>455
ご指摘ありがとうございます。
変数名等、実際のものと少し書き換えたのでミスしてしまいました。
この場合、\S{3}です。

ただ、問題なのは
function conv_func内で$this->mojiがNULLになってしまうことなんです。
0457nobodyさん2007/04/06(金) 15:23:40ID:???
array(&$this, 'conv_func'),
は?
0458nobodyさん2007/04/06(金) 15:27:32ID:???
ごめん、違うわ↑
0459nobodyさん2007/04/06(金) 15:34:16ID:???
>>456
ならないけど…。
実際の物を書いたら?

ちなみに同じくミスっているのかもしれないけど下記はエラーになる。
if($this->moji[$str['1']]=="") // Undefined index
return $str; } // Array to string conversion
04604532007/04/06(金) 15:45:14ID:???
すみません。。
オブジェクト作成時
Hoge::hoge_ForOutput()
にしていたのが原因でした…

お騒がせしました
0461nobodyさん2007/04/06(金) 15:48:24ID:???
ヽ(´ー`)ノ
04624532007/04/06(金) 16:02:55ID:???
m(#_ _)m
0463nobodyさん2007/04/06(金) 20:59:56ID:pizAbRpt
allow_url_fopen = Offにしてあるレンタル鯖なのですが、
どうすれば他鯖のファイルを取得できますか?
申し訳ないですが、ご教授ください
0464nobodyさん2007/04/06(金) 21:04:21ID:sS5tmZeq
クラス内定数をクラスを定義しているファイルの外で定義することは出来ないのでしょうか。
0465nobodyさん2007/04/06(金) 21:11:00ID:???
>>464
まず試してみましたか?ためしてみてできなかったら質問してください
0466nobodyさん2007/04/06(金) 21:14:07ID:???
>>463
pearのhttp_requestとか?
offでできるかは知らね
>>464
それは最早クラス内定数ではないのでは・・・。
継承すればスーパークラスの使えるのかな?
ほか変数なりdefineなりグローバル変数なりを考えてみてはどうでしょう.
0467nobodyさん2007/04/06(金) 21:54:34ID:9fDFot8y
クラスってどんな便利性があるの?
■ このスレッドは過去ログ倉庫に格納されています