【PHP】下らねぇ質問はID出して書き込みやがれ 74at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 74 - 暇つぶし2ch449:nobodyさん
08/09/30 15:12:00
>>447
list関数で取得するのもアリ

list($var0) = getVar('name');

[0]じゃなくて[1]がほしい時は
list(,$var1) = getVar('name');
ってことも出来る

450:nobodyさん
08/09/30 15:13:20 KB/3kn7l
URLを送ると
ソースのヘッダーから
titleとmeta keywordsとmeta descriptionを取得するソースをください

451:nobodyさん
08/09/30 16:24:54 Q2dKloww
エディターは何使ってる?
PHPエディターは関数名の補完ができるのはいいが
変数名の補完ができないし、
eclipseは関数名の候補は出してくれないが、変数の補完ができるし。

452:nobodyさん
08/09/30 17:13:33
大したもん作ってないだろうに変数名の入力ぐらい面倒くさがんな

453:nobodyさん
08/09/30 17:40:43
>>451
eclipseは関数名の補完も出来るぞと言っておく
詳しくはeclipseスレへ

454:nobodyさん
08/09/30 17:46:14 Q2dKloww
prin

と打ったときに、ctrl+spaceとかで

print
printf

とか、prin、、、ではじまる関数を
50個くらい出してほしい。

PHPエディタならこれができるが、
eclipseだとなぜかできない。

455:nobodyさん
08/09/30 17:53:27
そろそろいい加減にしてくれ

456:nobodyさん
08/09/30 17:53:54
>>454
plugin次第だろ
ていうかprinからはじまる候補50個なんて無駄なだけ
だいたいクラス含めてprinから始まるのなんてそんなねえだろ

457:nobodyさん
08/09/30 18:18:26
>>454
独自関数のことを言っているのか?それならビルドしてないだけだろ
いいかげんeclipseスレ逝けや

458:nobodyさん
08/10/01 01:39:43 mzYCcubZ
PHPのDOMでテキストノードを作成した時に
エンティティを置換させないにはどうしたらいいのでしょうか
下記の例は単純にBody要素内に”>”と言う文字要素を追加するコードで
期待されるブラウザ上の表示は”>”ですが
実際には"&"がエンティティとして"&"に置換され">"と出力され
ブラウザ上には">"と表示されます。
このようにならないためにエンティティを置換させないにはどうしたらよですか

<?php
$doc= new DOMDocument();
$doc->LoadHTML("<html><body></body></html>");
$body=$doc->getElementsByTagName("body");
$body->item(0)->appendChild($doc->createTextNode(">"));
echo $doc->saveHTML();
?>

459:nobodyさん
08/10/01 01:43:52 mzYCcubZ
>>458の文章は&のエンティティが置換されて意味が通じなくなりました
&を全角の&に直して書きます

PHPのDOMでテキストノードを作成した時に
エンティティを置換させないにはどうしたらいいのでしょうか
下記の例は単純にBody要素内に”&gt;”と言う文字要素を追加するコードで
期待されるブラウザ上の表示は”>”ですが
実際には"&gt"がエンティティとして"&ampgt;"に置換され">"と出力され
ブラウザ上には"&gt;"と表示されます。
このようにならないためにエンティティを置換させないにはどうしたらよですか



<?php
$doc= new DOMDocument();
$doc->LoadHTML("<html><body></body></html>");
$body=$doc->getElementsByTagName("body");
$body->item(0)->appendChild($doc->createTextNode("&gt;"));
echo $doc->saveHTML();
?>

460:nobodyさん
08/10/01 01:46:27 mzYCcubZ
すいませんこの2行を間違えました
×
実際には"&gt"がエンティティとして"&ampgt;"に置換され">"と出力され
ブラウザ上には"&gt;"と表示されます。


実際には"&"がエンティティとして"&amp"に置換され"&ampgt;"と出力され
ブラウザ上には"&gt;"と表示されます。


461:nobodyさん
08/10/01 01:49:24
なんで置換されたらだめなん?

462:nobodyさん
08/10/01 01:53:26 mzYCcubZ
コード側(自分で書いたコード)でエンティティを置換した後の文字列をテキストノードに追加したいからです

463:nobodyさん
08/10/01 02:01:25
CDATAで追加するとか?

464:nobodyさん
08/10/01 02:04:35 mzYCcubZ
>>463
ありがとう御座います
期待した結果が得られました。

465:nobodyさん
08/10/01 02:07:05
それは良かった

466:nobodyさん
08/10/01 08:35:56
URLリンク(www.google.com)

なんでPHP利用者減ってるの?

467:nobodyさん
08/10/01 08:48:43
なんとかかんとかっていう法則があってだな、

468:nobodyさん
08/10/01 09:06:13
PHPの勉強をはじめるには、
PHPとアパッチを個別にインストールするよりも
xamppを入れたほうが確実で早いの?

469:nobodyさん
08/10/01 10:09:41 MxqcSQCR
URLリンク(www.standpower.com)

ここにのってたサンプルなんだけど、
<?php
$aaa = "bbb";
$bbb = "ccc";
print($$aaa);
?>

↑なにこれ?
perlで言うところの、リファレンス??

470:nobodyさん
08/10/01 10:20:13 MxqcSQCR
なんでPHPって、
配列が@aでなくて
$aなの?

471:nobodyさん
08/10/01 10:37:57
PHPは変数も配列もハッシュも全部一緒

472:nobodyさん
08/10/01 10:40:33 MxqcSQCR
PHPエディタなんだけど、
フォントの大きさを14以上にしたいんだけど、
なんでこれ、14までしかないの?

473:nobodyさん
08/10/01 10:43:45
エディタの質問は板違いじゃね?

474:nobodyさん
08/10/01 11:22:48 MxqcSQCR
<?php
$a=500000;
while ($a > 0) {
print ($a."<br />\n");
$a--;
}
?>


↑このコードを実行したら、
Fatal error: Maximum execution time of 60 seconds exceeded
というエラーメッセージが出て、
止まってしまいました。
60秒以上かかるコードは実行できないのでしょうか?

475:nobodyさん
08/10/01 11:52:55 MxqcSQCR
URLリンク(www.standpower.com)

↑これってタイポだよね?
<form action="input.php" method="post">

ここと

名前を入力してみましょう。
<form action="output.php" method="post">

ここが違う。一致してない。inputとoutput

476:nobodyさん
08/10/01 12:10:44
入力したテキストはnameという名前でで送信されているので

↑ここも間違ってるし。

477:nobodyさん
08/10/01 12:26:33
なんかPHPのメーリングリストか、
あるいはWEB上のコミュニティに入りたいんだが、
どこかいいところ教えて。

478:nobodyさん
08/10/01 12:36:06 Zwlv2Kek
レンタルサーバー上で作成した画像(image_graphで作成)の
権限がApacheになっていて
同一ファイルをFTPでUPすると拒否されてしまいます。
削除はできるんですがどうにか作成時にこの権限を変える方法はないのでしょうか?

479:nobodyさん
08/10/01 12:37:28
>>477
ここでいいよ

480:nobodyさん
08/10/01 12:38:15
>>478
CHMOD

481:nobodyさん
08/10/01 12:46:35 Zwlv2Kek
CHMODで所有者を(Apache)レンタルサーバーから
レンタルしている自分(使用者)へ変更できますか?
所有者へのパーミッションの変更はわかりますが所有者自体の変更がどうもわからないのです。

482:nobodyさん
08/10/01 12:55:23 Zwlv2Kek
レンタルサーバ→チカッパ
PHPバージョン→4.4.2 です。


483:nobodyさん
08/10/01 12:56:02
なんか急に超初心者レベルの質問が増えたな

484:nobodyさん
08/10/01 13:05:51
>>481
chmodが可能なら、パーミッションを777にでも変えちゃえば?

485:nobodyさん
08/10/01 13:45:32 MxqcSQCR
セッションIDってどうやって見ればいいの?

486:nobodyさん
08/10/01 13:56:34
何のセッションID?

487:nobodyさん
08/10/01 14:00:18 hfGR6AXL
htmlentitiesと同じような文字列をエスケープする関数を作りたいのですが
特定のタグのエスケープをしないようにするには
どうすれば良いでしょうか?
仮にfontタグのみ許すとすれば

echo htmlentities('<a><font size="6">あいうえお</font></a>')

&lt;a&gt;<font size="6">あいうえお</font>&lt;/a&gt;
このような結果にしたいです



488:nobodyさん
08/10/01 14:03:28
>>487
URLリンク(jp.php.net)

489:nobodyさん
08/10/01 14:06:51 Zwlv2Kek
777に変えても無駄なんです
所有者の権限を変える以前の問題なんです


490:nobodyさん
08/10/01 14:07:33 hfGR6AXL
>>488
特定のタグを取り除くのではなく特定のタグ以外の文字列の
アンパサンド
小なり
大なり
シングルクオート
ダブルクオート
をHTML エンティティに変換したいのです


491:nobodyさん
08/10/01 14:15:21
初心者用PHP入門
URLリンク(www.standpower.com)

この講座終わった。


アップロード 初心者用PHP入門
URLリンク(www.standpower.com)

これやる。

492:nobodyさん
08/10/01 14:16:03
>>490
URLリンク(jp2.php.net)
変換テーブル取って変えたいとこだけ変える

493:nobodyさん
08/10/01 14:16:04
まちがえたこっちだった

初心者が送るPHP入門
URLリンク(ww7.tiki.ne.jp)

494:211
08/10/01 14:33:51 bvCNIVPX
>>478
「拒否される」とは具体的にどうなる?
>>489
なぜ所有者の権限を変える以前の問題だと考えているんですか?

ファイルの作成・削除はディレクトリに書き込み属性があればできる。

ファイルの更新はファイルに書き込み属性があればできるが、
上書きしようとするとき「ftp」が「削除して作成」しているなら
ファイルに属性を設定しても無意味なのはその通り。

495:nobodyさん
08/10/01 15:12:27
Aというディレクトリからファイル名が一番大きなファイル(数字.dat)を取得したいのですが、どんな方法が一番良いでしょうか?

dirで全ファイル配列にいれてsortするくらいしか思いつきません、
お願いしますm(_ _)m

496:nobodyさん
08/10/01 15:18:34
>>494

>ファイルの作成・削除はディレクトリに書き込み属性があればできる。
訂正
ファイルの作成・削除はディレクトリに実行属性があればできる。

497:nobodyさん
08/10/01 15:20:50
>>495
ファイル名の長さが同じならmaxでもいいぜ

498:nobodyさん
08/10/01 15:56:05 8jdCO2u0
質問させてください。
PHPでフォームのあるウェブサイトを作っていて、他からのリンクでページに来た時などと、フォームからデータを送信してきた時で表示を変えています。
しかし、フォームを空にして送信してきた場合、他からのリンクで来た場合の表示をしてしまいます。
フォームを空にして送信してきた場合を判定する方法は何かありますでしょうか?

499:nobodyさん
08/10/01 16:02:43
>>498
空じゃないときに本来送られてくるデータが空かそうでないかチェックすればいいんじゃね?

500:nobodyさん
08/10/01 16:17:33
URLリンク(example.com)

など、URLリンク(example.com)~にアクセスがあったときに、自動的に

URLリンク(example.com)

に飛ばすようにしています。

そこで色々チェックを行い本来アクセスのあったURLにジャンプしようと思っているのですが、

header("Location: ". $_SERVER['REQUEST_URI']);

とすると、無限ループしてしまいます。

echo file_get_contents(パス. $_SERVER['REQUEST_URI']);

のようにして、呼び出そうと思ったのですが、この場合画像やFlashは表示されず、

テキストとして表示されてしまいます。

何かうまく表示する方法はないでしょうか?

501:500
08/10/01 16:17:57 YIHO5yeH
すみません、sageチェックはずすのを忘れていました

宜しくお願いします。

502:nobodyさん
08/10/01 16:26:29
>>500
>URLリンク(example.com)~にアクセスがあったときに、自動的に
>URLリンク(example.com)
>に飛ばすようにしています。

何で飛ばしているのか知らないけど、
それじゃあ、常にチェック用のHOGE.phpへ飛んでいくわな。
(チェックが終わっていようが、終わっていなかろうが)

503:nobodyさん
08/10/01 16:27:14
っていうか、URLリンク(example.com)へアクセスしても
URLリンク(example.com)へ飛ぼうとするんだろうな…

504:498
08/10/01 16:34:48
>>499
回答ありがとうございます。
そのチェックはすでにしているのですが、それだけだと初めて他のリンクなどから来た場合とフォームから空データを送信した場合の切り分けができないのです。

505:nobodyさん
08/10/01 16:43:58
>>504
フォームにhiddenでなんか適当な値を持たせておけば良いじゃん。

506:498
08/10/01 16:52:35
>>505
なるほど
チェックボックスなどで常にcheckedを指定しておくわけですね。
ありがとうございます。
やってみます。

507:nobodyさん
08/10/01 16:57:25
>>506
いや、hiddenだって
<input type="hidden" name="from" value="form">
とか

508:211
08/10/01 17:10:40 bvCNIVPX
>>500
Content-Type: ヘッダーを送ってないからじゃないですか?
こういうの使うのかな?よく知らないけど。
URLリンク(www.php.net)

509:478
08/10/01 17:42:57 Zwlv2Kek
>>494
拒否されるって表現が変だったかもしれませんが
FTPでアップロードしても失敗みたく何度もリトライを繰り返します。

pngが置いてあるディレクトリ自体の所有者は自分(契約者)になっています。
スクリプトでレンタルサーバー上で作成したファイルは作成したのがレンタルサーバーなので
その所有者(Apache(レンタルサーバー管理者))になるようです。

スクリプト作成なので所有者ではないので書き込み属性をいじる前で
スクリプト作成時に何らかの方法で所有者がApacheにならずに契約者にするほうほうがを探してます
(もしくは作成後に変更)


510:211
08/10/01 18:12:03 bvCNIVPX
ウェブサーバーのプロセスの実効ユーザーが apache ということですね。
普通は所有者を変える権限を持ってないので変えられません。

ftpで処理のリトライが起きているとき、サーバーがどんなエラーを返して
いるか確認しないんですか?

私の環境では所有者がrootであってもファイルに適切な書き込み権限があれば
ftpで上書き更新できました。

511:nobodyさん
08/10/01 18:31:45
だからファイル自体のパーミッションを変えろと

ってか、自動生成するファイルを手動で更新する、という事が妙


512:nobodyさん
08/10/01 18:43:10 YIHO5yeH
>>508
サンクス

PECLってPEARと同じようなものだと思ってたけど全然違うのな

513:たまちゃん ◆ExGQrDul2E
08/10/01 19:23:22 ZUcHfGMW
PHP 配列
list.txtには、5人の名前とナンバーが保存されています。
1<>田中<>
2<>西田<>
3<>山中<>
4<>鈴木<>
5<>山田<>
これを
$list = file("./list.txt");
foreach ($list as $view){
list($no,$name) = explode('<>', $view);
echo "ナンバー{$no}:{$name}";
}
で表示するんですが、このままだとすべて表示されます。それで、今回は、会員ファイルにいる会員のみに特別にメッセージを表示するスクリプトを考えています。メンバーファイルのメンバーは、かならず
リストファイルの中の人が保存されています。
member.txt
2<>西田<>
5<>山田<>
list.txtの中身を表示するときに、member.txtのなかに同じナンバーがあれば『メンバーです』と表示させたいのですがどうしたらよいのでしょうか?
【続く】

514:たまちゃん ◆ExGQrDul2E
08/10/01 19:24:48 ZUcHfGMW
【続き】
私はこう考えましたがうまく動かないです。

$list = file("./list.txt");
$member = file("./member.txt");

foreach ($list as $listview){
list($no,$name) = explode('<>', $listview);

foreach ($member as $memberview){
list($memberno,$membername) = explode('<>', $memberview);

if{$no == $memberno){
$mes="あなたはメンバー";}else{
$mes="";
}


echo "{$mes}ナンバー{$no}:{$name}";
}
}



515:478
08/10/01 19:27:23 Zwlv2Kek
>>510
ありがとうございます。
所有者ってところにこだわりすぎてました。
>私の環境では所有者がrootであってもファイルに適切な書き込み権限があれば
ftpで上書き更新できました。
これでやっと理解でき
image_graphでの作成の過程でchmod(aa.png",0707)としたら上書きができました。
かなり長い間迷っていたのでほんとうにありがとうございますm(__)m

>>511
>自動生成するファイルを手動で更新する
数日に一度たまにやる超高負荷な部分を自宅PC数台で処理させて
日々のすこしの処理はレンタルサーバー上でやるって感じです。



516:nobodyさん
08/10/01 19:29:46
>>514
in_array

517:211
08/10/01 19:32:25 bvCNIVPX
>>514
$member の foreach ループで、$mes に値をセットしても
ブレイクするなどしないとまたブランクに戻ってしまう可能性が
ありますね。

518:nobodyさん
08/10/01 20:23:11
>>478
いまさらだが
URLリンク(jp.php.net)


519:nobodyさん
08/10/01 20:38:27 3YFA2aVn
掲示板などのフォームでhtmlタグを一部だけ許可するときに
自分でイチから書くと死ねるとおもうんですが、
そういうライブラリとかって、どなたか作られてないですかね・・

520:nobodyさん
08/10/01 20:39:19
487の人?

521:nobodyさん
08/10/01 20:44:26
>>519
そんなに許可するタグ多いのか???

522:nobodyさん
08/10/01 20:47:30
20も無いと思うんだが

523:nobodyさん
08/10/01 21:13:46 3YFA2aVn
いや別人です。。
許可は10個くらいです。

524:nobodyさん
08/10/01 21:18:49
488でいけそうです

525:nobodyさん
08/10/01 21:23:56
>>524
誰?

526:nobodyさん
08/10/01 22:26:04 3YFA2aVn
524=519です。

strip_tagsでやると顔文字とかが消えることがあるということなんですが
うまく回避できるようなものはないでしょうか?
許可タグは <blink> <hr> <marquee> <font> <div> <a> <br> だけです

527:nobodyさん
08/10/01 22:47:29
一旦そのタグだけ別の文字に変換
タグすべて排除
変換を復帰
でいいんじゃね?


528:nobodyさん
08/10/01 22:57:13
>>526
>>492じゃなんでだめなの?


529:nobodyさん
08/10/01 23:14:21 3YFA2aVn
みおとしてました。 見てみます。。

530:nobodyさん
08/10/02 09:25:56
test

531:nobodyさん
08/10/02 13:41:16 BKOS1nt/
URLリンク(ww7.tiki.ne.jp)

いまWEB上の解説を見てるんだが、これってまちがってるよね?

$a = 10;
$b = $a;
$c = &$a; // 参照渡しによる代入
$a = 20;

print "$a = $a<br>"; // $a の値は当然 20
print "$b = $b<br>"; // $b の値は 10 のまま
print "$c = $c<br>"; // $c の値は 20 になっている

532:nobodyさん
08/10/02 14:24:40
参照の説明としてなら、合ってる

出力は 10=10 みたいになるがな

533:nobodyさん
08/10/02 15:01:45
サブルーチン作るときに、
定義するときも、
呼び出すときも、

()

って絶対つけないとだめなの?

perlだったらつけなくてもよかったんだが。

534:nobodyさん
08/10/02 15:32:33 BKOS1nt/
質問

URLリンク(ww7.tiki.ne.jp)

ここのページみて、

<?php
print "ここは元のファイルから書かれています。<br>\n";
include 'URLリンク(www.php.gr.jp)';
print "<br>ここも元のファイルから書かれています。<br>\n";
?>

これをやってみたんだが、
(インターネット上にあるファイルを読み込んでくる処理ね)

Warning: include() [function.include]:
URL file-access is disabled in the server
configuration in C:\xampp\htdocs\php\6.php on line 3

というエラーが出る。グーグルでエラーメッセージを検索して

URLリンク(www.google.com)
「PHP サーバーの設定内の allow_url_fopen と allow_url_include を有効にしてください。」

という記述を見つけて、その通りにした。
しかし、エラーがまだでる。

なぜ?

535:nobodyさん
08/10/02 15:58:11 BKOS1nt/
xampp1.6.8のバグなのかな、、、

\xampp\apache\bin\php.ini

↑これを編集して、
ちゃんと
allow_url_fopen と
allow_url_include を有効にしたんだが、

php.infoを見ると
allow_url_include Off
になってる。あれ?と思って

C:\xampp\php\php.ini

を見たら、書き換わってない。

allow_url_include=offになってる。

\xampp\apache\bin\php.ini

を書き換えたら、その設定が自動的に

C:\xampp\php\php.ini

に反映されるのではないのか?

536:nobodyさん
08/10/02 16:13:53 BKOS1nt/
自己解決した。
アパッチのhttpd.confに
PHPIniDir C:/xampp/php/php5.ini
って書いて、上書き保存して、アパッチを再起動したら
動いた。

PHPスイッチを使ったら、
C:/xampp/php/php5.ini
ってファイルができたので、それを強制的に
指定したらうまくいった。

537:nobodyさん
08/10/02 16:19:43 BKOS1nt/
xamppなんだけど、
php.iniの読込先の指定は、
アパッチのhttpd.confに

PHPIniDir C:/xampp/php/php5.ini

と書く、
このやり方でいいの?

php5.iniはPHPスイッチを使ったら自動で生成された。
オリジナルのファイルは
\xampp\apache\bin\php.ini
を見ているとおもう。そのファイルを自動でコピーして
生成したみたいだ。

538:nobodyさん
08/10/02 16:48:14 BKOS1nt/
>>537
は自己解決した。
どうやら設定を間違えていたようだ
アパッチのhttpd.confに設定するのは
PHPIniDir C:\xampp\apache\bin\php.ini
こっちが正解だったようだ。

539:nobodyさん
08/10/02 17:31:01 BKOS1nt/
原因がわかった。
以前、自力で単独でインストールしていた
PHPがあって、その設定がレジストリに残っていた。
修正方法は、PHPをアンインストールして、
regeditでその該当のキーをxamppのものに
変更して、Windowsをシャットダウンしてコールドブートしたら
反映された。

参考URL
URLリンク(ajiblog.sblo.jp)
php.iniの設定が反映しない
デフォルトでは以下のphp.iniが使用されます。
c:\xampp\apache\bin\php.ini

しかし、手動でPHPを一度インストールして、その後にxamppをインストールした場合、
読み込まれるphp.iniの位置が以前のままになっている場合があり、この場合php.iniを
変更しても設定が反映されないという現象が起こります。

原因は、古いphp.iniファイルのパス指定がレジストリに残っていることです。新しい
php.iniのパスに変更するにはregedit.extを起動し、"php.ini”で検索して書き換
可能です。

例. 以前、C:\PHPにインストール、php.iniのデフォルトパスが c:\PHP\php.ini の場合
キー: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersionInstaller
\UserData\S-1-5-18\Components\7226D23B061375D47942B053CD215891
\00000000000000000000000000000000
値: C:\PHP\php.ini
これを xamppのデフォルトに合わせて "c:\xampp\apache\bin\php.ini" などに変更して
apacheを再起動すすれば反映されるようになります。
-----------------------------
なお、レジストリを変更したばあい、windowsの再起動が必要になります。

540:nobodyさん
08/10/02 17:34:03
>>533
perlperlうるせえな
お前がやってんのはphpだろ
どの言語も仕様が一緒だと思うなよタコ
言語的にはperlもphpも異端なんだよ

541:nobodyさん
08/10/02 18:17:59
>>539
糞レス垂れ流すな。
そんなんで詰まるなら最初からxampp使うな

542:nobodyさん
08/10/02 19:30:47
ちょと質問

echo strlen ("亜w背drtfgyふじこlp;@:「」");

この文字列は36byte なのに返り値は 53 と出力される不思議。
strlen の数えている文字数って何?
文字列のバイト数を得たいんだけど使い物にならないという ('A`)
文字コード? でもUTF8で書いてるんだけどな・・・


543:nobodyさん
08/10/02 19:32:38
>この文字列は36byte なのに

その根拠は何だ。まさか全角文字列が全部2byteとか思ってないだろうな。

544:nobodyさん
08/10/02 19:47:23
>>542
ユニコードの場合、一文字3バイトとか
普通にありうる。

しかも”(だくてん)も一文字としてカウントされるので、
たとえば

「が」

は、
「か」+「”」
(か+だくてんのちょんちょん)

と解釈されるので、
3バイト+3バイト=6バイト
とか普通にありうる。それがユニコード。

545:nobodyさん
08/10/02 19:56:12
>>543 >>544


俺がヴァカですた orz

546:nobodyさん
08/10/02 20:16:40
>>544

> 「か」+「”」
> (か+だくてんのちょんちょん)
>
> と解釈されるので、

知ったかレスうざい。

547:nobodyさん
08/10/02 21:16:12
utf-8はstrlenじゃなくてmb_strlenつかえ

548:たま ◆ExGQrDul2E
08/10/03 03:41:27 hbK/EmaX
PHP proxyのチェック
プロ串をチェックするため、こんな関数を使っています。



$HTTP_CONNECTION = $_SERVER["HTTP_CONNECTION"];
$HTTP_REFERER = $_SERVER["HTTP_REFERER"];
$HTTP_USER_AGENT = $_SERVER["HTTP_USER_AGENT"];
$HTTP_CLIENT_IP = $_SERVER["HTTP_CLIENT_IP"];
$HTTP_FORWARDED = $_SERVER["HTTP_FORWARDED"];
$HTTP_IF_MODIFIED_SINCE = $_SERVER["HTTP_IF_MODIFIED_SINCE"];
$HTTP_MAX_FORWARDS = $_SERVER["HTTP_MAX_FORWARDS"];
$HTTP_PROXY_CONNECTION = $_SERVER["HTTP_PROXY_CONNECTION"];
$HTTP_SP_HOST = $_SERVER["HTTP_SP_HOST"];
$HTTP_TE = $_SERVER["HTTP_TE"];
$HTTP_VIA = $_SERVER["HTTP_VIA"];
$HTTP_X_FORWARDED_FOR = $_SERVER["HTTP_X_FORWARDED_FOR"];
$HTTP_X_LOCKING = $_SERVER["HTTP_X_LOCKING"];
$HTTP_XONNECTION = $_SERVER["HTTP_XONNECTION"];
$HTTP_XROXY_CONNECTION = $_SERVER["HTTP_XROXY_CONNECTION"];

しかし、携帯版の最強な串
URLリンク(sv0436.dc01.axelmark.net)
でアクセスした場合。何一つproxyの環境変数を吐かないため、弾きようがありません。他にもproxyを示す決定的な環境変数があるのでしょうか?

549:nobodyさん
08/10/03 04:06:16
それに限らず環境変数吐かないproxyは検出しようがない

550:たま ◆ExGQrDul2E
08/10/03 04:14:44 hbK/EmaX
>>549
携帯で
URLリンク(sameha.net)
にアクセスしてください。
拒否されているのですよ...
どうやっているのでしょうか...

551:たま ◆ExGQrDul2E
08/10/03 04:15:43 hbK/EmaX
携帯でとういうのは、携帯で串を経由して
という意味です。
わかりにくくてすいません。

552:nobodyさん
08/10/03 04:28:08
逆引きできるか調べて見れ

553:nobodyさん
08/10/03 04:47:08 agLBvyd6
掲示板のログを保存する場合、データベースを使う方法と、
テキスト形式のログファイルに書き込む方法があると思いますが、
両者の利点、欠点は何ですか?

554:nobodyさん
08/10/03 04:49:20
ぐぐれば一瞬で分かんだろ

555:nobodyさん
08/10/03 04:50:44
>>553
ファイル形式に保存する場合は、容量はOSの制限を受けるため、
上限が生じるのが欠点ですが、速度が速いのが利点。

逆に、データベースに保存する場合、容量が2PB(2PTとは2000TBのこと)と実質上容量の制限が
ないのが利点ですが、速度が遅いのが欠点かな。

556:553
08/10/03 05:08:55
>>555
素早く、かつ大変ご丁寧なレスをありがとうございます。
ポイントは「速度」と「ファイルの容量」なのですね。

ということは、例えば「1月の書き込み」「2月の書き込み」…などと
ファイルを分けて保存すれば、1つ1つのファイルの容量は大きくならないので、
ファイル形式で十分ということでしょうか?

(正直、データベースの使い方がよく分からないので、
ファイル形式で良ければそれで済ませたい、という思いから質問させていただいてます)

557:nobodyさん
08/10/03 05:13:16
一度DB使ったらログファイルなんて使ってらんないな

558:nobodyさん
08/10/03 05:20:21
>>556
いいえ違います。
DBは膨大なデータを扱うことを想定して設計されているので、
データが多くなれば多くなるほどDBのほうがデータの検索速度は高速です。
ファイルの場合、ファイルシステムにもよりますが、データの検索速度はDBに比べ低速です。
またファイルの場合、効率的に読み込む手段が用意されていない言語の場合、
データが多くなると読み込みだけで時間を要します。
ファイルの利点はSQLを必要としないことぐらいです。
これはSQLを覚える必要がないのと、
SQLインジェクション等のSQL特有の攻撃を意識しなくてすむことぐらいです。
特段理由がなかったらDBを使うべきです。

559:553,556
08/10/03 05:42:13
>>558
分かりやすいレスでとても感謝しています。
DBの利点がよく理解できました。

今日からDBを勉強することにします。
どうもありがとうございました。

560:nobodyさん
08/10/03 06:07:45
>>558
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。

561:553
08/10/03 06:21:24
>>560
すみません、>>559で書き込んだ手前、質問しにくいのですが、
理由を教えていただけますでしょうか?簡単で構いませんので・・・。
2chはdatファイル(=テキストファイル?)ですよね。

また、検索や読み出し(ログの表示)をあまり必要としない場合は、
データベースの利点は少ないということでしょうか?

562:nobodyさん
08/10/03 07:32:23
>>561
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。

563:nobodyさん
08/10/03 08:00:21
>>562
2chってDB管理だと思ってた
専ブラで取得しやすいようにdatでも見れるようにしてるのかと・・・

564:nobodyさん
08/10/03 08:03:43
DBは「有能な協力者を1人雇う」と考えればいい。
便利だが、いろいろ気遣いも必要になる。

datファイルの場合は、少し心細いが好きなようにやれて小回りがきく。

565:nobodyさん
08/10/03 08:27:22
>>562
どうみても経験不足はあなたです。
本当にありがとうございました。
2chがどうしてDBを使ってないのか説明してみw

566:nobodyさん
08/10/03 08:43:29
>>565
てめぇの馬鹿さ加減には、父ちゃん情けなくて涙が出てくらぁ

567:nobodyさん
08/10/03 08:45:08
>>566
ごめんね馬鹿なのw
だからどうして2chがDB使ってないか説明してよw

568:nobodyさん
08/10/03 08:50:18
>>567
2chがどうして、DBを使っていないのか、そこからお勉強しましょう。
明らかに経験不足です。

569:nobodyさん
08/10/03 08:51:33
ルールを守ってない時点でお前は質問者じゃない。ただの玩具。

570:nobodyさん
08/10/03 08:54:42
>>582
2chは負荷かかるし検索機能とかないだろ
ただ書き込んで表示してるだけ
ようするに掲示板につける機能によりけり
2chの話を出すのはマヌケ
あとあと掲示板にいろいろな機能を持たせたいのなら
最初からDBで設計しておいたほうがいい
2chは速さを追求した結果前時代的なシステムで拡張が困難

571:nobodyさん
08/10/03 08:55:44
>>582に期待

572:570
08/10/03 08:57:51
>>562
顔洗ってくる

573:nobodyさん
08/10/03 09:05:34
>>570
色々とピント外れだな。

> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。

574:nobodyさん
08/10/03 09:13:45
>>561
DBに興味があるならやってみなよ
両者の比較なんて大規模システム運用するわけじゃないんだから
パフォーマンスに目に見える差異は出てこない
ファイルは専用の関数だけ覚えれば扱えるけど
DBはいろいろ覚えることがあるから
どういうものか触れて勉強するのもいいと思う
Rapid開発になるとフレームワークを使うようになるし
そうするとDBが必須になってくるからね
慣れれば高速に開発できるのもDBの利点

>>573
だって無いだろ

575:nobodyさん
08/10/03 09:21:00
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。
> 2chは負荷かかるし検索機能とかないだろ
冒頭から間違っているし。

576:nobodyさん
08/10/03 10:09:02
2chは負荷かからず、検索機能とかがある説が急上昇

577:nobodyさん
08/10/03 10:16:28
find.2ch.net

578:nobodyさん
08/10/03 10:22:59
>>577
何ゆえにPHP版を

579:nobodyさん
08/10/03 10:29:20
>>577
投稿をDBにいれるのと、
検索エンジンがインデックスをDBに作るのとはまた別の話だろ

580:nobodyさん
08/10/03 10:32:24
>>579
誰も同じ話とは言っていないような???

581:nobodyさん
08/10/03 10:33:20
>>576
しまいにはDB使わずナマズさん使ったほうが速いお
とか言いだしそうだな(わらう)


582:nobodyさん
08/10/03 10:37:06
>>579
find.2ch.netがDBかどうかなんて話してないだろw

583:nobodyさん
08/10/03 10:49:34
ひろゆきや狐やrootがDB分かんないからログファイルなんじゃね

584:nobodyさん
08/10/03 10:55:46
>>583
お前は本当にその3人だけでやってると思ってんのか?
ってか、ひろゆきはDBわかるだろ

585:nobodyさん
08/10/03 11:45:30
ドラゴンボールが何だっての?

586:nobodyさん
08/10/03 11:58:56 /eEzlvvL
ディレクトリ構造?ってどうしてますか
phpファイルを機能別に分けたりしてますか?

587:nobodyさん
08/10/03 12:20:21
好きにしろ

588:nobodyさん
08/10/03 15:56:15 xSW6clzh
すみません。普通のPHPファイルとAjaxの部分とで同じSESSION変数を使いたいんですが、
データの整合性とか、大丈夫ですか?

589:nobodyさん
08/10/03 16:06:53 rpr6AsK7
PHPからMySQLに格納すると文字化けするので、コネクトするたびに、
$sql = "SET NAMES utf8";
$result = mysql_query($sql);
とクエリを投げるようにして、とりあえず解決したのですが、
あまりスマートじゃないですよね?

上のPHP2文がある/無い で、文字化けする/しない という結果になるんですが、
この結果から、どの部分で文字コードがおかしくなっているのか予想ってできますでしょうか?

590:nobodyさん
08/10/03 16:21:01
>>589
コネクトするたびにって、、、1ページ読み込むのに何回もコネクトしてるってこと?
DBのホストを分散しているとかは別だけど、もしそうならスクリプトを1から作り直したほうがいい
それかmysqlのコンフィグを書き換えデフォをUTFにする

591:nobodyさん
08/10/03 16:53:27 rpr6AsK7
>>590
いや、データベースのクラスがあって、
そのクラスをnewするたびにconnectしています。

基本的に1ページには1回newして、そのオブジェクトを使うので、
1ページ=1connectです。

PHPのファイルがUTF-8で、my.cnfの設定もUTF-8に統一している
(コンソールからMySQLにつないで、statusで確認済み)のですが、
あと文字コードに関わる部分ってどこがあるでしょうか?

592:nobodyさん
08/10/03 17:13:26
>>591
クラスにしているなら特にSET NAMEを複数書く必要もないしスマートだと思うけど
格納するクエリが文字化けしてなく、格納した時にすでに文字化けしているなら他に原因は思いあたらない

593:nobodyさん
08/10/03 18:08:56
>>588
javascriptはアクセス先のPHPへ同じセッションIDを通知するから、
ページ全体を表示する際に生成したセッションと同一と言える


594:nobodyさん
08/10/03 18:10:44
>>591
何にせよmysql側で対応したいなら、
MySQL「サーバ」とMySQL「クライアント」の文字コードを統一しないとな
PHPの文字コードじゃないから注意だぞ(PHPからMySQLクライアント(ドライバ)に渡る際に変換されるから)


595:nobodyさん
08/10/03 18:38:33
>>589
その説明は、俺がmy.cnfの設定方法を含めて前レスで詳しく説明したから、
それを見てくれ。

596:211
08/10/03 19:14:51 XpYjXbv/
もう誰も興味ないと思いますが・・・というか、結果的にかなり場違いな
質問でしたが、一応解決したので書いておきます。
結果的には oci8.so をユニバーサルバイナリにしてみたら動きました。
理由は説明できないので聞かないでください。

最初に書かないといけなかったような気がしていますが、環境は、
$ uname -a
Darwin macbook.example.com 9.5.0 Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1/RELEASE_I386 i386
です。

いろいろ試行錯誤していて、以前指摘された "DYLD_PRELOAD"に相当する
ものは"DYLD_INSERT_LIBRARIES"ではないかと思い、試していると、
$ export DYLD_LIBRARY_PATH=/usr/local/instantclient_10_2
$ php ocitest.php
(成功)
$ /usr/sbin/httpd
dyld: could not load inserted library: /usr/local/instantclient_10_2/libclntsh.dylib.10.1

Trace/BPT trap
こうなりました。全然理解できませんが。

ユニバーサルバイナリにしたら良いかもと勝手に思い、
$ pecl bundle oci8
$ CFLAGS='-arch i386 -arch x86_64 -arch ppc -arch ppc64' LDFLAGS='-arch i386 -arch x86_64 -arch ppc -arch ppc64' ./configure --with-oci8=instantclient,/usr/local/instantclient_10_2 --disable-dependency-tracking
$ sudo make install

これで試したらすんなり動きました。
おわり。

597:211
08/10/03 19:23:49 XpYjXbv/
>>596
途中一行抜けてました。
$ export DYLD_LIBRARY_PATH=/usr/local/instantclient_10_2
$ export DYLD_INSERT_LIBRARIES=/usr/local/instantclient_10_2/libclntsh.dylib.10.1
$ php ocitest.php

あと、せっかくなのでちょっと追記。
$ file oci8.so
oci8.so: Mach-O universal binary with 4 architectures
oci8.so (for architecture i386): Mach-O bundle i386
oci8.so (for architecture x86_64): Mach-O 64-bit bundle x86_64
oci8.so (for architecture ppc7400): Mach-O bundle ppc
oci8.so (for architecture ppc64): Mach-O 64-bit bundle ppc64
$ file oci8.so.orig (動かなかったoci8.so)
oci8.so.orig: Mach-O bundle i386
$ file libclntsh.dylib.10.1
libclntsh.dylib.10.1: Mach-O dynamically linked shared library i386


598:nobodyさん
08/10/03 19:25:49
自分のblogに書いといてくれ

599:nobodyさん
08/10/03 19:26:25
ごくろうさん

600:211
08/10/03 20:00:31 XpYjXbv/
すみません。。。
スレリンク(mac板)
に似たような事例があって、いくつかわかりました。
標準でインストールされている httpd は x86_64 で動作しているようです。
アクティビティモニタ上で "Intel (64ビット)" と表示されていました。

で、oci8.so はユニバーサルバイナリにすることでロードされましたが、
その中で使っている libclntsh.dylib は i386 のバイナリしかないわけで
ocitest.php をapacheに実行させたら Trace/BPT trap で失敗してました。。。

なかなか上手くいかないもんだのう。。。

601:nobodyさん
08/10/03 20:28:26
嫌がらせか

602:588
08/10/03 21:05:21
>>593
どうも同一のセッションIDを送ってくれるので、大丈夫ということを知り安心しました。

回答つかないかと思ってあせってたんです(;´д`)

本当にありがとうございました。助かりました。

603:nobodyさん
08/10/03 22:38:52 19ebb2MR
$array[0]["name"]
$array[1]["name"]
$array[2]["name"]

となっている配列があったとして、
nameの中が空の場合、その配列を削除したいと思っています。
ひとつずつIFで条件分岐する以外で方法はないでしょうか?

604:nobodyさん
08/10/03 23:42:28
機能別にすることもあるし分けないこともある。
本体とログとかさらにいくつもファイル複数あるなら分けたほうがいい気はする。

605:nobodyさん
08/10/03 23:58:50
>>603
なさげ。
普通にif文でやってください。
で、ついでに配列に格納する段階でどうにかするという方向性でいったら?

606:nobodyさん
08/10/04 00:02:17 qepvww6d
フレームワーク使ってるかってどうやってわかるんでしょうか?

607:nobodyさん
08/10/04 00:25:18
>>606
デフォルトのまま使えば特徴は出るがそんなのはいくらでも隠蔽できるし
使ってる本人がこのサイトはなんたらのフレームワークで構築されてます
みたいな自己紹介してないとわからない

608:nobodyさん
08/10/04 00:29:35 qepvww6d
>>607
なるほど。 ご回答ありがとうございました

609:nobodyさん
08/10/04 09:35:14
どうしてもモジュール単位でクラス化していくと、
require_onceの数が多くなってしまいます。
ファイルをインクルードするためのオーバーヘッドは気にしなくて大丈夫でしょうか?



610:nobodyさん
08/10/04 11:25:40
>>609
ファイル数が多いならrequire_onceよりrequireを。
onceは重複チェックの分オーバーヘッドがrequireよりありんす。


611:nobodyさん
08/10/04 16:11:14
mailって内部的には、sendmailを起動している、って
WEBの解説ページに書いてあったんだけど、
それってUNIX環境だけだよね?

Windowsでは、起動しているメールサーバーソフト(mercuryとか)を
使って送信してるんだよね?

612:nobodyさん
08/10/04 16:23:54 qMLHDr64
URLリンク(wink.pncn.net)

ここに、

「あとは、Apacheを再起動します。そうしないとphp.iniの設定内容が反映されません。」

って書いてあるけど、php.iniは
別にアパッチを再起動しなくても設定の変更は
反映されるよね?

613:nobodyさん
08/10/04 16:29:09
>>612
モジュール版のPHPはApache起動と同時にPHPも内部的に稼動させるから、
Apache起動時点でのiniになる、だから変更には再起動が必要
CGI版なら、アクセス時にPHPが起動するから再起動は必要なし



614:nobodyさん
08/10/04 16:56:57 qMLHDr64
xamppのPHPの場合はどっちなのかな?
自分のPHPがCGI版なのか、
モジュール版なのか、
どこを見て判定するの?

615:nobodyさん
08/10/04 17:28:26 qMLHDr64
自己解決した。
URLリンク(oshiete1.goo.ne.jp)
↑ここに書いてあった。

「phpinfo()を見る」
「ServerAPIを見る」
「Apache 2.0 Handlerとなっていたら、モジュール版」

「CGIとなっていたら、CGI版」

616:nobodyさん
08/10/04 17:45:37
質問スレって絶対頭おかしいやつ多いよな
質問に答えればすぐ終わることをわざわざ関係ないレスするやつ
答えにならないレスするやつのほとんどが質問してるやつがどういう答えを求めてるかがわかってない馬鹿

このPHPスレだけじゃなくてどこの質問スレも同じ
なんなんだろね?
リアルが馬鹿でどうしようもないから質問しに来たやつに対して優越感にでも浸りたいのか?w

617:nobodyさん
08/10/04 17:50:17
スレチだが、今でもレン鯖ってPHP4使ってるとこが多いよな
4のサポートもう終わってるんだし5にしてくれよと思う

618:nobodyさん
08/10/04 17:53:44
>>615
自分の入れるのがどっちなのかくらい分かってから使おうぜ・・・
>>617
運営に頼むか、そんなひどいとこは使わないのが吉。

619:nobodyさん
08/10/04 18:01:54
>>618
いや、まだまだ殆どのとこが4じゃないかな
たとえ使えてもFTP接続先が/public_html/直下だったり結構ひどいとこばかりだわ

俺の探し方が下手糞なのかもな・・・

620:nobodyさん
08/10/04 18:05:36
殆どのとこって例えばどこ?

621:nobodyさん
08/10/04 18:25:57
>>619
PHP可と書いてるところで登録してみたらPHP4だったーってのはよくあるな

>>620
いろんなとこ借りて覚えてないわ


他にはmod_rewriteが使えないとことか多いよな

622:nobodyさん
08/10/04 18:27:49
覚えてないくせに「殆どのとこがPHP4じゃないかな」とかwww

623:nobodyさん
08/10/04 18:28:45
>>671
php4でしか動かない奴も多いからな。
「ウチのblogが急に動かなくなった、どうしてくれる!」とか
クレームが来ること考えるとそう簡単には切れないべ。

624:nobodyさん
08/10/04 19:02:55 qMLHDr64
URLリンク(lh.gamesns.jp)
これってどうやるの?

625:nobodyさん
08/10/04 19:12:43
captchaでググれ

626:nobodyさん
08/10/04 21:02:35 Ac3kpf8k
簡易的なアクセス解析プログラムを作っています。
HTMLファイルからimgタグでtest.phpを読み込み、
そこで訪問者のログを取っています。
(<img src="./test.php?page=top" />←こんな感じです)

その時test.phpでは
header("Content-length: " . filesize('./dammy.gif'));
というように1px×1pxの画像を出力しているのですが、
画像を出力しないで済む方法はないでしょうか?

アクセスログの取り方はimgタグでやりたいと思っています。
分かる方いらっしゃればお願いします。

627:nobodyさん
08/10/04 21:04:14
ページをphpで作ればいいじゃん

628:626
08/10/04 21:34:46 Ac3kpf8k
>>627
ページは原則的に静的という縛りがあります、すみません。

629:nobodyさん
08/10/04 21:35:45
なぜに?
あと画像を出力したくない理由は?
どうでもいいことは書いてるけど必要な情報が足らん

630:626
08/10/04 22:01:56 Ac3kpf8k
>>629
アクセス解析のプログラムはフリーで配布する目的でして、
手間がかからないよう静的ページからでもOKにしたいのが理由です。

>画像を出力したくない理由は?
特に大きな理由はありません。
ただbodyタグ内のどこにimgタグを突っ込んでもデザインが崩れなければ最高だと思いまして。
情報の後出し申し訳ないです。

631:nobodyさん
08/10/04 22:04:33
>>630
やったことないけど
JavaScriptとしてPHPで読み込んでみてはどうかな?

<script type="javascript" href="./test.php?page=top"></script>


632:626
08/10/04 22:19:45 Ac3kpf8k
>>631
ありがとうございます、解決しました!
なぜかhrefをsrcに変更したところ動作しました。
javascriptでphpを呼べるんですね。
ホントにありがとうございました。

633:nobodyさん
08/10/05 05:46:20
たんに>>631のhtmlのミスだな
まぁそこはどうでもいいか

634:nobodyさん
08/10/05 12:36:18
>>626
jsでするみたいだからどうでも良い話にはなるが
1x1のサイズだとbase64エンコードして出来た文字列を内部に持たせる方が楽だぞ

635:nobodyさん
08/10/05 19:21:16 BsaGVD4F
PHPの世界で
「PHPマニュアル」
っていったら、
なにか公式のものがあるの?

ようは固有名詞になってるの?

636:nobodyさん
08/10/05 19:27:23
テンプレ読まないやつは帰っていいよ

637:nobodyさん
08/10/05 19:38:09 BsaGVD4F
URLリンク(w1.nirai.ne.jp)

ここに書いてあるんだけど、

「6の項目は実現できませんでした。なぜうまく行かなか
ったかと言うと、ブラウザのキャッシュが大きな壁だった
のです。同じ画面にするとどうしても再読込あるいは次
の投票を行わないと反映されないのです。ある程度対応
策があるのですが、サーバー側のプロキシ(?)の問題も
あるようで100%は無理みたいですね。あちこちで見られる
アンケートもほとんど2画面ですからね。」

って書いてあるのだが、PHPでやる場合、
基本的に2画面設計にするのが業界の主流なの?

638:nobodyさん
08/10/05 19:47:25 BsaGVD4F
URLリンク(www.php.net)

PHPマニュアルってこれか?
まさかおまえら、これ全部読んだの?

639:nobodyさん
08/10/05 21:25:33 BsaGVD4F
10人で同時にプレイする
CGIゲームのテストって
ローカルでは限界があるのか?

640:nobodyさん
08/10/05 21:28:43
いや別に?

641:nobodyさん
08/10/05 21:29:17 BsaGVD4F
URLリンク(www.sound-uz.jp)

ここ読んだら、

[ステップ2] サーバにアップロードする

「今書いたPHPスクリプトファイルを、FTPソフト
でサーバのブラウザでアクセスできるところにア
ップロードします。CGIのようにパミッションを設定
する必要はありません。」

って書いてあるんだけど、本当にパーミッションを
設定する必要はないの?

642:nobodyさん
08/10/05 21:32:21
CGI版で使うならある

643:nobodyさん
08/10/05 21:40:38
PHPスクリプトにファイル作成をさせたりするなら、必要になることも。

644:nobodyさん
08/10/05 21:49:03 BsaGVD4F
なんで、Apacheモジュール版のことを、DSO版って呼ぶの?

645:nobodyさん
08/10/05 21:51:45
ApacheのDSOって仕組み使ってるから

646:KillYouHag ◆KillYouHAg
08/10/05 22:12:26
|(-_-)|

647:nobodyさん
08/10/06 00:22:36 szIkgH26
PHPの解説ページ見てると、ほぼ全部が
mysqlと連携させましょう!ってなってるけど、別にsqlliteでも
いいんだよね。

648:nobodyさん
08/10/06 00:25:50
もち。sqliteはまだ新しいので、解説が少ないだけ。

649:nobodyさん
08/10/06 00:44:53
>>638
必要になったら読むに決まってるだろ
君はセンスがなさそうだから他のことやったほうがいいよ

650:nobodyさん
08/10/06 12:20:44 HtdN4tAq
ファイルでX行目の内容だけ変えたりという処理を実装したいのですが、すべての行を読み込まなくてはできないでしょうか?
たとえば100行あって5行目hogeをfugaに変えるだけの時はどんな処理が一番いいですか?
下のようなものしか思いつきません。

$list = explode("\n",$file);
$list[4] = "fuga";
$file = implode("\n",$list);


651:nobodyさん
08/10/06 12:23:04
そのファイル何MBなの?

652:nobodyさん
08/10/06 12:27:22 HtdN4tAq
>>651
ありがとうございます。
ログのようなもので簡単に言うと2chのsubect.txtっぽいものです。
10M以下です。

653:nobodyさん
08/10/06 12:33:17
じゃ気にしなくておk

654:nobodyさん
08/10/06 12:47:45
>>652
今後デカくなる可能性もあって、気になるというなら
ループとfgetsで対象の行まで処理してもいいかもな
無駄なループが出るが、ファイル全体を取り込む際のオーバーヘッドと比べて要相談


655:nobodyさん
08/10/06 13:40:08 szIkgH26
URLリンク(php.dori-mu.net)

↑ここに、

「効果的にデバッグしたい
最近PHPをはじめた方の為に、効果的なデバッ
グの方法をこっそりお教えします。

統合開発環境がいまだ無いPHPのデバッグで
は、要所要所で変数の値をprintされている人
が多いと思います。」
-----------------------------------------

、、、って書いてあるけど、これって古い情報?
まだIDEってないの?

656:nobodyさん
08/10/06 13:45:05
そんな鴨を釣るための方便

657:nobodyさん
08/10/06 14:18:23
IDEならPDTやaptanaがあるじゃん、釣られんなよ
しかも「PHP4は早いんです!」・・・ワラタ
PHP5の影もない頃の記事だな

658:nobodyさん
08/10/06 16:19:40 /7mWgEQF
勉強の為にフリーで配布されてるソースを拾ってきて
自分なりに解読しているのですが、その中であまり見かけない
記述を見つけたので何をしているか教えてもらえませんか

クラスの中に
$this->$kw($val);
と記述がありました。

659:nobodyさん
08/10/06 16:27:05
質問。
--------------------------
<html>
<form action="output.php" method="post">
<input type="text" name="a"></td>
</form>
<?php
$c = $_POST['a'];
print ("$c");
?>
</html>

-----------------------------------------
↑このコードなんだが、
入力フォームの画面がoutput.phpで、
そこから渡される変数を受け取って、
処理をして画面に出すファイルも、同じく
output.phpなんだが、こういう、入力ファイルと、
出力ファイルが一緒、って、なんか気持ち悪いんだが、
2つのファイルに分ければすっきりすると思うんだが、

(入力が1.htmlで、出力が2.phpとか)

RFC的に、っていうか、なんか規約とかガイドラインとかで
決まってたりしないの?
「同じファイルで入力と出力を混ぜるな」とか。

660:nobodyさん
08/10/06 16:30:53
>>658
URLリンク(www.komonet.ne.jp)
URLリンク(www.scollabo.com)

この辺見たらわかるんでない?

661:nobodyさん
08/10/06 16:33:21 krVoA8nH
>>659
$_SERVER['PHP_SELF']があるくらいだし、
1つのファイルでやるのはよくあるかと

てかhtmlの書き方がめちゃくちゃな気が…

662:658
08/10/06 16:36:38 /7mWgEQF
>>660
ありがとうございます
ただそのあたりは理解してるつもりです。

分らないのは
$this->$wk($val);
の部分の"->$"でアローの後の$が何なのかということなのです

663:658
08/10/06 16:39:49 /7mWgEQF
自己解決
可変ね

お騒がせしました

664:nobodyさん
08/10/06 16:41:22
急に態度でかくなってワロタ

665:nobodyさん
08/10/06 16:53:21
>>659
「んだが」使いすぎ。


666:nobodyさん
08/10/06 16:58:10
そこにツッコむとは通だな

667:2ch偽”管理”人 ◆2ch.net/cU
08/10/06 17:45:16
(´・ω・`)

何げに神酉

668:nobodyさん
08/10/06 17:50:47
>>662
スカラー変数じゃない?

669:nobodyさん
08/10/06 17:53:03
>>668
いや、明らかな可変関数ですが

670:nobodyさん
08/10/06 17:58:49 szIkgH26
URLリンク(zen-cart.jp)
ここみたら、xreaって
register_globalsがOn
みたいなんだけど、バカなの?死ぬの?

671:nobodyさん
08/10/06 18:01:42
古いサーバでしょ

672:nobodyさん
08/10/06 18:07:18 J8jNqfv3
URLリンク(screenshots.jp)

↑こういうウェブサービスを自作したいと思います。

任意のページをブラウザで表示させ、そのスクリーンショットを取得し、
サイズや解像度を調整しサムネイルに加工するというものです。

これはレンタルサーバ(XREA)+PHPで可能でしょうか?

PHPで無理なのであれば、どのような言語やツールを利用すればよいですか?

673:nobodyさん
08/10/06 18:10:46
先が思いやられる・・・

674:nobodyさん
08/10/06 18:15:43
>>バックエンドにXやらwinやらがないと出来ん
エンジンだけで正確なキャプチャは取るのは神業だからな

675:nobodyさん
08/10/06 18:46:29 J8jNqfv3
>>674

ありがとうございます。

やはり自宅サーバ立てるのが近道なんですかね。
でも管理コストが・・・。

676:nobodyさん
08/10/06 19:13:23 szIkgH26
おまいらHTMLエディター、何使ってる?

677:nobodyさん
08/10/06 19:15:46
なぜPHPは除外?

678:nobodyさん
08/10/06 19:22:34
>>676
メモ帳

679:nobodyさん
08/10/06 19:25:24
メモ帳

680:nobodyさん
08/10/06 19:29:27
メモ帖

681:nobodyさん
08/10/06 19:49:37
getで、
.php?id=123456
みたいなのじゃないくて

2chのスレみたいに

read.cgi/php/1221909788/l50←ここ

を受け取りたいんだけど、これ出来ない?

682:nobodyさん
08/10/06 19:52:09
>>1

683:nobodyさん
08/10/06 19:53:22
>>659
どっちもできるのに何故RFCで決めなければならんのだ

684:nobodyさん
08/10/06 20:02:26 F1nMmuDg
あだるとびでおの編集とかにぴーえいちぴーは、つかわれていますか?

685:nobodyさん
08/10/06 20:03:52
使われていまsん

686:nobodyさん
08/10/06 20:07:14 rKAl3ZIy
サーセン。

【OS名】window xp
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
getで、
.php?id=123456
みたいなのじゃないくて

2chのスレみたいに

read.cgi/php/1221909788/l50←ここ

を受け取りたいんだけど、出来ないですか?

687:nobodyさん
08/10/06 20:14:53
できまsん

688:nobodyさん
08/10/06 20:15:09
テンプレ出したとこで申し訳ないがphpとは全く関係ない罠
mod_rewriteで調べてちょうだい

689:nobodyさん
08/10/06 20:20:32 szIkgH26
いままでHTMLエディタは TTTエディタを使っていたんだが、
こんどPHPを勉強することになって、
文字コードはかっこよく、utf-8で統一しようと思ったんだけど、
今しらべてみて、なんと、ttteditはユニコードでのファイルの保存が
できないことが判明。いまどきそれはないわな。

てなわけで、ttteditを捨てることに決定。

で、ttteditみたいなエディターで、イマドキなの、一個
紹介してよ。

690:nobodyさん
08/10/06 20:25:34 rKAl3ZIy
>>687

cgiなら出来る?

691:nobodyさん
08/10/06 20:31:29 rKAl3ZIy
mod_rewriteググったら解決出来そうだった。

クエリー式(/sample.cgi?a=123&b=456)
PATH_INFO式(/sample.cgi/123/456)
とか言うのね。

thx!!

692:nobodyさん
08/10/06 20:41:33
>>689
PDT

693:nobodyさん
08/10/06 20:47:57
htmlエディタとかスレ違いもいいところだろ
phpやるならIDE使えよ
htmlの色付けやコード保管機能ぐらいならどれでもついてる
ていうかhtmlなんてメモ帳で余裕ぐらいにならんと

694:nobodyさん
08/10/06 20:50:32
>>693
メモ帳wwwwwwwwww
好きに文字コードを指定して保存できる素晴らしいツールですね^^

695:nobodyさん
08/10/06 20:59:52
>>694
文字コードとかの話をしてるんじゃねえよ
htmlの色付けとか補完機能とかオマケなみたいなもんで必要ないってこと
あったほうが作業効率は早まるが覚えること少ないだろhtmlは

696:nobodyさん
08/10/06 21:00:45 szIkgH26
自分のイメージだと、
はhtml編集ソフト。
PHPはPHP専用のIDE

、、、て使い分けてるイメージがあったんだが、
違うの?

697:nobodyさん
08/10/06 21:01:30
ふ、甘いぜ。漢なら、Emacs で打ちこみだろう。

698:nobodyさん
08/10/06 21:09:21
俺は自社製のソフト使ってる
フローチャート書けば自動的にスクリプトにしてくれるから便利

699:nobodyさん
08/10/06 21:15:32
>>696
htmlにphpのコードを記述していくことになるから
使い分けたりしない

<?php include_once("main.php"); ?>
<html>
<head>
<?php echo $charset; ?>
<?php echo $title; ?>
</head>
<body>
<p>こんばんわ!<?php echo $name; ?>さん!</p>
</body>
</html>

見たいな感じで書いたりするからな

700:nobodyさん
08/10/06 22:39:10
>>699
そんなコードかかねーからw

701:nobodyさん
08/10/06 23:56:26 szIkgH26
スレリンク(php板:720番)

こういうのPHPでカンタンにできるの?

702:nobodyさん
08/10/07 00:04:09 xy9SRLMk
暇だから答えるか。。

>>701
無理。PHPはサーバー側のプログラムだから。ブラウザの機能に付加するしかないから
FireFOxのアドオンっていうのがJavaScriptで書かれているから、それ勉強した方がいいよ。

703:nobodyさん
08/10/07 00:04:26
>>700
書くだろ
>>699を理解できないのはロジックが分離できてない証拠

704:nobodyさん
08/10/07 00:08:21
できないの?できるの?
そうだよね?違う?
下らん質問繰り返してる暇があったらさっさとはじめろよグズ野郎

705:nobodyさん
08/10/07 00:30:01 UKq/cagT
windowsとApacheでphpのプログラムを書いているのですが
<?php
print_r ($_COOKIE);
?>
とすると
Array ( [PS] => ngnrnodnjsl5fmj8gl6ytgsks0 )

と表示されます
setcookieを一度も呼び出さなくても勝手にこのPSというクッキーが発行されています
これは何ですか

706:nobodyさん
08/10/07 01:31:01 CqpiE/lL
クッキーです。


707:nobodyさん
08/10/07 13:07:59
>>703
かかねーからw
今時、テンプレートエンジンとか普通使うし
そんなコードを書くほうが少ない
ビューとロジックを分離出来ていないのはどっちだよw

デザイナーにPHPコードそのまま埋め込ませるのか?w

708:nobodyさん
08/10/07 13:10:28
>>701
出来るよ

709:nobodyさん
08/10/07 13:57:53
し・・・下らねぇ

710:nobodyさん
08/10/07 14:01:56
個人なら一緒でもいいんじゃね
分けると重くなるし

711:nobodyさん
08/10/07 14:02:11
>>707
PHPコードも、Smartyのタグも、埋め込ませるのでは変わらないよ。
テンプレートエンジンのオーバーヘッドはSmartyなんかでは特に高くて、
>>699のようなコードにするこでの分離も業務ではざらにあるんだよ。

712:nobodyさん
08/10/07 14:04:40
フレームワーク使って>>699のような書きかたも普通にするわ

713:nobodyさん
08/10/07 14:44:20
>>699 普通のPG
>>707 フレームワークしか触ったことの無い底辺PG

↑FA?

714:nobodyさん
08/10/07 14:48:43
難しい言葉や一通りいろいろなものには触ってはいるが
本質的なことを理解していないタイプなのだろう

715:nobodyさん
08/10/07 21:25:43 4E7CA6TZ
学習計画なんだけど、
素のPHPに1ヶ月、
smartyに1ヶ月、
cakephpに1ヶ月、

で合計3ヶ月で大体基本をマスターしようと
思うんだけど、どう思う?

716:nobodyさん
08/10/07 21:28:52
別に・・・

717:nobodyさん
08/10/07 21:35:53 4E7CA6TZ
あ、もしかしたら、PEREってのも勉強しないといけないの?

718:nobodyさん
08/10/07 21:35:56
>>715
他の言語経験者ならいいんでない?

719:nobodyさん
08/10/07 21:41:56
なんでも予定通りには行かないだろうからとりあえずヤってみるべし

>PERE
PECLのことか?これはC言語だから取りあえずスルーでイイ
定番PECLの使い方くらいは覚えておく必要はあるな(mbstringとか

720:nobodyさん
08/10/07 21:42:09
>>715
長すぎ

721:nobodyさん
08/10/07 21:42:25
>>719
PEARのことだと思われ

722:nobodyさん
08/10/07 22:12:54
>>715
せいぜい一週間だろ

723:nobodyさん
08/10/07 22:36:38 wbjjwnhA
GDを使って、カウンターの画像を表示するようにしています。
下記のようにしているのですが、1桁の画像しか表示されません。
桁数に併せて画像を連続出力する?みたいな事って出来ないのでしょうか?

$count = "1234";
$c_array = str_split($count);

header("Content-Type: image/gif");

for($i=0;$i<count($c_array);$i++){
$cnt = "img/".$c_array[$i].".gif";
$image = imagecreatefromgif("$cnt");
imagegif($image);
imagedestroy($image);
}

724:nobodyさん
08/10/07 22:39:54
何をやっとんじゃ

725:nobodyさん
08/10/07 23:47:39
>>723
1つのimgタグで複数の画像を同時に表示出来ないことと同じ理由だぞ・・・
単純に4桁なら4桁で1つの画像に表示させればいいじゃん
1桁1画像にする理由があるならスマンが

726:nobodyさん
08/10/08 01:45:48 ij2fkFmB
アンケートをためしに作っているのですが

作り方の載っているサイトなどをみると
送られたデータを表示する際には
XSSを防ぐために htmlspecialchars 使えって
書いてありますがタグなどを抜く strip_tags ではだめなんでしょうか

駄目だとしたら理由も教えてください。

727:nobodyさん
08/10/08 02:12:39
変換する関数と取り除く関数じゃん

728:nobodyさん
08/10/08 02:23:16 ij2fkFmB
>>726
すいません。書き忘れました。

htmlspecialchars が < とかを変換する関数だっていうのは
わかっているんですが、それでXSS対策になるんだったら
タグを取り除いても対策になるんじゃないかと思ったんです。

729:nobodyさん
08/10/08 02:33:36
strip_tagsのタグの除外方法に問題があります。
onmouseoverとかのイベントハンドラをタグに入れてかけてごらん。

730:nobodyさん
08/10/08 03:05:46
XSSとは直接関係ない別の理由、
例えばurlをはりつけられて宣伝行為がいやだとかなら、
正規表現でurlあったら登録前にはじくようにすればええ。
最初から<>を入力禁止にすればいい。

731:723
08/10/08 05:22:24
>>725
すみません、「4桁でひとつの画像」という意味が分かりません。
例えば、カウンターで「1234」という桁数を表現したい場合、
1234の画像を予め作っておかなければいけないのでしょうか?


732:nobodyさん
08/10/08 06:33:06
>>731
その通りです。4つ画像作るということは、
4回もHttp RequestがWeb Serverに対して発生するということですよ。

733:723
08/10/08 07:30:56
自分で調べてimagecopymergeを使って
画像をコピー・マージンする事で対処出来ました。
やはり、すべての画像を用意するのは手間ですからね。

お騒がせしました。

734:nobodyさん
08/10/08 07:50:07
そんなことより、
URLリンク(cms.c-okinawa.co.jp)

サイトが乗っ取られているぞwwwww

735:nobodyさん
08/10/08 07:53:47
>>734
kwsk
SQLインジェクションでもされたか

736:nobodyさん
08/10/08 08:29:31
>>735
詳しくは俺もよく分からないが、mixiとかで大騒ぎになっているw
どうやら、ネット企業らしいが、自分の会社の恥をさらけ出している。
こういう会社に誰がシステム開発を頼むであろうか、いや頼まない。

URLリンク(72.14.235.104)

737:nobodyさん
08/10/08 08:31:02
しかも、そのページキャッシュの下にある、これは何だ。
こんなバグばかりの自社ページw

最終更新 ( 2008年July18日(Friday) 13:49 )

738:nobodyさん
08/10/08 08:34:44
まぁ沖縄だからな
都内と比べて技術者が劣るのは否めない

739:nobodyさん
08/10/08 08:36:00
裏を返せば、東京でプログラマーやっていれば、
沖縄でプロマネとか出来るってことか?

740:nobodyさん
08/10/08 08:45:47
CMSの管理アカウントが洩れたんだろうね。
技術力というよりは、管理力の問題かな。

741:nobodyさん
08/10/08 08:49:07 pfYxFPga
すみません、質問です
今phpでプログラムを書いているんですが、実行中にタイムアウトしてしまいます
デフォルトの制限30秒を伸ばすのではなく、根本的に解決したいと思うのですが
可能性としてどんなことが考えられるでしょう?
フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします
ソースを見せられないのに漠然としていて申し訳ないのですが、ありがちな失敗例でも
教えてもらえたら幸いです

環境はwinXP Pen3-900mhz メモリ512m apache2 php5です
マシンのスペックがショボイのも一因かなと思いますが問題ないでしょうか?


742:nobodyさん
08/10/08 08:55:09
>>741
ソース出した方が、解決早いよ。

743:nobodyさん
08/10/08 09:10:24
>フォームを送信して、確認画面で表示する程度のプログラムでタイムアウトします
こんなんでタイムアウトするとかありえないし無限ループしてるだけじゃね?

whileとかforの部分があったら出してみ

744:nobodyさん
08/10/08 09:37:13 pfYxFPga
>>742-743
お返事ありがとうございます whileやfor文はないんです
いま、error.logを見たら、以下のようになっていました

PHP Fatal error: Maximum execution time of 30 seconds exceeded in
C:\\....\arrayList.php on line 2, referer: URLリンク(localhost)

それで、arrayList.phpをみると
<?php
$sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));
となっています($sTypeAryの前にタブが入ってます)
ログが問題あるといってるのは$sTypeAryの箇所ですよね? おかしいでしょうか?
このarrayList.phpはたくさんの配列が定義されていて、それを使ってプルダウンメニューを生成してるんですが、、


745:211
08/10/08 10:12:23 ARUsAyOt
気になる部分を切り出して動かしてみるとか、
途中でログを出力するようにしてどこで止まるか調べるとか、
デバッガーを使ってみるとか、
動いていた環境と何が違うのか考えてみるとか、
文字コードが関係してないかとか、
考えればいろいろ思いつくんじゃない?

746:741
08/10/08 10:32:58 pfYxFPga
>>745
ありがとうございます
>気になる部分を切り出して動かしてみるとか、
>途中でログを出力するようにしてどこで止まるか調べるとか、
>デバッガーを使ってみるとか、

気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてますが
ログ出力とかデバッガとかはわかりません
どんな風にしたらいいんでしょうか?
ログ出力ってのはapacheのerror.logとは違うものですか?
デバッガって専用ソフトがあるんでしょうか。。
調べてみますが、もし気が向いたら教えてください

747:211
08/10/08 10:45:45 ARUsAyOt
>気になる部分を切り出したり、関係なさそうなとこをコメントアウトしたりはしてます

これで問題のあるところが絞り込めるんじゃないの?
んでそこをじっと見てみれば解決に近づくと思うけど。

知らないことは調べてみて、わからないことをまた聞けばいいじゃない。

748:nobodyさん
08/10/08 12:36:58
Pear::Benchmarking_Benchmarkでも使ってみたら

749:nobodyさん
08/10/08 12:42:57
配列をループさせて作るプルダウンは生成できてるの?
一度、プルダウン生成のループ前でexit;してみなよ。
それでタイムアウトしなければ配列の要素が多すぎるか無限ループ起こしてるか。

750:nobodyさん
08/10/08 12:50:49
whileやfor文はないけどforeach文はあるんですとかいうオチか?
配列つかっててループ使わないとは到底思えないわけだが

751:nobodyさん
08/10/08 13:03:33
エスパー呼んで来い!

752:nobodyさん
08/10/08 14:52:41
ふつうに再帰呼び出しのバグのような...


753:nobodyさん
08/10/08 14:55:49
>>744
>arrayList.phpはたくさんの配列が定義されていて

その配列の数だけプルダウンメニューを生成していると・・・
ま、問題箇所はそこだね。

プルダウンメニューの生成部分をここに書いてご覧。

754:nobodyさん
08/10/08 16:06:32
文字コードの変換についての質問です
対象となる文字を書き込むと文字化けするようですので以下のURLの検索結果を見ていただけますでしょうか
URLリンク(www.google.co.jp)

これらの漢字をUTF8からSJISに変換しようとすると?に化けます。
※SJIS-winも同じ

用途はウェブから拾ってきた文字列(UTF8)をWindowsのフォルダ名として使用したいのですが、
特殊な文字が含まれている場合に文字化けを起こし、場合によってはフォルダの作成に失敗します。

ちなみにPythonだと、str.decode('utf8') でデコードすると特殊な文字のままフォルダ名として使用できました。
これと同じ事をPHPで実現可能でしょうか?

よろしくお願いいたします。

OS:WindowsXP
phpは5.2.5を使用

755:754
08/10/08 16:08:37 l2gN2Unr
すみません。age忘れました・・

756:nobodyさん
08/10/08 16:22:07
中国語じゃないの?

757:nobodyさん
08/10/08 20:36:06
Imagickを使用して複数のGIF画像からアニメーションGIFを作成したいと思います。
以下のようなコードを実行したところ、作成はされたのですがアニメーションが繰り返しません。

$im = new Imagick("1.gif");
$im2 = new Imagick("2.gif");
$im->addImage($im2);
$im->writeImages('3.gif', true);
$im->destroy();
$im2->destroy();

どのようにしたら繰り返すアニメーションGIFを作成できますか?

PHP 5.2.3
Fedora Core release 6

よろしくお願いします。

758:757
08/10/08 20:37:40 AijBw8uq
すいません。ID出してませんでした。

759:nobodyさん
08/10/08 20:37:47
>>757
>>1

760:nobodyさん
08/10/08 20:40:30
>>758
URLリンク(www.google.com)

761:nobodyさん
08/10/08 20:54:08 ZJxG3jMs
【OS名】CentOS 5.2
【PHPのバージョン】php 5.1.6-20.el5_2.1
【連携ソフトウェア】mysql
【質問内容】
これまで正常に動作していたサイトの出力の先頭にゴミが出るようになった。
下記のようなゴミ。これを消したい。
出るようになったタイミングは CentOS で yum update やってサーバ再起動してから。
PHP上で動いているプログラムの問題かと思ったら、phpMyAdmin でも同様の
状態だった。ゴミの文字列は毎回違う。
------------------------------------------------
10be4 (←これがゴミ)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
------------------------------------------------
猛烈に以前も同じことがあった気がする。
おながいします。

762:nobodyさん
08/10/08 21:08:44
BOM

763:たまちゃん ◆ExGQrDul2E
08/10/08 21:20:35 EssfW95q
PHP 正規表現

で質問があります。
画像ファイルとかの

test.jpg

1234.test.jpg

テスト.jpg

のように、一番最後の.の後にある拡張子を取得したいんですけどどうしたらよいですか?

$test = 'test.test2.gif';

if(preg_match("/(.+?).\d/",$test){

$filename = $test[1];

}

では全然ダメでした。

764:nobodyさん
08/10/08 21:33:51
/[^\.]+$/

ていうか何がどうなってその正規表現に行き着いたんだ

765:nobodyさん
08/10/08 21:35:26 ij2fkFmB
今帰りました。
お礼が遅れましたすいません。

>729
ありがとうございます。
該当すると思われるページにたどり着き納得しました。

>730
入力の制限も勉強してみます。
ありがとうございます。

766:nobodyさん
08/10/08 22:55:04 QSI2sKBR
XSS対策で、htmlspecialchars関数を使ってますが、&をエスケープするので、
&#9829等の特殊文字が表示されなくなりました。
みなさんはこの部分はどう対策されてますか?

767:741
08/10/08 23:43:38 pfYxFPga
>>749-753
親切なレス本当にありがとうございます
外出しててお返事遅れてしまいました
配列をプルダウンにする処理は以下の通りです

function makeStypePd($name,$selectNum,$modifyMode){//$modifyMode top>通常 rewrite>修正 db>db取得
$name=strtoupper($name);
$options="";
//修正画面用
if($modifyMode == "rewrite"){
for($i=1;$i<=count($this->sTypeAry)-1;$i++){
$options .="<option value=\"".$this->sTypeAry[$i][1]."\" ";
if(($selectNum != NULL) && ($selectNum == $this->sTypeAry[$i][1])){
$options .= "selected=\"selected\"";
}
$options .= ">".$this->sTypeAry[$i][0]."</option>\n";
}
return $options;
}
//DB参照画面用
else if($modifyMode == "db"){
//同様の処理
}
//通常画面用 普通にプルダウンを作る
else if($modifyMode == "top"){
//同様の処理
}
}

おかしいでしょうか? 選択値を配列の各要素が持つ値と照合して、同じだったらselectedとする、
そうでなければ普通にoptionを作っていくという処理のつもりです。配列は以下のものを使っています。
$sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));

768:nobodyさん
08/10/09 00:17:59
つっこみどころ満載で涙が出るな
ループでは「$this->sTypeAry」、定義では「$sTypeAry」、
ちゃんと「$this->sTypeAry」に代入されてるか?

forで「$i=1」ってなってるけど、それだと「こだわらない」が使われないよな?
(配列ならforeachの方がいいと思うんだがなぁ)
単純なループだから大概な数を回しても30秒以内に終わりそう・・・・
ここには原因がないのだろうか

769:nobodyさん
08/10/09 00:44:35 ju+5ve0t
>>768
どうもです 本当にすみません
配列の代入はされてます
「こだわらない」はこの場合適用されなくていいんです(一言添えるべきでした すみません)
forよりforeachの方がいいんですか? そのほうが早いとか?
foreachをよく理解できないので使わなきゃ良いやって気分だったんですが、、
どこがまずいのかなぁ、、

あと、ちょっと話題がずれるかもしれないですが
ある画像ファイルがあるときは、それを出力する処理をしています
$dbPicPath = "../../../".$_SESSION['uType']."/img/".$_SESSION['uId']."/".$corner."/".$name.".jpg";
if(getimagesize($dbPicPath)){
$rtn.="<img src=\"".$dbPicPath."?".$rand."\"".$resize." />\n";
}else{
$rtn.="-\n";
}
return $rtn;
この処理に対して、該当する画像が存在しない場合エラーログに
PHP Warning: getimagesize(../../../artists/img/1/pic/***.jpg) failed to open stream: No such file or directory
といわれます
この警告Warningを出さないようにするにはどうしたらいいでしょうか? これが遅い原因かな?
上記処理の時点では、該当ファイルの有無はわからないので 「そんなファイルやディレクトリはないよ」と
いわれてもしょうがないじゃんって気分です。。 すみませんが気が向いたら教えてください

770:nobodyさん
08/10/09 00:53:31
ソースはともかくプルダウンはできてるぞ
getimagesize()の前にファイルの有無をチェック

771:nobodyさん
08/10/09 01:05:05 ju+5ve0t
>>770
たびたびすみません
getimagesizeをfile_existsに置き換えたらwarning出なくなりました
もう少し粘ってみます 今日はありがとうございました

772:nobodyさん
08/10/09 01:08:35 e6lF3vrt
データベースに接続するために、ユーザーIDやPWDをphp側で設定する必要があると思うのですが、
そのような設定値は、どこに書くのが適切でしょうか?

ファイルに外だしすると、データベースに接続するたびに、
ファイルI/Oが発生して処理が遅くなるかと思いますが、
ソースに直接書くと、異なるサーバー(例えばテスト環境と本番環境)毎にソースを変えなければいかず、
それも、欠点が多いような気がします。

みなさんは、どこに書かれていますか?
よろしくお願いします。

773:nobodyさん
08/10/09 01:20:53
>>766

preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($value)

とか。
ウザイけど。

774:nobodyさん
08/10/09 02:03:19 HkhPxnZW
>>772
config.php作って定数にしてinclude

775:nobodyさん
08/10/09 02:04:43
>>772
config.ini作ってfile_iniみたいた感じのやつで読み込んでる

776:nobodyさん
08/10/09 07:18:15
>>766
考え方がおかしい
htmlspecialchars() は文字列をHTMLのCDATAに変換するためのもの
もともと実体参照が含まれているCDATAな文字列に対して
htmlspecialchars() を噛ませばおかしな事になるさ

実体参照をエンコーディングに従って割り当てられた文字コードに直せ


777:773
08/10/09 09:54:59 T+Rb7EjR
>>773
私の場合単純に
$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&#([19])','?\\1',$var);

とやろうと思ったのですが、セキュリティーホールができそうでちょっと怖いです

>>776
よくわからないのですが、実体参照(文字参照)に文字コードが関係するんですか?
ユーザーの中に、?&#9829;とか?&#9834;とか書き込んでくる人がいるので、そういう人のために
きちんと記号表示されるようにしてあげたいのですが、、

URLリンク(ja.wikipedia.org)

778:773
08/10/09 10:14:06 T+Rb7EjR
>>777
追記
2chに変換されてしまった、、(^-^;

2chでは特殊文字が普通に変換されるサーバと?になるサーバとがあるみたいですね
&#[0-9]* って感じか

4行目
$var = ereg_replace('&amp;#([19])','&#\\1',$var);


779:nobodyさん
08/10/09 12:37:12
>>763
それ正規表現いらない

780:773
08/10/09 13:07:33 T+Rb7EjR
その後いろいろ調べたのですが、どうやら&はエスケープしなくてもセキュリティー上は問題ないようです。
URLリンク(shimax.cocolog-nifty.com)

とりえずこんな感じにしてみました

$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&amp;#(9[0-9]{3}|1[0-9]{4})','&#\\1',$var);//一桁目が1(5ケタ)と9(4ケタ)のみ許可する


781:nobodyさん
08/10/09 13:52:37 XhRaoWbe
【OS名】レンタルサーバで不明
【PHPのバージョン】php4.4.2
【連携ソフトウェア】mysql
【質問内容】
WebAPIよりXMLを取得しているのですが、階層が一定でなく
再帰処理によりデータを処理したいと考えています。
その際、staticによりデータを保持して再帰処理しているのですが
staticで指定したデータを初期化する方法はないでしょうか?
メインのファンクションから再帰処理を呼び出しているのですが
すべてのデータが残ってしまい困っています。

782:nobodyさん
08/10/09 14:16:55
歯茎

URLリンク(www.vipper.org)



783:nobodyさん
08/10/09 14:24:39
>>781
staticよりリファレンスの方が良くね?

function sample ($node, &$out) { ~ }
$outに返り値を格納するようなヤツ


784:nobodyさん
08/10/09 14:35:29
>>783
望み通りの動作になりました。ありがとうございます!!

785:nobodyさん
08/10/09 17:58:27 waFB31sw
"aaa","bbb"

と言うように区切られた文字列を
$array[] = "aaa";
$array[] = "bbb";

と言うように配列に入れるにはどうしたらいいのでしょうか?
ファイルではないのでfgetcsvも使えません。

786:nobodyさん
08/10/09 17:59:43
>>785
split

787:nobodyさん
08/10/09 18:04:59 DVR9Hu5G
すみません、質問させて下さい。

PHP4のサーバーでエラー内容がブラウザに表示されず白紙のままです。
display_errorsとhtml_errorsはphpinfoで確認したところOnでしたが、念のためini_setとhtaccess両方試したけどダメでした。

よかったらご教授ください。よろしくお願いします

788:nobodyさん
08/10/09 18:07:46
>>787
error_reportingは?

789:nobodyさん
08/10/09 18:19:02 DVR9Hu5G
>>788
これが0でした!ありがとうございました。

790:nobodyさん
08/10/09 20:04:59 HNHF0bWh
質問なんですが、配列の名前をループ内で自由につけるのはどうすればいいですか?


一つの配列$arrを分けたいので、$arr1、$arr2、…、のように分けるつもりで
$arrX[] = $arr[$i]
のようにしたいのです。
(※ X の所にループ内で得られる数字を入れたい)

どうすればいいですか?

791:nobodyさん
08/10/09 20:26:55
$key = "arr$i";
$$key = $arr[$i];

792:790
08/10/09 20:49:00 HNHF0bWh
>>791
$$keyの様にやってみたのですが、
ループ2周目で$$keyが上書きされてしまうで、$$keyが配列になりません。
($arrXに複数入れたいのです)


そこで
$$key[] = arr[$i];
にしたのですがエラーになってしまうのです。
他に方法はないでしょうか?

793:nobodyさん
08/10/09 20:51:36
教えてもらったやり方から色々工夫してみれ

794:nobodyさん
08/10/09 21:31:39
LPO対策クラス作って設置し実際に効果があった、需要があればさらす。

795:nobodyさん
08/10/09 21:48:48
むしろ効果のほうを晒してくれ

796:nobodyさん
08/10/09 22:15:58
>>739
お前分からんだけやろw

797:nobodyさん
08/10/09 22:41:31
お前は誰と戦ってるんだ

798:nobodyさん
08/10/09 22:44:13 HNHF0bWh
>>796
お分かりでしたら教えて下さい。
変数はできたのですが変数が配列になりません。

799:nobodyさん
08/10/09 22:59:01 ZnuIQjgo
イラレ+phpのgdでアバター機能作成をしています。
パーツ画像種類はPNGで、合成後jpgに変換して表示しています。
アンチエイリアスをかけて画像を保存して、下記を実行すると、絵がある部分の背景が黒くなってしまいます。
アンチエイリアスをかけずに画像を保存すると、画像がぎざぎざになってしまいます。
どうにか、うまい按配で合成することはできないでしょうか?

/**/$imgpro[0]=array("../img/abt/base/w2.png","0","0");
$imgpro[1]=array("../img/abt/huku/w2.png","0","0");
$imgpro[2]=array("../img/abt/hair/w2.png","0","0");
$imgpro[3]=array("../img/abt/eye/w2.png","0","0");
$imgpro[4]=array("../img/abt/hana/w2.png","0","0");
$imgpro[5]=array("../img/abt/kuti/w2.png","0","0");
$imgpro[6]=array("../img/abt/mayu/w2.png","0","0");


$src = imagecreatefrompng($imgpro[0][0]) or die("error!1\n");


foreach($imgpro as $value){

$mrg1 = imagecreatefrompng($value[0]) or die("error!2\n");
list($mrg1_width, $mrg1_height) = getimagesize($value[0]);


// イメージをマージ
imagecopymerge($src, $mrg1,$value[1],$value[2],0,
0,$mrg1_width,$mrg1_height,100) or die("error!3\n");

}


800:nobodyさん
08/10/09 23:14:45
白背景の画像用意してマージすりゃいいのと違うのか

801:nobodyさん
08/10/10 01:04:15
>>798
$$key = array($arr[$i])
でできますよ。

802:nobodyさん
08/10/10 02:23:46 6LvKpYRu
phpの質問と言うよりはプログラミングの基本な質問で悪い。

いま仮に100個あるデータの中からランダムで重複せずに(←重要)
10個のデータを取り出したい場合なんだが
スマートな書き方ってどうするんだろ?

$arr = array(100個のデータ);
$random = mt_rand(0, $arr-1);

$random を以前取り出したデータと重複していないかチェックして
新たな配列に入れるみたいな作業になると思う。

803:nobodyさん
08/10/10 02:33:05
上からこられるといらっとするよね

804:754
08/10/10 02:55:06 uSuuZHDd
>>802
配列をシャッフルしてarray_popで取り出す

805:802
08/10/10 03:03:14 6LvKpYRu
>>804
あー、頭いいな~。
if文も使わないし非常にスマートですね。

で調べていたらarray_randというまさにそのためにあるような
関数で解決しました。
マニュアルには明記されていませんが、
どうやら重複せずに配列からランダムで取り出すみたいです。
PHPは関数が豊富ですな。

806:nobodyさん
08/10/10 05:13:24
そんなんどこに書いてあったんだよ
マジレスすると種次第。
>>804は切り出さなくても先頭10だけ使うって方法でも良いね

807:nobodyさん
08/10/10 09:17:06
URLリンク(www.php.net)
種は自動で生成する

808:nobodyさん
08/10/10 09:56:30 Mjn4nOqX
2chぽい掲示板を作っています。データの保存形式も同じです。
最新30レスだけ読み込みたい場合、今のところ全部読み込んで抜き取っているのですが
全部読み込まずにファイルの後方から読み込むような方法はないでしょうか
負荷に困ってるわけではないのですが、負荷を軽くする方法を知っておきたくて。よろしくおねがおします。

809:nobodyさん
08/10/10 09:58:37
>>808
tail -fでやるのは如何でしょうか?

810:nobodyさん
08/10/10 11:09:14
fopenして
fseek(ファイルのケツ)して1行づつ戻して読めば?

アッー!

811:nobodyさん
08/10/10 12:13:05
ケツにseekしても行単位で戻せんし、どうしてもバイト単位になるす
行単位でseek出来れば最初からヤっとるわ!

アッー!

812:nobodyさん
08/10/10 16:28:36
わがまま言わずに行区切りくらい自分で見付けなさい

行単位でシークしたけりゃおとなしく固定長レコードか、データベース使えば?
負荷が問題になるならキャッシュの導入を先に考えればいいよ。


813:nobodyさん
08/10/10 18:31:41 Yvgf2UGi
php4とphp5をくらべて、php4でしか使えない関数ってありますか?

814:nobodyさん
08/10/10 18:34:30
>>813
たとえば、mb_系の関数やwhile文やexit、functionなどが使えない。

815:nobodyさん
08/10/10 18:45:41 Yvgf2UGi
ありがとうございます
以下のサイトを参考にしたのですが、このページに掲載されている関数は全部php5で使えるということでしょうか?
URLリンク(php.benscom.com)

816:nobodyさん
08/10/10 18:57:59
>>815
釣られんな、>>814に書いてるヤツが使えなかったらヤバいだろ

URLリンク(www.php.net)
同じ内容だが本家見ような、余裕あれば原語も

URLリンク(www.php.net)
マニュアルを見る前にここチェック
関数の説明にはちゃんと対応バージョン書いてあるからな

817:nobodyさん
08/10/10 19:23:21 Yvgf2UGi
ありがとうございます
これからは本家で見るようにします。
php4を切り捨てるため、php5で使える関数をテキストエディタの補完色分けに作ろうと思ってます。
関数の説明ページをひとつずつ開いて対応バージョンを調べるしかないですよね・・・
時間との戦いになりますが、地道にやっていきます。

818:nobodyさん
08/10/10 20:02:39
いくつあると思ってるんだw

819:nobodyさん
08/10/10 20:19:02 Mjn4nOqX
>>809-812
試してみます。
ありがとうございました。

820:nobodyさん
08/10/11 02:23:25 Dg304RS1
いいってことよ
無料人力検索ボランティアをこき使ってくれたまえ

821:nobodyさん
08/10/11 02:25:45 Dg304RS1
1.質問があがる

2.質問を読んだ者が検索して答えをみつけてくる

3.検索してみつけたページに書いてあることをコピペ(文章改ざん)して偉そうに回答

そんなスレだからがんばれよ

822:nobodyさん
08/10/11 02:26:39
そんな今さらなこと言われてもなぁ

823:nobodyさん
08/10/11 02:47:43
これいいなと思う質問回答はwikiにまとめようぜ
URLリンク(wikiwiki.jp)

824:nobodyさん
08/10/11 04:35:19
一人でやってろ

825:nobodyさん
08/10/11 07:43:55
>>830がwikiwiki登録してくれます

826:nobodyさん
08/10/11 16:02:58 hw8joz8b
すみません。このようなエラーが出ていますが、何が原因ですか?

Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
--------------------------------------------------------------------------------

Apache/1.3.34 Server at www.mannanlife.co.jp Port 80

827:nobodyさん
08/10/11 16:03:54
URLリンク(www.mannanlife.co.jp)

828:nobodyさん
08/10/11 16:33:13
>>826
いつから、こうなるの?
あなたは誰?単なる訪問者、それともHP設置者とか。

829:nobodyさん
08/10/11 21:20:05
フッターを外部ファイルで一括管理したいのですが、
ググってみてもあまり情報が出てきません。

phpのインクルードの方法について教えてください。

830:nobodyさん
08/10/11 21:21:11
include 'footer.html';

831:nobodyさん
08/10/11 22:21:44 4K6Y3Waq
バッチファイルにftpコマンド書いておいて
サイト閲覧者に開かせれば
そいつのパソコンのデータを自動で俺のサーバーに移せますか?


832:nobodyさん
08/10/11 22:23:32
無理

833:nobodyさん
08/10/11 22:53:19 8WtsmSV0
PEARのMDB2を使用してTCP/IPを使用しているMySQL5の環境で
接続しようと試みているのですが、接続できません。
ご教授願えますか?

834:nobodyさん
08/10/11 23:07:58
>>833
localhostじゃないならポートが開いてるか確認する必要がある
MySQL接続ユーザのhostに接続元のホスト名(または%)が指定されてるか確認する必要がある

あと、「接続出来ません」では分からん
MDB2ならデバッグでエラーメッセージを取れるから、何が原因で接続出来ないか見ような

835:nobodyさん
08/10/11 23:20:16 G3J1VtlX
PHPエディタなんだけど、
ファイルを2つ開いておいて、
タブで切り替えるってできないの?

836:nobodyさん
08/10/11 23:29:26 8WtsmSV0
エラーメッセージを取得しましたら下記のようなエラーです。
Access denied for user: 'username@hostname' (Using password: YES)]

ポートの開閉確認とは??レンタルサーバーを使用しております。どのように
行えばよいでしょうか?お恥ずかしい質問ですが、よろしくおねがいします。

837:nobodyさん
08/10/11 23:29:53 4K6Y3Waq
>>832
回答ありがとうございます。
余談ですが
delコマンドを使うと閲覧者のPCのデータを消せますか?

>>835
メモ帳二つ開けばいいよ。漢(おとこ)ならメモ帳だろ。


関係ないけど、さっきすっきりデフラグってソフト使ったら、
PHPのセッションのフォルダごと自動で削除されてセッション使えなくなった。

838:nobodyさん
08/10/11 23:31:23
>>836
IDかパスが間違ってる

839:nobodyさん
08/10/11 23:37:11 8WtsmSV0
ソースに記述したIDとパスでphpMyAdminはログインできるんです・・・。

840:nobodyさん
08/10/11 23:37:45
じゃ接続の仕方がおかしい

841:nobodyさん
08/10/11 23:41:28 8WtsmSV0
$mdb2 =& MDB2::connect("mysql://username:pass@hostname/tablename");
と記述しております。どこか間違えておりますでしょうか?

842:nobodyさん
08/10/11 23:57:24 8WtsmSV0
記述ミスです。
$mdb2 =& MDB2::connect("mysql://username:pass@hostname/databasename");
です。

843:nobodyさん
08/10/12 00:10:26
そのレン鯖のMySQLは外部接続を許可しているのか?
そうでないならlocalhostしか接続出来んだろ
phpMyAdminはレン鯖提供か、自スペースに置いたものだろ?(レン鯖ないで動くアプリはlocalhost接続)


844:843
08/10/12 00:14:23
ちょっと言い方が悪かったかもしれん
つまりホスト名に「localhost」以外を指定出来る設定になってるかどうか
普通は「mysql://username:pass@localhost/databasename」にする
(MySQLはユーザ名だけでなくホスト名もチェックする認証方式)


845:nobodyさん
08/10/12 00:16:43 cg/RVdaY
セッションを利用するWEBページを見て回ってるときに、
そのセッションIDが自分のパソコンの中のクッキーに保存されていて、
そのクッキーを盗み出されたら、セッションIDがばれてしまって
なりすましされてしまうの?

846:nobodyさん
08/10/12 00:40:17
サイトの対策次第
セッションIDと共にIPでのチェックもしてる場合は抑制されるし
サイトが未対策で、IDバレたらなりすまし可能(ヘッダーにIDを仕込むだけだし)



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch