【PHP】初心者コーナー 3 Released【スローモード】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/11 06:24ID:???ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
http://pc2.2ch.net/test/read.cgi/php/1031736248/l50
でもな、ここで書きたかったらここで書き。 あとは関連な、>>2
0514nobodyさん
03/07/27 09:42ID:???Windowsなら単にreadしたりファイルサイズ取得関数とか使えば良し。
ファイルのプロパティ見てみ?いつも現在時刻だ。
0515nobodyさん
03/07/27 22:48ID:0kmBdvtlファイルの中身を修正する前に、ファイルの時間情報を取得しておいて
処理が終わった後にファイルの時間情報は修正前のままにしておきたい
って場合にどうすればいいのかと。
つまり最終アクセス時間と最終更新時間を過去の時間に設定したい訳ですな。
Perlだとutimeで両方、任意の時間を入れてファイルの時間情報を修正できるけど、
PHPだとtouchで最終更新しか変更できないみたい(見つけられなかった)。
ちなみにPerlからPHPへの移植をやってる過程で出てきて???になった。
やってる移植では更新時間を見て処理に使ってるから、最終アクセスは
なくてもいいけど、なんらかの理由で最終アクセス時間の変更が必要に
なった場合はどうするんだろ?
0516nobodyさん
03/07/27 23:33ID:???(UNIXタイムスタンプ)を指定できます。
しかしなんで公式のマニュアルには載ってないんだろ?
0517nobodyさん
03/07/27 23:41ID:???0518nobodyさん
03/07/27 23:53ID:???翻訳の遅れがあるみたいなのでこれからは英語版を見るようにします。
0519515
03/07/28 00:11ID:???自動で日本語版に切り替わるんだな。
touch (PHP 3, PHP 4 )
touch -- Sets access and modification time of file
bool touch ( string filename [, int time [, int atime]])
http://www.zend.com/manual/function.touch.php
日本語訳マニュアルをローカルに置いてそれを参照してたから
見つけられなかったよ。
英語版も随時参照すべしと自分に言い聞かせた次第。
0520nobodyさん
03/07/28 00:13ID:???0522nobodyさん
03/07/28 00:26ID:???最近はけん日本語で検索できて便利よ。
ttp://www.phpoo.net
0524nobodyさん
03/07/28 15:06ID:???ソ\アラというようにdataファイルに記録されています。
perlでつくった掲示板では普通にソアラと書き込めたんですが。
ローカルでshift-jisで書いております、eucでも試してみたんですがeucで保存すると
表示されないようです。php4.3.2を入れております。
ご助言願えませんか、ソースは下記のような感じでやってみました。
$carname = $_POST['carname'];
$newdata = implode(",", array($bango,$carname,$rap));
$kakikomi = fopen($datfile, "w");
rewind($kakikomi);
fputs($kakikomi, "$newdata\n");
0525nobodyさん
03/07/28 15:22ID:???国際化非対応だと文字が化けたりするもよん。
PHPはEUCで書く方が安心かと。
S-JISで受けたデータはjcode.phpでEUCにしてから内部で扱う。
んで、書出すときにまたEUC→S-JISに変換、と。
と言う事をどこぞで見たのだが。
0527nobodyさん
03/07/28 17:36ID:???HTMLに値を埋め込む時に
<?= hoge ?>
という書き方の出来るサーバーと出来ないサーバーがあります。
www.php.net のマニュアルを見ると asp_tags という設定ディ
レクティブで設定可能なようなのですが、双方のサーバーで
phpinfo() で設定を確認すると両方offになっているのです。
出来るサーバーの方は Apache 1.x 系にPHP4.2.0 で、
出来ない方は Apache 2.x 系にPHP4.2.2です。
php.ini は特に置いてません。
上記の記法の出来る出来ないは asp_tags 以外に何か設定が
あるのでしょうか?
0528nobodyさん
03/07/28 18:09ID:???0529525
03/07/28 18:30ID:???俺も初心者なんで、あまり詳しい事は書けませんけど、色々とチュートリアルを公開しているサイトを見る限りでは
初めからEUCで扱う(無論出力されるHTMLなんかも)か、せめて内部ではEUCとして扱う方がトラブルが少ない様です。
元々UNIX系はEUCだったと思うし、jcode.phpは見た感じそれほど使い方は難しくなさそうなんで、間に噛ませても良いんではないかと。
このスレの前半の方にもそんな話があったので、探してみると役に立つやも。
>>527
short_open_tag
0532nobodyさん
03/07/28 19:27ID:hpj2UE6Dライブラリにする方法を知っていたら、誰か教えてくだすぁい。
0533あぼーん
NGNG0534nobodyさん
03/07/28 23:51ID:???自分でつくってるんですが行き詰まりを感じてしまって
0536nobodyさん
03/07/29 08:38ID:???THX
short_open_tag でビンゴでした。
マニュアルでも asp_tags のすぐ上に書いてあったし(ウトゥ
0537nobodyさん
03/07/29 23:27ID:???ここの画像投稿BBS、どうやって画像に文字を埋め込んでいるんだろう?
設置者に聞けよ。
GDかなんかじゃないんか?
0539nobodyさん
03/07/30 00:48ID:???$str="ほ げ(ほ げ)-ほ げ";
$char1=" ";
$char2="(";
$char3=")";
$char4="-";
$char5="";
$str1=str_replace($char1,$char5,$str);
$str2=str_replace($char2,$char5,$str1);
$str3=str_replace($char3,$char5,$str2);
$str4=str_replace($char4,$char5,$str3);
echo "$str4";
preg_replace
0541nobodyさん
03/07/30 02:30ID:2CHAOdfRマニュアルより
>PHP 4.0.5 以降では、str_replace() への全てのパラメータは
>配列とすることが可能です。
0542あぼーん
NGNG0543nobodyさん
03/07/30 03:43ID:+xTBPNpJ昔、phpのメーリングリストで見たような気がしたんだけど、
googleで調べたら出来ないって書かれたサイトが出てた。
0544nobodyさん
03/07/30 11:15ID:???ここを説明しないと。(w
0545nobodyさん
03/07/30 12:12ID:???こういうことあじぇ?
0546nobodyさん
03/07/30 13:50ID:WV3lkWy5動かしてます。とりあえず
<?php phpinfo() ?>
は正常に表示されるので動作自体はしてると思うんですが
<? echo "てすと"; ?>
とかやると思いっきり文字化けしてしまいます。
winnt/php.ini へも日本語が使えるように設定はしたんですが
(default_charset = "Shift_JIS"とか)
なんか他に設定すべきところとかありますでしょうか?
0547nobodyさん
03/07/30 16:24ID:L2kAsoKqmbstringsでググレ
0548nobodyさん
03/07/30 17:09ID:???ここを説明しないと。(w
0549nobodyさん
03/07/30 19:01ID:QNOIDVkYレッツPHPのちゅーとりあるで紹介されている
一行掲示板をいろいろとこねくりまわしているのですが、
オート・リンクの機能を付けることに躓いています。
ご指導の程、よろしくお願いします。
0550あぼーん
NGNG0551あぼーん
NGNG0552nobodyさん
03/07/30 20:55ID:???正規表現で文字列を調べて、URI(URL)があれば
それを抜き出して、アンカータグと組み合わせて
置換する。
マニュアルで置換をする正規表現関数を調べて、
それが実際どのように使われているか、レッツPHPさんの
他の配布スクリプトを見て研究してみては?
0554nobodyさん
03/07/30 22:02ID:???ご指摘を受けて、
マニュアルを読みましたら、つぎのような部分がありました。
例 3URLをリンクで置換する
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
これでうまくいきました。
ありがとうございます。
0555sage
03/07/30 23:32ID:EqJM85qgできない。
あればあったで便利だし、perlからの移行が楽だが
phpは配列操作の関数が比較的豊富なので
なければないで何とかなる。
0556nobodyさん
03/07/31 02:11ID:DkZYq6f/どうやったらよいでしょうか。
0558nobodyさん
03/07/31 02:30ID:???0559nobodyさん
03/07/31 04:20ID:???0560nobodyさん
03/07/31 05:08ID:???0562nobodyさん
03/07/31 14:45ID:UI9TuZ6S特定の文字列から特定の文字列までを置換したいんだけど、どうすればいいでしょうか?
hogehoge<REPLACE>2ちゃんねら</REPLACE>hogehoge
↓
hogehogeDQNhogehoge
こんな感じで。
0563あぼーん
NGNG0564nobodyさん
03/07/31 15:09ID:UI9TuZ6S追加質問していいですか?
置換した回数をカウントしたいのですが、str_replaceやereg_replaceでは
全置換されてしまうじゃないですか。
ひとつずつ置換をする関数ってないのでしょうか?
よろしくおねがいします。
0565nobodyさん
03/07/31 17:33ID:???preg_match
preg_match_all
あたりを見てみては?
0566565
03/07/31 17:42ID:???正規表現が良くわからず調べてもう〜んと唸るようであれば、泥臭くやるしかないかな。
strpos 等で開始タグの位置を見つけて前後の文字列で置換する文字列をサンドイッチ
して元の変数に格納という一連の処理を開始タグが見つかる限り繰り返せば結果は得
られると思うけど。
ただメモリーへのアクセスが頻繁になるからWebなんかで不特定多数のアクセスがある
ような処理につかうのはおすすめできない・・・。
0567梨
03/07/31 17:52ID:Vgd/NQeb数KB(?)に一度、 \nXXX\n のようなゴミ文字列が挿入されてしまいます。
(\nは改行で、XXXの部分は [0-9a-f]{2,3} のような文字列)
環境はWindows 2000で、
PHP 4.3.2 (cli) (built: May 28 2003 15:10:38)です。
再現は(他人様の物で恐縮ですが)以下のソースでも可能です。
tp://www.spencernetwork.org/memo/tips-3.php
ただし、HTTP/1.0接続をおこなった場合にはゴミは発生せず正常動作します。
phpのバグを疑った所、fsockopenがメモリを破壊する問題は、
4.3.0で発覚して4.3.2では解消されているとの事でした。
わかる方いましたら教えてください。
わからなかったらとりあえず再現を試してくれる方募集っす。
0568nobodyさん
03/07/31 18:12ID:???とりあえずリクエストするサンプルサイトのURLをキボンヌ
0569nobodyさん
03/07/31 18:23ID:???FreeBSD4.4
Apache たぶん 1.2
PHP 4.2.0
で2chの1000までいったスレをそのスクリプトで表示してみたがゴミは無いようだった
考察はちょっとまってな。
0570nobodyさん
03/07/31 18:26ID:???これを HTTP/1.1 に変えてやってみればいいのか・・・
0571あぼーん
NGNG0572あぼーん
NGNG0573nobodyさん
03/07/31 18:32ID:???とりあえず
>570 の変更をした上で >569 のように2chのスレを取得してみたらたしかにゴミが検出されたよ。
まぁ正確にはゴミじゃあないんだろうけどね。
ちょっと調べてみるよ。
0574梨
03/07/31 18:39ID:???スンマソ。お手数かけます。
yahooが大丈夫だけど、php使ってるサイトはだめだった。関係ないか?
ちょっと、アクセス先については根拠のある事が言えない。
>>569の環境で出るという事であれば、バグでは無いっぽいのかな。
あとで他の言語でも試してみます。
0575nobodyさん
03/07/31 18:41ID:???chunkの線は無いと思うが、がんがってphp4.3.2のバグを探してくれ。
0576573
03/07/31 18:44ID:???漏れ的には chunk っぽい気がしてるんだけどね(爆
HTTP/1.1 なんて生で触ったこと無いからプロトコルから調べてるよ
0577573
03/07/31 18:52ID:???\r\n1000\r\n
という文字列が挿入されてるってことかな。
fgets の読み取りバイト数かと思って 512 と 1000 で試したけど変化なし。
マニュアルの fsockopen では fread を使ってたので試しにこれに変えてみても変化なし。
ちなみにレスポンスヘッダは
HTTP/1.1 200 OK
Date: Thu, 31 Jul 2003 09:41:49 GMT
Server: Apache/1.3.26 (Unix) AuthMySQL/2.20 PHP/4.1.2 mod_gzip/1.3.19.1a mod_ssl/2.8.9 OpenSSL/0.9.6g
Last-Modified: Wed, 30 Jul 2003 12:53:28 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Pad: avoid browser bug
こんな感じで返って来てる。
0578梨
03/07/31 19:01ID:???ともあれ、ありが�d>>573, >>575
RFC2068にも書いてある(RFC2616を読んでね)けど、
CRLF受信バイト数の16進CRLF
が来てるって事よね。
ちょいとクライアント側の正しい実装がどんなのになるのか調べ中。
0579nobodyさん
03/07/31 22:01ID:CgHqCW+i"ソ\"になってしまいます。Mysqlにも"ソ\"そのまま入ります。
php.iniのmagic_quote行をoffにしてやると直ったんですが
そのままMysqlに登録すると化けてしまっています。
stripslashes()をつけてやるとこれも直るんですが
フィールドごとにいちいちつけるのは面倒くさいので
他に何かいい方法はないでしょうか?
0580あぼーん
NGNG0581あぼーん
NGNG0583梨
03/07/31 22:23ID:???「つーかeucにしろよ」と言いなおす。
0584Re: 配列のスライスに代入
03/08/01 02:01ID:S9mJFNQO出来るかどうか知りたかっただけでした。
一応、マニュアルとMailing-listのアーカイブ検索したけど、それらしい記述がなかったので。
ここが最後の頼みだったんだけど、やっぱ出来ないのかぁ。残念。
0585あぼーん
NGNG0586あぼーん
NGNG0587nobodyさん
03/08/01 09:04ID:???遅レスすまそ。
array_splice() でどう?
ttp://www.php.net/manual/ja/function.array-splice.php
0588nobodyさん
03/08/01 18:21ID:???現象的には確か「ソ」の2バイト目が「¥」のコードと
同じなんでエスケープ処理されるってことだな。
だから stripslashes すれば消えるのはあたりまえで、
もし鯖の設定を変えられないのであればいちいちかか
なきゃならんのはしょうがない。
まぁめんどくさかったら $_REQUEST をループ回して
格納し直したらどうよ。いろんなソースに書かないと
いけないとしてもコピペで済む(あるいはクラスを書くかだな)。
0589山崎 渉
03/08/02 02:21ID:???( ^^ )< ぬるぽ(^^)
0590ぼるじょあ ◆ySd1dMH5Gk
03/08/02 04:50ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0592nobodyさん
03/08/03 02:11ID:???【PHP】初心者コーナー 3 Released【スローモード】
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
0594nobodyさん
03/08/03 02:20ID:XIyh3dEfといわれたんですがどういう意味でしょう?
バージョンは4.3.3RC2です。
文法エラーです。
…で予期しないT_CONCAT_EQUALが
0596nobodyさん
03/08/03 21:48ID:fj+ph+5sちょっと食い違いがあるんで質問させてください。
phpで掲示板作った場合、書き込んだ文字列に¥が勝手に
入ってしまう現象って、レンタル鯖での解決方法はstripslashes()関数を
つけることのほかに.htaccessで
php_flag register_globals on
php_flag magic_quotes_gpc off
と書いてアップすれば防げるって
ttp://www.komonet.ne.jp/report.htm
とか
ttp://www.e-provider.jp/server/php.html
に書いてあるんだけど、public_htmlフォルダ内に.htaccess置いても
防げません。.htaccessはメモ帳で「.htaccess.txt」として作成して、
アスキーモードで鯖にアプ後「.htaccess」にリネームしました。
テスト用のbbstest.phpは同じディレクトリにあります。
書くのはあの2行だけでいいんでしょうか?とりあえず2行だけに
しときましたが。
ちなみに鯖はaaa!cafeで、鯖HPのFAQには.htaccessは使えますって
書いてありました。
初心者な質問ですみませんが識者の方、どなたかお答え願えませんでしょーか。
0598nobodyさん
03/08/03 21:57ID:fj+ph+5s中途半端な質問ですんまそん。
調べてもどこもかしこも「php_flag〜の行を“含む”.htaccessファイルを」
と言ってるんで他にも書くことありそうだとは思って調べてるんですが…
.htaccessの正確な書き方が書かれたサイトが全然みつからん…
ミケネコのなんとかは分かりづらすぎ…
0599nobodyさん
03/08/03 21:59ID:fj+ph+5sアア、俺書き込み多すぎ。痛い。
そうですか、なんかあそこFAQの答え方がなげやりですもんね。
自作bbs置く香具師はめんどくてもコード書けってことか。ちくしょう。
0600nobodyさん
03/08/03 23:44ID:???書き方自体はそれでok
あとはユーザディレクトリの.htaccessが有効によまれるのか、
設定の上書きを許可しているのかとか
その辺
0601nobodyさん
03/08/04 00:00ID:???遅いレス。mysqlの「ソ」は私も悩んだ。
文末が「スマソ」とか「日本代表」だとエラーが出るんですよね。
phpinfoでmysqlの"Client API version"を4.*にすると症状は治まります。
どうも3.*のバグ(?)のようです。
mysql4.0+php4.3.2だとconfigureで--with-mysql=/usr/local/mysqlとかするといいみたいです。
0602nobodyさん
03/08/04 01:07ID:QF7utWcHサンクスコ
結局stripslashes関数で回避しました…
0603579
03/08/04 10:05ID:s0qIBXCyありがとうございます。
バグだったんですか^^;
どおりでおかしいと思いました。
では一度4に変えてみます^^
0604nobodyさん
03/08/04 18:00ID:8zL9M6pT判断するにはどうした良いですか?
適当なイメージ関数が定義されているか調べれ
0606nobodyさん
03/08/05 01:16ID:???http://www.php.net/manual/ja/function.extension-loaded.php
0607nobodyさん
03/08/05 01:36ID:???んだけど、もしかして無くなったのかな、どうよ。
0608nobodyさん
03/08/05 08:57ID:V6DdtSg7$html="
<pre>
<br>
<form method=post action=$file>
<table width=480 border=0 align=center>
TEXT1: $r[0]
</table>
</form>
</pre>
";
と記述するとTEXT1の文が長すぎると途中できれてしまうのです。自動で改行する良い方法
はありませんでしょうか?よろしくおねがいします。
0610nobodyさん
03/08/05 11:45ID:BUuQIqrMfunction convert_code (&$val,&$key,$code,$oldcode){
$val = mb_convert_encoding($val,$code,$oldcode);
}
array_walk ($array, 'convert_code','EUC-JP','SJIS');
array_walk ( array arr, string func [, mixed userdata])
という仕様ですが、この場合、userdataは配列や複数の値を
渡せないのでしょうか?
0611608
03/08/05 11:53ID:V6DdtSg7<table>使わないと全体的に左に寄ってしまいますよね。
バランスが悪いので何か対処法はありませんでしょうか?
0613nobodyさん
03/08/05 12:38ID:???よく見りゃつっこみどころ満載の「HTML」だ。
■ このスレッドは過去ログ倉庫に格納されています