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

【PHP】くだらねぇ質問はここに書き込みやがれpart4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/13 16:08:32ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
02131932005/03/26(土) 06:12:06ID:???
>>211
proc_openのマニュアルttp://php.s3.to/man/function.proc-open.html
を読みました。よくは理解できなかったのでサンプルを参考に作ってみました。
やはりシェル上では動きますがweb上では何も表示されませんでした。
<?php

$data = "abcdef\nghijk\nlmnopqr";

$descriptorspec = array(
 0 => array("pipe", "r"), // stdin is a pipe that the child will read from
 1 => array("pipe", "w"), // stdout is a pipe that the child will write to
 2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);

$process = proc_open("/usr/bin/grep 'i'", $descriptorspec, $pipes);
if (is_resource($process)) {
 fputs($pipes[0], $data);
 fclose($pipes[0]);

 while(!feof($pipes[1])) {
  echo fgets($pipes[1], 1024);
 }
 fclose($pipes[1]);
 proc_close($process);
}

?>
0214nobodyさん2005/03/27(日) 12:04:17ID:VfQV7VpE
ホームディレクトリ以下の特定ディレクトリ内でのみ
phpを使えるように設定しているのですが、どうも期待通りに動いてくれません。

/home/*(username)/public_html/php以下でのみphpを動かしたい
open_basedir = php
user_dir = public_html
とやってみたのですがダメでした。

どの辺の設定をいじればいいのでしょうか?
0215nobodyさん2005/03/27(日) 12:50:21ID:???
>>214
・「期待通りに動かない」とはどうなるのか。
・そのopen_basedirとかは何の設定なのか。
0216nobodyさん2005/03/27(日) 17:08:31ID:???
>>214
それはPHPじゃなくてhttpサーバの仕事だよ
Apacheなら.htaccessで設定できるから該当のスレにどうぞ
0217nobodyさん2005/03/27(日) 18:30:34ID:o5yBDsfR
例えば、下記のようなコード時に、

$a = new TestClass();
$b = &$a;

$aと$bが同じものかどうか(内容が同じというわけではなく、
指し示すメモリの場所が同じ)を検知したいのですが、
なにか良い方法はあるのでしょうか?

どうかご教示下さい。お願いします。
0218nobodyさん2005/03/27(日) 18:40:49ID:???
>>217
PHPでは不可能だったような希ガス
0219nobodyさん2005/03/27(日) 18:51:03ID:???
>>217
メモリのマッピングをになっているリファレステーブルで
同じ値が割り当てられていることをもって、指し示す
メモリの場所が同じと見なすしかないと思う。

それとも「同じ値が割り当てられている」ことを調べたいのかな?
0220nobodyさん2005/03/27(日) 19:16:43ID:o5yBDsfR
>218,219
やはり無理っぽいですね・・
どうもありがとうございます。
0221nobodyさん2005/03/27(日) 22:18:46ID:???
>>219
>それとも「同じ値が割り当てられている」ことを調べたいのかな?

どうかご教示ください。お願いします
0222nobodyさん2005/03/27(日) 22:49:37ID:???
自動で他人のサイトへのアクセス数を増加させるプログラムは可能でしょうか?
可能だとしたらどうやったらいいのかまったくわかりません。
どなたかご教授よろしくお願いします。
0223nobodyさん2005/03/27(日) 23:26:06ID:???
>>222
意味不明。
田代砲?
0224nobodyさん2005/03/28(月) 00:50:15ID:???
田代砲久し振りに聞いたw

サーチかなんかのランキング上げたいんジャマイカ?
0225nobodyさん2005/03/28(月) 01:31:41ID:???
>>222
知ってても教えない。
0226nobodyさん2005/03/28(月) 07:35:35ID:???
>>223>>224
そうです。でも田代砲まで強力じゃなくて。
10分間に1アクセスくらいでいいです。
PHPじゃなくてJavaScriptで作れるんですか?
PHPで簡単に作れないでしょうか?
作り方のヒントだけでも教えてください。お願いします。
0227nobodyさん2005/03/28(月) 12:02:19ID:???
$dat = "
1
2
3
4
";

$dat = preg_replace("/1(.*)4/","",$dat);

結果が以下のようになりそうでならないのですがどうしてでしょうか?
1
4

0228nobodyさん2005/03/28(月) 12:11:23ID:???
>>227
ヒント:
改行にマッチさせるためにはオプションが必要です
0229nobodyさん2005/03/28(月) 12:47:19ID:???
preg_replace("/1(.*)4/m","",$dat)
preg_replace("/1(.*)4/m","",$dat,'m')でもダメでした^^;
洗濯物を干しながら考えてみます
0230nobodyさん2005/03/28(月) 12:52:21ID:???
>>226
ヒント:「PC常時起動」「META」「リロード」
0231nobodyさん2005/03/28(月) 13:02:34ID:???
>>226
バカ?
田代砲のパラメータを書き換えればいいだけだろ。
02322272005/03/28(月) 13:26:01ID:???
$dat = preg_replace("/\n/","",$dat);
$dat = preg_replace("/1(.*)4/m","\\1",$dat);
とすれば結果が23となるので改行が問題なのはわかるのですが/mをつけても
複数行にはマッチしないようです。複数行の解釈を間違えているのでしょうか?。
0233nobodyさん2005/03/28(月) 13:30:50ID:???
>>232
.(ドット)を改行にマッチさせるのはsです
$dat = preg_replace("/1(.*)4/s","\n",$dat);
02342322005/03/28(月) 13:37:54ID:???
↑じゃ意味無いな
$dat = preg_replace("/1(.*)4/s","$1",$dat);
02352272005/03/28(月) 13:43:42ID:???
>>233
ありがとうございます
0236nobodyさん2005/03/28(月) 16:29:39ID:AxvngZW7
設定ファイルのようなものを作ろうと思うのですが、
今まではクラス化されてないPHPコードべた書きのファイルを作り、
グローバル変数として使うというやり方をしていました。
しかしより洗練されたやり方をと思い、設定ファイル自体を
クラス化し、ゲッター(セッターは必要ないですよね)で値を取得
というやり方を考えました。

前者が駄目なやり方とは思いませんが、後者のやり方は一般的な
オブジェクト指向プログラミングにおいて正しいやり方でしょうか?
オブジェクト指向プログラミングにまだ慣れていないので変な質問かも
しれませんが指揮者のご意見をお聞かせいただければと思います。
02372362005/03/28(月) 16:35:37ID:???
イメージ的には以下のような感じを考えています。

class Config {
 var hoge;
 var fuga;

 // コンストラクタ
 // ここで値をセットするのでセッターはいらない?
 function Config() {
  hoge = "hoge";
  fuga = "fuga";
 }

 // ゲッター
 function getHoge() {
  return $this->hoge;
 }

 function getFuga() {
  return $this->fuga;
 }
}
02382362005/03/28(月) 16:45:56ID:???
コンストラクタの部分は$this->が抜けていました。
失礼しました。
ちなみに今回お聞きしたいのはどちらかというと小規模な開発
というよりも中規模・大規模開発を視野に入れた保守性重視の
オブジェクト指向ガチガチの開発の場合を想定しています。
0239nobodyさん2005/03/28(月) 17:24:23ID:???
>>236
別に決まりは無いので好きなように作ればいいと思いますよ。
自分の場合は値の変わらない設定値は定数にしてます。
0240nobodyさん2005/03/28(月) 18:06:19ID:???
>>238
だったらフレームワークを使え。
0241nobodyさん2005/03/28(月) 19:44:33ID:???
テーブルに2次元配列にして10行10列位表示したいのですけど、
どのようなやり方になるのでしょうか?配列に慣れていないので
よくわからないのです。ご指導宜しくお願いします。
0242nobodyさん2005/03/28(月) 19:51:02ID:???
>>241
配列に慣れてないのは構わないんだが、
それ以前に自分の伝えたいことを書き表すのに慣れてないような気が。

そこで指し示す"テーブル"とは具体的に何?
0243nobodyさん2005/03/28(月) 20:02:18ID:???
>>242
具体的にはexcelのワークシートです。
(0.0)、(0.1)、(0.2)のように入れていきたいんです
0244nobodyさん2005/03/28(月) 20:26:42ID:???
>>243
htmlのテーブルを使って素直に書くと、
<table>
<tr><td><?php echo $array_data[0][0]; ?></td><td><?php echo $array_data[0][1]; ?></td>〜</tr>
<tr> 〜</tr>
〜
</table>
つー風にも書けるけど、それさえも分からんってことじゃないでしょ?
何に困ってるのかよく分わかんないよ。
02452262005/03/28(月) 23:06:17ID:???
田代砲ってどこにありますか?
探したけど見つかりませんでした。
0246nobodyさん2005/03/28(月) 23:11:38ID:VOOnUpPo
PHPで.htmlファイルを出力させられる?
indexファイルがindex.htmlじゃないとダメで、
テンプレ部分とかいちいち書き直すの面倒なんです
0247nobodyさん2005/03/28(月) 23:21:42ID:???
>>246
datファイルの出力もできますし、htmlファイルの出力もできます。
0248nobodyさん2005/03/29(火) 10:39:10ID:???
ログファイルの一番上の1行だけ読む関数って無いのか?
0249nobodyさん2005/03/29(火) 11:40:58ID:???
>>248
fopen
fgets
fclose
あーはん?
02502482005/03/29(火) 11:50:32ID:???
>>249
あんだーすとぅっど。�dクス。
0251nobodyさん2005/03/29(火) 13:10:08ID:???
>>243

>244とヘッダーにおっすおらエクセルよろしくな!って書けば終わりじゃね?

それ以外だとエクセル調べるしかないのでスレ違いだと思われ
0252nobodyさん2005/03/29(火) 13:31:54ID:???
>>251
>おっすおらエクセルよろしくな!
いっちょやってみっか じゃないのか。
0253nobodyさん2005/03/29(火) 14:02:19ID:fSc5qMir
フォームから受け取った文字列に含まれる全角スペースを
すべて取り除きたいのですが、下のようにしても取れてないようです。
どこが間違えてるんでしょうか?

$hoo=$_POST['hoge'];
$hoo=str_replace(" ","",$hoo);
0254nobodyさん2005/03/29(火) 14:56:39ID:???
合ってるよ、文字コードの問題じゃないのかね。
0255nobodyさん2005/03/29(火) 17:06:13ID:???
質問です。
当方、PHP 4.3.9 を先日インストールしました。

<?php

$name = $_SERVER["PHP_SELF"];
echo $name;

?>

と書いても何も表示されません。
スーパーグローバル変数がPHP 4.1.0 から使用できることは知っているのですが、
それ以外にphp.iniの設定などがあるのでしょうか?


0256nobodyさん2005/03/29(火) 17:22:55ID:???
まずは
<?php
phpinfo();
?>
0257nobodyさん2005/03/29(火) 18:11:22ID:???
>>255
サーバーがAn HTTPD だったりしないか?
0258nobodyさん2005/03/29(火) 18:42:20ID:3cB8cobm
$array = array(
"a" => "10",
"b" => "20",
"c" => "30"
);

$pop = array(
"20",
"30"
);

という二つの配列があって、$arrayから、$popの値が同じデータを削除したいのですが
なんか上手い方法ないですか?
02592582005/03/29(火) 19:01:41ID:???
あ、ちなみに自分で考えた方法は
foreach($array as $key => $val){
$flag = 0;
foreach($pop as $del){
if($val == $del){
$flag = 1;
}
}
if($flag != 1){
$newArray[$key] = $val;
}
}
です。
0260nobodyさん2005/03/29(火) 19:10:51ID:???
$array = array_diff($array, $pop);
じゃだめ?
0261nobodyさん2005/03/29(火) 19:23:44ID:???
foreach($pop as $value){
print array_search($value,$array);
}
てのもありかと。
02622612005/03/29(火) 19:25:18ID:???
あ。重複を見つけたいんじゃなくて削除だったか。スマソ
0263nobodyさん2005/03/29(火) 21:47:23ID:???
>>259
array_search を使ったら?
0264nobodyさん2005/03/30(水) 02:30:53ID:???
foreach ループを途中で抜ける命令ってあったっけ?
0265nobodyさん2005/03/30(水) 02:48:37ID:???
break;
0266nobodyさん2005/03/30(水) 02:52:54ID:???
>>265
トン
0267nobodyさん 2005/03/30(水) 03:58:20ID:VK+XSbsa
携帯電話用の画像掲示板作りたいんだけど、これってqmailの設定と
やる必要あるの?
0268nobodyさん2005/03/30(水) 04:16:45ID:???
>>267
qmailの設定変更ができない状況であれば、代替手段を考えればよい。
制約条件が多くなるほど使える手段が減り、最終的に実現不可能ということになる。
0269nobodyさん2005/03/30(水) 05:00:37ID:???
>>267
いらね。つかなんでケータイとqmailが関連するのやら
0270nobodyさん2005/03/30(水) 08:03:08ID:???
>>269
qmailである必要はないが、携帯で画像アップする方法に、
メールを使う以外、なにかあるなら言ってみろ。
ワカランチンが余計なことほざくな。タコ。
0271nobodyさん2005/03/30(水) 08:25:56ID:???
>>270
それでPHPとqmailの関係は何
0272nobodyさん2005/03/30(水) 09:30:31ID:PFZcR5nD
PHPからMySQLにバイナリデータを挿入する時に特殊文字をエスケープする為の関数って
PHPに用意されてる?あったら教えて欲しい。
0273nobodyさん2005/03/30(水) 09:41:09ID:P9xGS9Mv
Vine Linux 2.5+Apache 1.3.27+PHP 4.3.10です
error_log()で日本語のログを書き出してるんだけど、ある時期から
日本語が文字化けするようになりました

前:[error] エラー
今;[error] \xa5\xa8\xa5\xe9\xa1\xbc

何がきっかけでこのようになり始めたのかは正直わからないんですが
対処する方法はありませんか?
PHPソースはEUCで、error_log()に渡す際にエンコードはしてません
0274nobodyさん2005/03/30(水) 12:14:27ID:???
>>271
qmailからのパイプにて、phpスクリプトで添付データを処理
(PHPである必然性は何処にも無いが…)

って、>>267の質問からは大きく逸脱するが(w
0275nobodyさん2005/03/30(水) 14:22:47ID:LVdKz7n5
4月から、初めてPHPをするのですが、
includeとrequireの違いがわかりません。
お忙しいとは思いますが、なにとぞ、よろしくお願いします。
0276nobodyさん2005/03/30(水) 14:38:17ID:???
>>275
マニュアル読め、詳しく書いてある。
0277nobodyさん2005/03/30(水) 15:06:42ID:zj/psBx6
データベースであるテーブルのレコード数を数えたい時,
上手いやり方が分からないので

$rs=mysql_query("select * from hoge");
$cnt=0;
while($row=mysql_fetch_assoc($rs)){
$cnt++;
}

などとやってるのですが、もっと効率のいい方法は無いのでしょうか。
count($rs)とかcount($row)とかやってみたんですが
正しく帰ってきてないみたいです。

php4とMySQL4.0を使ってます。よろしくお願いします。
0278nobodyさん2005/03/30(水) 15:09:08ID:???
>>277
とりあえず、$rsに何が割り当てられているのか勉強すると良いよ
想い違いしてるし
0279nobodyさん2005/03/30(水) 15:09:26ID:???
>>277
select count(*) from hoge
02802552005/03/30(水) 15:38:29ID:???
>>257
 そうです。サーバはAN HTTPDを使ってます。
 AN HTTPDだと使えないんでしょうか?
0281nobodyさん2005/03/30(水) 15:55:53ID:???
>>280
$_SERVERはwebサーバ依存だから表示されないんなら使えないんだろうよ
設定でどうのこうのは無かったと思う
0282nobodyさん2005/03/30(水) 16:12:38ID:LjnlbFKQ
ちょっと教えていただきたいのですが、
sendmailを使ってクライアントへ日本語テキスト+csv形式の添付ファイルをつけたものを送信したいのですが、
クライアントの環境がwindowsXP、IE、そしてメールソフトがノーツなのです。
ノーツ以外のメールソフトで受信すると正常なのですが、ノーツでは文字化けするといわれました。添付ファイルは普通に読めているようです。
本文のヘッダの関係なのかな、と思ったのですが、charsetはISO-2022-JPです。

途方に暮れてるんですが、どうしたらいいでしょうか。
板違いだったらごめんなさい&誘導してくださると助かります。
0283nobodyさん2005/03/30(水) 16:31:04ID:LjnlbFKQ
282です。
ごめんなさい自己解決。
本文のcharsetをUTF-8にしたら普通に見れたみたいです。
お騒がせしました。
0284nobodyさん2005/03/30(水) 16:49:27ID:zj/psBx6
>>278
なんか配列みたいのが帰ってきてるのかと勘違いしてました。
下のようにしたらできました。というかmysql_num_rowsを知らなかった・・・。

$rs=mysql_query("select * from hoge");
$cnt=mysql_num_rows($rs);

>>279
mysql_query(select count(*) from hoge)として
レコード数を直に受け取る方法はあるのでしょうか?
0285nobodyさん2005/03/30(水) 16:56:37ID:???
>>279
$cnt = mysql_result( $rs );
0286nobodyさん2005/03/30(水) 17:15:38ID:???
長過ぎる文字列を"..."で省略したいんですが、
文字列を先頭から何バイト目まで表示、以降は任意の文字列に置き換えっていう関数があったと思うんですが、何でしたっけ?
どうもみつけられず。
0287nobodyさん2005/03/30(水) 17:20:25ID:???
$str = mb_strcut( $str, 0, 100 )."...";
でいいんじゃないの
0288nobodyさん2005/03/30(水) 17:20:30ID:???
substr_replaceかな?
02892862005/03/30(水) 17:31:10ID:???
なるほど、n文字目以降を、任意の文字に置き換えというより、
先頭からn文字まで表示して、任意の文字列を足す、と考えればいいんですよね、ありがとうございました!
0290nobodyさん2005/03/30(水) 18:54:13ID:???
>>270
今時のケータイは普通にアップできるだろ?
0291nobodyさん2005/03/30(水) 19:24:05ID:???
すいません、頭パンクしてます。
特定のディレクトリから下層のディレクトリまで全部の可視ファイルを検索、そのファイルの作成日時か更新日時を取得して、現在の日時に近い順にソートしてhtmlにリンクで出力させるって可能ですか?
素直にsqlの方がいいのでしょうか?
うちのいつもタコ管理者(鯖ダウンさせる天才)に言ったらsqlで自分でやってと言われますた。
っつか、sql使った事ないので分かりません。phpのみでって出来ます?
0292nobodyさん2005/03/30(水) 19:33:42ID:???
>>290
ハァ?
0293nobodyさん2005/03/30(水) 20:01:29ID:???
>>290
普通ってなんだ。
0294nobodyさん2005/03/30(水) 20:03:52ID:???
>>290
今時のケータイのみ対応したい場合はそれでもいいね。
それ以前の携帯もターゲットに含む時はメール「しか」手段が無い。

>>291
そこに書いてある通りの事を管理者に言って、「SQLですれ」って返されたのなら、
「えええええええ(AA略)」って顔で反応すべきだったな。
PHPのマニュアルの「ディレクトリ関数」「ファイルシステム関数」の関数を幾つかと
再帰処理を使えば、PHPだけでも可能。
0295nobodyさん2005/03/30(水) 20:07:45ID:???
>>291
PHPの関数のみで、そんなに苦労しなくても出来る。
0296nobodyさん2005/03/30(水) 20:10:31ID:???
>>294
そっか...可能なのか...ちょっとマニュアル見て頑張りまつ。(´・ω・`)
...っつか簡単な掲示板しか作ったこと無い漏れにできるだろうか。

やはりうちの鯖管はダメポなんだな...大丈夫かうちの会社...
0297nobodyさん2005/03/30(水) 20:38:24ID:???
PHPでポリモーフィズムってどうやって実装するのかな?
0298nobodyさん2005/03/30(水) 20:41:18ID:???
>>296
まぁ、望む事はPHPのみで実現可能だが、
巨大なサイト(対象ファイルが多数)の場合なら、
深夜帯などに定期的にDB化しておいて、表示の際にはSQL使ったほうが、
鯖負荷は低くて済むかも。あくまでもケースバイケース。
0299nobodyさん2005/03/30(水) 21:28:38ID:???
DBにファイルのリストを入れといてSQLで取り出しHTMLにすれって事なんだろうか?
どうやってDBに入れるんだろ?
0300nobodyさん2005/03/30(水) 21:29:51ID:4FafkLm/
電子手帳用OS、WindowsCEでローカルファイルの
PHP拡張子ファイル、を閲覧するようにできるでしょうか?

0301nobodyさん2005/03/30(水) 22:09:00ID:???
>>300
とりあえずphpインストールしてみれば
0302nobodyさん2005/03/30(水) 22:48:14ID:???
>>299
ファイルパスと、filemtimeでも放り込んでおけば、
後は如何様にも・・・
ってDBとの接続の仕方とかから説明が必要?
0303nobodyさん2005/03/31(木) 01:19:34ID:???
フォームを使って、クライアントブラウザからサーバへXMLデータを送信することはできますか。
あるいはXMLでなくても任意のテキストファイルを送信することはできますか。

通常、フォームを使うとデータは param1=value1¶m2=value2&.... という形で送信されます。
しかしこの形式だと、入れ子になったデータを表現するのが難しいです。
そこで、もしフォームデータをXML形式でサーバに送信できたら、入れ子になったデータが簡単に扱えるようになるんじゃないかと思ってます。
HTTPは任意のデータを送信できるので不可能ではないと思うのですが、HTMLとブラウザを使っているかぎりはどうしたらよいのかわかりません。
0304nobodyさん2005/03/31(木) 01:40:43ID:???
>>303
JavaScript を使えばできる
03053032005/03/31(木) 01:52:15ID:???
>>304
そこをもうちょっと、具体的に。ヒントお願い。
03062862005/03/31(木) 01:56:00ID:???
すいません、先ほど解決したと思ったんですが、どうもおかしいところがあるので再度質問させてください。
$str = mb_strcut( $str, 0, 100 )."...";
こうしたんですが、テキストに日本語が混ざっている場合、考慮されずに2バイト中の1バイトの部分でぶった切られたりしますか??
日本語英数混在しているんですが、どうもそれが原因で後のhtmlに影響が出ているっぽいんです。

こういった場合、どうしたらいいものでしょうか??
0307nobodyさん2005/03/31(木) 01:59:27ID:???
POSTでどうぞ。
textareaにガリガリとXMLを書けw
0308nobodyさん2005/03/31(木) 02:00:15ID:???
>>306
実際に$strがどうなっているか見るべし
03092862005/03/31(木) 02:04:37ID:???
>>308
htmlソースを見ると、文字じゃない文字になってます。
ブラウザ上では表示されません。

ココにコピペしようかと思いましたが出来ませんでした。

環境:
MacOSX safari 文字コードはUTF-8です。
0310nobodyさん2005/03/31(木) 02:06:08ID:???
>>303
FROM要素のenctype属性で指定できる仕様になってる。
実装は知らん。
PHPの話じゃないので続きはほかでやってくれ。
03112862005/03/31(木) 02:26:17ID:???
問題を切り分けた所、文字列の中に入っているhtmlタグが途中で省略されてしまうためのようでした…
そのあたりちゃんとやってまだダメだったらまたお願いします。
0312nobodyさん2005/03/31(木) 04:05:22ID:Bkn1FNJU
array_uniqueでデータの重複を取り除いた配列の
インデックスをちゃんとゼロから順に直すにはどうしたらいいでしょうか。
重複を削除してくれるのは便利なんですが、
インデックスが飛び飛びになるので具合が悪いです。
0313nobodyさん2005/03/31(木) 04:21:46ID:???
>>312
array_values()
■ このスレッドは過去ログ倉庫に格納されています