【PHP】下らねぇ質問はここに書き込みやがれpart14
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0808nobodyさん
2006/01/10(火) 18:38:31ID:???さくっとPEAR使ったら?
http://pear.php.net/package/PHP_Archive/
http://pear.php.net/package/Archive_Tar/
圧縮は要lib
0811nobodyさん
2006/01/10(火) 21:57:13ID:Gn5rV4CT0812nobodyさん
2006/01/10(火) 22:02:39ID:???0813nobodyさん
2006/01/10(火) 22:20:29ID:V6LwtE82setcookie()する場合、適用ドメインを「.example.com」で発行すると、
それを「hoge.example.com」で上書きすることはできないんですね?
逆は可能なようですが・・・。
この仕様?って普通の感覚とは逆な気がするのですが、どんなもんでしょう?
0814813
2006/01/10(火) 22:27:18ID:???ブラウザが、「.example.com」と「hoge.example.com」
でクッキーを持っていると、
PHPの$_COOKIEは「.example.com」の方を優先して読み込むようです。
0815nobodyさん
2006/01/10(火) 22:46:58ID:???0816nobodyさん
2006/01/10(火) 22:54:11ID:???0817nobodyさん
2006/01/10(火) 23:29:28ID:???どうもありがとう!!
>>814-815 の続きですが、IEで調べたところ、
「example.com」と「hoge.example.com」で同じ名前のCookieがある時、
hoge.example.com にアクセスすると、
IEは、「example.com」のクッキー、「hoge.example.com」のクッキーの
順番で同時に送信してくるようです。
これをPHPの$_COOKIE['XXX']で取得すると、「example.com」の方の
クッキーが返されます。
広域指定が局所指定よりも優先されているわけですが、
これってクッキーの仕様に合致しているのかなぁ…。
0818nobodyさん
2006/01/11(水) 00:00:43ID:???0819nobodyさん
2006/01/11(水) 00:02:19ID:fOyKkotG>>803
レスありがとうございます。
確かにちょっと状況が説明不足ですね。
実は、レッツPHP!にあるTree BBS
http://php.s3.to/bbs/bbs6.php
に書き込み禁止処理を追加しようと思ったのです。
$comに納められたコメントの内容にNGワードが
入っていたらエラーが出るようにしようとしました。
それで最初
if(eregi($bad_word, $com))
としたのですが、うまくいかなくて
if(eregi($this->bad_word, $com))
または
if(mb_eregi($bad_word, $com))
にしたら、うまく動いたんです。ちゃんと動いているので
中身空っぽになって何でもマッチしているわけではないようです。
なお、このif分を追加したのは、function add_chkの中の
ifがずらっと並んでいるところです。
最初からスクリプト中にある
if($com=="" || ereg("^( | |[¥r¥n])*$",$com))
というところは、そのままで全角スペースにちゃんと
マッチしているので、ますますわけがわかないのです。
なので、もしかしたら文字エンコーディングに起因する問題?とか
いろいろ考えたのですがよくわかりません…。
0820nobodyさん
2006/01/11(水) 07:42:19ID:???スクリプトの先頭に
ini_set("display_errors", 1);
error_reporting(E_ALL);
と書け。
if(mb_eregi($bad_word, $com))
は$bad_wordが未定義なのにうまくいくはずない。
0821nobodyさん
2006/01/11(水) 09:29:54ID:???エスパー的には、mysql_escape_stringの問題ではなく、
マジッククォートの問題だと思う。
つ php.ini
初心者は問題の本質を捕らえる努力と伝える努力をすべきだと思う。
0822nobodyさん
2006/01/11(水) 10:32:50ID:???0823nobodyさん
2006/01/11(水) 12:26:46ID:???for ($i = 0; $i < $max; $i++)
より
for ($i = $max; $i > 0; $i--)
の方が早いって聞いたんですけどマジですか?
0824nobodyさん
2006/01/11(水) 12:29:42ID:???for($i = $max; $i ; -- $i)
じゃないのか?
でも微々たるもんだと思うけどね。
0826824
2006/01/11(水) 12:59:20ID:???1.for($i = 0; $i < $max; $i ++) {print ""}
と
2.for($i = $max; $i > 0; $i --) {print ""}
と
3.for($i = $max; $i; -- $i) {print ""}
をそれぞれ$max=1000000;で実行した結果、
おおよそ
1.0.50〜0.52秒
2.0.39〜0.40秒
3.0.31〜0.32秒
という結果になった。(複数回、順番入れ替えも行った上での結果)
環境:WinXP PHP4.3.10 CLI版
おまけ。
4.for($i = 0; $i < 1000000; $i ++) {print ""}
にするだけで
4.0.39秒
になる。
…PHPの変数参照っておせー
0827nobodyさん
2006/01/11(水) 13:22:09ID:???0830nobodyさん
2006/01/11(水) 13:51:56ID:???0832nobodyさん
2006/01/11(水) 14:22:10ID:h33/EqTj確認もないままに消してしまう。
同じスクリプト内に消去するまえの確認メッセージを表示してOKボタンをクリックした場合のみ消去させるにはどうしたらいいのでしょうか?
0833nobodyさん
2006/01/11(水) 14:27:23ID:qDYFXRNq0834nobodyさん
2006/01/11(水) 14:29:52ID:???OKボタンのFORM入力が無ければOKボタンを表示して終了、
FORM入力があれば実際にdelete実行、ってだけ。
0835nobodyさん
2006/01/11(水) 15:19:07ID:???$aa[0][0] = 1;
などとCみたいに扱えないんですか?
0837nobodyさん
2006/01/11(水) 15:32:16ID:???$aa[0][0] = 1;
として、これの中身を
echo "$aa[0][0]";とかすると
1[0]
って表示されるのですが・・
表示方法がまずいとか?
0838nobodyさん
2006/01/11(水) 15:37:00ID:???どうやら表示方法がまずかったみたいな
$aa[0][0]をいったん別の変数にとって
$bb = $aa[0][0];
として、$bbを表示したらうまくいきました。
0839nobodyさん
2006/01/11(水) 15:40:09ID:???"〜"の中で添え字([〜])やメンバ変数参照(->)みたいな記述はそのままでは使えない。
"{$env[0][1]}" みたいに {} で括る必要あり。
参考
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/4
0841nobodyさん
2006/01/11(水) 15:50:27ID:CQ4aDWhiこのデータベース型CGIを
http://www.breeze.jp/s02_faq_01.php#q23
ここに設置しようと思っています
$datpath = "./";
$binpath = "./";
$BinUrl = "http://www.***.com/~user/";
↑
これらの変更すべき部分に何を書けばいいのかよく分かりません
どなたかお願いします
0843675
2006/01/11(水) 16:06:44ID:???おー、理解しました(多分)。スコープの問題?
if(mb_eregi($bad_word, $com))
が動いていたような気がするのは気のせいですよね、きっと…。
0844nobodyさん
2006/01/11(水) 16:07:55ID:???842の言うとおりだが、
何より
http://www.hero.ne.jp/~db/herodb-othersite.shtml
に説明が書いてあるだろ。
それで分からないなら使わない方がいいだろう。
0845nobodyさん
2006/01/11(水) 16:09:09ID:???if文の前に
echo $bad_word;
echo $com;
とでもして変数の中身確認すれば分かることでは?
0846nobodyさん
2006/01/11(水) 16:14:50ID:CQ4aDWhiまたスレ違いでしたか;;
失礼しました
他をあたります
レスありがとうございました
0848nobodyさん
2006/01/11(水) 18:08:12ID:h33/EqTjしかし意味が分かりません。Shift-JISを使わないってどこをどうすればいいのですか?
0849nobodyさん
2006/01/11(水) 18:11:15ID:???0850nobodyさん
2006/01/11(水) 18:25:34ID:h33/EqTj0851nobodyさん
2006/01/11(水) 18:38:15ID:???0852nobodyさん
2006/01/11(水) 19:07:51ID:???0853nobodyさん
2006/01/11(水) 19:11:28ID:???まずマニュアルを読む
マニュアルを読んで分からなければ丁寧な解説がされていそうな本を読む
こんなところで聞くだけ時間の無駄
0854nobodyさん
2006/01/11(水) 19:23:12ID:923d4820簡単なデータの入力システムをphpとmysqlでつくっています。
"select * from テーブル"で
<table>
while ($col = mysql_fetch_array($rst)) {
<tr>
<td>$col["あああ"]</td>
<td>$col["いいい"]</td>
<td>$col["ううう"]</td>
</tr>
}
</table>
みたいにして、whileでループして表を表示させてるのですが、
表を見易くするために、一行ごとにバックの色を変えるにはどうすればいいでしょうか?
1行目は白、2行目はちょっとグレー、3行目は白.....みたいな。
よろしくお願いします。
0855nobodyさん
2006/01/11(水) 19:30:42ID:???それにしても全角とは恐れ入った。
0856nobodyさん
2006/01/11(水) 19:40:25ID:???for ( $lp = 0; $col = mysql_fetch_array($rst); $lp++ ) {
$bg_class = ( $lp % 2 == 0 )? "bg_white" : "bg_gray";
echo <<<EOS
<tr class="$bg_class">
<td>$col["aaa"]</td><td>$col["bbb"]</td><td>$col["ccc"]</td>
</tr>
EOS;
}
といった感じ.スタイルシートは自分で書いてね.
0857nobodyさん
2006/01/11(水) 19:41:18ID:???俺はこんな感じでやってる
$max = 3;
$color = array("#000000","#ff00ff","#00ff00");
行 $lineとして
色 $color[$line % $max]
0858nobodyさん
2006/01/11(水) 19:58:53ID:h33/EqTj0860まっぷ
2006/01/11(水) 20:35:46ID:+n0M4RULアクセスする際に
Warning: dl(): Unable to load dynamic library '/usr/lib/php/20020429/php_mapscript.so'
- /usr/lib/php/20020429/php_mapscript.so: cannot open shared object file:
No such file or directory in /home/httpd/html/phpinfo_mapscript.phtml on line 21
というエラーがでてしまって困っています。
環境は
vinelinux-3.1
php-4.4.1
mapserver-4.0.1 を使っています。
phpの何かがおかしいと思うのですが。。
/usr/lib/php/20020429というディレクトリは存在せず、
/usr/lib/php/の中にはphp_mapscript.soが存在します。
いろんなとこを調べ、php.iniのextension_dir = ./の部分を
extension_dir = "/usr/local/php-4.4.1/modules/"
にしたりしてみたのですがエラーはかわりませんでした。
何分初心者ですのでつたない文章ですみません。
御指導いただければと思います。。
お願いします。
0862854
2006/01/11(水) 20:50:00ID:923d4820スタイルシートのclassを変数にして条件分岐ですね。
すばらしいですねー。
最近phpを勉強しはじめました。
forはなんとなく好きになれません。
array()っていうのも使ったことないです。
前途多難ですががんばります。
ありがとうございました。
0863nobodyさん
2006/01/11(水) 21:04:06ID:???0864nobodyさん
2006/01/11(水) 21:27:20ID:???0865nobodyさん
2006/01/11(水) 21:44:45ID:a+2jPX+b0866nobodyさん
2006/01/11(水) 23:52:35ID:???漏れは、普通にmysql_fetch_arrayでまわすけど、まわす前にカウント用の変数を$iとして、それが偶数のときはこのcssクラス、奇数のときは・・・って感じだな。
先に件数を取得しておくと、テーブルなんかおしゃれにできる。
(最後の一行がわかるから。)
0867nobodyさん
2006/01/12(木) 00:33:48ID:???httpd下で動作させようと思ってるんですが
一応解説サイトや書籍などを見て、
php5ts.dll php.ini-dist を C:\WINDOWS\system32にコピって php.iniにリネームし
cgi.force_redirect = 0 に書き換えても
Security Alert! The PHP CGI cannot be accessed directly 言われます。
とりあえづXAMPPインスコして、そっちではPHP動くんであまり問題ないと言えばないのですが、
今度はこっちではCGIが動きません(htdocs.confでDocumentRootのパスとかは変えたんですが)
余談ですが、ActivePerlとかXAMPPアンインスコして
XAMPPだけインスコした状態で試したりもしたんですがダメでした。
まあそれはどうでもよくて、実際cgiとphpを連動させる事もないだろうから
別にcgiのテストはhttpdでやって、PHPはXAMPPでやればいいだろ、って言われればそれまでなんですが。
原因が気になってオナニーもロクにできません。
あ、オナニーはインスコ中にやってたのでどうでもいいです。
とにかくよろしくお願いします。
0868867
2006/01/12(木) 01:24:21ID:???オナニーして寝ます。
0869nobodyさん
2006/01/12(木) 09:51:22ID:???0870nobodyさん
2006/01/12(木) 11:17:59ID:???文字列から連想配列へデシリアライズする手段をさがしてます。そういう便利なものないですか。
(PHP4です)
0872nobodyさん
2006/01/12(木) 11:38:49ID:???ありがとう。調べてみます。
ぐぐってみたところ、serialize(),unserialize() というのもみつけました。
入力された複数の値→連想配列を作る→シリアライズしてDBに入れる
→別の画面などでDBからシリアライズしてきた文字をデシリアライズ(連想配列化)して表示
といった感じに使おうかと思ってました。
0875nobodyさん
2006/01/12(木) 15:00:00ID:lQx6xwTN0876nobodyさん
2006/01/12(木) 15:38:55ID:???0877nobodyさん
2006/01/12(木) 15:44:35ID:???0878nobodyさん
2006/01/12(木) 15:55:20ID:???0879nobodyさん
2006/01/12(木) 15:56:23ID:???0880nobodyさん
2006/01/12(木) 16:06:13ID:???では、話が変わるのですが、変数の型がバリアントっぽいのですが
Cみたいにcharの配列でバイナリを扱う方法を教えてください
0881nobodyさん
2006/01/12(木) 16:09:11ID:???知ってる言語の流儀を押し通そうとするのは賢い方法とは言えないぞ
0882nobodyさん
2006/01/12(木) 16:12:43ID:???char aa[8]={ 0x01, 0x02, 0x03, 0x04, 0x00, 0x02, 0x03, 0xAA };
short bb = ((aa[[5] << 8) | aa[6]) & 0xFF;
例えばこんなこと↑
char のバイナリ配列なんでコードにNULLが含まれてることもあるみたいな
0884nobodyさん
2006/01/12(木) 16:27:14ID:???バイトって概念がないのかわからんけど、なんかできないっぽいなあ
ちょっとマニュアルみてくるかな
0885nobodyさん
2006/01/12(木) 16:28:18ID:???0887nobodyさん
2006/01/12(木) 16:33:51ID:???0888nobodyさん
2006/01/12(木) 16:38:00ID:???マニュアルて何故か簡単に説明してくれてないから敬遠しちゃうんだよね
>>886
おろ?まじですか。でもこれってCよりBasicに近い変数の扱いですよね
>>887
ああああああああああああああああああああ!!!
こんな関数があったんですか!!
これ早速ためしてみます
0889nobodyさん
2006/01/12(木) 16:42:52ID:???<?php
$a[] = pack("c", 0x01);
$a[] = pack("c", 0x02);
$a[] = pack("c", 0x03);
$a[] = pack("c", 0x04);
$a[] = pack("c", 0x00);
$a[] = pack("c", 0x02);
$a[] = pack("c", 0x03);
$a[] = pack("c", 0xAA);
$b = (($a[5] << 8) | $a[6]) & 0xFF;
echo bin2hex($b);
?>
0891nobodyさん
2006/01/12(木) 17:24:13ID:???0892nobodyさん
2006/01/12(木) 17:30:39ID:???0893nobodyさん
2006/01/12(木) 17:41:14ID:???0894nobodyさん
2006/01/12(木) 17:50:31ID:???$a = "./a.txt";
$af = fopen($a, "w");
flock($af, 2);
asort($a);
fclose($af);
このコードでは上手くいきませんでした。正しいコードをご教授願います
0896nobodyさん
2006/01/12(木) 18:04:47ID:???asortに与えるべき配列はファイルの中身を配列にしたものであって、"./a.txt"という文字列ではない。
0897889
2006/01/12(木) 18:06:37ID:???すまん。バイナリだと演算できなかった
バイナリをビット操作するときはunpackしてやらないとだめだ
それなら最初からpackするなよってことか
0900nobodyさん
2006/01/12(木) 18:18:40ID:???論理演算て・・・
0903nobodyさん
2006/01/12(木) 18:34:58ID:???0904nobodyさん
2006/01/12(木) 18:36:44ID:???0905nobodyさん
2006/01/12(木) 18:37:00ID:???$ /opt/local/bin/php -version PHP 5.1.1 (cli) (built: Jan 11 2006 20:26:52)
$ /opt/local/bin/phpunit --version PHPUnit 2.3.4 by Sebastian Bergmann.
$ pear -V
PEAR Version: 1.4.6
PHP Version: 5.1.1
Zend Engine Version: 2.1.0
/opt/local/lib/php/extensions/no-debug-non-zts-20050922/xdebug.so
で、
<?php
class Numeric {
public function add($x, $y) {
return ($x + $y);
}
public function sub($x, $y) {
return ($x-$y);
}
}
?>
を
$ ls -a Numeric.php
$ phpunit --skeleton Numecir
PHPUnit 2.3.4 by Sebastian Bergmann.
$
とプロンプトが返ってきて、「Wrote test class skeleton for Numeric to NumericTest.php」はなし。
NumericTest.php という空のファイルが生成されているだけで、中身はなし。
何が原因なのか、誰か教えて…・
0906nobodyさん
2006/01/12(木) 18:44:38ID:???Numeric
Numecir の違いじゃないの?
0907905
2006/01/12(木) 19:04:16ID:???ファイル名とクラス名が同じだから、
名称が問題になっているわけではないと思うんだ。
いちおうスケルトンは生成されているし。
ttp://www.phpunit.de/pocket_guide/2.3/en/installation.html の
ファイル名の変更は問題ないと思うし…。
$ ls -l /opt/local/bin/ | grep php
-rwxr-xr-x 2 root admin 8918652 Jan 11 20:27 php
-rwxr-xr-x 2 root admin 1326 Jan 11 20:29 php-config
lrwxr-xr-x 1 naotaka admin 18 Jan 3 19:32 php5 -> /opt/local/bin/php
-rwxr-xr-x 2 root admin 4107 Jan 11 20:29 phpize
-rwxr-xr-x 1 root admin 1801 Jan 12 18:11 phpunit
xdebug は有効になっているし、assert 関数の評価も有効になっているので、
設定の問題なのかどうかもちょっと切り分けられなくて、困っている…。
ググッても検索結果に参考になるものがないのが、利用者数が少ないのを物語っているよ。
レス数が900を超えています。1000を超えると表示できなくなるよ。