【PHP】質問スレッドpart17【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/17 17:14ID:AT+bUkag・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
抜けているものがあったら補足願います
0654カポコン
04/06/05 23:52ID:???閃(ヒラメ)いたので書いておきますね。
<?php
$ary = array(3,4,2,1,0,2,3,4);
$ary2 = array("砂糖","塩","胡椒","唐辛子","小麦粉");
foreach($ary2 as $num => $spice):
foreach($ary as $key => $val):
$ary2[$key] = $ary2[$ary[$val]];
endforeach;
endforeach;
print_r($ary2);
?>
あっ、私のホムペはココ。
ttp://f13.aaacafe.ne.jp/~mugen
趣味でやってるのであまり更新しませんがよろしこ。
0656257
04/06/05 23:53ID:???>>639
そうなんですよ。以外に難しくて正直参りました。
でもこういうクイズ的なプログラミングは楽しいですね。
0657nobodyさん
04/06/05 23:55ID:???ttp://board.aaacafe.ne.jp/read.php/zatsudan/1086332333/index.html
0659nobodyさん
04/06/05 23:56ID:???echo "書き込みました。";
exit();
0660257
04/06/05 23:56ID:???Array
(
[0] => a1い
[1] => b2ろ
[2] => a3は
[3] => b1に
[4] => a2い
[5] => b3ろ
[6] => a1は
[7] => b2に
[8] => a3い
[9] => b1ろ
[10] => a2は
[11] => b3に
[12] => a1い
[13] => b2ろ
[14] => a3は
[15] => b1に
[16] => a2い
[17] => b3ろ
[18] => a1は
[19] => b2に
[20] => a3い
[21] => b1ろ
[22] => a2は
[23] => b3に
)
こうなってほしいです。
0661657
04/06/05 23:58ID:???ttp://board.aaacafe.ne.jp/read.php/zatsudan/1079490157/index.html
0664nobodyさん
04/06/06 00:07ID:???でエラー起るんですよ〜
0665nobodyさん
04/06/06 00:09ID:???0666nobodyさん
04/06/06 00:10ID:???0670カポコン
04/06/06 00:30ID:???こういうのでよければどうぞ、何も複雑な事はしてませんが。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$a = $i % 2;
$b = $i % 3;
$c = $i % 4;
$ans[$i] = ($a == 0)?$alpha[0]:$alpha[1];
if($b == 0):$ans[$i] .= $num[0];
elseif($b == 1):$ans[$i] .= $num[1];
else:$ans[$i] .= $num[2];
endif;
if($c == 0):$ans[$i].=$kana[0];
elseif($c == 1):$ans[$i] .= $kana[1];
elseif($c == 2):$ans[$i] .= $kana[2];
else:$ans[$i] .= $kana[3];
endif;
$i++;
endwhile;
print_r($ans);
?>
0671カポコン
04/06/06 00:36ID:???0672nobodyさん
04/06/06 00:39ID:???0673257
04/06/06 00:47ID:???すいません。酒ノンでてあまり集中してみれませんが。
この部分、難解ですね。
> $k=(int)($i/($c/$c2));
> $arr2[$i] .= $val[$i%$c2];
>>670
動的に配列が増えた場合に対応できますでしょうか。
そこが今回のポイントでもあるんですが。。。。
0675カポコン
04/06/06 00:53ID:???>>660さん。これでOKと思います。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$x = $i % count($alpha);
$y = $i % count($num);
$z = $i % count($kana);
$ans[$i] = $alpha[$x].$num[$y].$kana[$z];
$i++;
endwhile;
print_r($ans);
?>
0676nobodyさん
04/06/06 01:22ID:???0677nobodyさん
04/06/06 01:31ID:???0678nobodyさん
04/06/06 01:53ID:???静的なんてねぇ
0679257
04/06/06 02:53ID:???わかた!
$arr[hoge][0]=a
$arr[hoge][1]=b
$arr[fuga][0]=1
$arr[fuga][1]=2
のとき、
a1
b2
a1
b2
となるのを防ぐために、いちいちsortしてるのか。つーか、俺のはバグって真下。
同じようにsortを入れると正常になりました!
勉強になります。
0680nobodyさん
04/06/06 03:09ID:???0682nobodyさん
04/06/06 03:38ID:???if (is_array($ちょっとだけ = array_shift($2次元の値))) {
foreach ($ちょっとだけ as $2次元の値の値) {
$一番大切 = 再帰関数($1次元のりふぁれんす, $2次元の値, "$文字$2次元の値の値");
if (!count($2次元の値)) array_push($1次元のりふぁれんす, $一番大切);
}
}
return $文字;
}
$2次元 = array(
'PHP' => array(1, 2, 3, 4),
'Hypertext' => array('a', 'b'),
'Preprocessor' => array('x', 'y', 'z'),
'カポコン神' => array('カ', 'ポ', 'コ', 'ン', 'は', '糞')
);
$1次元 = array();
再帰関数($1次元, array_values($2次元));
print_r($1次元);
0684nobodyさん
04/06/06 05:26ID:???思ってます.
ところがインストール(MySQLのみrpm)を全て済まし,httpd.confをPHPを
使えるように設定しなおしてApacheを再起動すると,
Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/libphp4.so into server:
/usr/local/apache2/modules/libphp4.so: undefined symbol: mysql_character_set_name
というエラーが出て,起動に失敗してしまいます.
ApacheのスレでMySQLは3.23以前はサポートしていないということを教えて
もらい,3.23.58をソースからインストールし直しました(それまでは3.22.30).
その後,PHPを下記のオプションでインストールしようとすると,
./configure --with-apxs2=/usr/local/apache2/bin/apxs
--enable-mbstring
--enable-mbregex
--enable-track-vars
--enable-mbstr-enc-trans
--with-zlib
--with-jpeg-dir=/usr/local/
--with-mysql=/usr/local/mysql
configでエラーは出ないのですが,makeをすると下のように
collect2: ld terminated with signal 6 [Aborted], core dumped
make: *** [libphp4.la] Error 1
エラーが出るようになってしまいました.
探しても似たような症状の人が見当たりません.config.logを見ても
どこがダメなのかわからないのですが,どこか注意すべき点などあるでしょうか?
環境
Apache2.0.49,MySQL3.23.58,PHP4.3.6
参考にしたページ
ttp://www.brtnet.org/linux/raq2mysql.htm
ttp://www.mypress.jp/php/install.php
ttp://www.jpring.net/jitaku/redhat9-no.html
0685640
04/06/06 07:32ID:???なるほど。
そうなるように >>640 を直してみますた。
function foo($arr) {
$keys = array_keys($arr);
$arr2 = array();
foreach ($keys as $key) {
if (!count($arr2)) {
foreach ($arr[$key] as $val) {
$arr2[] = $val;
}
}
else {
$arr3 = array();
foreach ($arr2 as $oldval) {
foreach ($arr[$key] as $addval) {
$arr3[] = $oldval . $addval;
}
}
$arr2 = $arr3;
}
}
return $arr2;
}
0686nobodyさん
04/06/06 15:31ID:yuO83M+4$b = "a[0]";
$c = ${$b};
print($c);
$bを取り出して、結果的に$a[0]のtestという値を取り出したくて、
$c = ${$b}としたのですが、うまく行きません。
($aが変数の場合は出来ました)
どうしたらこれを配列として評価して出力できるでしょうか?
教えてください。お願いします。
0687nobodyさん
04/06/06 15:44ID:???フォルダ内に空のファイルを生成し、
書き込んだり、消したりするためにはどうすればいいんでしょうか。
0688nobodyさん
04/06/06 17:31ID:aWFHtiOk0690686
04/06/06 19:30ID:yuO83M+4変数名と配列に分ける方はうまく行きませんでしたが、
eval()はうまく行きました。ありがとうございます。
0691nobodyさん
04/06/06 20:04ID:???require("Auth/Auth.php")、require("Auth.php")では当然エラーが出ます。
PEAR/CommandにAuth.php見つけたんですけど、
require("PEAR/Command/Auth.php")で使えるようになるでしょうか?
いろいろサイト調べながらやってるんですけど、Authディレクトリすらないんですけど…
なんかやり方間違ってるんでしょうか?
当方WinXP+PHP4.3.7です。
0692691
04/06/06 20:05ID:6zj2k96f0693nobodyさん
04/06/06 20:23ID:yuO83M+4"グローバル配列"を呼びたいんですが、呼ぶ方法ありますか?
(global $var; ←変数の場合)
ネットで調べても、スーパーグローバル変数のことしか
出てこないのでわかりませんでした。ご存知の方教えてください。
0695nobodyさん
04/06/06 21:06ID:???pearに限らずincludeやrequireはPHPの設定のinclude_pathを参照して
「ファイルの実際の場所」を特定する。
で、なんでPEAR/Command/Auth.phpを試してみないの?
0696nobodyさん
04/06/06 21:36ID:???いや、もちろん試してみて動いたんですけど、
Auth扱ったサイトには必ずrequire_once("Auth/Auth.php")とあったもので。
置く場所が変わると相対パスとかの関係でおかしくなったりしないかなーと。
include_pathらへん設定してきます。
ありがとうございました。
0697nobodyさん
04/06/06 22:21ID:???普通にPEAR/Auth.phpもあるし、PEAR/Auth/Auth.phpもあるがな。
0700nobodyさん
04/06/07 00:57ID:pAlrsUVH0702カポコン
04/06/07 03:32ID:???>>678
XMLファイルから値を取るのが俺の通常のやり方。
現場と遊びは違うんで。
>>682
すげー効率悪いプログラム書きますね、
しかもarray_valuesで配列の再生成か、ショボネタ連発
の受け狙いプログラム、十分吹かしてもらいました。
でも再帰使うならstaticぐれー使ってほしかった。
自分の経歴が組んだプログラムに出てますよ自演ちゃん。
まーそのプログラム、俺だったら関数名の前に&を付けて
PHPらしい書き方をするだろうな。
0703nobodyさん
04/06/07 03:35ID:???0705nobodyさん
04/06/07 05:29ID:???↓これじゃないの?
ttp://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.phperrormsg
0706nobodyさん
04/06/07 06:59ID:ddmA6C2jhttp://216.239.53.104/search?q=cache:82liKHMca1QJ:jamesthornton.com/php/japanese/function.posix-times.html+php%E3%80%80%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E6%99%82%E9%96%93%E3%80%80%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%99%82%E9%96%93&hl=ja
を参考にして posix_times() 関数からプロセスタイムを取得し表示させています。
この場合走らせているスクリプトの負荷として適切な値はどれに該当するのでしょうか?
・utime - 現在のプロセスにより使用されているユーザー時間。
・stime - 現在のプロセスにより使用されているシステム時間。
・cutime - 現在のプロセスおよび子プロセスにより使用されているユーザー時間
・cstime - 現在のプロセスおよび子プロセスにより使用されているシステム時間
また現在の値は
・utime - 20〜30秒
・stime - 2〜3秒
・cutime - 2〜3秒
・cstime - 2〜3秒
となっていますが、これは一般的にみてかなり負荷が高いのでしょうか?
System Linux
Server API Apache 2.0 Handler
PHP/4.3.6
0707nobodyさん
04/06/07 07:22ID:???脳内現場乙
0708nobodyさん
04/06/07 08:26ID:???カポコンが現れると名無しがほめるのはどうしてぇ〜?w
0709nobodyさん
04/06/07 09:06ID:???メル欄に釣りですって書いてるのと同義なんだよ!
0711nobodyさん
04/06/07 09:46ID:???これが真の現場という物か
0712nobodyさん
04/06/07 10:51ID:???0713nobodyさん
04/06/07 11:38ID:???>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
0714nobodyさん
04/06/07 11:40ID:???0715nobodyさん
04/06/07 11:48ID:???痛さメガトン級w
0716nobodyさん
04/06/07 12:11ID:???0717nobodyさん
04/06/07 14:41ID:p6jQDvKG$fp=popen("tail -fname -n 0 unko.log","r");
とやってるんだけど、こんど tail無しの環境に行くモンで。
0718nobodyさん
04/06/07 19:04ID:HnbrGX79サーバにとって、かなりの負担になるのでしょうか?それとも気にするほどの事ではないのでしょうか?
大体10〜50MBのファイルなのですが。
0719nobodyさん
04/06/07 19:05ID:???0721nobodyさん
04/06/07 19:34ID:???コークスでもなかなか出せない香ばしさだな。
0722718
04/06/07 19:35ID:???絶対やめて、ということはかなりの負担になるのですね。
了解しました。
うーん、ダウンロードさせるファイルのURLを教えずにダウンロードするには
readfile以外になにか方法ないかなぁ。
0723nobodyさん
04/06/07 19:39ID:???locationヘッダで飛ばせば初心者にはわからんと思うが…・
どうしてもというならバイナリモードで開いてちょっとずつ読み込んで出力するしかない。
10Mも一気に読み込むのだけはマジでやめてくれ。
0725nobodyさん
04/06/07 19:53ID:???webのPHPファイルにアクセスした時に他のページへリダイレクト、って意味だよね?
ならheader()でlocation出すだけ。
HTMLやJavaScriptでクライアントに処理させる方法もある。
0730nobodyさん
04/06/08 09:07ID:???0731nobodyさん
04/06/08 09:29ID:???0732nobodyさん
04/06/08 12:12ID:???現在テスト段階なので、下記の様なソースでやってます。
文字コードはSJISです。
ソースはEUCなんか?
0734nobodyさん
04/06/08 13:23ID:mGDxJx8J最近やっと簡単な掲示板をつくるトコまで来ました。
そこから掲示板に色々オプションを付けていこうと思い、
cookieの設置で行き詰ってます。
現状の記述は以下の通りです。
<ヘッダというかhtmlより上の部分>
setcookie("name",$name,time()+60*60*24*30);
<formの名前記入欄>
【名前】
<input type="text" name="name" size="16" value="<?php echo $_COOKIE['name'] ?>">
この記述だと
1番始めに名前を「A」と入力してサブミットする→ページを閉じる
2回目に書き込みに来たと仮定しページを開く。名前欄には「A」を記入されている
今度は名前を「B」に変更してサブミット→ページを閉じる
ページを開きなおすと名前欄には「A」と入ってしまっている
これを名前欄を変更する度にcookieを上書きするような仕様にしたいのですが、
どうすればいいのでしょうか?
0735nobodyさん
04/06/08 13:42ID:FspqORY3Apacheのhttpd.confとか何も修正しなくても<?php info.php?>のテストファイル
がちゃんと作動したんだけど、すごいな〜とおもった。このまま大丈夫なのかな??
ちなみにhttpd.confの内容はなんか修正すべきところ修正してないような感じだったけど、
ちゃんと動く。。
すごいなとおもった。
0738737
04/06/08 14:20ID:???サブミットした時点でnameはBの書き換えられてるんだから。
その時点でクッキー読み込むとAなのはわかるんだが。
0739nobodyさん
04/06/08 14:59ID:???0740nobodyさん
04/06/08 16:29ID:5lOZ1tpUページの一部分にそれぞれのファイルを読み込むような感じで
http://aaa.jp/xxx.php?a
http://aaa.jp/xxx.php?b
でリンクされると、それぞれa.phpやb.phpを読み込ませるようにしたいんですが、
f(eregi("a",$_SERVER['QUERY_STRING'])){
readfile("a.php");
include("monthly.php");
}
else{
include("monthly.php");
};
このあたりでつまっています。
というのもこのif文を延々と書いていかなければならないので……。
どういうふうに改変すできか、よろしければアドバイスお願いします。
0741nobodyさん
04/06/08 16:32ID:???http://php.s3.to/man/function.preg-match.html
0743nobodyさん
04/06/08 16:45ID:???$file = './hoge/' . $_SERVER['QUERY_STRING'] . '.php';
if (!is_file($file)){
echo '氏ねカス';
}
else {
include($file);
}
0744nobodyさん
04/06/08 16:57ID:osVeuITeお前がPHPを評価するに至ったプログラム言語遍歴を教えてくれよ!
WebProg板のPHP質問スレで、
PHPの良さを一つも語らずに逃れようなんて、
恥ずかしい事はやめてくれよ(ゲラプップ
0745nobodyさん
04/06/08 17:20ID:???0746nobodyさん
04/06/08 17:36ID:???安全性が疑問だけど、
if (ereg('^([ab])$', $_SERVER['QUERY_STRING'], $matched)) {
readfile($matched[0] . '.php');
}
include('monthly.php');
でいいんじゃないの。
0748nobodyさん
04/06/08 18:07ID:???俺の覚えちまったPHPがダメ、使い物にならないというなら、
覚える手間かけてまで他の言語を習得するメリットを教えてくれ。
0749nobodyさん
04/06/08 18:10ID:???0750740
04/06/08 18:31ID:???ありがとうございます。
とりあえずうまくできました……!
そうか、eregi使わなくても良かったのか……どうもです。
0751nobodyさん
04/06/08 18:33ID:???■ このスレッドは過去ログ倉庫に格納されています