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

【PHP】質問スレッドpart25【php】

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん04/11/22 17:25:42ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。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
0002nobodyさん04/11/22 17:27:59ID:HPZgqIhK
2
0003304/11/22 17:30:21ID:???
前スレ
【PHP】質問スレッドpart24【php】
http://pc5.2ch.net/test/read.cgi/php/1099249755/l50

関連スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/l50
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/l50
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/l50
0004404/11/22 17:31:29ID:???
PHP系blogツール part2
http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PukiWikiスレ Part1
http://pc5.2ch.net/test/read.cgi/php/1084907353/l50
[PHP-users MLヲチ6] 教えていただけませんか?
http://pc5.2ch.net/test/read.cgi/php/1096871691/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPエディタって、どうよ?
http://pc5.2ch.net/test/read.cgi/php/1079460638/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
PHPで2chを真似てこんなモン作ってみますた。
http://pc5.2ch.net/test/read.cgi/php/1019451204/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50
PHPで構築されたサイト
http://pc5.2ch.net/test/read.cgi/php/1085302527/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
0005nobodyさん04/11/22 18:00:24ID:???
重複スレ立てちゃうトコだった(;´Д`)
0006nobodyさん04/11/22 19:04:57ID:5v0Qpc9v
PHP4で関数ポインタみたいなのってあります?
コールバック関数を引数で指定したいんですけど。
0007nobodyさん04/11/22 19:22:30ID:???
http://jp2.php.net/manual/ja/function.call-user-func.php
0008nobodyさん04/11/22 19:24:53ID:???
可変関数を使う。
0009nobodyさん04/11/22 19:32:29ID:sWiZ7QKf
substr_count関数なんですが正規表現を使って
カウントすることは出来ないでしょうか?
0010nobodyさん04/11/22 19:44:33ID:???
>>9
count( mb_split("正規表現") ) で返ってきた数値を少し弄る
0011nobodyさん04/11/22 19:49:53ID:???
たいがいにしなさい
0012604/11/22 20:06:41ID:5v0Qpc9v
call_user_func() って、コールバックの関数の引数にリファレンス渡せないのかな?
なんかそんな感じのどうさになっているよう。。。
0013nobodyさん04/11/22 20:12:05ID:???
すんまそん。よろしくです。

例えば"abcdefg.mp3"の文字列から"abcdefg"だけを取り出したいのですが、
どうすれば良いのでしょう。

逆に".mp3"ならばすぐに取り出せるのですが。
echo strstr("abcdefg.mp3",'.')とか・・・

よろしこ
0014nobodyさん04/11/22 20:33:36ID:HopG55j+
2004年11月1日(例)が何曜日か簡単に得る方法はないでしょうか?
0015nobodyさん04/11/22 20:43:14ID:???
>>14
mixed jddayofweek ( int julianday, int mode)

--enable-calendarを指定して PHPをコンパイルする必要があります。
0016nobodyさん04/11/22 21:07:17ID:???
>>1
乙

>>13
そこまで分かっていながらなぜ応用できない?

$str = 'abcdefg.mp3';
echo substr( $str, 0, strpos( $str, '.mp3' ) );

>>14
echo date( 'l', mktime( 0, 0, 0, 11, 1, 2004 ) );
0017nobodyさん04/11/22 21:25:00ID:???
>>13
>>16 の方法以外にも basename() を使う方法もある。
echo basename('abcdefg.mp3', '.mp3');
0018nobodyさん04/11/22 21:36:04ID:???
>>16 >>17
ありがとうございました。
>>16さんの手段で出来ました。
>>17さんの手段も試してみます。

どうもでしたm(_ _)m
0019 ◆.jC7ANgFY. 04/11/22 21:54:09ID:???
>>14
date関数参照
0020nobodyさん04/11/23 00:52:57ID:???
>>14
探偵ナイトスクープに出てきた2050年くらいまで
何年何月何日が何曜日か瞬時にわかる少年に尋ねる。
0021nobodyさん04/11/23 01:24:19ID:HlpT5KHT
クリックされたセルの背景色を変えたいです。
セルにIDを振り、クリックされたら
#cell1{background-color:#000}
と書き足して、URLを例えば「?cell1=yes&cell2=yes...」のようにしたいのですが
セルにIDを振ったところで行き詰ってしまいました。
次々に加えていくにはどうしたらいいでしょうか?
0022nobodyさん04/11/23 01:26:47ID:???
>21
javascriptのが楽チンポ
00232104/11/23 01:30:14ID:???
>>22
URLで状態を再現したいんです。。
0024nobodyさん04/11/23 02:14:11ID:???
hotmail.co.jpの欲しいアカウント取れてうれしかったから書かせてくれ
この喜び誰かに伝えたかっただけなんだ
スレ違いもわかっている
しかし伝えたかったんだ

げっとーーーーーーー
0025nobodyさん04/11/23 09:13:06ID:???
>21
1クリックごとに、セッション変数に登録していくとか・・・・
変数の数を増やしたくなければ、配列にして入れていけばいいだろうし。

?cell1=yes
でリクエストが行ったとして、

<?php
foreach($_REQUEST as $key=>$val){
if($key が "cell"で始まるなら){
if(eregi("yes",$val)){
$_SESSION['cell'][$key]=true;
}else{
$_SESSION['cell'][$key]=false;
}
}
}
?>

<td id="cell1">の部分を、
<td <?php if($_SESSION['cell']['cell1']){ echo 'id="cell1"'; } ?>>

ってのはどう?


あぁ、久々の二日酔いで、気持ち悪。
00262104/11/23 10:38:52ID:HlpT5KHT
>>25
おはようございます。
早速やってみたらうまくできました。ありがとうございました。

あと、もう一度クリックされた時に$keyを削除するにはどうしたら良いでしょうか。
0027nobodyさん04/11/23 10:46:50ID:dbSyw8j5
以下の連想配列の、rslt1の値をとりたいのですが、$a=$_array[rslt1]
でうまくいかない・・・誰か取り方教えて下さい。お願いします。
print_r($_array);

Array
(
[return] => Array
(
[rslt1] => 1
[rslt2] => 2
[rslt3] =>
)

[url] => http://www.foo.com/
)
0028nobodyさん04/11/23 10:54:14ID:???
echo $_array['return']['rslt1'];
00292704/11/23 11:08:06ID:???
>>28
取れました!ありがとうございました。
ただ、$_array[return]['rslt1'];
と、''と省略するとダメなんでつね・・・これも試したんですが、
かなりはまりました。おかげさまで助かりました。
0030nobodyさん04/11/23 11:11:46ID:v88Yo34b
オブジェクトのserializeは、
複雑なオブジェクトでは無理なのでしょうか?
継承を使ったクラスのオブジェクトを
serializeしてechoすると
N;
と表示されました。
単純なクラスを書いてテストすると
ちゃんと中身が表示されました。
いったいどういうことなのでしょうか?
ちなみにPHP5です。
0031nobodyさん04/11/23 11:24:05ID:???
>>29
returnが予約語だから
00323004/11/23 11:39:02ID:???
どうも基底クラスで
__call関数を定義している場合にこのようになるようです。
これはバグですかね?
php5でも、php4のようにプログラミングしておいた方がいいということでしょうか…orz
00333004/11/23 14:38:28ID:???
更に調べていったら
staticなプロパティーのあるオブジェクトも
正常にserialize→unserialize出来ない感じです。
要するにphp5独自の命令はserializeできないと?
このあたり詳しい人いませんか?
0034nobodyさん04/11/23 15:13:00ID:???
>>30
公式に『できないぞ、バグじゃねぇのかゴルァ』と言えばいつか出来る
0035nobodyさん04/11/23 15:29:14ID:???
bugfixをコミットすればさらに早くできる
0036nobodyさん04/11/23 17:59:12ID:fG+RzSBW
<?php

$connect = mysql_connect("localhost", "***", "***");

phpファイルに上のようなID/PASSWORDを書き込んで使用すると
思うんですが、とある京大卒のシステムエンジニアが以前
「web上のプログラムのphpやcgiのコードなんかすぐ見れるんだよ」と
言っていました。
その人の言うことが正しいと、上記のようなコーディングで
ID/PASSWORDが○見えってことなんですが、
マジですか?イマイチ信じがたいんですが。
みなさんはどうやって対処してるんでしょうか?
0037nobodyさん04/11/23 18:29:05ID:???
>>36
そんなこともわかんないんならphpやめろ。カス。
0038nobodyさん04/11/23 19:03:37ID:???
>37
ごめん、どうやるのか教えてください。
例えばログのテキストファイルを拡張子 cgi にしてれば他人に読まれることはない
と思っていたんだけど、だめなんですか? >36みたいな書き方もしてました。
0039nobodyさん04/11/23 19:09:07ID:???
共有鯖の場合、PHPがCGI版でSuExecが有効なら、パーミッションを適切に設定すれば、
鯖の管理者か、ユーザを乗っ取られなければ見られない。

パーミッションを適切に設定しないと、同じ鯖を使ってる人にファイルの中身を覗かれる
可能性がある。
0040nobodyさん04/11/23 19:19:30ID:???
配列$linesの中から$stの要素を含む特定の配列を削除したいんですが
これでいいでしょうか?もっとスマートにできませんかね。ご意見お願いします。

$lines = file($log);
for ($i=0; $i<count($lines); $i++) {
list($r1[$i], $r2[$i],) = explode("<>", $lines[$i]);
}
$result = array_search($st, $r2, true);
if ($result !== FALSE){
unset($lines[$result]);
}
00412504/11/23 20:30:17ID:???
>21,26
もう解決したかな?

?cell1=yes
というパラメータを出力する部分を

$key = cell1;
だとして、

<a href="hoge.php?<php if($_SESSION['cell'][$key]){
 echo $key."=no"; <- yes以外を渡す
}else{
 echo $key."=yes";
}
?>">hoge.php</a>

みたいにすれば、良いんでない?

htmlは汚くなるけどねぇ。
0042nobodyさん04/11/23 20:40:15ID:???
>>40
初心者の回答で申し訳ないが漏れならばこうかな

$i=0;$lines=array();
foreach ( file($log) as $line ) {
 list( $r1, $r2,) = explode("<>", $line);
 if ( $r2 != $st ) { $lines[$i] = $line; $i++; }
}
0043nobodyさん04/11/23 20:43:17ID:???
すみません、PHP_AUTHについて教えて下さい。

PHP Version 4.3.8で、Server APIはCGIです。
さくらインターネット共用鯖を使っています。

http://php.s3.to/man/features.http-auth.html
上記ページには、CGI版では利用出来ないと書かれているBASIC認証ですが、
さくらインターネットのスレッドでこの件が少し前に話題に上っていて、
http://pc5.2ch.net/test/read.cgi/hosting/1100674985/96
辺りからなんですが、普通に使えるそうなんです。
http://pc5.2ch.net/test/read.cgi/hosting/1100674985/119

それで、試したところ、認証画面(IDとPASSを入力するところ)は出るんですが、
いくら正しいIDとパスを入れても認証されません。
試したのは下記のコードです。

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
echo "FAILED\n";
exit;
} else {
echo "<p>こんにちは、{$_SERVER['PHP_AUTH_USER']} さん。</p>";
echo "<p>あなたは、{$_SERVER['PHP_AUTH_PW']} をパスワードとして入力しました。</p>";
exit;
}
?>

ホントは出来ないのに釣られてるとしたら恥ずかしいんですが、
どなたかお力添えお願いします。
00444304/11/23 20:45:08ID:deYy9Umy
ageさせていただきます。
0045nobodyさん04/11/23 21:03:29ID:???
そういうのを一般的に「利用できない」って言うんじゃないの?
逃げ道としてmod_rewriteを使った方法がuser noteに載ってたよ。
0046nobodyさん04/11/23 23:43:52ID:???
>>36
その京大卒のS∃に聞いてみたら?
0047nobodyさん04/11/23 23:50:43ID:???
>>36
共用鯖等で
「見れる場合もある」という事では?
ちゃんと設定してる専鯖なら侵入しないと見れないでしょ。
0048nobodyさん04/11/24 00:53:44ID:TtNOWNs7
ttp://www.stackasterisk.jp/tech/php/php03_06.jsp
ここのsessin_handler.php ってのを流用させてもらってるんですが、
>define(S_RAW_DATA_FIELDNAME, "rawdata");
この書式なんかおかしい?
なんかdefine行のエラーがログに残ってしまうんだけど。
0049nobodyさん04/11/24 01:16:28ID:???
定数名をコーテーションでくくればいいんじゃないんですか?
0050nobodyさん04/11/24 02:43:35ID:???
>>47
結局見れないってことでおーけー?
漏れもつい最近php始めたばかりだから
passとかそのまま書いてあるファイルをアップするのに
すごく抵抗あった。
0051nobodyさん04/11/24 06:05:01ID:???
>>50
PHPの前に日本語勉強した方がいいと思う。
0052nobodyさん04/11/24 06:28:52ID:???
>>50
いろいろ聞く前にそこらに落ちてるスクリプトダウンロードして参考にしてみろよ
0053nobodyさん04/11/24 06:49:34ID:???
まぁ結論としては
仕組みを理解できないやつは
共有サーバでPHP使うなってことでいいじゃん

>>50
見れないんじゃない
見れる場合もあるし見れない場合もある
絶対に見れないなんてサーバごとの設定で変わる
怖いなら自分でサーバ立てて遊べ
0054nobodyさん04/11/24 10:54:03ID:???
変数の中からURLを抽出してハイパーリンク張るってのをググったら以下のようなモノを見つけました。
$txt = "ほげhttp://www.hogehoge.com/hoge.php?hoge=hogehogeうげ";
$html = mbereg_replace('https?://[a-zA-Z0-9.]{2,}(:[0-9]+)?(/[-_.!~*a-zA-
Z0-9;/?:@&=+$,%#]+)?','<a href="\0">\0</a>',$txt);

コレをWindowsのネットワーク参照の場合でもリンク張るようにしたいです。
(\\testsub\_public\テストフォルダ\ という文字列があった場合<a href="\\testsub\_public\テストフォルダ\">\\testsub\_public\テストフォルダ\</a> って結果が得たい)
正規表現とかよーわからんので誰か教えて頂けませんか。
0055nobodyさん04/11/24 11:02:12ID:???
これがいわゆる丸投げというんだよ
0056nobodyさん04/11/24 11:19:31ID:???
>>54
正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g
http://pc5.2ch.net/test/read.cgi/php/1069245758/

ただし行った先でも同じ扱いされるオチ
0057nobodyさん04/11/24 14:26:34ID:uMAYUbw6
GDモジュールを組み込みたくて、
既に稼動しているサーバーのPHP4.1を
4.3にバージョンアップしたいんですが、
動いているDBやプログラムなどに影響なく上書き可能なものでしょうか?

その際、注意する点など教えてください。
0058nobodyさん04/11/24 14:48:10ID:???
>>57
日本PHPユーザ会のウェブページに各バージョンのチェンジログがあるので(日本語)、
それを確認されたし。影響が出るかどうかは今までのコーディングスタイルによる
ところが大きいので一般論としてどうこうは言えない。
00595704/11/24 14:56:41ID:???
>>58
ご返答ありがとうございます。
早速、確認してみます。
0060 ◆.jC7ANgFY. 04/11/24 17:44:46ID:u2c0bqPj
質問させていただきます。カウンターを設置しているのですが、
ロックもちゃんとできているはずなのにカウンターが崩壊して
しまいました。flockでは不完全なことがあるのでしょうか。
環境はFreeBSD 4.10-RELEASE[i386] + Apache/1.3.29 + PHP/4.3.6です。
アクセスログから得られる当時の状況としては
1秒に30回上がる状況でした。

$log = './counter.dat';
$fn = fopen($log, 'r+');
if (flock($fn, LOCK_EX)) {
$cnt = unserialize(fread($fn, filesize($log)));
define('UNIX_DAY', intval((intval(time() / 3600) + 9) / 24));
if ($cnt['day'] == UNIX_DAY) {
$cnt['tdy']++; $cnt['cnt']++;
} else {
$cnt['day'] = UNIX_DAY; $cnt['yes'] = $cnt['tdy'];
$cnt['tdy'] = 1; $cnt['cnt']++;
}
ftruncate($fn, 0); rewind($fn);
fwrite($fn, serialize($cnt));
}
fclose($fn);
0061nobodyさん04/11/24 18:06:10ID:U8iE6hyF
行き詰まってます。

index.phpに
<?
$hoge="ABCDE";
include("inc.php");
?>

inc.phpに、
<?
echo "$hoge";
?>

index.phpを実行すると
ABCDEと出力されて欲しいんですが、何も出ません。
こういう形でinc.php、に出力処理を書くようなのは、間違った使い方なんでしょうか??
0062nobodyさん04/11/24 18:12:00ID:???
>>61
おかしいね。出力されるはずだけど
http://www.php.net/manual/ja/language.variables.scope.php
0063nobodyさん04/11/24 18:16:25ID:???
>>61
inc.phpの置き場所はどこ?
00646104/11/24 18:46:43ID:rINoz0G+
>63
include("http://hoge.com/inc.php")
という形で、絶対パスで指定しています。

ちなみに、
inc.phpに
<?
$hoge="ABCDE";
echo"hoge";
?>
としてやって、index.phpを実行すると、ABCDEと出力されます。
include自体は成功していて、変数の受け渡しが出来ていないのだ、と思うんですが・・。
0065nobodyさん04/11/24 18:59:16ID:???
>>64
もしそれが動いちゃったらどうなるかよーく考えてみれ
0066nobodyさん04/11/24 19:04:13ID:???
>>64
それ絶対パスとは言わないような・・・俺が間違ってるかな
0067nobodyさん04/11/24 19:46:20ID:T2L7eVOo
質問です

Array([0]=>1[1]=>10[2]=>15[3]=>30[4]=>50)
とformから受け取ったのを、値をカンマ区切りで
$id<>$name<>$mail<>1,10,15,30,50<>
とログに書き出したいのですがどうしたらいいですか?
0068nobodyさん04/11/24 19:51:31ID:???
>>67
ちったぁ自分で考えれ
00696704/11/24 20:02:06ID:T2L7eVOo
すいません追加です。
Arrayに入ってくる値の数はまちまちです。
このまちまちなのをどうしたらいいのかが分かりません。
よろしくお願いします。。
0070nobodyさん04/11/24 20:02:48ID:???
>>67
マニュアルの配列関数を眺めるべし。
http://php.benscom.com/manual/ja/ref.array.php
00717004/11/24 20:04:47ID:???
>>69
配列の値の数を返す関数がある。
それを元に取り出す。
で、基本的に>>70
0072nobodyさん04/11/24 20:18:06ID:iZEscFNu
PHPでワンタイムパスワード(時刻とID)を利用しようと思ってるんですが、サーバAでキーを発行、サーバBで認証する時、時刻はどのサーバで検証するべきなんでしょうか。
一台認証サーバを用意するべきですか?
他に方法があれば教えて下さい。
00736704/11/24 20:25:26ID:T2L7eVOo
implode!!
ありがとうございました!

それで
$id<>$name<>$mail<>1,10,15,30,50<>
$id<>$name<>$mail<>2,12,16,30,60<>
こんな感じになったログから
何番が何回選ばれているかカウントするにはどうしたらいいですか?
0074nobodyさん04/11/24 20:30:27ID:???
>>67
何から何まで人任せでつか
0075nobodyさん04/11/24 21:44:53ID:???
>>73
そこでこれだ。
select number, count(number) from tablename group by number;
0076nobodyさん04/11/24 22:01:24ID:???
>>73
あなたは 趣味でPHPやってるの? それならマニュアルじっくり読むなり、自分でじっくり考えるなり
時間をかけてでも自分でやろうとしろよ。
もし、仕事でやってるなら 転職しろ。
0077nobodyさん04/11/24 22:41:23ID:???
転職ワロタ
00786104/11/24 22:47:07ID:rINoz0G+
>>65,66
ヒントありがとうございます。

include($_SERVER['DOCUMENT_ROOT'].'/inc.php');
で、無事動くようになりました。

他のサーバにあるPHPを勝手に動かす事が出来ないように、こう記述しないとダメ、という理解でいいんでしょうか?
# http://〜って、なんて言ったらいいんでしょうか…
0079nobodyさん04/11/24 23:43:19ID:???
>>60
以前に似たような話で指摘した気がするけど、原因はこの部分。
> ftruncate($fn, 0); rewind($fn);
一時的にでもファイルサイズを 0 にすると、その間に別の httpd のプロセスが
ファイルサイズ 0 のキャッシュを読んでカウンタファイルが壊れる可能性がある。

FreeBSD では試していないけど、Linux でもそれと同じスクリプトを試してみたら、
簡単にカウンタファイルを壊すことができた。flock() は正常でもファイルキャッシュ
とかの関係で壊れることが多い。

とりあえず、Apache 付属の ab でも使って思うので試してみたら?
FreeBSD でも簡単に壊れると思うし、エラーログを見ればエラーが
出力されているはず。コマンドはこんな感じ。
/usr/local/apache/bin/ab -n 1000 -c 5 http://example.com/count.php

Linux で確認したカウンタファイルを壊さないようにするための回避方法だけど、
fopen() の行の前に clearstatcache() を入れておくとファイルサイズ 0 の
キャッシュを読み込んでカウンタを壊すことはなくなった。
または、
ftruncate($fn, 0); rewind($fn);
fwrite($fn, serialize($cnt));
の部分を以下のように修正するというのでも回避可能だった。

rewind($fn);
fwrite($fn, serialize($cnt));
ftruncate($fn, ftell($fn));
FreeBSD で壊れない方法を確認してその方法を採用すれば良いと思う。
0080nobodyさん04/11/25 00:20:10ID:???
QuickFormController 試してみたんだけど、確認画面出すの大変じゃね?
海外では確認画面って概念がないのか?
どうも確認画面のことを考えられてないぽ。
0081 ◆.jC7ANgFY. 04/11/25 00:27:23ID:???
>>79
返信ありがとうございます。当方FreeBSDでは崩壊を確認することはできませんでした。
しかしそのような事例があるのであれば今後、気をつけていこうかと思います。
対策については前者の方法(clearstatcache)でいこうかと思います。
後者の場合はたまたま(桁数はなかなか変わらないので)ファイルサイズが一定
だったために壊れなかったものだと思いますので。一応以下にabの出力概略を。

/usr/local/apache/bin/ab -n 1000 -c 1000 [URL]
Concurrency Level: 1000
Time taken for tests: 6.702 seconds
Complete requests: 1000
Requests per second: 149.21 [#/sec] (mean)
Time per request: 6.70 [ms]

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 2 94 333.5 47 3099
Processing: 124 799 210.5 809 1355
Waiting: 49 799 210.8 808 1354
Total: 124 893 394.3 846 4018
0082nobodyさん04/11/25 01:11:43ID:???
>>81
さっき、FreeBSD 5.2-RELEASE Apache 1.3.31 + PHP 4.3.6 を起動して試したら
clearstatcache() を入れない場合、カウンタファイルは壊れたけど。
FreeBSD 4.x は手元に環境がないので試せない。

一応、もう少し調べて分かったのは、ab はローカルホストに対して実行すると
カウンタファイルは壊れにくい。外部から ab を実行すると壊れるかもしれない。

あと、-c はあまり大きい値にしてもあまり意味はなかったような気がする。

まあ、本当にカウントファイルが壊れないかどうかは flock() の後に
usleep() や sleep() を入れてから ab を実行すれば良い訳だけど。
0083nobodyさん04/11/25 01:30:01ID:???
ディスククォータで容量を制限したアカウントの
ディレクトリの空き容量を調べたいと思って

diskfreespace($path_name);

を使いましたが、ドライブ全体の容量が表示されてしまいます。

ディスククォータにて容量を制限したディレクトリの空き容量だけを
表示する方法は無いものでしょうか?

宜しくお願いします。
0084nobodyさん04/11/25 01:31:27ID:???
レコード毎に、カウント用のフィールドを作って
?id=nnnって感じでgetでそれぞれのレコードの詳細ページを読むだけで
そのレコードののアクセス数をカウントアップ、更新をする、っていうのを作ってずっと動かしてるんですが、壊れません。
f5とかを数人でかましてみましたが、大丈夫っぽいです。
こういうのは、方法として気違いっぽいですか?
0085nobodyさん04/11/25 02:07:41ID:???
>>84
DBMS使ってそれがよろしくやってくれてるんだろ。
コンテンツ毎のカウンタが重要で、さほどコンテンツも
参照されないサイトかな。現状で不満がないならそれで良い。
参照頻度が増えるとその設計はきついけどな。
0086nobodyさん04/11/25 10:45:56ID:???
データをテキストで保存しようと思うのですが、各フィールドのセパレーターとして
<>がよく使われますがその他使いやすい物はありますでしょうか?
0087nobodyさん04/11/25 11:00:49ID:???
>>86
確かに<>は良く見かけるけど何で流行ってるんだろう
何かメリットあるのかなぁ・・・

ちなみに自分はタブを使ってます
0088nobodyさん04/11/25 11:06:23ID:???
データに<>っていう文字列が入ってたらそのエスケープがめどいので私もタブです。
0089nobodyさん04/11/25 11:09:20ID:???
>>87
超既出。
掲示板などで投稿データを保存する前に<を&lt;、>を&gt;に変換する場合、
データに<>が含まれる事が無から。

>>86
データによる。
<>が含まれる可能性があるなら<>区切りは止めた方が良いし、タブが含まれるなら
タブ区切りは止めた方が良い。
0090nobodyさん04/11/25 11:14:04ID:???
>>88
セパレータ<>ってstrip_tags後のデータをログに保存する前提なんじゃない?
多分だけど。

という俺もタブ区切り派。
でも、昔 explode("\t", $line); で空カラム(\t\t\tとかなってるところ)が
うまく読まれなかった経験あり。
最近気にしたことなかったんで気付かなかったけど、
今はそのバグらしきものは再現しない。
0091nobodyさん04/11/25 11:15:13ID:???
レスポンスありがとうございます。
テキストをコピペしてタブが入る可能性があるので、<>にして
<>が入力された場合は<>で置換しようと思います。
色々と意見が聞けて安心しました。ありがとうございました。
0092nobodyさん04/11/25 11:15:14ID:???
>>89
保存前にサニタイジングするのって、一般的じゃないよね。
0093nobodyさん04/11/25 11:16:43ID:???
改行やタブは一般的にエスケープするのが普通と思ってるのでいつもタブ区切りぽ
0094nobodyさん04/11/25 11:18:47ID:???
>>92
掲示板などのデータをテキストで保存するなら保存前にサニタイジングが
当たり前。

改行を<br>に変えないと、1行に保存出来ないし、<br>を変換する前に、
<と>は&lt;と&gt;に変えた方が楽。

負荷的にも、読む度に変換するより、保存時に変換する方が良い。
0095nobodyさん04/11/25 11:18:59ID:???
タブをエスケープするってpreg_replace("/\t/","",$string);という風に消してしまうの?
それとも\\tという風にしてしまうんだろうか・・教えてエロイ人
0096nobodyさん04/11/25 11:20:13ID:???
>>95
俺は半角スペースに置き換えてる。
0097nobodyさん04/11/25 11:23:53ID:???
>>94
なるほどね。最近DBに保存ってのしかしてないから、そこら辺疎い。
データとビューは分離するものと思ってるし。

# 負荷はなんとでもなると思う。
0098nobodyさん04/11/25 11:58:09ID:???
>94
でも、それだとHTML以外への利用がしにくくなるよね。
メールで送るとか、エクセルで一覧表示とか。
だからログはできるかぎりそのままで保存しておきたいと思ってるんだけど。
俺はタブと改行を別文字に置換してタブ区切りで保存してるよ。
0099nobodyさん04/11/25 12:03:59ID:???
>>98
別に<>区切りが多い理由を書いただけで、Excelで利用しようってなら
それなりの方法にすればいいと思うけど。
0100nobodyさん04/11/25 12:04:12ID:???
>>89
んー、俺はメリットを聞きたかったんだがそれは理由だよね。。

セパレータだけで2byte食うしExcelで簡単に開けないし
デメリットの方が多いように感じる
0101nobodyさん04/11/25 12:09:33ID:???
タブだとエディタで開いた時スペースと区別がつきにくいから。

設定変更すりゃいいけどさ。
0102nobodyさん04/11/25 12:52:42ID:???
私の場合は \0 セパレータ。
0103nobodyさん04/11/25 13:34:47ID:???
NULL文字は危険じゃないか?
0104nobodyさん04/11/25 13:50:59ID:???
DB使い出してからもうテキストベースでの保存には戻れない体になったので関係ない。
0105nobodyさん04/11/25 14:24:31ID:???
確かにDBは楽だよな。
0106nobodyさん04/11/25 14:48:23ID:???
俺も<>でセパレートしてる。
これが流行ってるとは知らなかった。
010710204/11/25 15:16:31ID:???
>103
テキスト保存において、なぜ危険なのでしょう?
後学のためにご教示願えますか?
0108nobodyさん04/11/25 15:39:13ID:???
<>のセパレートはKentwebとかやってたっけ?
perlからPHPに入った人も多いと思うが、kentのソース読んで大雑把に勉強しながらperlやって、
その後PHPにやってきた奴とか結構いるのでは?正に俺がそうなのだが。
今こそkentのソースとか笑い飛ばせるが、当時は大変世話になった。
0109nobodyさん04/11/25 16:16:03ID:???
>>107
いや、ただC言語で文字列内のNULL文字の扱いはどうなのか知ってますか?
私はデータのコンバートとかC++のGUIでちょちょっと作ったりしたりするから、そういうデータだとちょっと気持ち悪いかなぁと思って
011010204/11/25 18:20:09ID:???
>>109
>ただC言語で文字列内のNULL文字の扱いはどうなのか知ってますか?
知りません。

\0の入ったデータをそのままローカルで開く事もしませんし。
大体、サーバ内のデータをローカルに持ってくるときには、
そのまま持ってくるようなことはしないので、
私の場合は関係なさそうですね。

ご親切に、ありがとうございました。

0111nobodyさん04/11/25 19:09:58ID:???
>>110
そうですね、それなら関係なさそうな気がします。
ちなみにC言語だとNULL文字は文字列の終端記号として使われるので、NULL文字を発見したところで文字列が終了してしまいます。
0112nobodyさん04/11/25 19:44:17ID:???
>>111
言ってる事は分かるが、NULLで区切られていたとしても、
その文字列を全部取り出す方法を知らない時点で、C言語のレベルもたかが知れてると思われるぞ。
0113nobodyさん04/11/25 19:50:10ID:???
>>112
だな。

>>111の理論だとC言語で作られたエディタなんかはNULL文字が入ってる場合は
そこで文字終端だと判断されてそれ以降の文字列が表示されないエディタになるはずだけど、
実際には世の中に出回ってるエディタはNULL文字が入っててもちゃんと表示できるもんな。

自分のプログラミングの実力の無さを棚に上げて語るのは良くないな。
0114nobodyさん04/11/25 20:01:49ID:???
まぁそういわれるとそうなんだけど、ヘタレな俺は簡単に済ませたいのでNULL文字は入れたくないです。

>その文字列を全部取り出す方法を知らない時点で、C言語のレベルもたかが知れてると思われるぞ。
妄想達者、そこまで書いてない(゚∀゚ )
0115軟式PHP04/11/25 20:36:45ID:???
喧嘩イクナイ( ´-ω-)y-┛~~
0116nobodyさん04/11/25 20:40:10ID:???
PHP も NULL バイトを扱えない関数が結構あるので注意した方がいいと思うけど。

例えば、PHP 4.2.x 以前のバージョンでは、file() とか fgets() は NULL バイトを扱えない。
ファイルを読み込んだときに NULL バイトの前で文字列が切れてしまう。
0117 ◆.jC7ANgFY. 04/11/25 20:51:29ID:???
システム的なコードだからやめた方が良いといってるのでしょうが。
nullが入っている時点でそのファイルはテキストファイルじゃない
という判断をしていいとも言われているぐらいなのだから。

nullは生理的に受け付けないから使わないけど。tabで十分だし。
phpでサボりたければserializeもいいぞうわなにをするやめrくぁwせdrftgyふじこlp;
0118nobodyさん04/11/25 20:54:28ID:???
うわ、カンマ区切り誰もいねえや
0119軟式PHP04/11/25 21:04:51ID:???
>>118
天下のCSVがあるじゃん。
0120nobodyさん04/11/25 21:38:48ID:???
>>111
釣りは他所でやれ
0121nobodyさん04/11/25 21:42:21ID:???
>>117
誰がそんなことを言ったの?
UTF-16やUCS-2なテキストファイルは普通にnullが入るけど。
0122nobodyさん04/11/25 21:58:08ID:???
関数の引数を参照渡しするときに、NULLを送ろうとしたら
$null = NULL;
foo($null);

function foo(& $var) {

とか、一回変数に入れてやらないと出来ない?

function foo(& $var = NULL) {
とかもできないよね?
0123nobodyさん04/11/25 22:43:58ID:???
>>122
PHP5 では function foo(& $var = NULL) {} という書き方はできるようになったけど、
PHP4 では無理。一回変数に入れるしかない。
0124nobodyさん04/11/25 22:58:57ID:EP+9LGfY
文字列の頭から、特定の文字の連続(その文字は固定です)を取り出し、その文字を数えるにはどうすれば良いのでしょうか?
$str='aaaあああ';
この、aaaの部分を取り出したいのですが、今はforで回し、頭の'a'を''に置き換え、その回数で数を数え、文字を取り出しています。
私の頭じゃ、これが限界ですた(TT)
0125 ◆.jC7ANgFY. 04/11/25 23:05:18ID:???
>>124
ちょっとした案
$str='aaaあああ';
echo strlen($str) - strlen(ltrim($str, 'a'));
0126nobodyさん04/11/26 00:52:05ID:???
>>124
$str='aaaあああ';
echo strspn($str, 'a');

こんな関数があったよ
0127nobodyさん04/11/26 04:41:05ID:???
まったくWEB言語には奇妙な関数があるもんですなぁ・・。
ここROMってるだけで勉強になりますね。

φ(。。)メモメモ
0128nobodyさん04/11/26 04:44:41ID:???
最低レベルを割り込んだ釣り
0129nobodyさん04/11/26 07:05:48ID:???
>>124
関数があるってことはなにかの用途があるんだろうけど、
さっぱり思いつかない
さしさわりなければどういった処理に使うのか教えてちょうだい
0130nobodyさん04/11/26 07:53:09ID:???
あ!わかった。例えばほれ、掲示板とかで英文字が連続すると改行されずに
はみ出すじゃない。あれを感知できるわ。
感知だけ・・・。
・・・発想が貧困だ・・・。  orz
0131nobodyさん04/11/26 08:36:15ID:???
>>129
ttp://jp2.php.net/manual/ja/function.strspn.php
のUser Contributed Notesに例があるけど。
0132nobodyさん04/11/26 12:15:32ID:???
質問させてください。

mb_って付いた関数が使えないのですが、php.iniの設定が悪いのでしょうか?
どこを修正したらいいのかわかりません。
よろしくお願いします。
0133nobodyさん04/11/26 12:25:38ID:???
phpinfo()実行して、mbstringが表示されてるか確認汁
0134nobodyさん04/11/26 12:42:37ID:???
>>132
環境とPHPのインストール手順くらい示せよ。
0135nobodyさん04/11/26 12:45:11ID:???
それを聞いてどうするつもりですか?
まさかハッカーですか((((;゚Д゚)))ガクガクブルブル
0136nobodyさん04/11/26 12:46:32ID:???
>>132
Win なら php.ini のDynamic extension のところを修正すればいいよ
0137nobodyさん04/11/26 12:46:33ID:???
もう書き込むな、どっか池
0138nobodyさん04/11/26 12:48:06ID:???
ワロタ
013912404/11/26 13:27:14ID:???
>>125-126
ありがとうございますm(_ _)m
125さんのは、文字をバイトで数えるのかな?
少し調べながら使ってみます。

>>129
ちょっと恥ずかしいけど、晒してみます。。
そのまま恥ずかしくて逃げちゃうかもですが(;・∀・)

後、PHP初めて二ヶ月目で、まだまだヘタレですので、併せてコメントも頂ければ嬉しいです。
http://haiiro.info/up2/file/3663.txt
0140nobodyさん04/11/26 13:45:22ID:???
う〜ん…
014113204/11/26 14:35:52ID:???
linuxでyumでインストールしました
php.iniの設定は
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
です。
よろしくおねがいします。
0142nobodyさん04/11/26 14:38:38ID:???
>>141 >>133
0143軟式PHP04/11/26 15:01:57ID:???
./configureで指定しているかどうかが問題のような気がしるんだが。
014413204/11/26 15:14:31ID:???
>>142
>>phpinfo()実行して、mbstringが表示されてるか確認汁
当然表示されていません。

>>143
yumでインストールしてます
やっぱソースからインストールしないとmb関係は使えない?orz
0145nobodyさん04/11/26 15:49:12ID:???
んだね
0146nobodyさん04/11/26 15:55:05ID:???
>>144
yumのせいにすんじゃねえぇぇぇぇぇ
yumは配布のためのツールでphpのことなど知っちゃこっちゃない

fedoraならmbstringが別パッケージになっとる
whiteboxならそのままで有効になっとる
rhelもたぶん有効だろう。つか知らん。
0147nobodyさん04/11/26 16:02:04ID:???
結局yumのせいってことですねorz
0148nobodyさん04/11/26 16:05:08ID:???
yumとかrpmでインスコすると、phpinfoでconfigureオプション見えないの?
0149nobodyさん04/11/26 16:19:24ID:???
>>148
見えるけど、現在のPHPの状態=configureオプションの表示ではないよ。
それ以外のエクステンションの状態/設定のところでみるのが良い。
0150nobodyさん04/11/26 17:04:24ID:???
環境はlinuxってだけで、アドバイスもらえるもんなの?
0151nobodyさん04/11/26 17:44:19ID:uHcZWg2k
phpは難しい
0152nobodyさん04/11/26 17:45:13ID:uHcZWg2k
もうだめぽ
0153nobodyさん04/11/26 17:48:26ID:t8WPLHEG
phpmyadmin の質問もここで良いでしょうか

http://〜/phpmyadmin/ に置いていたファイルを
http://〜/myadmin/ に移動しました。
config.inc.php 内のURLも変更しました。

で、動くことは動くのですが、
phpmyadmin のTOPページの右フレームだけが
http://〜/phpmyadmin/ を見ようとして、エラーになります。

使う分には、支障は無いのですが、原因が分かれば、教えてもらえませんか
015415304/11/26 17:53:32ID:???
すいません。
バージョンは、2.5.4 です
0155nobodyさん04/11/26 17:56:23ID:???
grep -r phpmyadmin <target_dir>
0156nobodyさん04/11/26 18:19:22ID:vF1Wwcf9
PHPって
ファイルの書き込みは、あらかじめ空のファイルを
作成しておかんとできないの?
PHP自体で、空のファイルを作成することって
できないんでしょうか?入門の本みてもそんな関数が
載ってなかったのです。
0157nobodyさん04/11/26 18:20:16ID:???
                    |
                    |
                    │
     /V\            J
    /◎;;;,;,,,,ヽ
 _ ム::::<,,゚ A゚>::| ジーーッ 
ヽツ.(ノ:::::::::.:::::::.:..|)   
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
015815604/11/26 18:21:06ID:vF1Wwcf9
>>156
すいません、もう一回読み直したら
ちゃんとありました。無視してください。
015915304/11/26 18:36:18ID:???
Firefoxだと起きませんでした。
単に、キャッシュされていただけのようです。
キャッシュもCookieもクリアしたんですが、IEは消えないんですね
お騒がせしました。
0160nobodyさん04/11/26 18:43:30ID:???
>>156
漏れもつい最近までしらなかった。
ファイルの読み書き削除はあっても作成がない。
普通にopenで出来るとはorz
そんな漏れはPHP/Perl暦20日
0161nobodyさん04/11/26 18:46:46ID:???
九九も知らないやつが電卓使ってるようなもんだな
0162nobodyさん04/11/26 18:48:15ID:???
大抵の言語で無いよ。openで作成する時のオプションで挙動を変えるのがほとんど。
PHPだとtouch関数てのもあるけど使う人がいるかどうか・・・
0163nobodyさん04/11/26 19:06:36ID:???
今、自作のphpスクリプトをwebサーバーに設置してweb経由でスクリプトを
実行したところ、デバッグモードになっているらしく
Notice: Undefined index: data in /home/hoge/public_html/test.php on line 76
こんな感じの警告がいっぱい出てきました。
変数が未定義といいたいみたいなので
$data = ""; をスクリプトの最初に追加したりしてみましたが、それでも出ます。
デバッグモードの状態でもこの警告を出ないようにするにはどうしたらよいのでしょう?
0164nobodyさん04/11/26 19:15:57ID:???
>>163
ttp://jp.php.net/manual/ja/function.error-reporting.php

訂正したつもりでも出るって事は、そもそも元々別の間違いがあるか
訂正方法が間違っているってことだ。
その状況でNoticeの出力を無理やり抑制したところでろくなことは無いと思うよ

>>162
そのtouchの仕様って何の為にあるのか激しく疑問・・・
0165nobodyさん04/11/26 19:39:28ID:l5jOVoxm
連想配列をキーと値の関係を維持しつつ、値でソートさせることは出来ませんか?
0166nobodyさん04/11/26 19:45:48ID:???
>>165
できるよ
016716504/11/26 19:56:36ID:???
>>166
要は arsort() の値でソート版をやりたいのですが、具体的に教えてくださいませ。
016816504/11/26 19:58:30ID:???
あ、失礼。なんか俺すごい馬鹿なことを書き込んでるな。
忘れてください。
016916304/11/26 20:06:40ID:???
>>164
回答ありがとうございます。
スクリプト見る限りでは他には見当もつかないので
教えていただいたerror_reporting()関数で出力させないようにして
対処していくことにします。。
0170nobodyさん04/11/26 20:13:15ID:???
>>163
indexだから配列のkeyだよ
$_POST['data']とかが定義されてないんじゃないの
0171nobodyさん04/11/26 20:16:04ID:???
>>164
touchはもともとシェルコマンドで例えば複数のソースファイルのタイムスタンプを揃えるときとかに使われる。
0172nobodyさん04/11/26 20:35:46ID:???
>>139は一体何をしようとしてんだ?さっぱり理解できんw
0173nobodyさん04/11/26 20:38:46ID:???
>>171
指定したファイルが存在しなければエラーを返すのではなくて、
作成するという挙動がデフォルトという仕様についてのことと思われ。
017416304/11/26 20:45:15ID:???
>>170
なるほど!確かに$data = $_REQUEST['data'];をスクリプトの最初の方で定義してます。
$_REQUEST['data']に何も入ってないのが原因ぽいです。
試しに$REQUEST['data']に値を与えてみたらnotice出なくなりました。
ありがとうございました!
0175nobodyさん04/11/26 21:24:06ID:???
>>172
そうか?
0176nobodyさん04/11/26 22:35:10ID:yqiGlYlh
FC2に、
ソースからApacheとphpをインストールしたのですが、
php.iniがないことに気づきました。
phpinfo()では、
Configuration File (php.ini) Path=/usr/local/lib
と書かれているのですが、
そこにないんです。
ただ動作自体は正常にしているようです。
何故ないのでしょうか?
017717604/11/26 22:36:23ID:???
バージョンはPHP5.02です
017817604/11/26 22:49:15ID:???
自己解決しました
解凍したソースのphp.ini-distを
己でコピーしないといけなかったんですねorz
0179nobodyさん04/11/27 02:45:35ID:4pK/jD6O
>>162
自分はtouchはわりと使うよ。

define("DEBUG_LOG", "./debug.log");

function debug_print($str) {
// ファイルが存在しない場合は作成
if(!file_exists(DEBUG_LOG)) {
if(!@touch(DEBUG_LOG)) {
return false;
}
@umask(002);
@chmod(DEBUG_LOG, 0664);
}

// 常に追記
$fp = @fopen(DEBUG_LOG, "a");
if(!$fp) {
return false;
}
$msg = sprintf("[%s] %s\n", date("Y/m/d H:i:s"), $str);
fputs($fp, $msg);
fclose($fp);

return true;
}
0180nobodyさん04/11/27 02:47:18ID:???
ずいぶん念入りだな
ってかやってないのは俺だけ?
0181nobodyさん04/11/27 02:50:02ID:???
ファイル関係はエラー処理が面倒臭いから俺はクラスでエラー処理するようにして楽してるな
0182nobodyさん04/11/27 05:44:11ID:???
>>179
'a'でfopen()するならファイル無ければ作成してくれるのでtouch()は要らんと思うが。
0183ののの04/11/27 11:20:47ID:kpiqhbYl
windows2000server
Apache
php4.3.8
の環境で、イントラのMSSQLサーバからデータを引っ張ってきたら、
漢字だけ文字化けしてでてきて困ってます
数字は普通

php.iniで内部文字エンコーディング→auto
MSSQLのエンコーディングASCIIなので、autoで対応しているはずなんですが…

何故でしょう?
対応策ありませんか?
0184nobodyさん04/11/27 12:26:15ID:???
>>183
>php.iniで内部文字エンコーディング→auto
>MSSQLのエンコーディングASCIIなので、autoで対応しているはずなんですが…

この2点が別々にそれぞれ理解が間違ってる。
0185nobodyさん04/11/27 14:19:39ID:???
>>182
激しく同意
0186ののの04/11/27 14:28:04ID:kpiqhbYl
>184
>185
できれば教えていただきたい
現在はini設定を、passにして自動変換を止めて
フィールド値それぞれのエンコーディングを調べて
漢字→SJIS
数字→ASCII
カタカナ→EUC-JP
である事が分かりました
それぞれにconvertしてやらにゃいかんのか?とか思っていたところです

とにかく間違っているなら早めに軌道修正したいので、たのんます!
0187 ◆.jC7ANgFY. 04/11/27 15:28:39ID:???
>>186
MySQLの列の形式をバイナリーにしてみ。
0188ののの04/11/27 16:25:52ID:kpiqhbYl
>187
答えてくれてありがとうございます

でも、ごめんなさい!自己解決しちゃいました
どうやらSJISが曲者だったみたいで、大概をEUC−JPに変更して
SJISの所だけEUC−JPの変換をしてあげたら文字化け無くなりました
0189nobodyさん04/11/27 17:32:22ID:???
>>164
Linuxの本には
ダミーのファイルを作る時によく使われます。
ってかかれてた
0190nobodyさん04/11/27 17:37:47ID:???
既存のファイルにtouchしたら最終更新日が更新される
019110204/11/27 17:55:09ID:???
flockって必要ですか?
0192nobodyさん04/11/27 17:56:24ID:???
質問の仕方を勉強するのが先です。
0193nobodyさん04/11/27 18:57:07ID:???
ionCube PHP Accelerator ってどうよ?
HDDのアクセスが減って早くなりそうなんだが。
使っている人は居ますか?
0194父さん04/11/27 19:44:14ID:???
mkdirでディレクトリ作っておいて

そのディレクトリの中に
ファイルを保存するときってどうすれば
いいですか?fwriteだと、ファイル名しか指定できなさそう。
0195nobodyさん04/11/27 19:54:30ID:???
>>189
なるほど
0バイトのファイルを作る為ならそのほうが簡単かも
でも逆にそうなると、なんでtouchにその機能を割り当てる?
って気がする・・・
0196nobodyさん04/11/27 20:54:30ID:???
>>193
>fwriteだと、ファイル名しか指定できなさそう。
憶測かよ。 実験しろよ。 マニュアル読めよ。
http://www.php.net/manual/ja/function.fopen.php
0197nobodyさん04/11/27 21:09:38ID:iBzhZPzn
ほとんどPHP弄った事ないんですが、

ある7個くらいのPHPで定期的に手動で更新したいところがあるんです
でも7個を一個一個更新してくのめんどいんでtxtにでもして1つに纏めたいんですが・・
そのとき、どうやってそのtxtを読ませればいいのでしょうか
その部分は、こんなかんじなんですが
↓
$example = '定期的に手動で更新したい文字(設定)';

txtの名前をexampleとして

$example = 'example.txt';

こんなんじゃダメですよね・・・?
0198nobodyさん04/11/27 21:12:27ID:???
ちょっとは自分で学習する努力しよーぜ…
019919304/11/27 21:15:02ID:???
>>196
どうもサンクス。すいません、根本的に間違ってました。
fwriteじゃなくて、fopenで指定できそう。実験してみます。
020019704/11/27 21:15:42ID:iBzhZPzn
>>198
解説サイトなどを見てもどこから見ていいのかわからなくて・・
0201nobodyさん04/11/27 21:37:52ID:???
>>200
解説サイトに やりたいことがそのまま全部 載ってるとは限らないわけで、
徐々にPHPの使い方を学んで行くことが大切かと。

いや できさえすればいい どうせもう触ること無いから、という事であれば
丸投げ依頼スレもありますよ。
020219704/11/27 21:39:20ID:iBzhZPzn
>>201
そんな私向けのスレがあるんですか(;´Д`)
貴方のレスを誘導 という形で捉えてもいいでしょうか?
マルチになってはいけませんので・・
0203nobodyさん04/11/27 21:51:38ID:???
>197
include を調べてみれ
020419704/11/27 22:10:32ID:iBzhZPzn
>>203
今テストしてみたんですが
なるほど これは凄い・・
いろいろ聞きたい所なんですが、もうあちらに書き込んでしまったのでこちらでのやりとりは無理っぽいです( ´・ω・)
申し訳ありません
0205nobodyさん04/11/27 22:53:26ID:???
入力文字を漢字かどうか判断したいのですが、その方法が思いつきません。
MLでも同じ様な質問がありましたが解決に到っていませんでした。
0206nobodyさん04/11/27 22:54:59ID:???
>>205
漢字と何の比較だ?
0207nobodyさん04/11/27 22:57:57ID:???
>>206
ごちゃまぜ(漢字 ひらがな カタカナ アルファベット等)の中から、
漢字だけ判断したいのです。
020819704/11/27 23:10:20ID:iBzhZPzn
「ここは質問スレではない」と弾かれてしまいましたヽ(`Д´)ノ

その間に色々試行錯誤してみてたんですが、
txtでなくてもいいか、ということでこんな感じの作ってみたんですが合ってますか・・・?

1.phpの中身
<?php

$bun = 'hello';

?>

更新するphpの中身

<?php

include = '1.php'
$example = '&bun';

?>
0209nobodyさん04/11/27 23:15:12ID:???
ちょっとちがう
0210nobodyさん04/11/27 23:16:24ID:???
>>206
むりです
021119704/11/27 23:16:54ID:iBzhZPzn
>>209
そんな( ´・ω・)
どのへんでしょうか・・・
0212nobodyさん04/11/27 23:18:07ID:???
うごかないでしょ?
021319704/11/27 23:21:06ID:iBzhZPzn
>>212
今は訳あって動作チェックできないのです・・
0214nobodyさん04/11/27 23:21:39ID:???
残念、切腹し
0215nobodyさん04/11/27 23:32:16ID:???
>>205
文字列をunpackして文字の範囲を見れば良い。
当然文字コードに依存するからね。
0216nobodyさん04/11/27 23:33:30ID:???
>>205
文字コード表から16進数表記での漢字の範囲しらべてpreg_replace使え
021721604/11/27 23:34:12ID:???
かぶったぜチクショー
0218nobodyさん04/11/27 23:35:27ID:???
>>213
>>208
>include = '1.php'
ここに2つくらい間違いがあるかも。
0219nobodyさん04/11/27 23:42:29ID:???
>>205
真面目にやるのなら、文字コード判別・漢字部分の検出を自前で作成するのがいいだろうね。
文字コードの説明をしているページを参考にしながらでいいので
文字列をbyte単位で評価するロジックを書くことになる。
手抜きというか見た目は簡単だが無駄が多い方法としては、
漢字以外の文字を全て '' に置き換えて行き、最後に残っているもので
判断するなんてのもありだろうね
022019704/11/28 00:19:00ID:12Bg8vz0
>>218
1.phpの中身
<?php

$bun = 'hello';

?>

更新するphpの中身

<?php

include '1.php';
$example = '&bun';

?>

こうですか?
0221nobodyさん04/11/28 00:21:52ID:???
>>205
漢字があるかではなくてASCII文字だけかならpreg_match('/$\w*^/', $str);あたりで。
漢字であるかを判別するよりはらくだと思う。
0222nobodyさん04/11/28 04:00:53ID:TQmE2lKP
-------------------------------------------------------------
ob_start();
phpinfo();
$strHTMLPhpinfo = ob_get_contents();
ob_end_clean();

//print $strHTMLPhpinfo; //←ここコメントはずすとちゃんと表示される

//PREG_PATTERN_ORDERはオプションのデフォルト(なくても同じ)
preg_match_all("|<body>([^<]*)</body>|i",$strHTMLPhpinfo,$aMatch, PREG_PATTERN_ORDER);

print "<pre>";
print_r($aMatch);
print "</pre>";
$strHTMLInsideBody = $aMatch[1][0];
//print $strHTMLInsideBody; //←コメントはずしてphpinfoの出力のうちbodyタグよりも内側」をprintしたい
-------------------------------------------------------------
の結果が、

Array
(
  [0] => Array
    (
    )

  [1] => Array
    (
    )
)
となってしまいます。正規表現が間違っているのでしょうか???
どなたかご指摘願えれば幸いです。
0223nobodyさん04/11/28 05:24:23ID:???
その正規表現の動作を日本語で説明してみろ。
022422204/11/28 06:14:08ID:???
>>223 さん

えと、自分の意図としては、
通常phpinfo関数で出力される文字列(<html〜</html>)を、
$strHTMLPhpinfoという変数に格納し(これは格納されてることを確認済み)

$strHTMLPhpinfo は「文字数行<body>文字何十行</body>文字数行」という形式に
なっていることがわかっているので、
(あるいは、いいかえれば、そういう形式であることを前提として)
上に書いた「文字何十行」の部分を、$strHTMLInsideBody という変数に格納したい・・・のです。

で、$strHTMLInsideBody が空文字列なので、あれ?と思い、
preg_match_allを通ったあとに、その結果が入るはずの複合配列
(変数名は$aMatchとしました)
を、print_rで除いたところ、中身が空なので、???な状態です。

ちなみに、「preg_match_all」関数について:
http://jp2.php.net/manual/ja/function.preg-match-all.php

よろしくお願いします。
0225nobodyさん04/11/28 06:15:27ID:???
>>222
動作としては合ってるな。ただその正規表現だと
<body><tag></body>
には当然マッチしないことになる。

結論:正規表現は奥が深い
0226nobodyさん04/11/28 06:18:31ID:???
しまった・・・

結論:リロードしる
022722204/11/28 07:17:34ID:???
>>225

あう、そうか・・・どもです。
ちょっと頭冷やして考え直してみます。。。
022819704/11/28 07:19:53ID:12Bg8vz0
>>220
022922204/11/28 07:35:08ID:???
うーん、なんかギミックな方法で実装してしまったです。まぁいいか・・・
-------------------------------------------------------------
ob_start();
phpinfo();
$strHTMLPhpinfo = ob_get_contents();
ob_end_clean();

//array(【<body>より前の文字列】,【<body>より後の文字列】)を取得
$TMPaPhpinfo = preg_split ("|<body>|i", $strHTMLPhpinfo);
//【<body>より後の文字列】を取得
$strHTMLPhpinfo = $TMPaPhpinfo[1];

//array(【その文字列中</body>より前の文字列】,【その文字列中</body>より後の文字列】)を取得
$TMPaPhpinfo = preg_split ("|</body>|i", $strHTMLPhpinfo);
//【その文字列中</body>より前の文字列】を取得
$strHTMLPhpinfo = $TMPaPhpinfo[0];

print $strHTMLPhpinfo; //←phpinfoの出力のうちbodyタグよりも内側全てをprint
0230nobodyさん04/11/28 09:02:08ID:???
>>205
俺がやってるのは

mb_ereg('[亜-腕]');

こんなんだけど、これじゃだめかな?
0231nobodyさん04/11/28 09:55:59ID:???
すげー
0232nobodyさん04/11/28 10:33:50ID:???
>>222
preg_match() に s オプションが足りないだけでは?

preg_match('|<body>(.*?)</body>|is', $s, $m);
print_r($m);
0233nobodyさん04/11/28 12:37:31ID:???
-------------------------------------------------------------
あるHTMLページをfile_get_contents関数で変数$hogeに格納したとします。
で、$hogeの中で、<a>タグ内に記述されたリンク先のページの拡張子がhtmlだったら、
その拡張子を全てphpに変換する。
ただし、「http」から始まるリンクは、たとえ拡張子が「html」であっても、変換しない。
-------------------------------------------------------------
ということをやりたいのですが、
どうやって実現できるでしょうか?
正規表現駆使しないとだめでしょうか?

教えていただければ幸いです。
0234nobodyさん04/11/28 13:25:09ID:???
>>233
その文章どおりにロジックを組めばよいのですが・・・。
丸投げなり宿題回答依頼ならスレ違いです。
0235nobodyさん04/11/28 13:29:49ID:???
質問するときは最低限、・・・とやったのですがうまくいかないとか、このようなスクリプト組んだけど遅いとか
そういうのにしろよ。
〜をやりたいので教えて、はやめろ
0236nobodyさん04/11/28 14:13:54ID:???
>>233
俺は正規表現が苦手なので、適当でいいスクリプトの場合は
頭で考えた処理のまんまでスクリプト組む。
良く判らないものを無理して使わなくてもいいでしょ。
勉強のつもりで無理するのも勿論大事だが。
0237nobodyさん04/11/28 14:34:45ID:???
for(;;){
}if(ereg("<a.*html>",$hoge[$i])){
if(!ereg("http",$hoge[$i])){
ereg_replace("","",$hoge[$i]);
}} //と書いてみた。
0238nobodyさん04/11/28 18:33:14ID:???
>>237
そんなことが可能なの?
0239nobodyさん04/11/28 18:51:58ID:???
mb_send_mail って便利ですよね・・・
先ほどから取得したメルアドにメールを送るphpプログラムを書いて試しに動かしていました。

でも、パスワードも何も無しで動作するんですが平気なんでしょうか?
何か気をつけた方が良いようなことは無いでしょうか?

よろしくです m(__;)m
0240nobodyさん04/11/28 19:20:28ID:???
pop before smtp
smtp
024122304/11/28 19:31:59ID:???
>>224
なぜ正規表現の意味を説明せず、無関係なことばかり書いたんだ。
0242nobodyさん04/11/28 19:47:52ID:???
>>241
オメーは回りくどいこといってじゃねーよヴォケ。
すっこんでろ。
0243nobodyさん04/11/28 20:33:36ID:???
>>240
ありがとう。でも、面倒みたいですね。
送信するだけなので、何か良い方法は無いでしょうか?
0244nobodyさん04/11/28 20:35:45ID:???
>>239
だからスパムの踏み台にされやすいわけだ。
でそれを回避するためにPOP before SMTP等がある。
他にもSMTP AuthenticationとかSMTP over SSLとかがあるっぽ。
0245nobodyさん04/11/28 21:05:51ID:???
>>239
そんなもん。古き良き時代の名残りと言ってもいい。
webプログラマができる事と言ったら、
送信者・受信者の制限する事くらい。
0246nobodyさん04/11/28 21:35:03ID:???
>>239
とりあえずSMTPの仕組み調べな。
0247nobodyさん04/11/28 23:29:35ID:???
>>242
一番ストレートだろ。他のが無駄。
0248nobodyさん04/11/28 23:32:50ID:NCxghLlN
すみません、ちょっと用があってphpのlibeay32.dllをwindowsのsystem32にコピーしたのですが
必要なくなってしまいました。削除しても大丈夫でしょうか。
元々system32にあったファイルだったのか調べないでコピーしてしまって。
削除していいのかわからなくなってしまいました。
0249nobodyさん04/11/28 23:36:35ID:???
乞食野郎ご本人だろ

>>239
認証なんかは単純な送受信とは別の仕様定義になってるよ
imap付きでコンパイルするともうすこし細かいことがでける
0250nobodyさん04/11/28 23:38:17ID:???
>>248
php5なら不要。どのアプリからリンクされてるか分からないならほっとけ。
0251nobodyさん04/11/28 23:41:31ID:???
>>250
php-4.3.9-Win32をからlibeay32.dllをコピーしちゃったんですが・・・
0252nobodyさん04/11/28 23:50:39ID:???
ためしにごみ箱に放り込んでみろよ
PHPには不要でも他のアプリが使う可能性はあるがな
つーか厨房は明日学校だろ
0253nobodyさん04/11/28 23:52:41ID:???
池沼は年中春休みですがナニ(を揉みます)か?
0254nobodyさん04/11/28 23:57:40ID:???
もちろんデフォで揉んでますよ。
0255nobodyさん04/11/29 00:01:27ID:???
$linesのうちフォームより送られてきた$s_r3かつ$s_r4かつ$s_r5の値にマッチするものを$resultの配列に入れたいのですが
$s_r3、$s_r4、$s_r5の値がそれぞれallのときはどんな$r3,$r4,$r5の値でもマッチするようにしたいのです。下のようにすると
、(すべてallで実行)$resultには最初の$lines[0]しか出力されずうまくいきません。どこがいけないのでしょうか?
伝わりにくいかもしれませんがご指摘お願いします。

$s_r3 = $_POST['r3'];
$s_r4 = $_POST['r4'];
$s_r5 = $_POST['r5'];

$lines = file($log);
for($i=0; $i<count($lines); $i++) {
list($r1, $r2, $r3, $r4, $r5, $r6, $r7, $r8, $r9, $r10, $r11, $r12,) = explode("<>", $lines[$i]);
if($s_r3 == "all") {
$s_r3 = $r3;
}
if($s_r4 == "all") {
$s_r4 = $r4;
}
if($s_r5 == "all") {
$s_r5 = $r5;
}

if($s_ad == $ad && $s_sex == $sex && $s_age == $age) {
$result[] = $lines[$i];
}
}

print_r($result);
0256nobodyさん04/11/29 00:04:17ID:???
>>252
ごめんなさいやってみます
どうもありがとうございました
0257nobodyさん04/11/29 00:05:23ID:???
>>253
意味わからんw
0258nobodyさん04/11/29 00:16:13ID:???
>>255
> $s_r3 = $r3;
> $s_r4 = $r4;
> $s_r5 = $r5;

これだとループ2週目以降、$s_*がallからfemaleとか16とかに書き換わるが。
0259nobodyさん04/11/29 00:17:01ID:???
QuickFormを使用しています。
会員登録フォームを作っています。
フォーム入力されたメールアドレスが、
既にDBに登録されているかチェックしたいです。
QuickFormで可能でしょうか?
0260nobodyさん04/11/29 00:20:34ID:???
当然
0261nobodyさん04/11/29 00:22:44ID:???
すいません、どうやってやるんでしょうか。
0262nobodyさん04/11/29 00:25:25ID:???
丸投げに回答する馬鹿があらわれるのを待つか自分で調べて書くか好きなほうを選べ。
0263nobodyさん04/11/29 00:29:45ID:???
>>262
とりあえずオナニーしてくる
0264nobodyさん04/11/29 00:35:10ID:1OYaqh05
フォームからphpファイルにデータを投げると
phpファイルのダウンロードが始まってしまいます。
調べてみると、サーバーにPHPが入っていなかったりすると
そうなるらしいのですが、私の場合はphpファイルによっては
ダウンロードが始まらなかったりする上、データ自体は
ちゃんとポストされているようです。
これはいったい何が原因なのでしょうか?
026519704/11/29 00:48:45ID:X2d0N7Bc
>>220
0266nobodyさん04/11/29 01:15:17ID:MJGTBbUE
多分わかりました。form->addRule
つかいます。
0267nobodyさん04/11/29 01:22:46ID:???
QuickFormのprocess()使用すると
Freezeが効かないです。Freezeは意味があるのでしょうか?
0268nobodyさん04/11/29 01:34:17ID:???
>>264
いじってたら解決しました…
ヘッダの送り方のところをタイプミスしていました。
0269nobodyさん04/11/29 10:41:54ID:???
>>264
私もコンビニにたむろしてる中学生(?)は怖いと思う。
スカートで行くと足とかじろじろ見られるしね
0270nobodyさん04/11/29 10:44:38ID:???
>>269
ふーん。興味深いね・・・・っておい。
0271nobodyさん04/11/29 11:05:16ID:???
ワラタw
027210204/11/29 11:48:17ID:???
>>269
http://tmp4.2ch.net/test/read.cgi/download/1101546314/718
アッチイケ!
0273nobodyさん04/11/29 11:49:21ID:???
>>272
お前もアッチイケ!
0274nobodyさん04/11/29 11:49:42ID:???
>>269
 if( $tyubo->Look($you) )
 {
  $you->Trans(AOKI_SAYAKA);
  $you->Say("どこ見てんのよ!!");
 }
0275nobodyさん04/11/29 13:04:21ID:J66upLzi
URLアドレスの最後のスクリプトの部分を取り除きたいのですが、出来ないです。

$localhost=$_SERVER['SERVER_NAME'];
$script_url=$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
print($script_url);

までは出来て、http://www.host.com/dir1/dir2/this.php となりますが
欲しいのは、http://www.host.com/dir1/dir2/ なんです。誰かアドバイス
でも何でも結構です。どうかご指導下さい。宜しくお願い致します。
0276軟式PHP04/11/29 13:10:51ID:???
>>275
http://php.s3.to/man/function.dirname.html
0277nobodyさん04/11/29 13:25:28ID:???
>>275-276
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
027827504/11/29 13:39:38ID:???
>>276
アドバイスありがとうございました!下の様にして出来ました。

$script_url=$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
echo dirname($script_url);
0279nobodyさん04/11/29 14:09:08ID:N/Ie3LI2
index.php?mode=a
index.php?mode=b
index.php?mode=c
とかやって、表示させる中身を変えるのってどうやるのですか?
0280nobodyさん04/11/29 14:14:34ID:???
if ($_GET['mode']=='a') echo 'a';
if ($_GET['mode']=='b') echo 'b';
if ($_GET['mode']=='c') echo 'c';
0281nobodyさん04/11/29 14:30:46ID:???
>>280
人に教えるなら、まともなもの教えてやれよ…
0282nobodyさん04/11/29 14:34:53ID:???
>281
お前が教えろ
0283nobodyさん04/11/29 14:37:04ID:???
>>279
switch 〜 case 使え
0284nobodyさん04/11/29 14:45:54ID:???
>>282
やだ
0285nobodyさん04/11/29 14:46:28ID:???
ヽ(冫、)ノズコーッ
028625504/11/29 16:45:17ID:???
>>258
遅くなりましたがありがとうございました。
解決しました。
0287nobodyさん04/11/29 16:46:45ID:???
なんか…すごいなこのスレ…
0288nobodyさん04/11/29 16:50:51ID:???
>>287
だろ?
質問者と回答者のレベルの差が、目と鼻の先だもの。
0289nobodyさん04/11/29 16:53:22ID:???
PHPの質問というか、Webプログラムの質問というか
0290軟式PHP04/11/29 17:48:13ID:???
  ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           O 。
                 , ─ヽ
________    /,/\ヾ\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_   __((´∀`\ )< というお話だったのサ
|_|__|__|__ /ノへゝ/'''  )ヽ  \_________
||__|        | | \´-`) / 丿/
|_|_| 从.从从  | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\  /   ::::::::::::ゝ/||
────────(~〜ヽ::::::::::::|/        = 完 =
0291nobodyさん04/11/29 17:50:12ID:???
終わっちゃったよ!
0292nobodyさん04/11/29 18:19:43ID:lDLqv+x1
あるPHPのページ(METAタグにてEUC設定)に検索処理を記述した別PHPのページ(エンコード指定無し)を読み込んで
検索したいのですが
読み込んだ時には検索処理を書いてある中の日本語エンコードがShift_JISになってしまいます。
ファイル自体はEUCのコードで書いているのですが
明示的に指定しないといけないものなんでしょうか・・?
0293nobodyさん04/11/29 18:32:19ID:g5RPzkPv
処理に少し時間がかかるスクリプトを実行した際に、
「少々お待ちください…」というメッセージを表示して
終了したら、完了画面に飛ばすというのをやりたいのですが
どのようにすれば良いのでしょうか?
0294nobodyさん04/11/29 18:33:45ID:???
>>293
http://www.pat.hi-ho.ne.jp/dimension/sample/sample_others_session_wait.shtml
0295nobodyさん04/11/29 18:34:03ID:???
>293
JavaScript
0296nobodyさん04/11/29 18:34:10ID:???
直リンしちゃったorz
0297nobodyさん04/11/29 18:39:38ID:???
>>293
LINK→少々おまちください画面(終了FLAG待ち)→Javascriptで飛ばす
素人なりに考えてみた
他にいい方法あるかも
0298nobodyさん04/11/29 18:43:23ID:???
どのみちJS必要。
0299nobodyさん04/11/29 18:52:24ID:???
スクリプト実行中にメッセージ表示→終了後Location(でいいのか知らんが)で飛ばす
って感じかな
0300nobodyさん04/11/29 18:55:26ID:???
HTTP/1.1 標準ではないが Refresh ヘッダを吐いてやるというのもある
0301nobodyさん04/11/29 18:57:46ID:???
アフォばっかだな
0302nobodyさん04/11/29 19:07:30ID:???
>>301
天才の301氏が降臨してくれたおかげで、このスレはどんぱっぱ!!!
0303nobodyさん04/11/29 19:44:52ID:???
俺はjs使わずにRefreshだけでプログレスバーも付けたよ。
0304nobodyさん04/11/29 19:47:38ID:???
>>303
よっ!チキンやろう!
0305nobodyさん04/11/29 19:48:59ID:???
(´-`).。oO(アニメーションGIF・・・)
0306nobodyさん04/11/29 20:04:24ID:BMdM2SVi
PHPスクリプトをパスの一部として使いたいのですが、なんだか動いたり動かなかったりで挙動が不安定です。
サーバ上に xxx/test.php というスクリプトを置いて、
http://xxxxx/xxx/test.php/test1/test2/abc.csv
みたいにアクセスしています。
test.php中で $HTTP_SERVER_VARS['PATH_INFO'] を参照すると、'test1/test2/abc.csv' が取得できます。
この値を元に CSV を生成してダウンロードさせることが目的なのです。
CSVを出力するために、

Header("Content-Type: text/x-comma-separated-values");
Header("Content-Disposition: attachment; filename=$file");

のようなヘッダを出力し、その後で CSV 本体を出力しています。
期待する動作は、ブラウザで普通にCSVを開いたときと同様の動作です。IE だと勝手にExcelが開くアレです。
ところがやってみると、同じスクリプトが場合によって次のようないろんな挙動を示します。
・内容がテキストでブラウザ上に表示される
・「ファイルに保存」「開く」のダイアログが出てくる
・Internet Explorer は xxx をダウンロードできません と言われる
コード自体はシンプルなので、思いつくことはあれこれやってはみたのですが、状況は変わりません。

ここでお聞きしたいところは、
・上記内容をするために確認すべき設定など
・通常のCSVを開いたときと同じような動作にするための Header の与え方
・挙動が不安定なことについて、考えられること
あとついでに、
・パスに .php を含めない方法(http://xxxxx/xxx/test.php/test1/test2/abc.csv を http://xxxxx/xxx/test/test1/test2/abc.csv のようにアクセスさせる方法)
です。
お心当たりのある方がいらっしゃいましたら、アドバイスいただけると幸いです。
0307nobodyさん04/11/29 20:53:23ID:???
>>306
mod_rewrite
0308nobodyさん04/11/29 20:57:32ID:???
>>306
>場合によって
どういう場合だよ
0309nobodyさん04/11/29 21:05:01ID:???
まずココから解決しないといけないね

>思いつくことはあれこれやってはみたのですが
まずみんなで一つずつあれこれの内容を想像してみよう。
0310nobodyさん04/11/29 21:05:36ID:???
Header("Content-Type: application/octet-stream");
Header("Content-Disposition: attachment; filename=$file");
031130604/11/29 21:31:03ID:???
>>307
ありがとうございます。
mod_rewrite について検索してお勉強を始めました。
取り急ぎご報告までに。
ちなみに、実はこの設定が既にされているのか、現在でもパスから .php を外してもスクリプトは起動しています。
ただ、.php を付けた場合と外した場合とでも挙動が違うので、きちんと設定を見直したかったのです。

>>308
これがまた、よくわからないのです。
リンクをクリックしてたどった場合と URL を直打ちした場合で違うことがありますし、
単にリロードしただけで挙動が変わることもあります。
上記に書いたとおり、パスに .php を入れたり入れなかったりでも異なったりします。

>>309
Content-type の指定を text/x-comma-separated-values やその他に変えてみたり、Content-Disposition を
外してみたり attachment にしたりinline にしたりを組み合わせたり、デバッグ情報出力して調査したり、などです。
結局これだという原因を見つけられずにいます。

>>310
octet-stream は、CSVをブラウザ上で展開するのではなく、ダウンロードさせるテクニックじゃないですか?
今回やりたいのは、普通のCSVと同じ挙動をさせることです。
ただし、「いろいろ」の一環で octet-stream も試してみましたが、結局うまくいきません。
今試したら、ブラウザ上にテキストとして表示される状況です。

でもこういうよくわからない時って、すごく単純なポカミスをしてるものなんですよね…
そう思って何べんもソースを見直してはいるものの、元々シンプルでストレートなコードなので、
あやしいニオイを発見できずにいます…
リソースの獲得・初期化・解放に関しても注意して見てはいるのですが…
とにかく、もうちょっと実験してみます。
ありがとうございます。
0312nobodyさん04/11/29 21:50:34ID:???
>>306>>311
>この値を元に CSV を生成してダウンロードさせることが目的なのです。
>期待する動作は、ブラウザで普通にCSVを開いたときと同様の動作です。IE だと勝手にExcelが開くアレです。

ダウンロードさせると言ったり普通に・・・と言ったり。
表示させたいのか?ダウンロードで保存させたいのか?
表示させるとしてもCSVでどうなるかなんてWinなら関連付けで変わるし。
そもそもすべての閲覧者のPCにExcelが入っているのか?
031330604/11/29 22:11:03ID:???
>>312
すみません、言葉のアヤで紛らわしい言い方になっていますが、CSVのリンクをクリックしたときと
変わらない動作にしたいです。
必ずしもExcel で開いてほしいわけでもなくて、「CSVを開いてブラウザ中にExcelが開く環境であれば」
それと同じにようにExcelがブラウザ中に展開されて、それで開かれて欲しいのです。
ようするに、普通に置いてあるCSVとPHPにより生成したCSVとを区別できなくしたいのです。
0314nobodyさん04/11/29 22:55:56ID:???
>>313
ttp://vivian.mysite.ddo.jp/modules/newbb/viewtopic.php?topic_id=16&forum=5
ttp://ns1.php.gr.jp/pipermail/php-users/2003-October/019163.html
ttp://www.rescue.ne.jp/CGI-BBS/cgi/perl/20020307102821.shtml
0315nobodyさん04/11/29 23:59:55ID:lPZXO5Fa
質問

http://www.yamaq.org/php/visiana/forvisiana_sample.php
↑のアクセス解析のPHPで、

1.visiana.phpとvisiview.phpを置く。(visiana.phpはサイトルートに置く)
2.visiana.phpを編集しwwwrootを設定する。
3.アイコン画像が収められたディレクトリ(visiimg)をサイトルートに置く。
4.ディレクトリ(visilog)を作成し、サイトルートに置く。
5.visiip.txtを作成しvisilog内に置く。パーミッションを606または666に変更する。
6.解析対象のページに <?include ("../visiana.php");?> 等と記述してvisiana.phpを呼び出す。

とあるのですが、2つ質問です。
●「wwwrootを設定する」を設定するとは具体的に、どうする事でしょうか?
●サイトルートとはどういう意味の言葉でしょうか?

当方、CGIは多少設置したことがあるくらいのレベルです。
どうか御指導くださいませ。

0316nobodyさん04/11/30 02:14:49ID:???
>>315
ftp鯖とアカウント情報晒したら、その糞質問にも答えてやろうもん。
0317nobodyさん04/11/30 02:19:25ID:???
>>316
httpのurlでも分かるだろ
贅沢言うのはいかん
0318nobodyさん04/11/30 02:42:37ID:???
>>315
配布元に聞け

あとそれ聞くレベルはCGIを設置してないレベルとあまり変わんねーよ
0319nobodyさん04/11/30 03:16:05ID:???
|-`).。oO(「板違い」で済ませればいいのに・・・)
0320nobodyさん04/11/30 05:56:23ID:???
>>315
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0321nobady04/11/30 11:39:21ID:???
はじめまして。

Linux + PHPからWin + SQLServerに
Unified odbc関数を使って接続を試みています。

odbc_exec()を使用して返ってきたリソースが複数行ある場合のアクセス方法がわからず苦しんでおります。
結果取得にはodbc_result()を使用しますが、次のレコードの取得方法がわかりません。
是非教えていただきたいです。

よろしくお願いします。
0322nobodyさん04/11/30 11:56:20ID:???
>>321
odbc_fetch_rowを利用してクルクルループさせろ
それぐらい検索するか本屋で立ち読みしろ
0323nobodyさん04/11/30 13:10:06ID:???
fopen("filename", "r+")でファイル開いたあと、中身を空にして書き込むにはどうしたらいいですか?
fopen("filename", "w")で開きなおさないと無理?
0324nobodyさん04/11/30 14:20:43ID:???
>>323
//先頭に戻す
fseek($fp, 0, SEEK_SET);
//書き込む
fwrite($fp, $data);
//書き込んだ長さに丸める
ftruncate(ftell($fp));
0325nobodyさん04/11/30 14:21:54ID:???
ftruncate($fp, ftell($fp));
0326nobodyさん04/11/30 14:25:08ID:???
>>324
一度空にしたいのですが?
0327nobodyさん04/11/30 14:30:44ID:???
>>326
(゚Д゚)ハァ?
どうせ書き込むんだろ
一緒じゃねーか



ほれ
fseek($fp,0,SEEK_SET);
ftruncate($fp,0);
032832304/11/30 15:00:09ID:???
>>324,325,327
ありがと〜。そんな関数あるって知らなかった。助かりました。
0329nobodyさん04/11/30 15:08:50ID:xhidOTVN
exec 使ってプログラムをフォークするとき、プロセスIDって
どうやったら手に入りますか?
0330306=31304/11/30 17:54:43ID:???
>>314
ありがとう。ようするにIEじゃダメってことか…
リンク先に書いてあった方法をいろいろ組み合わせてみたりもしたけど、結局うまくいかなかったよ。
おとなしく application/octet-stream にしてダウンロードするようにしました。
挙動も安定して確実です。
0331nobodyさん04/11/30 22:00:56ID:???
>>329
PHP5なら
033233104/11/30 22:01:43ID:???
そーり
proc_openでつくったプロセスに対して
http://search.net-newbie.com/php/function.proc-get-status.html
0333nobodyさん04/11/30 22:14:25ID:???
特定のファイルに現在どれだけアクセスされてるか計測する方法はないでしょうか?
100Mくらいのファイルなんですが、DLしてる人の数を取得したいんです。
よろしくお願い致します。
0334nobodyさん04/11/30 22:46:54ID:???
>>333
1.Webサーバのログを解析する。
2.PHPを噛ませてDLさせる。

このスレ的には2だけど、2を採用するに当たってなにがわからないの?
0335nobodyさん04/11/30 23:01:10ID:???
>>334
既にPHPをかませてDLするスクリプトで運営してるんだけど、
どういうコードを組んでいいのかさっぱり思いつかないです。
もしよろしければ簡単な処理内容を教えて頂けないでしょうか?
0336 ◆.jC7ANgFY. 04/11/30 23:14:15ID:???
>>335
100MBぐらいのファイルはreadfileするのじゃなくて
headerでLocationを使って飛ばすのがいいかな。
その過程でカウントすれば出るかと。

詳細は自分で調べてみるべし。
わからなければ再度質問。
033733504/11/30 23:30:23ID:???
>>336
今はreadfile使ってます。
Locationにした場合DL開始後すぐに切断されたりしたらおかしくなるような・・・
だいたい構想ができました
readfileの場合は全てDLしてから次の処理が行われるので
クリック後カウントプラス→DL→終了後カウントマイナスって感じでいいですかね?
なんか穴があれば指摘お願い致します。
0338nobodyさん04/11/30 23:37:39ID:???
でもlocationヘッダだとurlもろバレなので直DLされる可能性もある
かといって100MBをreadfileはね・・・

容量で臨機応変に使ってくれたまえ
0339nobodyさん04/11/30 23:39:32ID:2woxUsco
mysqlのデータをphpで管理する場合なんですが・・・
フォームで、文字を打ったり、チェックボックスやプルダウンを使って
データを入力するじゃないですか。
あるデータを呼び出して修正する場合フォーム上にすでに登録されてる内容を
反映したいです。
input type textやtextareaなら単にフィールドの値をvalueとして読み込めば
いいのですが、チェックボックスやプルダウンは、登録内容に応じて選択肢の
数だけ、フィールドの値と比較して適合するものにcheckedやselectedを付けなければ
なりません。この部分を楽に処理する方法ってないのでしょうか?

$omaeはデータベースから読み出した値

if($omae == "ばか"){$omae_b = "checked";}else{$omae_b = "";}
if($omae == "あほ"){$omae_a = "checked";}else{$omae_a = "";}
if($omae == "まぬけ"){$omae_m = "checked";}else{$omae_m = "";}

<input type="radio" name="omae" value="ばか" $omae_b>ばか
<input type="radio" name="omae" value="あほ" $omae_a>あほ
<input type="radio" name="omae" value="まぬけ" $omae_m>まぬけ

条件分岐を作るのも、変数を埋め込むのもマンドクセ
みんなこんなやり方をしてるんでしょうか?
0340 ◆.jC7ANgFY. 04/11/30 23:40:47ID:???
>>337
Apache管理権限持ってるならIOモジュールを入れればいいと。
readfileでやるとApacheがずっと走ってる状態になって
サーバーにはあまりうれしくないような。
特にgzipモジュールとかlayoutモジュールとかキャッシュ系
があるとかなり遅いから入っているならやめたほうがいいかも。
普通のDLでApacheがずっと走ってるのとはまた違うからねぇ。
結局のところApacheの管理権限があるならログ使うのがベスト。
0341 ◆.jC7ANgFY. 04/11/30 23:43:29ID:???
>>339
配列変数に入れてforかforeachで対応すべし。

それと関係ないけど答える人の気が薄れるので例ぐらいは
もっとベタな物を使ったほうがいいですよ。
0342nobodyさん04/12/01 00:59:31ID:???
>>339
$bakacheck[$omae] = ' checked';

<input type="radio" name="omae" value="ばか"${bakacheck['ばか']}>ばか
<input type="radio" name="omae" value="あほ"${bakacheck['あほ']}>あほ
<input type="radio" name="omae" value="まぬけ"${bakacheck['まぬけ']}>まぬけ
034333904/12/01 02:36:13ID:FRvj6jY+
>>341
そうですね、失礼しますた。
なるほど、初心者なもんで、どうも配列がを今ひとつ理解してません。
そこらへんのノウハウというのはどんなサイトで勉強したら
よいのでしょうか?
$sql = "select * from hogeDB where huga='hoo'";
$result = mysql_query($sql);
$row_num = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)) {
mysql_fetch_arrayで取得した$row["omae"]をいったい
どうしたらいいのかわかりません
0344nobodyさん04/12/01 08:12:42ID:???
>>343
すぐ他人のノウハウに頼ろうとせず、マニュアルを見るべし。
使用例も載ってるし、日本語訳もされているんだから。
ネット上の情報は玉石混淆だから半端な知識で鵜呑みにしないこと。
0345nobodyさん04/12/01 08:13:54ID:???
>343
何をどう答えたらいいのかわかりません
0346nobodyさん04/12/01 08:29:50ID:???
>>102
喋喋遅レスだが、\0セパレータ良いと思うよ。
perlの場合だが、cgi-libで\0をセパレータに使ってるし。
0347nobodyさん04/12/01 09:38:38ID:???
>>346
いやいや、具体的に言いなさいよ。
0348nobodyさん04/12/01 11:48:17ID:H7gZ8fBe
2004-12-01という形で入っている
日付データの計算を行いたいのですが
どうするのが一番スマートなのでしょうか?
とりあえず今は上のデータをsplitとかで分けて
date関数にてデータを入れ日付に+1とかしているのですが・・。
0349nobodyさん04/12/01 11:52:07ID:???
cgi-libの%inの話。
フォームからの入力パラメータが複数の値を持つ場合、\0でセパレートされた値でくる。
0350nobodyさん04/12/01 11:56:40ID:???
>>348
> とりあえず今は上のデータをsplitとかで分けて
> date関数にてデータを入れ日付に+1とかしているのですが・・。
ここにstrtotimeを使うとちょっとだけスマートかも。

ttp://jp2.php.net/manual/ja/function.strtotime.php
0351nobodyさん04/12/01 15:45:55ID:???
妥当性チェックをしなくていいならsscanfもいいね。
0352nobodyさん04/12/01 17:18:13ID:???
基本的な質問で申し訳ないのですが・・・5桁ないし6桁の数字がありまして、これを
左から4桁と、残り1桁もしくは2桁に分けたいのですが、どのようにすればよろしいでしょうか?
0353nobodyさん04/12/01 17:23:10ID:???
すいません、書き忘れました。
例えば

$x=12345
$a = substr($x, 0, 4);
$b = substr($x, 4, 2);

というのは考えたのですが、効率悪いような気がしまして・・。
0354軟式PHP04/12/01 17:27:39ID:???
>>352
$x=12345;
preg_match( "/([0-9]{4})([0-9]+)/",$x,$reg);
$a = $reg[1];
$b = $reg[2];
は?
0355nobodyさん04/12/01 17:28:09ID:???
何がどう効率悪いのか書け
0356nobodyさん04/12/01 17:28:52ID:???
>>354
>>351のほうがまだマシ
0357nobodyさん04/12/01 17:29:24ID:???
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0358軟式PHP04/12/01 17:37:01ID:???
sscanfに負けた。・゚・(ノ∀`)・゚・。
0359nobodyさん04/12/01 17:40:48ID:???
>>355
すいません・・・。例えば

list($a,$b)=ほにゃらら

みたいなことできないものだろうかと。
0360nobodyさん04/12/01 17:44:47ID:???
>>359
行数を気にしてんのか?
なら351でいいだろ。下らないが。
0361nobodyさん04/12/01 17:46:35ID:???
質問の前に答えが出てるなんて、ここは便利なインターメッツでつね
0362nobodyさん04/12/01 17:49:17ID:???
351=356=どんな質問も答えはsscanf
0363nobodyさん04/12/01 17:57:18ID:???
馬鹿だなこいつ
0364nobodyさん04/12/01 17:57:43ID:???
$x=12345;
list($a,$b)=sscanf($x,"%4d %d");

こ、これでいいっすか?
0365nobodyさん04/12/01 18:01:44ID:???
ワロタ
0366nobodyさん04/12/01 18:02:57ID:???

  エ  ロ  ス  を感じた
0367nobodyさん04/12/01 18:32:06ID:???
>364

$x=12345;
sscanf($x, "%04d%d", $a, $b);
0368nobodyさん04/12/01 18:39:19ID:???
皆様ありがとうございます。>>367さんの通りでできました。
が…sscanfって何か問題があるのでしょうか…?


私もソースからエロスを感じることができるよう精進致します。
0369軟式PHP04/12/01 19:17:31ID:???
結論からいいますと、見やすい方、使いやすい方使った方がいいよ。
0370nobodyさん04/12/01 20:19:07ID:???
補足すると、>>352-353 は効率を意識できるレベルじゃない。
0371nobodyさん04/12/01 21:25:59ID:J12/qEzf
PHP5を実稼働のサイトで使ってる人いますか?
037237104/12/01 21:48:24ID:???
PHP5.0.2で組んでたんですが
何回もリロードしていると時々変なエラーが出る現象が発生しました
こりゃまだ早かったか…アイタタ
PHP4に書き直しか…orz
0373nobodyさん04/12/01 21:49:44ID:dOCgymci
>>371
使っています。
でも、コンテンツ無いです。
だから、使っているうちに入らないかも。
0374nobodyさん04/12/01 22:44:13ID:???
>>372
日記はlocalhostへ
0375nobodyさん04/12/01 22:50:49ID:???
>>372
鯖を再起動してみ。
俺はそれで直った。
0376nobodyさん04/12/01 22:51:12ID:???
>>374
不具合報告だからOK
0377nobodyさん04/12/02 01:18:44ID:???
以下のイメージPHP+MySQLのプログラムを考えています

データベースの内容
  number int(20)
kokyakumei varchar(15)
juusho varchar(40)

  ・リストボックスにデータベースからの情報を表示(表示はkokyakumeiの内容)

  ・検索ボタンを押すと番号で検索する
0378nobodyさん04/12/02 01:25:05ID:???
↑のは書いている途中に誤爆してしまいました。

以下のイメージPHP+MySQLのプログラムを考えています

データベースの内容
number int(20)
kokyakumei varchar(15)
juusho varchar(40)

  ・リストボックスにデータベースからの情報を表示(表示はkokyakumeiの内容)
  ・名前を選択する。
  ・検索ボタンを押すと番号で検索する
  ・そして番号(number)、名前(kokyakumei)、住所(juusho)をテーブルで表示する。

どなたか検索を行うところのスクリプトのヒントをお願いします。
0379nobodyさん04/12/02 01:52:08ID:???
1345 → 1000
531 → 500
2365 → 2000
41 → 50

上のように数字をきりのいい数字に変えるいい方法おしえてください
0380nobodyさん04/12/02 02:17:06ID:???
>>379
切り上げか切り下げか四捨五入すればいい。
0381nobodyさん04/12/02 03:14:49ID:???
>378
number これ間違ってないか?
suuji または bangou じゃないのか。
0382nobodyさん04/12/02 04:32:46ID:???
>>379
負数を扱わない切捨てでいいなら、

function myCeil($n){
assert($n >= 0);
$m = pow(10, intVal(log10($n)));
return intVal($n / $m) * $m;
}
0383K04/12/02 06:52:41ID:dgs1a3N+
PHPのechoを使ってテーブルを動的に作成し、その中にデータベースから
読み込んだデータを表示しようとしているのですが、各セルに表示される
データ(文字列)の長さによって列幅が都度変わってしまいます。
なんとか列幅を固定したいのですが、HTMLの<td>タグで幅の属性を
設定したりしても全然反映されません。
何か方法はないでしょうか?
0384nobodyさん04/12/02 07:26:39ID:???
>>383
<TABLE>や<TR>の幅も固定しろ・・・ってスレ違いなんだが。
0385nobody04/12/02 08:05:22ID:WN1AladV
<tr>にwidth属性ってあったっけ?
038637804/12/02 08:23:23ID:???
>>381
たしかに間違えました。
bangouにします
0387nobodyさん04/12/02 08:36:38ID:???
配布しているPHPスクリプトに、たまに拡張子がincのものが含まれているときがあります。
中は普通のPHPスクリプトと変わりが無いように思えるのですが、違いはあるのでしょうか?
0388nobodyさん04/12/02 08:50:22ID:???
>>387
無い
0389nobodyさん04/12/02 10:02:38ID:???
>>376
どこが
0390nobodyさん04/12/02 10:22:28ID:???
>>389
>>372の脳の不具合の報告と思われ
0391nobodyさん04/12/02 10:34:25ID:???
ここでみなさんに朗報

【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0392軟式PHP04/12/02 10:46:02ID:???
>>391
お前の住処じゃないか。
0393nobodyさん04/12/02 10:58:47ID:???
>>387
includeファイルであることの目印。
そのincファイルをダイレクトに叩かれた時に、phpとして処理しないためのマジナイ。
(txtとはサーバの行う処理を変えておくと良い。)
0394nobodyさん04/12/02 11:04:25ID:???
きちんと誘導すりゃ、普通の質問者と回答者が戻ってくるかもよ。
0395nobodyさん04/12/02 11:05:13ID:???
そりゃ無理だ
039637804/12/02 11:29:47ID:h9KxfVfF
どなたか>>378のヒントお願いします。
0397軟式PHP04/12/02 11:55:53ID:???
>>396
練習台にはもってこいの課題じゃないの?
どこが分からないか、何が分からないのかも書いてないし答えようがないと思われるよ。
0398nobodyさん04/12/02 12:03:12ID:???
>>396
まずはSQL文を勉強しろ
0399nobodyさん04/12/02 12:15:34ID:???
>>396
リストボックスを作るとき、optionタグを

 <option value=番号>顧客名

みたいにしておけば、submit されたときに選択された顧客の番号が渡されるから、
それをDBから select すればいいんじゃないかな?

それとももっとややこしいことをしようとしてる?
040037804/12/02 12:58:55ID:???
検索ボタンを押して検索するところがわからない。
0401nobodyさん04/12/02 13:02:27ID:???
何をどう検索して、結果をどうして欲しいのか
具体的に書かなきゃ答えられない罠
0402nobodyさん04/12/02 13:27:43ID:???
>>400
判るところ、これまでで出来ているところ。
ソース全部出せや。
話はそれからだ。
0403nobodyさん04/12/02 13:48:12ID:???
ちょっとスレ違いなんですけど、PHPを使っているのでここで質問します。
本来書き込むべきスレもしくは板があればご指示ください。

認証に関してなんですけど、ID(とパスワード)を与えた人以外に使えないように
したいのですが、何かいい方法は無いでしょうか?
不正利用の防止、一つのIDを使い回されないようにしたい。

X.509クライアント認証も考えたのですが、クライアント証明書そのものを他へ
流されたら意味がなさそう。この手の証明書は利用者が複製されたら困ると
いうリスクが無いと意味を成さない気がします。
ICカード型のクライアント証明書のみってやり方もありそうな気がしますが、
よくわからない。

接続IPを監視する方法もありますが、クライアントのIPが再接続などで変わる
可能性もありますし、違ったIPから接続されたという状況証拠を持ち出して
クライアント側に注意をするのも気がひける。

専用のクライアントソフトを作れば、何とかなるような気もしますけど、
どなたかIDの不正利用(コピー)を防いだ認証方法を行った方居ますでしょうか?
0404nobodyさん04/12/02 13:55:51ID:???
それって結構大規模なサイトの場合?
040540304/12/02 14:03:35ID:???
>>404
私に対しての問いと受け取っていいのかな?

小規模です。小さな情報販売屋がとある業界向けに紙媒体(製本して)で
売っていたのを、速報性を生かす為に一部をWebサイトで配信したい。
クライアントの数は1000も満たないです。

サーバは社内サーバで思案中ですが、有料のレンタルサーバも考えてます。
CAもプライベートで可能ならそれで、ダメなら大手CAの利用でもいい。
0406nobodyさん04/12/02 14:45:55ID:wVII0lB6
バナーの管理をやってみようと思うのですが、
header("Location: http://exsample.jp");
ではリファラが送られないみたいのですが、
リファラを送る方法はないでしょうか?

あと、valuecommerceを使っているのですが
そもそもリファラっていらないのでしょうか?

よろしくお願いいたします
0407nobodyさん04/12/02 14:52:19ID:???
>>405
小規模ならば、金はそんなにかけられない、
という短絡的想定の元に話します。
(金かけられるんだったら、こんなところで訊いてないで、それなりの業者に委託汁)

私だったら、クライアントごとにIDを発行して、
IDと接続元IPを紐付け、申請IP範囲外からの接続は拒否。

申請IP内においても、頻繁に接続元が変更されるようなものを、
定期的に抽出し、クライアントに対して確認、および対処(アク禁)

ぐらいで、お茶を濁しますがね。

運用は管理面倒になりますが。

あとはクライアントの閲覧端末を限定し、
初回のログイン時のみ決められた端末数までCookie発行。
以後は、Cookie認証とその他の認証を併用。
(Cookie消しちゃったら、再申請)

ってな感じかな。

ここまでだと・・・・・スレ違いだな

PHPでの実現方法になったら、またおいで。
0408nobodyさん04/12/02 15:12:51ID:???
>>403
ダウンロード(許可)キーの複製を妨げる程度?
それともダウンロードした媒体の複製も制限したい?
(複製は出来るけど見るのにキーがいる)
あとはハードプリントも妨げるとか

どちらも売り物のソリューションは存在するけど
0409nobodyさん04/12/02 15:57:27ID:twyhgEEZ
すみませんがフォームから飛んできた内容の一覧を取得する方法って
あるのでしょうか?
0410nobodyさん04/12/02 15:57:50ID:rLnQPdoN
php の読み方ってペーハーペーでいいんでしょうか?
0411nobodyさん04/12/02 16:15:04ID:???
>>410
ドイツの人ならそれでよろしいです
ドイツの人じゃなくてもドイツ語で読みたければそれでよろしいです。
0412nobodyさん04/12/02 16:30:51ID:???
プープと読んでた
0413軟式PHP04/12/02 16:38:07ID:???
Exeをエグゼじゃなく、エキシーと呼んでた奴を思い出したよ。
0414nobodyさん04/12/02 17:22:00ID:hlTnreSw
PHP4の場合は、
メソッドの中から自分自身の名前(メソッド名)を知る方法はないのでしょうか?
0415nobodyさん04/12/02 17:47:32ID:???
>>414
__FUNCTION__ 定数で代替できるかも
041640304/12/02 18:19:13ID:???
>>407
どうもです。
IPの範囲を狭めるのは考えたんだけど、
ISPによっては218.x.x.xで接続したと思えば61.x.x.xになったりするんで、いまいち不安。
んでも、Cookieの件はなるほどと思いました。コピーされたら同じですけど
PKCS12証明書を発行してDL&インストさせるよりも、素人にはわかり難いかもしれない。
閲覧毎にCookieの内容を変更して過去のものを無効化すれば、一時的にコピー
されても大丈夫か。(目から鱗...)

>>408
今のところはWebでの閲覧のみです。

スレ違いネタにお付き合いいただきましてありがとうございました。

0417nobodyさん04/12/02 20:16:08ID:L8w8at2o
画像を表示して下にその説明文を載せるというページを大量に作ろうと
思っています。従来のHTMLベースで作っても良いのですがその場合
1000枚の写真を掲示するのに1000個のHTMLファイルをつくる必要があります。
それは大変だということでPHPを使うともっとシンプルにできると教わりました。
なんでも

hoge.php/?file=1

みたいな感じで元となる画像とその説明文の対を記述したPHPファイルを
1つ作れば上記のようにリンクを張ることでそのうち一対を選ぶことが
可能だと聞きます。

具体的にどういうURLで呼び出すべきか、PHPファイルにはどう記述したらいいか
調べてみたのですがPHPに関するwebサイトではそれらに触れられているものは
あまりありませんでした。どこか良いサイトをご存じではないでしょうか?

※サイトで調べるまでもありませんか?
0418nobodyさん04/12/02 20:28:36ID:WSwo1HWe
違う型の変数を比較する場合の内部でのキャストについてなんですが
以下のコードを実行すると

$a = 1;
$b = "A";
if($a > $b){ print "true<br>\n";}
else{ print "false<br>\n"; }

$a = "1";
$b = "A";
if($a > $b){ print "true<br>\n";}
else{ print "false<br>\n"; }

-------------
[実行結果]
true
false

となるという事は、どちらかが数値の場合は、双方を数値として比較、
両方が文字列の場合のみ、文字列として比較していると考えてよいのでしょうか?
0419nobodyさん04/12/02 20:31:35ID:???
>>417
PHPの知識がまったくないんだろ?
本でも買ってきて一から勉強しろ
0420nobodyさん04/12/02 20:36:22ID:???
>>419
本"でも"じゃなくて、寧ろ積極的に本を買ってきて勉強すべきだな。
Web"なんか"で探してると逆に効率が悪い。
042141804/12/02 20:38:41ID:???
すみません、言い忘れてた事が。
例外的に、双方が文字列であった場合でも
数値に変換できる場合は、数値として比較するという認識で宜しいのでしょうか?

$a = "19";
$b = "20";
if($a > $b){ print "true<br>\n";}
else{ print "false<br>\n"; }
-------------
[実行結果]
false
0422nobodyさん04/12/02 20:38:52ID:???
Webのマニュアルで充分。本なんかイラネ。
0423nobodyさん04/12/02 20:41:05ID:???
PerlやC言語経験者はWebマニュアルで十分だろ。
そういう奴は最初の言語は本で勉強しなかったか?
0424nobodyさん04/12/02 20:42:05ID:???
>>422
そんなやつはこんなところで質問なんかしない
0425nobodyさん04/12/02 20:54:40ID:???
>>421
'19'と'20'だと文字列比較でもfalseになるから、その例文からは判断できんけど、
'199'と'20'を比較するとtrueになるから、数値に変換してるね。

数値に変換されるようなものを文字列で比較したいならstrcmpとか使うとヨロシ。
042641804/12/02 21:21:17ID:???
>>425
わざわざ訂正して頂きありがとうございます。
"199"を誤って"19"と書いてしまってました…

という事は、PHPの変数比較の際の内部の変換は
>>418と>>421の認識でよいという事ですね?
0427nobodyさん04/12/02 21:31:54ID:???
>418
その辺はマニュアルに書いてあったはずだが?
読んでないの?
042841804/12/02 21:44:42ID:???
>>427
そうでしたか。
申し訳ない、その項はまだ目を通してなかったです。
今からじっくり読みたいと思います。
どうもありがとうございました。
0429nobodyさん04/12/02 22:29:35ID:hlTnreSw
includeしたファイルの中からincludeした時の、
ディレクトリ階層の基点は、
最初にincludeしたファイルがある位置になるようですが、
includeされたファイルの階層を基点にして
子ファイルを読むにはどうすればいいのでしょうか?
0430nobodyさん04/12/03 00:18:54ID:uALINIm+
すみません。feof関数について教えてください。

ファイルの最後まで読み込む関数だとの事ですが、
test.txtといったふぁいるがあった場合

test.txt
おはよう
こんにちは
こんばんは

上記の場合、ファイルの全て(おはようこんにちはこんばんは)まで
読み込むと言う解釈で良いのでしょうか。
読んでる本には、feofで1行だけ読んでるような処理があるのですが、
1行のみ(上記の場合、おはよう)読み込むと言ったことも出来るのでしょうか?
0431nobodyさん04/12/03 00:26:18ID:???
おはようちんこはこんばんは
043237904/12/03 01:21:46ID:???
>>382
遅くなったけどありがとう。そのファンクション使わせてもらいます。
043341704/12/03 01:22:26ID:???
本を買ってくるしかないですか(;´Д`)・・・
0434nobodyさん04/12/03 01:31:53ID:???
ttps://secure.sakura.ad.jp/signup2/rentalserver.php?rand=4313992&i=1&
ここのページのフォームがすごいんだけど。
これってHTML_QuickForm使ってるのかなぁ
0435nobodyさん04/12/03 01:36:28ID:???
>>433
//hoge.php/?file=1とかhoge.php/?file=2で呼び出す
if (1 == $_GET['file']) { 表示の処理 } elseif (2 == $_GET['file']) { 表示の処理 } ・・・
って書いてけば?

043641704/12/03 02:15:52ID:???
>>435
( ´∀`)
0437nobodyさん04/12/03 02:29:45ID:???
>>434
どう凄いの?
0438nobodyさん04/12/03 02:32:38ID:???
>>435
どうでも良い事で申し訳ないが、比較の時、不確定な要素を左にしないと気持ち悪くね?
もしかしてそれって俺だけ?
0439nobodyさん04/12/03 02:35:18ID:???
>>438
俺も変数とかを左辺に持ってくるね。
たまに逆のソースを見ると、一瞬「んー?」ってなる。
0440nobodyさん04/12/03 02:38:16ID:???
>417
Webサイト制作初心者用スレで質問してたやつか。
PHPでやればって言ったの俺だけど。
435のような感じでおっけーかと。
これでもマンドクセってんなら、どっかスクリプト探せ。あると思う。

>438-438
俺漏れも
0441nobodyさん04/12/03 03:09:52ID:Qe3qUgOE
Movable Typeの3.11-jaから3.121にベージョナップしたんですけど
<$MTVersion$>が3.11-jaと表示されたままなんです。
やったことは

1) 3.121をダウンロードして解凍
2) mtのフォルダに全てとmt-upgrade31.cgiをアップロード。
3) mt-upgrade31.cgiを実行。
4) Done upgrading your schema! All went well. というメッセージがでる
5) mt-upgrade31.cgiを削除。
6) ブログの全てを再構築。

何か間違ってますか?よろしくお願いします。
0442nobodyさん04/12/03 03:33:03ID:???
ベージョナップage
0443nobodyさん04/12/03 03:38:29ID:???
で、
if (x = 1) { /* x が 1 ならば実行 */}
ではまると。
0444nobodyさん04/12/03 05:36:40ID:???
>>443
構文チェッカかければwarning出るだろ
0445nobodyさん04/12/03 07:45:26ID:???
>>438
コーディングミス(==比較を=代入)を、
早く発見できるという利点がある。

でも自分は気持ち悪さ優先でやってないけど。
0446nobodyさん04/12/03 07:58:48ID:???
>>445
なるほど
でもそんなソース見たことないですね>>435みて自分も違和感感じました。
0447nobodyさん04/12/03 08:05:21ID:???
質問です。
自宅サーバーでphp使ってますがファイル生成ができません。
touch関数も使えません。
ディレクトリのパーミッションは755です。
php.iniの設定のどこか間違ってるのでしょうか?
0448nobodyさん04/12/03 08:07:56ID:???
PHPでは確かにあんまり見ないよね。
ttp://www.catnet.ne.jp/kouno/c_faq/c17.html#4
044944704/12/03 08:35:54ID:???
いろいろ調べてますが、safe_modeもOffです
0450nobodyさん04/12/03 08:51:42ID:???
>449
環境書け、環境
Winでアクセス権とか言うなよ
045144704/12/03 09:45:39ID:???
OS linux
Apache2
php4.3.9です。
よろしくおねがします
0452nobodyさん04/12/03 10:19:48ID:???
>>435 は >>417 へのレスみたいだけど、
ファイルの数だけ分岐を書くつもりなのか。
ifの条件式よりむしろそっちに違和感が...
045344704/12/03 10:34:40ID:???
ディレクトリとファイルのアクセス権をapacheに変更したら一応できました。
これってphpもapacheのsuexecを使わなきゃいけないってこと?
0454nobodyさん04/12/03 10:37:27ID:???
ApacheモジュールなPHPはsuexecなんて使えません。
0455nobodyさん04/12/03 10:37:42ID:???
>>452
質問者のレベルもあれだが、>>435のレベルもかなりあれだな。
0456nobodyさん04/12/03 10:43:26ID:???
>>455
ふつうは

echo "<img src='{$_GET['file']}.jpg'>";

みたいにするよね
0457nobodyさん04/12/03 10:53:45ID:???
>>456
おまいはよく読め。
「説明文」も変更したいそうだ。

例として出してるなら、おまいの言うとおり。
0458nobodyさん04/12/03 11:07:12ID:???
説明文もああいう条件文にはせんけどな
0459nobodyさん04/12/03 11:20:57ID:ty66hqky
mysql_pconnectとmysql_connectについて教えてください
connectは一回ずつ終了しては接続して、
pconnectは既にセッションがあるならそれを使用するということなんですが
データベースへの負荷というのはどっちでも同じなのでしょうか?
0460nobodyさん04/12/03 11:28:07ID:???
>> 417
./img に画像ファイル, ./txt に説明文を書いたテキストを置く。
hoge.phpには普通のHTMLを記述する。画像と説明文の2箇所だけPHPのコードを下記の通りに挿入。

<html>
... 省略 ...
<img src="<?= "./img/$_GET[file].jpg" ?>" /> <-- 画像 -->
<? include "./txt/$_GET[file].txt" ?> /> <!-- 説明文 -->
... 省略 ...
</html>

URLの呼出は hoge.php?file=1 で、$_GET[file] に 1 が設定される。
実際に運用するには値のチェックとかもしないといけないけど、
手短に説明するとこんな感じ。
0461nobodyさん04/12/03 11:36:03ID:???
>>440
これか
Webサイト制作初心者用質問スレ Part 110
http://pc5.2ch.net/test/read.cgi/hp/1101583920/342
0462nobodyさん04/12/03 11:41:45ID:???
>>460
画像1枚につきファイル1つ用意するんですか?
ご苦労様でつ
0463nobodyさん04/12/03 11:52:07ID:???
>>462
何が苦労なんだ?
0464nobodyさん04/12/03 11:56:01ID:???
>>461
ぶっちゃけ、この時点で答え出てたんだね…
レスもしてないし、やっぱ本買え。>417
0465nobodyさん04/12/03 11:58:00ID:???
>>463
画像が1000枚あったら別に1000ファイル用意するのかって事だろ
俺だとマンドクセだ
0466nobodyさん04/12/03 12:12:06ID:???
>>465
頭悪いな
0467nobodyさん04/12/03 12:13:40ID:???
>>459
MySQLはコネクションネゴシエーションによる負荷は
非常に低いので、他のDBMSほど気にすることはないが
mysql_pconnectとmysql_connectを比べた場合、
前者の方が負荷が低い場合がある。断定でないのは
使いまわしされなければ同等だから。
046845904/12/03 13:01:12ID:ty66hqky
>>467
わかりやすい説明ありがとうございました。
0469nobodyさん04/12/03 13:46:41ID:???
>465
ファイルかどうかは別にしても、
1000枚の画像それぞれに解説があるんだから、
1000件のデータは作らなきゃならんだろ。

ま、いずれにしてもDB使えって事だな。
0470nobodyさん04/12/03 14:01:43ID:???
mysql_pconnectってマルチスレッドは大丈夫なのかな?
LAST_INSERT_ID()とか問題になったりしないのかな??
0471nobodyさん04/12/03 14:29:03ID:???
また独り言か
0472nobodyさん04/12/03 14:43:53ID:???
>>470
PHP自体はマルチスレッドを言語的にサポートしてないから問題ない(関係ない)。

同じDBユーザでpconnectされた場合、先の接続が終了していなければ
使いまわしではなく全く別の新規の接続として扱われるので
LAST_INSERT_IDには影響しない。影響するとすればpconnectによる
接続同一性を前提として、クエリを発行せずにLAST_INSERT_IDを取得した場合。
しかしこれは、pconnectではそもそも同一性は保証されないのだから、プログラムの作りがマズイ。
047347004/12/03 14:47:29ID:???
>>472
おおお。ありがとうございます。
よく理解できました。

# Sybaseでpconnectに問題があってから、
# なんとなくpconnect敬遠してたけど、MySQLなら大丈夫かなぁ。
0474nobodyさん04/12/03 16:31:43ID:???
gzopen()でつくったファイルポインタってflockつかえないけど、おまいら排他制御はどうしてますか?
0475nobodyさん04/12/03 16:51:24ID:ods0UPS5
引数を可変数にしなければいけない時など、
呼び出し側指定のリファレンス渡しをしなければいけないケースは
出てくると思うのですが
みなさんallow_call_time_pass_referenceをOnにしていますか?
0476nobodyさん04/12/03 18:48:43ID:???
最近XOOPSとか、部品(モジュールを)を後から追加するような
ソリューションが多くなってきましたけど、
あれってどういう設計なんでしょうか?
インターフェース設計とか・・・

参考になる本やWebページなんかあれば教えてください。

ってかソース読むのが手っ取り早いのかなぁ?
0477nobodyさん04/12/03 20:00:01ID:???
>>429
include(dirname(__FILE__)."hogehoge.php");
これで間違いないと思われ
0478nobodyさん04/12/03 20:24:16ID:???
>>477
こうじゃない?
include(dirname(__FILE__)."/hogehoge.php");
0479nobodyさん04/12/03 20:33:31ID:???
>>476
最初にメインの共通クラスライブラリを読んで、
インストールモジュールのリストや設定ファイル
(実際にはリストや設定はDBに入ってる事が多い)
を読んで、それらの処理に従ってコンテンツを生成する。
0480nobodyさん04/12/03 22:12:01ID:???
>>477-478
ありがとうございました
0481nobodyさん04/12/04 01:20:34ID:p/Q3rspF
ちょっと調べてもよくわからないことがあるので、質問させてください。
関数の処理を行った後の位置を、指定することはできますか?

具代的にはこんなスクリプトで、foo関数を実行した後、「echo "b";」に行かないで、
処理の続きをしたいのですが、どうすればいいのでしょうか?

foo();
echo "b";
function foo(){
echo "a";
}
(処理の続き...)

よろしくお願いします。
0482nobodyさん04/12/04 01:24:56ID:???
echo "b"を書かなければいいだけでは。。。

foo();
//echo "b";
function foo(){
echo "a";
}
0483nobodyさん04/12/04 01:51:08ID:???
foo();
echo "b";
function foo(){
echo "a";
(処理の続き...)
}

こうすれば?
0484nobodyさん04/12/04 01:52:42ID:???
>>481
正直言って何がやりたいのか、何に困ってるのかが分からん
0485nobodyさん04/12/04 01:53:21ID:???
あぁ、echo "b";の処理もやりたいのか。。。
048648104/12/04 02:08:08ID:???
すみません、例がわかりにくかったです。
フォームから受け取ったデータを保存するつもりなのですが、
<?php
if(!$_POST['text']){error();}
(データの整理、書き込み処理)
success();

function success(){
$output= "Success";
}
function error(){
$output= "Error";
} ?>
(HTML部分)
<p><? $output; ?></p>
(HTML部分)

大体こんな感じで作っています。
これだと、error関数を実行した後、$outputにSuccessが代入されてしまうし、
exit;を入れるとHTML部分が表示されません。
何か解決策あったら教えてください。

よろしくお願いします。
0487nobodyさん04/12/04 02:11:20ID:???
if(!$_POST['text']){
error();
}
else{
(データの整理、書き込み処理)
success();
}

以下省略

とでもしておけば?
0488nobodyさん04/12/04 02:12:55ID:???
あ、ごめん。。。それじゃあ
<p><? $output; ?></p>
がからっぽだ。。。

0489487=48804/12/04 02:15:09ID:???
訂正しま

<?php
if(!$_POST['text']){
$output = error();
}
else{
(データの整理、書き込み処理)
$output=success();
}

function success(){
return "Success";
}
function error(){
return "Error";
} ?>
(HTML部分)
<p><? $output; ?></p>
(HTML部分)
049048704/12/04 02:31:22ID:???
あぁ、しかもまだ間違ってる。。。
×<p><? $output; ?></p>
○<p><? echo $output; ?></p>
しかし、そんなコードなら
$optoutに直接入れれば済む話なので
本来の要件とは全然違う気がしてきたorz
0491nobodyさん04/12/04 02:31:56ID:???
>>486
例外処理なら、古い手だけど do { ... } while (0); とか。(エラーの時にbreakでループを抜ける)
処理全体を関数内に書いてエラーの時はreturnで後ろの処理をcut。
PHP5なら素直に try/catch 構文を使う。
0492nobodyさん04/12/04 07:50:28ID:???
処理全体を選択構造で括ろうとするから気味の悪い発想ばかりになる。
関数に分割して処理を呼ぶのを前提に缶がえ他方がいいよ。
0493nobodyさん04/12/04 08:28:49ID:???
>>492
例えば?
0494とらたぬじゃー04/12/04 09:46:35ID:5HVD0ZHR
phpでボーダフォンのページを作っていますが、ボーダフォンの絵文字
を表示するにはどうすれば良いのでしょう??
0495nobodyさん04/12/04 10:01:40ID:???
>>492
誰に対してのレス?
0496nobodyさん04/12/04 10:21:19ID:???
さらに続くアホたち
↓
0497nobodyさん04/12/04 10:23:53ID:KceHPVj2
きぼーーんぬ
0498nobodyさん04/12/04 10:32:04ID:???
>>492
処理丸ごと巨大な関数の中に書くぞw
0499nobodyさん04/12/04 10:33:23ID:IQsH1Sj9
ifで複数条件設定したいんですが、

if($a==1||$b==1){
hogehoge;
}
上みたいに || 使えばいいんでしょうか?
0500nobodyさん04/12/04 10:34:52ID:???
志村さんうしろー
0501nobodyさん04/12/04 10:36:00ID:???
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/

移動
050249904/12/04 10:37:02ID:???
説明不足すまそ。
aが1、またはbが1のときにhogehogeを実行したいといった内容です。
0503nobodyさん04/12/04 10:45:27ID:???
くだらねぇ質問と、ここに書いて良い質問の境界線はどこですか?
0504nobodyさん04/12/04 10:48:35ID:???
>>503
スレ違い
0505nobodyさん04/12/04 11:10:57ID:???
>481
これでいいんじゃないの

<?php
function xxx(){
 if(!$_POST['text']) return "Error";

(データの整理、書き込み処理)

 return "Success";
}
?>
(HTML部分)
<p><?php echo xxx(); ?></p>
(HTML部分)
0506nobodyさん04/12/04 11:11:05ID:???
>>499は誰が見てもくだらない質問
050749904/12/04 11:22:05ID:???
こんな質問ごとき他スレに誘導させなきゃ答えられないのかよ、
世も末だな
0508nobodyさん04/12/04 11:28:00ID:???
くだらない以前に、何一つ読解力がない
こんなのでよく日常暮らしていけるもんだ
0509nobodyさん04/12/04 11:45:04ID:???
誰か以下のスレをたててくれ。

【ちらしの】日記はココに書け【裏】
0510nobodyさん04/12/04 13:23:00ID:???
>>508
もまえ、つられてるぞ
0511nobodyさん04/12/04 14:19:06ID:???
こんなのが釣りならこのスレ丸ごと釣りだよアッハッハ
0512nobodyさん04/12/04 14:27:06ID:mdd+eXUz
phpとmysqlでファームから情報の入力、修正、検索、削除、一通りの
ことが出来るシステムを作っています。
今のとこ一つのスクリプトファイルを$modeという変数でcaseで切り替えそれぞれの機能を
切り替えています。(hoge.php?mode=searchみたいな感じで)

これまで値をhiddenで渡したりしてたのですが、面倒くさくなってきたので
セッションを使おうと思っています。

主に情報の入力などはpost検索結果の条件保持と、modeの切り替えにはgetを使っています。
ひとまず、$HTTP_GET_VARSと$HTTP_POST_VARSをまとめて
$HTTP_SESSION_VARSに入れて値を引き継げるようにしたいのですが
このように複数の連想配列を一気に$HTTP_SESSION_VARSに入れてしまう方法が
わかりません。
このあたりについて参考になるサイト、又はアドバイスをいただけたらありがたいです。

0513nobodyさん04/12/04 14:59:58ID:???
>>512
配列を連結する関数があるのでそれを使えば
希望する動作をさせることはできますが、
セッションの仕組みを誤解してませんか?
セッションを使った場合、セッション変数の他に
通常のGET・POST変数を渡すこともできます。
0514nobodyさん04/12/04 15:10:21ID:???
セッション使ってもファームからはねぇ
0515nobodyさん04/12/04 15:11:59ID:???
農場から情報送ってどうすんだろう
0516nobodyさん04/12/04 15:29:24ID:???
牛乳でたーとかかなw
0517nobodyさん04/12/04 15:35:15ID:???
12:23分 1.5L
0518nobodyさん04/12/04 15:40:16ID:???
チーズの作り方を知りたいのですが、ファームから送信していただけないでしょうか。
0519nobodyさん04/12/04 16:15:54ID:???
鬼の首でも取りましたか?
052051204/12/04 16:16:54ID:mdd+eXUz
>>513
セッションは初めてでいまいち理解し切れていません。
やりたいことはとにかく、フォームの入力をページ
(実際は同じphpファイルですが)移動後も表示させたいのです。
0521nobodyさん04/12/04 16:17:13ID:???
http://cgi.aaacafe.ne.jp/
こんな感じのってどういう仕組みなのでしょうか?
単純にソースファイルアップロードして、パーミッション変更して、
って感じですかね?

友人に似たようなの作ってくれと頼まれてるんですが、
上記くらいの方法しか思いつかないんです。
結構だるいですよね、該当CGIがバージョンアップしたら
修正する手間も出てきますし。
0522nobodyさん04/12/04 16:50:27ID:???
友人に設置できるぐらいのスキルをつけさせた方がいいんでない?
0523nobodyさん04/12/04 17:01:07ID:???
>>521
tar.gz とかで圧縮されてるものをうぷしたら
派ミッションとか変更しなくていいんでなかった?
052451204/12/04 17:08:01ID:mdd+eXUz
postされた値をまとめてセッションに入れちゃう事って出来ないかさっきから考えてる

function insert_session($post_ary){//postされた値をセッション変数に入れる
global $_SESSION['$key'],$_POST['$key'];//←当たり前だけどダメだ
reset($ary);
while(list($key,$val) = each($ary)){
if(isset($POST['$key'])){
$_SESSION['$key'] = $_POST['$key'];
//↑whileで回しながら入れるけど、これはグローバルにならないっぽい
}
}
}

$post_ary = $HTTP_POST_VARS;
insert_session($post_ary);

だめだ、わからんです。
0525nobodyさん04/12/04 17:18:00ID:???
func inss($post_arr) {
  $_SESSION['foo'] = serialize($post_arr);
}

$_SESSIONはオートグローバル。
マニュアル読めば分かるネタはくだスレでやってくれ。
0526nobodyさん04/12/04 18:01:15ID:???
'のけたら普通にできるだろ
あとグローバル宣言はいらん

つうか何がしたいンだ、引数の役目は何だ
0527nobodyさん04/12/04 18:14:59ID:???
いいネタスレになってきたな。
0528nobodyさん04/12/04 18:23:53ID:???
↓親方、旬なネタ一つ
0529nobodyさん04/12/04 18:53:12ID:???
ttp://ex5.2ch.net/test/read.cgi/net/1101232607/
やヴぁいらすぃ
053048104/12/04 19:05:01ID:???
>>487-492, >>505
回答ありがとうございます。
ifを使って組んでみます。
レスが遅れてしまい、すみませんでした。
0531nobodyさん04/12/04 19:22:44ID:???
>>530
ネタレス参考にして馬鹿でかいブロックを作ったりしないように。
0532nobodyさん04/12/04 19:32:18ID:???
>>531
初心者にはmain()エントリ作る必要があるほうが分かりやすいのかもな
最近はJavaやRubyなんかの影響でmainにswitch文書くの嫌いな人もいるらしいけど、
PHPはどっちかっつーと構造化大好きPerl寄りのスクリプトが多いと思フ
0533nobodyさん04/12/04 20:03:11ID:???
$lines = $a<>$b<>$c
で記録してある配列$lines[]の中から、$bが重複した場合その配列を削除したい
(例)
$lines[0] = $a<>$b<>$c
$lines[1] = $a1<>$b3<>$c5
$lines[2] = $a<>$b<>$c5
$lines[3] = $a1<>$b6<>$c
これを$lines[0]と$lines[2]の$bの値が重複するため、後の$lines[2]を削除し
$lines[0] = $a<>$b<>$c
$lines[1] = $a1<>$b3<>$c5
$lines[3] = $a1<>$b6<>$c
としたいのですがどうすればいいでしょうか?
関数array_uniqueなどを使えばいいんでしょうか?

0534nobodyさん04/12/04 20:07:22ID:???
そういうのを考えるのが楽しいんだと思うんだが
0535nobodyさん04/12/04 20:10:23ID:???
usortにてbをソートの後、ループなりmapなりで連続して同じデータをもってたら削除。
0536nobodyさん04/12/04 20:12:36ID:???
ロジックを考えるのに夢中になって数時間つぶすのがプログラムの醍醐味だろ
ちったぁ考えろ
一晩考えて無理なら来い
053753304/12/04 20:16:29ID:???
すみませんでした。自分でいろいろと考えて無理なようでしたらまたヒントでも下さい。
>>535
ありがとうございました。参考にさせていただきます。
0538nobodyさん04/12/04 21:49:34ID:???
$fixed_lines = array();
$test = explode("<>", $line[0]);
$b = $test[1];
foreach($lines as $value){
 $fixed_value = explode("<>", $value);
 if($fixed_value[1] == $b){

 }else{

 }
}
$lines = $fixed_lines;

あー釣りでしたか、すまそ。
空行は考えてねw
0539nobodyさん04/12/04 22:08:18ID:???
全然だめじゃん、それ
0540nobodyさん04/12/04 23:42:20ID:???
掲示板作ってますが、PHPで簡単に串制限する方法ってありますか?
0541nobodyさん04/12/04 23:52:56ID:???
function is_blacklisted($addr) {
$chklist = array(
'niku.2ch.net',
'list.dsbl.org'
);
$ip = explode(".", $addr);
if ($ip) {
$rev = "{$ip[3]}.{$ip[2]}.{$ip[1]}.{$ip[0]}";
foreach ($chklist as $host) if (checkdnsrr("$rev.$host", 'A')) return TRUE;
return FALSE;
}
0542nobodyさん04/12/04 23:53:20ID:???
}
0543nobodyさん04/12/05 01:05:06ID:???
明日は、第23回 全国乳首相撲大会 開催

http://gazo01.chbox.com/wisecrack/src/1102017063590.jpg
0544nobodyさん04/12/05 01:50:37ID:???
>>531
言いたい事は分かるが、話の流れにあってないよ。
元の質問は success(), error() 関数を呼ぶのが前提で、
処理全体の制御構造をどうすればいいか、と言うのだったんだから。

関数に分割云々は、また別の話。
0545nobodyさん04/12/05 02:08:54ID:???
>>544
分岐までネタが出た後なんだからそりゃ別の話をしてるんだろ。
0546nobodyさん04/12/05 03:35:43ID:???
>>544-545
関数に分割されていたって処理全体を制御することに変わりはないべ
デカイブロックだろうと関数コールの束だろうと、同じように全体を制御できるのです
余計なこと教えるなってことにも読めるけど、そうなら、むしろ知らず知らず分岐の
局所化ができてしまう構造化コーディングがお勧めでつ
0547nobodyさん04/12/05 03:42:22ID:???
いやいやこれからはポリ・モーフィアスの時代だね。
スキンヘッドが最先端。支配したがりの分岐中枢なんか解体してオブジェクトに隠蔽。
要素が自律的に処理を呼ぶことが出来るようになるんだ!
0548nobodyさん04/12/05 03:45:33ID:???
深夜にナニやってんだよ・・・
0549nobodyさん04/12/05 04:00:28ID:???
ワロス
0550nobodyさん04/12/05 08:52:36ID:pfTQRacm
ユーザー認証についての質問なのですが
ユーザーが入力したパスワードにハッシュ関数をかけたデータを
サーバーに送信する方法はありますか?
サーバー側にはハッシュ値のみを送りたいんです
0551nobodyさん04/12/05 09:06:14ID:???
>>550
JavaScriptでなんとかしろ
0552nobodyさん04/12/05 10:31:14ID:???
>>550
md5()なり好きな関数でハッシュ化すりゃ良いんじゃないの?

>>551
なんでJavascriptなんよ。
0553nobodyさん04/12/05 10:50:25ID:???
511じゃないが、ブラウザからサーバへ送る時点でハッシュ化しているのなら
JavaScriptだろう。PHPLIBの認証はそのような機能もあるよ。
0554nobodyさん04/12/05 10:50:51ID:???
>>552
>サーバー側にはハッシュ値のみを送りたいんです

クラアントサイドのPHPスクリプトとサーバ間の通信の話だとは
>>550からは読めんがな。
055555204/12/05 11:14:45ID:???
>>553
ああそういうことか。早とちりだった。
すまん>>551

素直にSSL使ったら?>550
0556nobodyさん04/12/05 13:16:16ID:???
すみません。ご存知でしたら教えてください。
php で web 上で圧縮・解凍するツールを作ろうとしています。
gzcompress() gzuncompress() という関数が使えることは分かったのですが、
tar() のようなものはあるのでしょうか?探しても見つからなかったので・・・
0557nobodyさん04/12/05 13:21:34ID:???
tarは圧縮じゃなくて書庫化
055855604/12/05 13:34:22ID:???
>>557
すみません。用語の使い方があいまいでした。
「書庫」とかのキーワードで探してみても見つからないというか、
普通に php-xxx.xxx.tar.gz みたいなのしか出てこなくて・・・
0559nobodyさん04/12/05 13:41:44ID:???
ん・・・・
0560nobodyさん04/12/05 13:49:49ID:???
複数のファイルをうpしたあとtarしてgzしたいんだろうかとESP
0561nobodyさん04/12/05 13:57:28ID:???
蓮鯖でしようとしてたり…
いや、まさかね。
鯖管もそこまで痛い香具師は居ないか。
0562nobodyさん04/12/05 14:31:16ID:xr7p6hLu
PHP6で、ついに 宣言なしの変数使用禁止 が実装されるそうです
0563nobodyさん04/12/05 14:33:22ID:???
systemでtarを呼びなよ。
0564nobodyさん04/12/05 14:40:19ID:???
>>563
それは考えたのですが gzcompress や bz2compress 他には圧縮じゃないけど
base64_encode とかのツールは関数化されてるので、たとえば
$compresseddata = gzcompress($inputdata);
だけで済んでしまいます。
tar も関数バージョンがあれば便利そうなので使おうと思って質問しました。
0565nobodyさん04/12/05 14:43:27ID:???
systemでtarを呼びなよ。
0566nobodyさん04/12/05 14:45:38ID:???
探してる間に自分で system で tar 呼ぶ関数書けば
056755604/12/05 14:47:15ID:???
>>563 >>565-566
回答ありがとうございます。そうすることにします。

関数が有るか無いかを聞いていたので、
無いのなら無いと言って頂けるだけでよかったのですが・・・
0568nobodyさん04/12/05 15:01:23ID:???
話すたびに一言多いお前みたいな人知ってる。
早く縁をきりたいんだけどしつこいんだよなぁ・・
0569nobodyさん04/12/05 15:34:28ID:???
>>568
縁を切りたいなら、話しかけられたときに「ウザい氏ねバーカ」と言う。
0570軟式PHP04/12/05 15:34:35ID:???
年末だからみんなピリピリしてんのかねぇ。
イライラするんなら、スルーしとけばいいじゃん。
0571nobodyさん04/12/05 15:37:45ID:???
>>570
わざわざピリピリさせるようなことしてるやつが言える台詞じゃないが。
0572nobodyさん04/12/05 15:39:31ID:???
関数の有無なんか聞かれてるのかw
池沼の相手ご苦労様wwwそしてご愁傷様www
0573nobodyさん04/12/05 15:41:52ID:???
wwwだいすきwww
0574nobodyさん04/12/05 15:46:34ID:???
www可愛いよwww

>>571
おまい韓国中国ネタ大好きだろ
0575軟式PHP04/12/05 15:49:36ID:???
。・゚・(ノ∀`)・゚・。アイター
0576nobodyさん04/12/05 15:51:31ID:???
くだ質が適度に流れたところで次の質問どうぞ
0577nobodyさん04/12/05 15:52:24ID:???
575 名前: 軟式PHP [sage] 投稿日:04/12/05 15:49:36 ID:???
。・゚・(ノ∀`)・゚・。アイター
0578nobodyさん04/12/05 15:58:29ID:???
システム関数を使うメリットは一般的なアーカイブをまとめて扱えること。
tarを展開するだけならphpでちょちょいと書けば終了。
関数があるかどうか知りたいときはマニュアル読めバーカ。
057955004/12/05 17:52:28ID:???
>>551-555
回答ありがとうございます。日本語が分かりにくくて申し訳ありません。
PHPじゃできないみたいなんで、javascriptとSSLを調べてみます
0580nobodyさん04/12/05 17:53:08ID:???
俺ネカマなのにオフ会逝くことになっちまった
しかも来るのは女だけなんだと
誰か代わりに逝ってくれよ('A`)
0581nobodyさん04/12/05 18:00:06ID:yPTxmbcn
>580
女装で出かけ、MtoF を最後まで貫き通せ
0582nobodyさん04/12/05 19:54:43ID:???
2chみたいに
>>数字
で、書き込みを表示するのはどうやってできますか?
0583nobodyさん04/12/05 20:01:12ID:???
>>289
私もコンビニにたむろしてる中学生(?)は怖いと思う。
スカートで行くと足とかじろじろ見られるしね
0584nobodyさん04/12/05 20:10:02ID:???
そうだね
058558204/12/05 20:24:27ID:???
preg_matchを使ってできるようだけど、よくわかりません。
ご教授よろしくおねがいします。
0586nobodyさん04/12/05 20:40:52ID:???
>>585
ワロタ
0587nobodyさん04/12/05 21:31:26ID:???
>585
× ご教授
○ ご教示

日本語覚えてから出直しといで
0588nobodyさん04/12/05 21:33:57ID:???
きょうじゅ けう― 【教授】

(名)スル
(1)0 1 (ア)児童・生徒に知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。
(イ)専門的な学問・技芸を教えること。
「国文学を―する」「書道―」
(2)0 大学などの高等教育機関において、専門の学問・技能を教え、また自らは研究に従事する人の職名。助教授・講師の上位。
0589nobodyさん04/12/05 22:44:58ID:???
>>582
そういうスクリプトを書けば出来る
0590nobodyさん04/12/06 00:02:00ID:???
>>582
んー、preg_matchとかpreg_replaceで出来ると思う。
まずは正規表現を調べてみると良いよ。
ガンバレ
0591nobodyさん04/12/06 10:24:07ID:???
>>582
$res = preg_replace('/>>([1-9]+[0-9]*)/','<a href="#\1">>>\1</a>',$res);
0592nobodyさん04/12/06 11:46:37ID:???
寒
0593nobodyさん04/12/06 12:32:56ID:???
今日の気温かい?
0594nobodyさん04/12/07 00:07:33ID:???
PHP+MySQLで初心者にもわかりやすい解説乗ってるところ無いでしょうか?
0595nobodyさん04/12/07 00:24:19ID:???
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_s01.htm
http://www.php-j.com/
http://www.mypress.jp/php/
http://php.s3.to/tt/linst.php
http://tsuttayo.sytes.net/

こんなあたりでどうかな?
0596nobodyさん04/12/07 00:46:43ID:???
webサイトを取得してhtmlを解析してある部分だけ取り出したいのですが、どういうコードを書けばいいでしょうか?
コードというか処理の手順みたいなのを教えて頂けないでしょうか?
よろしくお願い致します。
0597nobodyさん04/12/07 00:53:05ID:???
クラスを勉強中なのですが、何故かWorld!World!と表示されてしまいます。。
何処がおかしいのでしょうか。。

class test{

var $a;
var $b;

/*コンストラクタ*/
function test(){

$this->$a = "Hello";
$this->$b = "World!";

}

function hello(){

$c = $this->$a.$this->$b;
echo $c;
}
}

$myclass = new test;
$myclass->hello();
0598nobodyさん04/12/07 00:54:39ID:???
>>596
fopen()とかfile()でHTMLとってきて正規表現なり、行番号で判断するなりしたらどうですか。
0599nobodyさん04/12/07 01:03:52ID:???
>>597
マニュアルちゃんと読め
ttp://www.php.net/manual/ja/language.oop.php
0600nobodyさん04/12/07 02:14:02ID:???
皆さん、はじめまして
ちょっと分からないところがあるので教えてください。
結構昔にPHPいじっててチャットくらいは作れてたのですが、
最近またやり始めたら結構ド忘れしていることに気づきました。
で、質問なのですが
ifとかwhileの中にヒアドキュメントって書けませんでしたっけ?
初歩的な質問かもしれませんがちょっと悩んでるので
分かる方居ましたらお願いします。
0601nobodyさん04/12/07 02:17:26ID:???
>>600
ヒアドキュメントの最後の文字列はインデントしちゃダメだよ。
if (なんたら) {
print <<<END
なんとかかんとか
END; //インデントせずに行頭から書く。
}
0602nobodyさん04/12/07 08:11:37ID:???
>>597
$this->$a
    ↑
0603nobodyさん04/12/07 12:33:50ID:Wu91oU+e
PHPでFORMのACTION時に、自作デーモンを再起動するスクリプトを exec している
のですが、それをやると次に session_start() が呼ばれたときにブラウザが固まって
しまいます。(サーバーからのレスポンスが来ない)。

--a.php
session_start();
<FORM ACTION="b.php">..
--b.php
session_start();
exec("daemonrestart.sh");
header("location: a.php");
--daemonrestart.sh
pkill daemon
daemon &
-----------
こんな感じです。#細かい指摘は無用!

daemon の再起動自体は成功していて、exec() は抜けているようなんですが、
a.php に戻ろうとして固まってしまいます。
・a.php のsession_start() を抜くと、ページが開ける。→セッションがロックしている?
・再起動した daemon を殺すと、a.php の読み込みが復帰する。
ので、どうも exec() したプロセスの子プロセス(=daemon)が終了するのを
待っているような気がしています。

どなたか、これを回避する方法を教えてください。よろしくおねがいします。
0604nobodyさん04/12/07 12:37:25ID:???
ttp://jp2.php.net/function.exec
> この関数を使用してプログラム実行を開始し、
>バックグラウンドで実行 したままにしたい場合には、
>プログラムの出力をファイルまたは
>他の出 力ストリームにリダイレクトする必要があることにも注意して下さい。
>さもないと、PHPはそのプログラムの実行が終了するまでハングします。
だそうだ
0605nobodyさん04/12/07 12:43:14ID:???
>604
exec("daemonrestart.sh >/dev/null 2>&1");

にしたけどあかん、でした。
ほかに情報ないですか??
0606nobodyさん04/12/07 13:00:18ID:???
exec("daemonrestart.sh >/dev/null 2>&1 &");
これだとどう?
0607nobodyさん04/12/07 13:04:08ID:???
>606
> exec("daemonrestart.sh >/dev/null 2>&1 &");
> これだとどう?

おなじです。。ほかに、.sh の中で setsid で実行してみたりとかしたんですが、
結果は同じでした。。
0608nobodyさん04/12/07 14:47:17ID:???
>>607
じゃあシェルの中でさらにnohupだ
0609nobodyさん04/12/07 15:04:27ID:???
>608
nohup もNGでした。。
php のBUGか?だんだん腹が立ってきた。。
0610nobodyさん04/12/07 16:36:08ID:Wu91oU+e
>603
自己解決(?)

セッションがロックしているという前提で、

> --b.php
> session_start();
> exec("daemonrestart.sh");
このあとに
$ss = session_encode();
session_unset();
session_destroy();
session_start();
session_decode($ss);
してから
> header("location: a.php");

とやってみたら、一応望みの動作にはなりました。。

session_unset, session_destroy でセッションが開放されるので子プロセスの
監視も止まったんじゃないかと。。

でもなんだかなぁ。。。
0611nobodyさん04/12/07 17:07:13ID:???
そのネタはマニュアルに投稿あるね
0612nobodyさん04/12/07 17:21:18ID:???
厨房はリアルに書き込まないでほしい
なんか知ったふりして分析してるのとか目障り。
しかも全部憶測の域出てないし、なんか検討はずれくさくてサムイ
音の話もロクにできない低脳ばかり。
とてもPHPらしいw
0613nobodyさん04/12/07 17:44:07ID:???
>611
> そのネタはマニュアルに投稿あるね

すみません。どこだか教えてもらえますか?
ざっと探してみたんだけど見つけられなかったので。。
0614nobodyさん04/12/07 17:48:24ID:???
          _______γ
         /          \
       /              \ 
      /         |        │ 
      〃       / (       │
      〃     丿   (        ヾ
     (ノノノ ノ  >>612 \(人人))))ゞ
     ( (ノ /⌒\   /⌒\  ヾ(( 丿
       (│━(  / )━(  \ )━ /ノ
     6│  \_/   \_/  /9
       │     /  │      /
        │   (○   ○)    /
       │           / 
       │  \__    ノ  
       │ ヽ___/   ノ 
       │        / 
         \_____/
0615nobodyさん04/12/07 19:25:33ID:???
>>597
「World!World!」ワラタ
0616nobodyさん04/12/07 21:27:37ID:???
>>597のってC++で言うところの共用体になってるってこと?

よく解んねーけど。
0617nobodyさん04/12/07 22:29:12ID:???
function __construct() {
  $this->foo = 'world';
}
function hello() {
  $hoge = 'foo';
  echo $this->$hoge;
}
0618nobodyさん04/12/08 08:40:47ID:???
$$a = 'world!';
echo ${''};

こういうことね。
変数名は空文字でもエラーにならないんだなあ。
0619nobodyさん04/12/08 10:08:47ID:???
>>618
マニュアルに載ってたと思うが。
0620nobodyさん04/12/08 15:15:27ID:???
質問です。
0〜9の範囲の値を表示する乱数表を作ったんですが、
その乱数表のマス目をクリックすると、マス目に書かれている数字を
パスワードフィールドに入力できるようにするにはどうすればいいでしょうか?
0621nobodyさん04/12/08 15:43:54ID:???
>>620
一マス入力するごとにサーバとやり取りしていいのならPHPも関係してくるだろうけど、
君がやりたいのはJavaScript等のクライアント側の話じゃないかな?
0622nobodyさん04/12/08 16:04:44ID:???
file_get_contents()で読み込んだファイルの中にある変数($var)を、文字列を二重引用符で囲んだ時と
同じようにして展開させたいのですが、{ }で変数をくくっても、上手く展開されません。
どうすれば上手くいくのでしょうか?
0623nobodyさん04/12/08 16:34:33ID:???
>>622
適当なパーサ組んで変数名取り出して名前→変数変換してぶち込む
0624nobodyさん04/12/08 16:54:50ID:???
>>622
そのままはダメだろうけど、
ちょいと変換してeval。
0625nobodyさん04/12/08 17:10:41ID:+JrrExiN
>>621
クライアント側での話だとPHPじゃ無理なんですか。
おとなしくjavascriptを調べてみます
0626nobodyさん04/12/08 17:15:08ID:???
デバッグで変数の中身を表示させたくて

function debug($var){
print "<pre>" . print_r($str) . "</pre>";
}

としているのですが、どの変数の値を表示しているかわかるように
したいのですが、できますでしょうか?

つまり、
debug($sirabetai_var);

とした時に
<pre>$sirabetai_var ($sirabetai_varの中身の表示) </pre>
と表示させたいということです。

よろしくお願いします。
0627nobodyさん04/12/08 17:23:21ID:???
むり
0628nobady04/12/08 17:53:43ID:???
質問です。
odbc関数を使っているのですが、odbc_fetch_rowで最後までレコードを読んだあと、
VBとかでいうところの、MoveFirstみたいな動作をしたいですが。

それじゃなかったら、odbc_fetch_rowで最後までレコードを読んだあとにでも
また先頭から参照できるような関数があるといいのですが。

よろしくお願いします。
0629nobodyさん04/12/08 18:05:48ID:???
>>626

呼出元の情報を知りたいだけなら debug_backtrace()

変数名を文字列で渡す
function debug($varname) {
global ${$varname};
printf("%s : %s\n", $name, $$name);
}
0630nobodyさん04/12/08 18:08:53ID:ZKD/ZF9h
初めまして。
PHPでスケジュール帳みないなのを作ろうと思っているのですが、
予定をどのようにDBに格納するのが良いか迷っています。

単に開始日付時間と終了日付時間だけを持たすと間が抜けちゃう
とかありそうで、四苦八苦してます・・・。
例えば 開始 2004-09-10 で 終了 2004-11-10 としたときに
簡単なSQLで10月のスケジュールを確認すると何も予定が無い
状態になってしまいそうなんですよねぇ・・・。

どなたかお助けください!
0631nobodyさん04/12/08 18:11:40ID:MTXUZSO2
HTML_QuickForm_Controllerのサンプルに
$controller =& new HTML_QuickForm_Controller('tutorial');
という部分があったのですが、 =& ってどういう意味なんでしょうか。
0632nobodyさん04/12/08 18:15:29ID:???
>>630
そんな設計レベルの話は言語には関係ない。
仕様や機能もわからないのに誰が答えられるってんだ。
自分で考えろ。
0633nobodyさん04/12/08 18:16:28ID:???
>>622 PHPをテンプレートとして使う
($var) --> <?= $var ?> にして、file_get_contentsの代わりに include
変数などに取り込む必要がある場合は、ob_* で始まるバッファを制御する関数を使う。

他は、既存のTemplateライブラリ使うか、同様の処理を自分で作る事になる。
単純な置換なら正規表現だけで出来るけど、条件分岐やループ構造を扱うと面倒になるので
そういった拡張性を考えるなら、既存のTemplateライブラリの使い方を覚えるといい。
0634nobodyさん04/12/08 18:18:26ID:???
> >>626
>
> 呼出元の情報を知りたいだけなら debug_backtrace()
>
> 変数名を文字列で渡す
> function debug($varname) {
> global ${$varname};
> printf("%s : %s\n", $name, $$name);
> }

これ書いてみましたが、でてきません。
$name, $$nameのところを$varnameに書き換えても
$$name の方が表示されません。 ??
0635nobodyさん04/12/08 18:33:43ID:???
>>631
"リファレンスの説明"
http://jp2.php.net/manual/ja/language.references.php


>>634
あらら、ごめん、typoしてた。
php4.1.2, php5.0.2で動作確認したコード張り付けます。

function debug($name) {
global ${$name};
printf("%20s : %s\n", $name, $$name);
}

$foo = 12;
debug("foo");

他に、$GLOBALS[$name] 等でも参照できるはず。
0636nobodyさん04/12/08 18:41:53ID:???
>>634
良く考えると、これだとglobal変数のみしか表示できない。
検証不十分でした。>>629は忘れて
063741704/12/08 19:11:05ID:???
みなさんありがとうございました( ´∀`)b
0638nobodyさん04/12/08 19:29:03ID:???
>>630
終了日が10-01以降且つ開始日が10-31以前のものをSELECTした場合どうなりますか?
0639nobodyさん04/12/08 19:38:29ID:???
糞の掃き溜め
0640nobodyさん04/12/08 19:56:10ID:???
>>630
日時をUNIXタイムスタンプなり、連続した数値として扱えば良いだけの気がするが。
0641nobodyさん04/12/08 20:02:44ID:???
>>640
SQLだと書いてある
064241704/12/08 20:23:13ID:???
>>460
> <img src="<?= "./img/$_GET[file].jpg" ?>" /> <-- 画像 -->
> URLの呼出は hoge.php?file=1 で、$_GET[file] に 1 が設定される。

hoge.php?file=・・・
         ↑
      ここに数字以外のアルファベットを持ってきても良いですか( ´∀`)?
064362604/12/08 20:24:18ID:???
>>636
結局、表示はできないという結論でよろしいのでしょうか?
そうであれば、調べるのをもうやめようと思います。
0644nobodyさん04/12/08 20:55:19ID:???
"貼"と言う文字含む文字列をファイルで読み書きしようとすると、
\が貼の後ろにどんどん追加されていってしまうのですが、
どう対策すればいいのでしょうか?
064564404/12/08 20:55:56ID:IAIwusHo
すいません、ageます。
064664404/12/08 21:00:49ID:IAIwusHo
訂正します。
調べたところ、ファイルの読み書きの際ではなく、
フォームで、"貼"の文字を含む文字列を受け渡しする度に、
"貼\"
"貼\\"
"貼\\\"
と¥が増えていってしまいます。

どう対策すればよろしいでしょうか?
0647nobodyさん04/12/08 21:07:08ID:???
php.iniの
magic_quotes_gpc
の値をoffにしる。
それができないなら
http://jp2.php.net/stripslashes

んで、入力値には色々と気をつけること。
064864404/12/08 21:10:47ID:???
>>647
ありがとうございました。

この系統の文字コードによるエラーって、
掲示板など入力を検査できない状況ではどのように対策を立てるのでしょうか?

差し支えなければ教えてください。
0649nobodyさん04/12/08 22:14:21ID:TjUb9dLp
fopen関数にて
ファイルが存在しない場合は新規作成すると書いているのですが
やってみるとfailed to open streamとエラーが表示されます。
どうしてなんでしょうか?

$fp = fopen("test.txt","w");
0650nobodyさん04/12/08 22:27:36ID:???
>>648
意味がわからんが、ini_getでmagic_quotes_gpcがOnかOffか調べて
処理を分岐させたらいいんじゃないの
065165104/12/08 22:54:25ID:+AeusHNj
>>643
php書き始めてひと月くらいなんでつっこみどころがいっぱいかと。
同じようなことで悩んで漏れはこんなの書きますた。
意味もなく二つに分かれてるけどこんな発想はどうよ?
引数に変数そのものを与えないで変数名を文字列として与える。

function debug($dmsg){//【デバッグメッセージ】
echo "<div class=¥"debug¥">$dmsg</div>¥n";
}

function hensu($hikisu_str){//【変数の存在と値を調べる】なかで「debug」使用。注意!

$hensu_namae = "¥$"."$hikisu_str";
$str_add_d = "${$hikisu_str}";

$okmsg = "(・∀・)イイ!!!!";
$ngmsg = "(・A・)イクナイ!!";

if($GLOBALS["$hikisu_str"] <> ''){
debug("{$hensu_namae}:<span style=¥"color: blue;¥">{$okmsg}</span>:{$GLOBALS["$hikisu_str"]}");
}else{
debug("{$hensu_namae}:<span style=¥"color: red;¥">{$ngmsg}</span>:{$GLOBALS["$hikisu_str"]}");
}
}
065265104/12/09 01:07:35ID:???
>>651
<div class=¥"debug¥">はcssで枠付けて目立つようにするため。
深い意味はないです。
0653nobodyさん04/12/09 02:42:01ID:???
javascriptの中でPHPの変数は使えますか?
0654nobodyさん04/12/09 02:56:55ID:???
>>653
どうやったらそういう発想になるかがわからん
065565104/12/09 02:59:59ID:???
>>654
きっとphpでjavascriptもかきだすつもりなんじゃないの?
0656nobodyさん04/12/09 03:37:21ID:???
>655は甘すぎ
ホワイトチョコレート・オレより甘い
0657nobodyさん04/12/09 03:44:41ID:???
クライアントとサーバという概念が抜けてるに違いない!!!
0658nobodyさん04/12/09 05:37:52ID:???
>>649
ディレクトリに書き込み顕現がないんだろ。確認しれ
0659nobodyさん04/12/09 09:11:05ID:???
>>657
わざわざ出てきてアホっぷりを晒すな。
>>655を読んでもまだ分らんのか。
0660nobodyさん04/12/09 09:24:37ID:???
>>630
簡単なSQL
SELECT * FROM t1 WHERE start_date <= '2004-10-31' AND end_date >= '2004-10-1';

しかしSQLの質問だけなら板違い。
0661軟式PHP04/12/09 09:33:55ID:???
>>650
補足として、magic_quotesならget_magic_quotes_gpc()でもOK。
066264904/12/09 10:12:52ID:s0q6JDNt
>>658
ありがとうございました、その通りでした。
初歩的なミスですいません。
0663nobodyさん04/12/09 10:33:45ID:???
そのJavaScriptが表示される直前の変数なら参照可能だよ
ってことだよね?
0664nobodyさん04/12/09 10:53:35ID:???
参照可能ですか?
<script type="text/javascript"><!--
この中でPHPの変数を使いたい
color = "<?= $color ?>"; ←こんな感じで
//--></script>
だけど、使えない。。。
0665nobodyさん04/12/09 11:22:34ID:???
>>664
そんな感じ
俺ンとこじゃあ普通に使えている
0666nobodyさん04/12/09 11:24:35ID:???
>>664
どう「使えない」のか書かないのは釣りでつか

0667nobodyさん04/12/09 11:44:40ID:???
うそ?
使えてる?
>どう使えないのか
変数の部分は空になってます
0668nobodyさん04/12/09 12:19:13ID:???
本当に$colorに値が入っているのかと小一時間(ry
0669nobodyさん04/12/09 12:27:58ID:???
gomen tukaeta...orz
0670nobodyさん04/12/09 13:50:22ID:???
>>643
ttp://www.xdebug.org/index.php でも入れれば?
入れられる環境なら、楽できるよ。
0671nobodyさん04/12/09 17:31:35ID:???
>>656
ホワイトロリータとどっちが甘いですか?
0672nobodyさん04/12/09 17:48:51ID:???
洋炉利
0673nobodyさん04/12/09 19:12:40ID:???
>>643
通常のPHPの範囲では、他の方法は思い浮かばないです。マクロもないしな。。

スタックフレームひっぱってきて呼出元のローカル変数を参照するとか。
>>670で紹介されてるモジュール使えば出来そう。

# 自分も拡張モジュール書く所だった thx > 670
0674nobodyさん04/12/09 19:57:02ID:???
>>626
やりたい事はできると思うけど>>651のはだめなの?
0675nobodyさん04/12/09 20:44:31ID:???
>>674
a();
function a() {
$hello='world';
hensu("hello")
}
0676nobodyさん04/12/09 22:03:11ID:???
再質問です
掲示板作ってて
>>1
このように
1(数字)にリンク張りたいのですが
どのような書き方で可能でしょうか?
文字が入ってる変数は$commentです。
よろしくおねがいします。
0677nobodyさん04/12/09 22:09:20ID:???
>>676
$comment中に>>1という文字列があったらリンクにすればいいだろ
0678nobodyさん04/12/09 22:12:16ID:???
1とは決まってません
数字で実現したいのです。
0679nobodyさん04/12/09 22:17:38ID:???
1を数字と読み替える程度の知恵もないのか?
0680nobodyさん04/12/09 22:23:48ID:???
>>678
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0681nobodyさん04/12/09 22:30:26ID:???
>>679
[0-9]

結構難易度高い質問だと思うのですが
ご存知の方いましたらヒントだけでもよろしくおねがいします。
0682nobodyさん04/12/09 22:48:45ID:???
>>681
>>680
0683nobodyさん04/12/09 22:53:01ID:???
で、できました。。。
初歩的な質問でしたね^^;
では。。。
068467304/12/09 23:22:57ID:???
呼出元のstackの情報を得られるかと思ったけど無理でした。> xdebug
得られる情報はdebug_backtraceとたいして代わらないみたい。
てことで、>>673の発言を訂正します。
0685nobodyさん04/12/10 00:27:22ID:???
>>684
んー、というかローカル変数全部表示してくれるオプションが有ったと思ったが。
あとは、TruStdioとか、PHPEclipsとかかぁ?
0686nobodyさん04/12/10 04:51:13ID:dLo8c777
PHPとそれ以外の言語(例えばJavaScript)の各プログラムから
共通の基本設定ファイルを読み込ませて値を定義したいのですが、
PHPにそのような関数ってありましたでしょうか?
なにか見掛けたような気がするのですがみつかりません。
もしかしたらあったのは他の言語かもしれません。

共通設定ファイルは

# comment
name = value;

のような感じの書式です。
0687nobodyさん04/12/10 08:48:26ID:???
>>686
これか?
ttp://jp.php.net/manual/ja/function.parse-ini-file.php
0688nobodyさん04/12/10 09:23:08ID:???
>>687
これですこれです。ありがとうございました。
しかしJavaScriptのコードと設定ファイルを共用するのは
少々トリッキーかもですね。
0689nobodyさん04/12/10 11:04:56ID:vrayh+vx
PHPとはあまり関係がないないかもしれないですが・・。
1つのディレクトリにファイルがたくさんあるのとないのとで読み込み速度は変わってくるのでしょうか?
例えば $lines = file("aaa.txt"); などする場合
ディレクトリに100ファイルある中から aaa.txt を読み込むのと
100000ファイルある中から aaa.txt を読み込むのとでは結構速度に差が出ますか?
2000ファイルくらいでやってみたところ差がわかりませんでした。
0690nobodyさん04/12/10 13:52:35ID:???
>688
fopenなりを使って、自前でパーサー(もどき)組んじゃえば?
好きなフォーマットのiniファイルを使えるよ。
0691nobodyさん04/12/10 14:19:14ID:???
>>689
君おもしろい。ブラウザで100000ファイルあるディレクトリ開いたら重いよね。
0692nobodyさん04/12/10 14:55:48ID:???
ん?そういう問題なのか?
aaa.txtにダイレクトにアクセスしてる以上速度に差が出る分けない、って解答が正しいのでは?
0693nobodyさん04/12/10 15:00:44ID:???
>>689
読み出すファイルが確定していての話なら、影響は無し。
対象となるディレクトリの中身の状況によって、読み出すファイルを可変にするとかなら、
ファイル数が多ければ処理件数が増えるから速度は低下。
(OSのファイルシステムによる制限は考慮してないよ。)
0694nobodyさん04/12/10 15:57:28ID:???
ファイルシステムの影響が一番大きいと思う、
ディレクトリ内にファイル数が多過ぎる場合だと
読みだすファイルが確定してる場合でもパフォーマンスに影響して来るよ。
PostgreSQLでテーブルを無闇に作成したりするのと同じ。
0695nobodyさん04/12/10 19:11:51ID:???
早い話がOSによっても違うと
0696nobodyさん04/12/10 19:56:24ID:sgrN7tSf
ブログやってるんですが最近モーレツなスパムに苦しんでおります

大体似たような投稿内容なんですが、同じ文面でも違ったIP残していくもので
手動で.htaccessに追加するという対応では追いつきません


1分間に同じIPで$s回ロードされたら警告を表示→そのまま続けてもう1回ロードされたら拒否IPとして.htaccessに追加する
というのをphpではどうやればいいんでしょうか

.htaccessには他の処理も書いているので、
order allow,deny
allow from all
という箇所を見つけて、
deny from
deny from
deny from
deny from
↓
と追加していく形で

普段、.htaccessのパーミッションは604なので
chmod ("/somedir/.htaccess", 0606);
として処理を実行。その後に
chmod ("/somedir/.htaccess", 0604);
とかもできれば。

使ってるブログがphpで作られているので、index.phpにincludeして使えるようにしたいのですが・・・

えっと、phpのバージョンは4.3.8でセーフモードです
どうかお助けを
0697nobodyさん04/12/10 22:53:29ID:???
>>696
IP記録して回数調べて条件満たしたら.htaccessに追加したらいいじゃん
0698nobodyさん04/12/10 22:57:08ID:???
>>というのをphpではどうやればいいんでしょうか
まさか一から教えてくれって言っているのか?
それともそのままコピペしたら動くようなのを求めてるのか?
ここはそういう場所じゃないよ、有料サービスでも探してみなさい。
それか本でも買って勉強したあと、どこかでつまづいたら質問したらいいと思うよ。
「・・・・とやってみたけどうまくいきません。助言お願いします。」とかいう感じで。
0699nobodyさん04/12/10 22:59:43ID:???
プログラム自体初心者なんですが、ランキングのスクリプトを作ろうとして、詰まりました。

登録画面→dataディレクトリにユーザーID.csvを生成
CSVは、id,url,メアド,inカウント,outカウント,日付
という感じです。
どうにかカウントの処理まではできました。

dataディレクトリからreaddirで取得した配列をinカウントでソートしたいのですが、色々試しましたが方法が思いつきません。
どなたか教えていただけないでしょうか。
0700nobodyさん04/12/10 23:01:16ID:???
解説サイトのをコピペしてみたのですが、
エラーです。エラーです。エラーです。
うぇっうぇうぇうぇっっうぇっっっうぇw
0701nobodyさん04/12/10 23:33:07ID:???
ファームから送ってみな
0702nobodyさん04/12/10 23:33:20ID:???
>>699
その構成なら、API使って楽することはあきらめて
自分でソートするしかないね
0703nobodyさん04/12/11 03:32:21ID:???
>>696
.htaccessファイルだけでやろうとせずに、IP記録&チェック用ファイルでも用意してさ、
最終的に.htaccessファイルを作成すれば良い
0704nobodyさん04/12/11 05:53:31ID:???
>699
usort()
0705nobodyさん04/12/11 11:31:10ID:d4nLr2Jv
知ってるんだったら教えてあげりゃーいいじゃん
0706nobodyさん04/12/11 12:06:04ID:MOGS9JxO
PHP初心者なんですが誰か教えてください。
管理画面で記事を編集する処理をしようとしてるんですが
改行コードを<br>に置き換える処理がうまくいきません。
どこが悪いのでしょうか?

$lock = LockFile( ITEM_LOCK_FILE_PATH );
$ItemList = GetCategoryItemList( $_REQUEST[ "CAT" ] );
for ( $i = 0; $i < sizeof( $ItemList ); $i++ ) {
if ( $ItemList[ $i ][ ITEM_COL_ID ] == $_REQUEST[ "ITEM" ] ) {
$ItemList[ $i ][ ITEM_COL_NAME ]
= $g_FORM["VALUE_NAME"]["VALUE"];
$ItemList[ $i ][ ITEM_COL_DETAIL ] = str_replace( "\n", "<BR>", $g_FORM["VALUE_DETAIL"]["VALUE"]);
break;
}
}
0707nobodyさん04/12/11 12:14:05ID:???
>>706
$ItemList[ $i ][ ITEM_COL_DETAIL ] = preg_replace("/\n\r|\r\n/", '<br>', $g_FORM["VALUE_DETAIL"]["VALUE"]);
0708nobodyさん04/12/11 12:36:43ID:uBGzFGku
PHP初心者なんですが誰か教えてください。
PHPってなんの略ですか?
0709nobodyさん04/12/11 13:39:09ID:???
>>706
Peaceand Happiness through Prosperity

あれ、Personal Handy Phoneだっけ?
0710nobodyさん04/12/11 13:40:27ID:???
パンツはいてポン
0711nobodyさん04/12/11 13:42:12ID:???
初心者ならマニュアルくらい嫁!
ttp://php.planetmirror.com/manual/ja/history.php
0712nobodyさん04/12/11 14:51:46ID:???
>706
つ【nl2br()】
0713nobodyさん04/12/11 15:01:16ID:755OaB72
Programmer Heaven, PHPの略じゃないですか?
違うなら違うといってください。
0714nobodyさん04/12/11 17:04:06ID:???
Pantsu H Piropiropi~の略じゃボケ
0715nobodyさん04/12/11 17:20:37ID:MVGeL0Sh
セッションが切れたらログインページに飛ばすようにしたいのですが
header(Location 〜 でやってたら
フレーム内のページの場合、親フレームに指定できず
フレーム内にログインページがでてきてしまうのですが
何かいい方法はありませんでしょうか?
0716nobodyさん04/12/11 17:27:36ID:???
Panty 履きたい Pantyの略だろハゲ
0717nobodyさん04/12/11 17:27:54ID:???
PHPを自分のPCにインストールしてPHPスクリプトの動作チェックをかけたいんですが
WEBサーバーもインストールしていないと使えないのでしょうか?

ちなみにOSはWin2kです。
0718nobodyさん04/12/11 17:30:45ID:???
>>715
JavaScriptとMETA refreshでいいじゃない
<script type="text/javascript">if(top != self){ top.location.href = self.location.href; }</script>
0719nobodyさん04/12/11 17:31:45ID:755OaB72
>>717
文脈から、ウェブサーバをインストールした方がいいと感じました。
0720nobodyさん04/12/11 17:32:56ID:???
>>717
phpdevの構文チェックがあった気がする
072171704/12/11 17:35:04ID:???
たしかIISサーバーはOSインストール時に入れた記憶はあるんですが・・・
サービスが起動しているかどうかまでは・・・
0722nobodyさん04/12/11 18:07:56ID:???
何もわからんやつはIISなんかやめとけ。
0723nobodyさん04/12/11 18:36:48ID:MOGS9JxO
>>707 おお、ありがとうございます。
しかし残念ながらまだ正常に処理できないです。
もともと新規記事登録画面や編集画面で改行入ってても改行できないプログラムを
改造してるんですが、まず
新規記事登録画面からcsvへの書き込み時は

$lock = LockFile( ITEM_LOCK_FILE_PATH );

$ItemList = GetCategoryItemList( $_REQUEST[ "CAT" ] );
$NewItemNumber = GetNewItemNumber( $ItemList );

$ItemRecord[ITEM_COL_ID ] = $NewItemNumber;
$ItemRecord[ITEM_COL_NAME ] = $g_FORM["VALUE_NAME"]["VALUE"];
$ItemRecord[ITEM_COL_REGIST] = date("YmdHis");
$ItemRecord[ITEM_COL_DETAIL] = str_replace( "\n", "<BR>", $g_FORM["VALUE_DETAIL"]["VALUE"]);
array_push( $ItemList, $ItemRecord );

$ItemFilePath = ITEM_DATA;
$number = sprintf( "%04d", $_REQUEST[ "CAT" ] );
$ItemFilePath = str_replace( "#NUMBER#", $number, $ItemFilePath );
WriteCsvToFile( $ItemFilePath, $ItemList );
UnLockFile( $lock );

でうまく処理できました
0724706,72304/12/11 18:39:59ID:MOGS9JxO
で、それを編集画面で開くと<br>がでるので
編集画面で開く時に

ClearFormValue();
$ItemInfo = GetItemRecord( $_REQUEST[ "CAT" ], $_REQUEST[ "ITEM" ] );
$g_FORM[ "VALUE_NAME" ][ "VALUE" ] = $ItemInfo[ ITEM_COL_NAME ];
$g_FORM[ "VALUE_DETAIL" ][ "VALUE" ] = str_replace( "<BR>", "\n", $ItemInfo[ ITEM_COL_DETAIL ]);

としてまた<br>を改行に戻してます。
こんな改造自体がおかしいのでしょうか?
0725706,72304/12/11 18:47:52ID:MOGS9JxO
編集画面表示部はこんな感じです。

<HTML><HEAD><TITLE>記事管理メニュー</TITLE></HEAD><BODY>
<H2>管理メニュー</H2><H2>記事の編集</H2>
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
題名:<INPUT TYPE="TEXT" NAME="VALUE_NAME" SIZE="40" VALUE="<?php
HESC( $g_FORM[ "VALUE_NAME" ][ "VALUE" ] );
?>"><FONT COLOR="RED"><?php
if ( $g_FORM[ "VALUE_NAME" ][ "ERROR" ] == true ) {
HESC( "■ " . $g_FORM[ "VALUE_NAME" ][ "MESSAGE" ] . " ■" );
}
?></FONT><br>
本文:<TEXTAREA NAME="VALUE_DETAIL" COLS="50" ROWS="10"><?php
echo( $g_FORM[ "VALUE_DETAIL" ][ "VALUE" ] );
?></TEXTAREA><FONT COLOR="RED"><?php
if ( $g_FORM[ "VALUE_DETAIL" ][ "ERROR" ] == true ) {
HESC( "■ " . $g_FORM[ "VALUE_DETAIL" ][ "MESSAGE" ] . " ■" );
}
?></FONT><br><BR>
<INPUT TYPE="HIDDEN" NAME="CAT" VALUE="<?php
HESC( $_REQUEST[ "CAT" ] );
?>">
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE=" 追 加 ">
<INPUT TYPE="SUBMIT" NAME="CLEAR" VALUE=" クリア ">
</FORM><BR><BR>
<A HREF="./admin_item_index.php">記事編集のトップへ</A><BR><BR>
<A HREF="./admin_index.php">管理メニューのトップへ</A></BODY></HTML>
072671504/12/11 20:22:30ID:MVGeL0Sh
>>718
できました。ありがとうございました。
0727nobodyさん04/12/11 21:15:13ID:jtmXZY//
PHPでデーモンを作りたいのですが、どうすればよいでしょうか?

感じとしては、クライアントがサーバの1000番ポート(例)に接続してきて、
送ってきたクエリに対する結果を返したいのですが……。
0728nobodyさん04/12/11 21:28:10ID:???
>>727
実現したいことを提供する仕組みがPHPにあるかどうか調べる。
この場合だとデーモンを作成できるかどうか調べりゃいいわけだな。
で、その機能が提供されているとしたら、どんな関数を使えばいいか
芋づる式に分かるわな。
0729nobodyさん04/12/11 22:03:54ID:st9UV/hb
変数の名前の付け方なんだけど、

http://example.com/hoge/ を $base_url って名前につけたとするじゃん、
そんとき /hoge/ の部分はなんて名前にすればいいと思う?

0730nobodyさん04/12/11 22:10:27ID:???
好きなように付けていいと思うけど、parse_url()の場合だと、
"scheme", "host", "port", "user", "pass", "path", "query", "fragment"
ってのがあるから、 path でええんでないの?
0731nobodyさん04/12/11 22:15:18ID:???
>>730
抽象的すぎ
0732nobodyさん04/12/11 22:18:50ID:???
さあこのネタ振りに対し730は・・・!?
0733nobodyさん04/12/11 22:24:07ID:???
$hoge だろ
0734nobodyさん04/12/11 22:24:22ID:???
そんなハードルは跳べないだろw
0735nobodyさん04/12/12 00:22:45ID:???
>>729
↓できいてみたら?

【プログラム板】
クラス名・変数名に迷ったら書き込むスレ。Part3
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
0736nobodyさん04/12/12 03:17:09ID:???
>>735
おれ729じゃないけど、こんなスレあったのな。
よく変数とか関数の名前に迷うことが多いから見てみよう。
0737nobodyさん04/12/12 11:29:49ID:Wwc4JdWx
MySQL5で作成したストアドプロシージャー(抽出|実行)をphpから
呼ぶ方法を知りたいのですが、知っている方おりますか?
073869904/12/12 13:41:09ID:6JzXtPsh
>>704

ファイル名からinカウントを表示する関数を作って、usortで、数えるって感じですか?
そんな感じで色々やってみたんですが、うまくいきませんでした。
0739nobodyさん04/12/12 13:53:30ID:0qNzuUWM
http://f47.aaa.livedoor.jp/~kaigou/patio65535/patio.cgi?mode=view&no=42
0740nobodyさん04/12/12 14:18:00ID:???
>>737
PHP5からmysqli拡張でサポート
http://jp.php.net/manual/ja/function.mysqli-prepare.php
0741nobodyさん04/12/12 15:17:15ID:/72kiXrO
失礼します。
db接続をポインタで渡したいのですが、
以下では出来ませんでした。
エラーメッセージでコンフィグが云々〜というのが出たのですが、
鯖の設定で出来たり出来なかったりするんでしょうか?

function f_name($pt_db, $int_id) {
$res_db = pg_query($pt_db, "SELECT name FROM table WHERE id=" . $int_id . ");
$arr_db = pg_fetch_array($res_db);

return $arr_db[name];
}

呼び出し時
echo f_name(&$作成したdb接続, $int_aa);
0742nobodyさん04/12/12 15:21:26ID:???
質問させてください。

a<>b
c<>d
e<>f

と配列$log[]に格納されている配列を

$nlog[b] = a
$nlog[d] = c
$nlog[f] = e

としたいのですが以下のようにすると多次元配列になってしまうんで一次元配列
にしたいんです。どうじたらいいでしょうか。
for($i=0;$i<=count($log);$i++){
list($from, $key) = explode("<>", $lines[$i], 2);
$nlog[] = array("$key"=>"$from");
}
0743nobodyさん04/12/12 15:24:59ID:???
>>741
function f_name(&$pt_db, $int_id) {
    ...
}
echo f_name($作成したdb接続, $int_aa);

>>742
for($i=0;$i<=count($log);$i++){
   list($from, $key) = explode("<>", $lines[$i], 2);
   $nlog[$key] = $from;
}
074474204/12/12 15:33:06ID:???
>>743
ありがとうございます。初歩的な質問でした。お恥ずかしい。
074569904/12/12 15:41:31ID:6JzXtPsh
usortの使い方なんですが

function iicount($x){
$usrid = $x;
$usrfile = "./data/$usrid.dat";
$fp = fopen($usrfile,"r");
$fg = fgets($fp);
$fpp = explode(',',$fg);
list($usrid,$sitename,$siteurl,$comment,$mailad,$passwd,$outcount,$incount) = $fpp;
fclose($fp);
return $incount;
}
をユーザ定義関数として
dataフォルダから取得したファイル名一覧(=usrid名一覧)の配列を

usort($datfile_array,$iicount); //inカウントでdatafile_arrayをソート

という使い方をしてうまく行きませんでした。使い方、全然検討はずれでしょうか。。
0746nobodyさん04/12/12 15:54:28ID:???
ググってもでないので教えてください。

フォームでひらがな以外はエラーとなるようにしたいです。
送られてくる変数が$varとして

if(preg_match("/[^ぁ-ん]/",$var)){exit ("ひらがな以外はダメ");}

ではうまくいかんとです。どうすればよいですか?ページの文字コードはシフトJISです。
0747nobodyさん04/12/12 16:16:22ID:???
>746
マルチバイト関数を使うべし。
074874104/12/12 16:17:43ID:???
>>743
できました!
ありがとうございます。
0749nobodyさん04/12/12 17:00:42ID:???
>699
情報が足りないからよく分からんがこれでいいのかい?
usortの使い方はマニュアル見たの?

function cmp($a, $b){
if ($a[7] == $b[7]) return 0;
return ($a[7] < $b[7]) ? -1 : 1;
}
$dir = opendir('data/');
while (($file = readdir($dir)) !== false) {
if(substr($file, -4) == '.dat'){
$data = file('data/'.$file);
$datfile_array[] = explode(',', $data[0]);
}
}
closedir($dir);
usort($datfile_array, 'cmp');
print_r($datfile_array);
0750nobodyさん04/12/12 17:05:49ID:yU1MgCLa
変数名を良く間違えるので、宣言した変数以外は使えないようにしたいです。
Cみたいに変数宣言をする方法は無いですか?
クラス変数はvarで宣言できるけど、宣言して無い変数も
いくらでも追加できるみたいなのでバグの温床になりやすいです。
0751nobodyさん04/12/12 17:27:34ID:???
それがphpなんだよ
嫌ならCdeCGIでもやってろ
0752nobodyさん04/12/12 17:50:45ID:???
>>750
宣言しないで変数使ったら普通に警告が出るでしょ?
0753nobodyさん04/12/12 17:53:38ID:???
確かに $error_flag とかでチェックしてて、 if( $erro_flag === true) ・・・ とかタイプミスしてバグになったりはするな。
目を凝らしてコピペ連続だな。
075475004/12/12 17:53:39ID:???
>>752
でません。どうしたら出るようになりますか?
正直警告だけでも無いよりマシでありがたいです。
0755nobodyさん04/12/12 18:25:08ID:???
マヌアル嫁
0756nobodyさん04/12/12 18:27:42ID:???
>>754
/etc/php.iniなどで
error_reporting = E_ALL
の設定をするべし
error_reporting = E_ALL & ~E_NOTICE
だとその警告は出ない。
075769904/12/12 18:58:10ID:???
>>749
どうもありがとうございます。
usortって好きな関数で出た値で比較とかかと思ってました・・
その他の部分も色々勉強になりました、ありがとうございます。
075875004/12/12 19:03:46ID:???
>>756
未宣言変数だけ ってのは無いんですね。
了解しました。
0759nobodyさん04/12/12 20:28:57ID:???
>>758
確かに標準で「未宣言変数だけ」っうのはないが、
ユーザ定義のハンドラで処理すれば、その辺の細かい制御は可能だし。
http://jp.php.net/manual/ja/ref.errorfunc.php
076075904/12/12 20:30:49ID:???
あとそういった開発支援機能はツール類が何点か存在する。
0761nobodyさん04/12/12 21:55:39ID:???
>>758
べつにphp.iniを書き換えなくとも
error_reporting();をソースに追加すれば変更できるぞ
例
 error_reporting(E_ALL); //All ERROR
 error_reporting(E_NOTICE); //NOTICE ERROR
0762nobodyさん04/12/12 22:06:07ID:???
>>753
> if( $erro_flag === true)
エロフラグが勃った(ワラ
0763nobodyさん04/12/12 22:09:48ID:???
テンプレ機能が備わったツール使えば良い
0764nobodyさん04/12/12 23:20:54ID:???
>>747
むほっ、>>746の式を
if(mb_ereg_match("/[^ぁ-ん]/",$var)){exit ("ひらがな以外はダメ");}
としてもうまくいかないのです。やろうとしていることが無理なのかなぁ。
0765nobodyさん04/12/13 00:08:34ID:???
>>764
mb_ereg_match() はパターンを / で囲むと別の意味になる。

あと、内部エンコーディングに SJIS を指定していない場合は、
mb_regex_encoding('SJIS') を先に実行しておく必要がある。

内部エンコーディングに SJIS を指定するには国際化版 PHP か
--enable-zend-multibyte をオプションに含めてコンパイルする
必要があるけど。
0766nobodyさん04/12/13 04:23:36ID:???
画像アップローダ作ったのですけど
copy使ってもmove_uploaded_file使っても
アップできるjpgファイルとアップできないjpgファイルがあります。
ちょっとサイズが大きめのjpgファイルがあっぷできないようなのです。
解決策はあるのでしょうか?
0767nobodyさん04/12/13 04:47:03ID:???
>>766
http://www.php.net/manual/ja/features.file-upload.php
0768nobodyさん04/12/13 10:28:30ID:???
>>750
コーディングスタイルを見直した方が良いのでは。
0769nobodyさん04/12/13 11:40:55ID:???
>>750
型宣言や、Perl で言うところの use strict; ほしいね。
完全じゃないけど、とりあえず
error_reporting(E_ALL);
とか。
0770nobodyさん04/12/13 13:17:33ID:???
確かに型があやふやなのはうざい時あるな。
0771nobodyさん04/12/13 13:22:41ID:???
以下のようなものってどう作ればいいんでしょうか?

自サイトのPHP⇒他のページクリックさせた後に自分のサイト(とあるコンテンツ)
ググッてみてもわからず。本を見てもわからず。
だれか知識ある人教えてください。。
0772nobodyさん04/12/13 13:29:50ID:???
よく意味が分からんが不可能な気がする
0773nobodyさん04/12/13 13:42:01ID:???
>>772
私も最初、そんなことできないと思っていました。
でも、とあるサイトで使われてるんすよね(汗
他のページに移動された時に表示されていたアドレスは
http://hoge.com/script.php?%FE%17%FD95&8D%8CE%EF%870%・・と30文字くらい
socket使って読み込ませてなんかしてるのかな?と思いますが
なにがなんだかわかりません。

下手な説明ですみません。。だれかわかる人ヒントでもいいから下さい。


0774nobodyさん04/12/13 13:43:18ID:???
エロサイトの強制広告クリックか
0775nobodyさん04/12/13 13:56:06ID:???
質問の文章が全然わからない。

> 自サイトのPHP⇒他のページクリックさせた後に自分のサイト(とあるコンテンツ)

たった1行だけかよ。
手を抜かずにしっかり書け。
0776nobodyさん04/12/13 14:00:04ID:???
すみません。今から書き直します。。。
0777nobodyさん04/12/13 14:01:46ID:???
いまいち意味が読み込めないけど

PHPは動作してるのは鯖だからブラウザの制御とかむりっぽ
JavaScript、VBScript、Spy-ware
のほうが怪しいと思う
0778nobodyさん04/12/13 14:05:19ID:???
じゃあエロサイト見てくるか
077976604/12/13 14:08:26ID:???
>>767
レスありがとうございました。
ファイルサイズが取得できないのが原因でした。。
$_FILES['userfile']['size']これでサイズ取得できないのはなぜでしょうか?
$_FILES['userfile']['name']これでファイル名は取得できてます。
0780nobodyさん04/12/13 14:12:05ID:???
すみませんこれが限界っす。
なにがどう行われているかわからず説明もうまくできませぬ。。

自サイト(http://hoge.com)
自サイト内のリンクをクリック!
     ↓
サイトAが表示される(サイトAは自サイトとは無関係)
サイトAが表示された時のアドレスは
http://hoge.com/script.php?%FE%17%FD95&8D%8CE%EF%870%・・
     ↓
サイトA内にあるフォームクリックする。
     ↓
自サイトのとあるコンテンツを表示
0781nobodyさん04/12/13 14:14:18ID:???
>>777
いやそこ携帯サイトなんすよ
めるらんにそのサイトのアドレス入れときます。
エロサイトで携帯からしかみれません。。orz
078276604/12/13 14:20:04ID:???
>>780
他人のサイトを操作するのは不可能
078376604/12/13 14:25:36ID:???
ただし、きみがやりたいことはできないこともないけど
また迷惑なエロサイトが増えると思うと教える気が・・・
0784軟式PHP04/12/13 14:29:29ID:???
>>779
<input type="hidden" name="MAX_FILE_SIZE" value="数字">
の数字以上のファイルをアップロードしようとしてるからじゃないのかね。
078576604/12/13 14:43:11ID:???
>>784
ありがとうございます。
まさしくそのとおりでした
それでサイズ取得できなかったorz
0786nobodyさん04/12/13 14:49:48ID:???
>>783
強気な766と、

>>785
弱気な766・・・
0787nobodyさん04/12/13 15:06:26ID:???
人それぞれだな。・・・ん?
078876604/12/13 15:15:12ID:???
ただ礼儀をわきまえてるだけです。

教えていただいた人には低姿勢で返答するのが礼儀です。

教えてあげる人に弱気でおしえてどうする
0789nobodyさん04/12/13 15:45:08ID:???
>>780
それはリンク元のサイトとサイトAが知り合いなんじゃね?
怖くないからURL晒してみなさい
0790nobodyさん04/12/13 15:46:28ID:???
と思ったら携帯専用サイトだったか・・・。
まんどくせ
0791nobodyさん04/12/13 15:53:49ID:???
>>780
自サイトがサイトAのページをfileか何かで読んでるんじゃないの?
サイトAのフォームのポスト先が相対指定か、preg_replaceで置き換えてるとかして
自サイトへ返すようにしてるとか

というか、自サイトにサイトAと同じ内容を表示するページを
固定で持っているだけのような気がしてきた・・・
0792nobodyさん04/12/13 15:54:53ID:???
>>789
いやリンク元とサイトAは全く関係ないサイトです。


やはりこれは技術的に難しいということですかね。orz
0793nobodyさん04/12/13 15:56:47ID:???
>>792
とあるコンテンツのURLってどういうURLなの?
決まったスクリプト名を返すんだったらRefererからごにょごにょすればいいだけだけど
0794nobodyさん04/12/13 16:43:46ID:AgI/S2Z3
デジカメで撮影したJPGファイルをホームページに貼り付けています。
JPGファイルのEXIFには撮影日時の情報などが含まれているんですが
この日時を検出して、写真の下に撮影日時として紹介したいと思っている
のですが、PHPを使って自動処理化することはできるでしょうか?
0795nobodyさん04/12/13 16:46:04ID:???
人様のものを自分のもののようにみせたいとかでは?
0796nobodyさん04/12/13 16:55:15ID:???
>794
イメージ関数にありますよ。マニュアル見てね。
0797nobodyさん04/12/13 17:18:12ID:???
>>795
フィッシング詐欺の手口ですかね
0798nobodyさん04/12/13 19:51:54ID:???
>>766はフィッシング詐欺のサイト作ってるってことか。
0799nobodyさん04/12/13 19:52:52ID:???
まちがった>>780だ。orz
080078004/12/13 20:19:56ID:???
なんとか自己解決できますた。
お迷惑お掛けしました。。。
0801nobodyさん04/12/13 20:40:50ID:???
もうけた金はちゃんとばらまけよ
080276604/12/13 22:02:06ID:???
>>780

どうやって自己解決したのか書けよ
それが礼儀ってもんだ
080378004/12/13 22:07:51ID:???
>>802
「書いてください」だろ。
それが人に物を頼む態度かよ。。。
0804nobodyさん04/12/13 22:43:56ID:???
東京・東海は景気良いから駄目
札幌の時計台周辺にばら撒けよ
今なら新潟駅周辺とかお勧めだ
080578004/12/13 23:11:54ID:???
偽者いっぱい
0806nobodyさん04/12/13 23:17:41ID:???
マニュアル嫁。
080787004/12/14 00:24:47ID:???
モズクいっぱい幸せいっぱい
0808nobodyさん04/12/14 00:26:34ID:???
騙りミスダサッ
0809nobodyさん04/12/14 00:29:47ID:???
桃色頭脳な808にハッピーチアーズ !!
0810nobodyさん04/12/14 00:34:33ID:???
なんかそんなコテいたな
0811nobodyさん04/12/14 00:38:31ID:???
なんかお前センスあるな
0812nobodyさん04/12/14 00:47:59ID:???
プロ誤爆乙
0813nobodyさん04/12/14 11:24:41ID:???
<入力画面>
   ↓↑
<確認画面>
   ↓
<完了画面>
という流れで、確認画面から入力画面に戻ったとき、
ラジオボタンなどの入力値を引き継ぐ良い方法は無いでしょうか?

現在は確認画面からsubmitで入力画面に送信し、
↓こんな感じでやっているのですが、いっぱいあると面倒くさくて・・・。
<input type="radio" name="ans" value="はい" <? if($ans == "はい"){ echo "checked";} ?>> はい
<input type="radio" name="ans" value="いいえ" <? if($ans == "いいえ"){ echo "checked";} ?>> いいえ

0814nobodyさん04/12/14 11:31:13ID:???
>>813
文字列比較は出来ないよと言いつつ
そういうやり方しかないよ基本的には
0815nobodyさん04/12/14 12:40:32ID:???
>>813
HTML_QuickFormとかでなんとかなるんじゃない?
使ったことないけど。

ちなみに俺はSmarty側でそんな感じでやってる。
0816nobodyさん04/12/14 12:43:09ID:???
htmlコードの手前で一括処理して、
htmlコードの中には変数の出力のみにしたほうが、
後々の成長を考えたらいいかもじゃありません?
その方が面倒くささも減りませんか?

それとついでに、valueの値は英数にしておいた方が無難かもですね。
0817nobodyさん04/12/14 13:21:32ID:???
>>813

$anschk[$ans] = ' checked';

print <<<_CHK_
 <input type="radio" name="ans" value="yes"$anschk['yes']>Yse
 <input type="radio" name="ans" value="no"$anschk['no']>No
_CHK_;
081881304/12/14 13:34:32ID:???
みなさん有難うございます。
どの案もそれぞれ役に立ちそうです。
大変参考になりました。
0819nobodyさん04/12/14 13:38:32ID:???
>>883
CGI.pmだとこういった処理は楽出来たのだけどな。(デフォルトで以前入力した値)
一応、HTML_QuickFormでもdefault値が設定できるので簡単に出来ます。他には、

$ans_check[$ans] = ' checked="checked"';
<input type="radio" name="ans" value="yes" <?= $ans_check['yes'] ?> /> Yes
<input type="radio" name="ans" value="no" <?= $ans_check['no'] ?> /> No
0820nobodyさん04/12/14 14:11:50ID:???
>>883
がんばれ。
0821nobodyさん04/12/14 14:13:35ID:???
>>813
$_SESSIONに放り込んでおく。
0822nobodyさん04/12/14 14:22:57ID:???
>>821
論点が違う馬鹿ハッケソ。
0823nobodyさん04/12/14 14:29:27ID:???
ユーザーにログインしてもらっていろいろ操作してもらうスクリプト書いてるんですが
パスワードとIDの管理がどうすればいいのかわかりません。
ログイン→クッキーにIDとパスワード格納→ページごとにいちいちクッキーチェックする。
って感じでいいのでしょうか?これでセキュリティー上の問題とか無いですかね?
教えて下さい。お願いします。
0824nobodyさん04/12/14 14:45:08ID:???
>>823
俺もどうやるべきなのかって知りたいんだけど、
クッキーにIDとパスを保存するんじゃなくて、
ログイン中!っていう情報を期限付きでクッキーに保存じゃないかい。
0825nobodyさん04/12/14 14:45:08ID:???
クッキーにIDとPASS送るのはタブーだが、小規模ならええんじゃない?
セッションという項目を調べる。
0826nobodyさん04/12/14 14:51:11ID:???
IDとパスワードでログイン処理してサーバーでユニークかつ時限性のセッションIDを生成(サーバーで対応づけて保持する)、
そのセッションIDをクッキーに入れるなどしてユーザーを特定。
PHPのもつセッション機能も用途によっては使えるけど、
サーバーでDBを使うならセッション機能を実装するのは大した手間ではないです。
0827nobodyさん04/12/14 15:05:10ID:???
あと、hiddenでIDを埋め込み、ページの初めでそれを判定する
全てのページ毎にね。
信用度は下がるけど、手軽に判定したいならOK
0828nobodyさん04/12/14 15:08:47ID:???
>>822
えーと、どこが?
クライアントからサーバへ情報を送るところは、入力->確認の部分だけで
あとは全てサーバ側だけで処理できると思うが?

具体的には、
入力:GETなりPUTなりで、サーバにフォーム情報を送信
確認:入力から送られるREQUEST情報を取得、$_SESSIONに格納
入力(既存の入力情報あり):$_SESSIONをみて入力情報があれば、初期値として表示
完了:$_SESSIONの情報を表示

で、OKだと思うけど。
082982804/12/14 15:09:52ID:???
おっと足りない
完了:$_SESSIONの情報を表示、$_SESSIONの情報をクリア
083082204/12/14 15:27:56ID:???
>>828
それは値の引渡し方法のことでしょ。
813は、値をラジオボックスの値と比較してチェックするかしないかの箇所を
簡単に出来ないかって聞いてるんだよ。
0831nobodyさん04/12/14 15:43:24ID:???
>>825
セキュアでかつ
セッションクッキーでもだめ?
パスワードはmd5とかして。

セッションハイジャックのことを考えたら
IDパスをクッキーに書いたほうが
むしろ安全な気もするんだけど
0832nobodyさん04/12/14 15:44:05ID:???
Win2K+Apache2.0.52+PHP4.3.9+ImageMagick6.1.6でBMPのサムネイルを作ろうとしています。

$com = "convert -sample $w" . "x" . "$h $path $dir\\thumbnail\\$bn.jpg"
exec($com);

と、こう書くと、Apacheのエラーログに3番目の引数が「無効なパラメータ」と書き出される。
他のコマンド実行関数を使ってもだめ。$comの内容をcmdで打ってやるとうまくいく。
要は、PHPからこのコマンドを実行しようとするとダメというところまで分かったものの、解決方法が見つかりません。

お助けください〜っ!!
0833nobodyさん04/12/14 15:52:38ID:???
>>830
あらま、それは失敬。”など”ってんで、TEXTAREAとかも考えてしまった。
すみませんね、”馬鹿”で。

じゃ、別のアプローチを…
JavaScriptでクライアントにやらせる、XSLTで楽する。
0834nobodyさん04/12/14 15:57:22ID:???
>>831
セッションハイジャックって、どういうタイプのものを意図してます?
パケット覗くとか?
最終アクセスから一定の時間で無効になるセッションIDなら、
パケット覗かれる以外は大丈夫だと思いますけど。
さらに慎重を期すなら、(申し込みなどの)重要なアクションの前に
あらためてパスワード入力を求めるようにすればいいはず。できればSSLで。
Yahoo!オークションとかAmazonとかのような感じで。
0835nobodyさん04/12/14 16:05:13ID:???
クッキーだとクライアント側が覗けて、それを元にして他の人になりすます
ことが出来る危うさがあるだけ。

いづれにしても、規模に夜。
一般に金が絡まないのなら、そんなに気合入れなくてもいいと思うけど。
083682204/12/14 16:05:50ID:???
>>833
まぁ、そうムキになりなさんな。
文面から言って馬鹿じゃなさそうだし、こちらも軽率だったよ。スマソ。
0837nobodyさん04/12/14 16:11:14ID:???
SSL限定だがクッキーにsecureフラグ持たせるってのもセキュリティ上昇に役立つよ。
0838nobodyさん04/12/14 16:23:22ID:???
ふたりはセキュア
0839nobodyさん04/12/14 16:35:10ID:???
ふたりはプリクマっていうFlashあったの思い出した
084083204/12/14 16:37:50ID:???
自己レス。
convert って、フルパスでやんないとだめってことが分かりました。
FS変換のDOSコマンドにもconvertがあったからでした。
お騒がせしました。
0841nobodyさん04/12/14 18:53:35ID:???
>>835
セキュアなセッションクッキーが覗かれるなら
セッションIDも覗かれるわけで・・・
0842nobodyさん04/12/14 18:59:09ID:???
ふたなりセキュア?
0843nobodyさん04/12/14 19:23:30ID:xGw6uJyx
証明書が必要なSSLサイトの情報をPHPで引っ張ってくることは可能?
0844nobodyさん04/12/14 19:24:22ID:???
マニュアル見ろ
0845nobodyさん04/12/14 23:59:36ID:???
メールを送信するのにmb_send_mailを使ってるんだけど
これって簡単にはファイル添付できないよね。
みんなどうやってる?
もしかして自分で本文にマルチパート書いてる?
0846nobodyさん04/12/15 00:17:55ID:ZhQlQC75
>>831>>834
漏れは、認証終了したら、
分、秒、ipアドレス、ポート、をcryptでごにょごにょして
それを、tempDBに格納。
以後はTEMP DBで照合し、OKなら、消して、またごにょごにょ、
tempDBに格納。照合のくりかえし。
とか、大げさなことをしてた。ワンタイムパスワードみたいな感じだな。
実際のとこセッションハイジャックなんて、理屈では出来ても
そうそう上手くいくもんでもないし。

入力値のチェックと、get渡しで、ヤバいクエリーにならない
設計ってのはいつも気をつけてる。
0847nobodyさん04/12/15 01:13:22ID:???
>>845
mb関連は自分で処理(結構端折ってるが)して、
送るのは添付が出来るクラスライブラリを利用させてもらってる。
0848nobodyさん04/12/15 09:35:17ID:???
>>846
tempDBにとこの処理がボトルネックになりそうだな・・・

ワンタイムパスワード?を
アクセスのたびに生成ってことですよね?
それだとIEのShift+クリックで新しいウィンドウで開いたときとか
おかしくなる?
それは使用想定外だからNG?
0849nobodyさん04/12/15 15:39:46ID:O6FIBI2+
preg_match の [array matches] ように引数が指定されたときだけ
値を入れて返すということをしたいのですが、リファレンス引数を
省略できるように関数を定義するには、どう記述すればいいのでしょうか?
0850nobodyさん04/12/15 16:31:18ID:???
>>849
function hoge($arg = "default") {
if ($arg == "default") return;
else {
処理
return (値);
}
085184904/12/15 16:40:03ID:???
 } 足りないし
無理にdefault入れる必要もないか
function hoge($arg = "") {
if ($arg == "") return;
else {
処理
return (値);
}
}
0852nobodyさん04/12/15 17:17:23ID:nSzivOJN
cronでPHPのスクリプトを実行したいのですが上手くいきません。

以下のように記述しています。
0 * * * * /usr/bin/php -f /home/httpd/html/ファイル名.php

MAILTOで記述したアドレスに届くメールには
Could not open input file: /home/httpd/html/ファイル名.php.
と表示されます。

コマンドで
/usr/bin/php -f /home/httpd/html/ファイル名.php
を実行すると動作します。

メールがくるということはcronは動作しているようですし
直接コマンドを打つと動作するので不思議なのですが
何が原因だかわかりません。

php5.0.2です。宜しくお願いします。
0853nobodyさん04/12/15 17:27:59ID:???
PHP5.0.2+Mysql4.17の環境でmysqliを利用して接続しているのですが
Mysql4.0xでのmysql_result()の様に、クエリから返ってくる
結果を多重配列(行x列)で取得するにはmysqliではどうしたらよいのでしょうか?

$sql = "SELCT * FROM Hoge";
$result = mysql_query($sql,$con);
$Temp[0][0] = mysql_result($result,0,0);

もう2週間程悩んでますorz
宜しくお願いします。
0854Goro04/12/15 17:38:58ID:???
ヘッダとフッタを別ページに分けて、PHPで読み出して、
全ページのヘッダとフッタを統一する事にしました。
とは言っても、PHPでどうしたら良いか分かりません。
そう言うやり方が書いてあれば教えて下さい。
085584904/12/15 17:40:36ID:O6FIBI2+
>>850さん
上に書いたように、知りたいのはコピー渡しではなく参照渡しのケースです。
参照だとデフォルト値の設定はできませんよね。
0856nobodyさん04/12/15 17:52:10ID:???
>>852
cron に /home/httpd のパーミッションの権限がないからだよ。
cron の権限ってすごく低いからね。
# 852, 853 は 5.0.2 利用者か。PHP5 ユーザ、もっと増えると嬉しい
085785304/12/15 17:52:54ID:???
>>854
includeでぐぐればいいよ
0858nobodyさん04/12/15 18:50:12ID:???
>>856
ありがとう!出来ました。
0859854 Goro04/12/15 18:54:35ID:???
>>857
ありがとうございます。
<?php require("なんたら.php"); ?>
これで良いんですか?includeとの違いがよく分からなくて…
1ページに2箇所これを埋め込む事も出来るんですよね?
0860nobodyさん04/12/15 19:56:52ID:???
>>853
$rows = array();
while( mysqli_more_results() ){
array_push($rows, mysqli_fetch_array(MYSQLI_NUM) );
}

これで$rows[行][列] にデータが入るわけだが。それともこれは目的と違うのか?
0861nobodyさん04/12/15 20:02:16ID:???
>>859
マニュアル嫁
0862nobodyさん04/12/15 20:40:12ID:???
証明書(PFX形式)が必要なSSLサイト情報を
PHPで読み込みたいですが、OpenSSL関数だけで対応できますか?
PFX形式のままでできるものなのでしょか?
0863nobodyさん04/12/15 23:12:53ID:ZhQlQC75
>>848
おそらく、別のIDを生成するからそのような問題は
おこってないですね。
速度も特に気にならないです。

まず、同時にアクセスがあるようなシステムではないんで。
0864nobodyさん04/12/15 23:34:32ID:???
>>848 さんはページ中にセッションID埋めこむ場合をイメージしてますかね?
その場合は別ウィンドウ開いてから古いページでクリックすると問題ですが、
cookieにセッションIDを入れる場合は問題ないですよ。
0865nobodyさん04/12/16 00:05:14ID:???
windows2000SP4 にapache_2.0.45 をインストールしています。
ここにphp4.3.9をインストールしようとしています。インストーラー版は使っていません。
ファイルのリネームと移動は済んだのですが、php.ini と apacheのhttpd.confの設定ファイルをどのように変更すれば良いのか分かりません。
本や他のサイトを調べてみるとhttpd.confに
LoadModule php4_module c:/php/sapi/php4apache.dll
を追加するように書いてありますが、この文を他のLoadModuleが並んでいる一番下に追加すると、apacheが起動しなくなってしまいます。

できることなら、php.ini と httpd.conf に必要な変更箇所を教えてもらえませんでしょうか?
ファイルのディレクトリは
■apache
C:\Apache2\

■php
C:\php\extensions ←エクステンションのフォルダ
C:\php\sapi
0866nobodyさん04/12/16 00:11:02ID:???
>>865
マニュアルに全部書いてある
086785304/12/16 08:42:40ID:???
>>865
php4apache2.dll
086886504/12/16 09:04:37ID:???
>>867
すいません、そこはphp4apache2.dllにしていました。
086984804/12/16 09:32:00ID:???
>>864
毎回生成するワンタイムパスワード?
もクッキーに書いてるんじゃなかったでしたっけ?
あー、クッキーだからだいじょうぶだ。ごめん

もっとアクセスあるようなサイトだと
ここまでやるのはちょっと気が引けるなー
そろそろスレ違いなのでこのへんで
0870nobodyさん04/12/16 10:09:59ID:???
>>865
だからマニュアルを1回ぐらい読みましょう
PHP4.3.10リリース記念にURLも書いてやる
http://jp2.php.net/manual/ja/install.windows.php
0871nobodyさん04/12/16 10:50:11ID:HJhiNztM
レン鯖のphp4.2.4でセッションを使ったスクリプトを実行しているんですが
unset($_SESSION['xxx'])にてセッション変数を削除しても削除されません。
unset直後にvar_dumpすると削除されているんですが、スクリプト終了後
別スクリプトの頭でvar_dumpさせてみると削除したはずの$_SESSION['xxx']が残っています。

自宅の鯖(php4.3.9)では上記現象が発生しないので4.2.4固有の挙動なのかとも思ったのですが
ご存じの方いたら教えて下さい、お願いします。
0872nobodyさん04/12/16 11:43:50ID:???
4.3.10は「アップグレードを強く推奨」だね。
納品したところからまた問い合わせ来るんだろうな……('A`)マンドクセ
0873nobodyさん04/12/16 13:37:02ID:bb6Ck4vI
Apacheの設定で、拡張子がphpのものしかphpとして実行しないという設定になっている場合、つまり…
AddType application/x-httpd-php .php
としか書いてない場合には、htmlからphpを読み込んで使うっていう事は出来ないですよね?
JavaScriptの感覚で
<script language="JavaScript" src="sample.js"></script>
っていうカンジのは無いのかな。
拡張子htmlでphp動かしたい…。(Apacheの設定は触れないレンタルサーバなのです。)
0874nobodyさん04/12/16 13:49:44ID:???
>>873
javascriptタグで読み込めばいいじゃん。
PHP側はdocument.write吐けばいいじゃん。
0875nobodyさん04/12/16 14:02:25ID:???
>>873
.htaccessもだめなんだ?
087684904/12/16 14:07:00ID:???
参照引数の省略ですが、結局 >>849 で書いたことはできないということでしょうか?
どなたかご教授お願いします。
087787304/12/16 14:11:26ID:???
>>874 あついです!やってみます!ありがとう!
>>875 置けるんですけど、せいぜいIndexと認証位なんですよね…。
087887304/12/16 14:21:50ID:???
>>874 ぬぅ…結局読み込まれたPHPスクリプト部分が実行できないですね(当たり前か…)
どうにかいい方法ないかなぁ…。
0879nobodyさん04/12/16 14:22:01ID:???
>876
できないよってマニュアルには書いてある。
0880nobodyさん04/12/16 14:29:49ID:???
>>878
何ができないのだ?
俺は以下で普通にPHP動かしてるYO!
<script language="JavaScript" src="sample.php?param=xxx"></script>
0881nobodyさん04/12/16 14:42:44ID:0eREgUDJ
ページを読込時にブラウザのクッキーが有効になっているか確認する方法はありませんでしょうか?
それかクッキーがセットできないかどうか値を返してくれる関数とかありますでしょうか?
088287304/12/16 15:07:34ID:???
俺なんてバカなんだ;できないっす;
HTML側
<script language="JavaScript" src="aaa.php"></script>
PHP側
echo $bbb;
で、$bbbをHTML側に表示させたいんだけど、上の書き方じゃだめですか?
0883nobodyさん04/12/16 15:22:22ID:???
>>881
一度クッキーを食わせてみて、食ってなかったら無効と判断。
0884nobodyさん04/12/16 15:39:04ID:Vcis26Yu
セッションについてなんですが、「分かってるけど理解していない」みたいな
中途半端な状態です。セッションについて分かりやすく説明してあるサイトを
教えていただけませんか?
0885nobodyさん04/12/16 15:46:30ID:???
>882
>874 の言うとおりdocument.write使え。
JavaScriptとして読み込んでるんだからただのテキスト書いたってだめだろう。
088684904/12/16 15:48:17ID:???
>>879 さん
そうですか。
つまり、preg_match とまったく同じ関数を自前で実装するのは
不可能ということですよね?
(PHP標準関数だけにゆるされているインターフェイスと)
参照省略は使い勝手が良さそうな構文だけに残念。
088787304/12/16 16:00:20ID:???
ぬぐぉ…。 HTML側「a.html」
<script language="JavaScript" src="aaa.php"></script>
PHP側「aaa.php」
document.write('$bbb\;');
これだとhtmlに$bbbとはでてくるけど、やっぱphpとして実行されないから、ダメじゃないですか?
同様に<?$bbb?>,'echo $bbb\;',<?echo $bbb\;?>とかでもダメでしょうし…
088887304/12/16 16:06:19ID:???
マジごめんなさい。よく考えたら分かりました(笑)。サーバ側で読まれる時に<?〜?>が実行されるんでしたね。

<?$aaa='1234';?>
document.write('<? echo $aaa; ?>');
迷惑おかけしました。ありがとう!
0889nobodyさん04/12/16 16:06:42ID:???
アフォなのか?

http://hogehoge/aaa.php

を見たときjavascriptになっているようにphpを出力しろよ。

document.write('<?php echo $bbb; ?>');

だろ?
0890nobodyさん04/12/16 16:07:01ID:???
一歩遅かった件について
089187304/12/16 16:12:59ID:???
>>889 サンキュです!
0892nobodyさん04/12/16 16:48:46ID:???
>>873
改行とか、エスケープしないといけない文字とか気をつけろよ。
0893nobodyさん04/12/16 17:06:12ID:???
>>886
可変長引数リストでfunc_get_arg ()とかはどうなんでしょうか
使ったことないんで参照わたしが可能かどうかはわかりませんが
0894nobodyさん04/12/16 17:46:12ID:???
>>886
PHP 5.0.3だけど
<?php
function hoge($arg1, &$arg2 = "") {
$arg1 = "hage";
if ($arg2) $arg2 = "huga";
}
$aaa = "aaa";
$bbb = "bbb";
hoge($aaa, $bbb);
echo $aaa;
echo $bbb;

hoge($aaa);
echo $aaa;
?>
で動作します
089584904/12/16 17:57:35ID:???
どもです。
>>893
この質問をするまえにそれを使おうとしたんですが
引数宣言がない状態で受けた変数をどうやって参照かコピーか区別
しているのかよくわからなかったので途中で組むのを止めてしまいました。

>>894
手元の環境 PHP 4.3.6 で実行したところ、
Parse error: parse error, unexpected '=', expecting ')'
とエラーがでます。エラー行は function 宣言部です。
どうやらバージョン依存みたいですね。
0896nobodyさん04/12/16 18:01:30ID:???
<?php
function hoge($arg1, $arg2 = "") {
$arg1 = "hage";
if ($arg2) $arg2 = "huga";
}
$aaa = "aaa";
$bbb = "bbb";
hoge($aaa, & $bbb);
echo $aaa;
echo $bbb;

hoge($aaa);
echo $aaa;
?>
089787304/12/16 18:13:40ID:???
>>892 はいです!ありがとうございます!この板あちーっす!
0898nobodyさん04/12/16 18:19:40ID:???
>>896
一応コメント
Call time pass by reference は非推奨になってるのでphp.iniの設定によってはエラーになります
0899nobodyさん04/12/16 19:17:53ID:ODdTQvik
個別のデータをテキストファイルに書いておいて、
それを、要素に分割して取り出したいのですが、

00 00 00 00 00 00

と、2バイト空白2バイトと並んでいるので、StrCutでも空白でexplodeでも
どちらでも取り出せるのですが、どっちが早いでしょうか?
0900nobodyさん04/12/16 19:26:35ID:???
>>899
StrCutとexplodeの処理を1万回Whileで回した結果を後学のためにここに書いておいてくれ
0901nobodyさん04/12/16 19:53:54ID:???
ついでにsscanf()も。
0902nobodyさん04/12/17 03:46:37ID:???
それでは更についでにpreg_matchとeregも
0903nobodyさん04/12/17 03:50:06ID:???
split
0904nobodyさん04/12/17 04:03:01ID:SNntwEz2
>>902
ereg
0905nobodyさん04/12/17 04:34:07ID:???
どっちが速いか、という質問はたまにあるが、自分の環境で試しはしないのな。
まあ試す人はここで質問しないだけだけど
0906nobodyさん04/12/17 05:37:20ID:???
ちょと質問です。

# Perl
open OUT, $file;
select OUT;
print 'ファイルへ';
select STDOUT;
print '標準出力へ';


これと同じことを PHP でやりたいんですが
どう書けばよいのでしょうか?
0907nobodyさん04/12/17 06:48:23ID:???
>>906
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0908nobodyさん04/12/17 07:02:54ID:???
>>906 それこそ正に




      「マニュアル嫁」
0909nobodyさん04/12/17 14:37:28ID:???
ウチのレン鯖のPHP、safe_modeがoffなんだけど、
これって、共有している人から覗かれたりしないかな…。
データベースの情報も、書いてるんだけど大丈夫かなぁ??
0910nobodyさん04/12/17 14:38:03ID:???
Apacheモジュールならまずいかもね
0911nobodyさん04/12/17 14:44:14ID:???
>>910
CGIじゃないです(><)
別のサーバー検討ですかね…。
0912軟式PHP04/12/17 14:46:05ID:???
http://www.itmedia.co.jp/enterprise/articles/0412/17/news007.html
(*´・ω・)⊃)・ω・`*)
0913nobodyさん04/12/17 14:53:40ID:???
PHPのsafeモードって穴だらけだし、もともとそんなにセキュアだと思わない方が。
スピードと負荷でApacheモジュール、セキュアでCGIときちんと使い分けた方が良いよ。
CGIじゃないから駄目と単純に言えない。
0914nobodyさん04/12/17 15:00:39ID:???
穴なんて無いよ
091590904/12/17 15:06:07ID:???
$hoge = `more /(ウチのフォルダ)/(パスワードを書いてるファイル)`;
echo $hoge;

ってしたときに、safe_modeがoffだったら見れますよね…。
091684904/12/17 17:35:23ID:???
>>896 さん
無事動きました。頭に & 指定が必要なところが玉に瑕ですが
参照省略への道が開けた気がします。ありがとうございました。
0917nobodyさん04/12/17 18:18:38ID:???
4.3.10にしたらWarning: Illegal offset type in〜がでるようになってしまった
他にもこういう状況のスクリプトありますか?




↓が動かなくなってしまった
4images
http://www.4homepages.de/
0918nobodyさん04/12/17 23:12:40ID:???
チャンクコーディングはどうすればいいのでしょうか?
知ってる方がいましたらよろしくお願いします。
0919nobodyさん04/12/18 01:38:49ID:???
/.jpにもあったけど
4.3.10に更新するときextensionに未対応の物が入ってると動作しない場合があるらしい
家の環境でApache2+PHP4.3.10+ZendOptimizer2.5.5だとforeach()が正常に動かなくなった
ZendOptimizerをコメントアウトして再起動したら正常に動いたがな
phpMyAdminが動かなくてちょっと困ってたぜ
0920nobodyさん04/12/18 02:12:32ID:???
>>919
オプティマイザとかデバッガとかのextensionは
バージョン上げる際には先ずは外してやるものだと思われ。

ZendものはPHPのバージョンに直ぐに追従するものが多いが、
サードパーティのはなかなか追従しなくて、本体のバージョンを
上げるのを躊躇してしまうことはありがち。
0921nobodyさん04/12/18 04:20:44ID:???
>>918
HTTPでとってこようとしてるなら、PEARのHTTPが勝手にやってくれるぞ。
そうじゃないならしらない(´・ω・`)ショボーン (,,゚Д゚) ガンガレ!
092291804/12/18 07:26:10ID:???
>>921
レスthx
もうちょっと頑張ってみます
0923nobodyさん04/12/18 08:53:40ID:???
>>919
PHP 4.3.10 が公開されてから ZendOptimizer 2.5.7 が出ているので一度試してみれば?

/.J の投稿は ZendOptimizer 2.5.7 でも正常に動作しないという問題みたいなので、
他にも何か問題があるのかもしれないけど。
0924nobodyさん04/12/18 16:57:59ID:???
>>923
情報どうも
とりあえず2.5.7は落としておくとします
それでも自宅でPHPの動作テストしてるくらいだからあまりOptimizerは必要ないけどな
0925nobodyさん04/12/18 18:38:20ID:???
以下のようなスクリプトを書いて表示させてみたら、

$a = 'an apple';
$hoge = include('foo.txt');
/* [foo.txt]
I am <?= $a ?>.
*/
echo 'Eg:\r\n'
echo $hoge;

最後のechoで1が出力されてしまったうえに、最初のechoの前に$hogeで読み込まれたテキストが
表示されてしまって、どうも思い通りの結果になりません。
どうしたらいいのでしょうか?
0926nobodyさん04/12/18 18:45:10ID:???
>>925
お前何やってんだ?

PHP: include - Manual
http://jp2.php.net/manual/ja/function.include.php
0927nobodyさん04/12/18 18:48:37ID:???
>>925
includeじゃなくてfile_get_contents使えば?
0928nobodyさん04/12/18 18:56:28ID:???
>>927
いや、それだとfoo.txt内の$aが展開されないじゃないですか。
だからincludeを使おうと思ったのですが……もちろんincludeの挙動は解っているつもりでしたが、
まさか返り値が1だとは知らなくて。他の手段が思いつかなかったので、ここで質問させていただきました。
0929nobodyさん04/12/18 19:33:18ID:???
この手の質問は何度か出てるな
結論は「テンプレート使え」だっけ?
0930nobodyさん04/12/18 19:35:53ID:???
eval使えってのもあったなぁ。
この場合だと echo $hogeの代わりに include('foo.txt');でもいい気がするが。
0931nobodyさん04/12/18 19:50:48ID:???
出力を変数に取り込みたいって事だから ob_start, ob_get_contents 辺りでは?
0932 ◆.jC7ANgFY. 04/12/18 21:20:37ID:???
>>928
includeの返り値は1と決まっているわけじゃなくて、returnで指定することもできる。
ここでやりたいことは>931の言ったとおり出力制御関数を使うべき。

ob_start(); include('foo.txt');
$hoge = ob_get_contents(); ob_end_clean();
0933 ◆.jC7ANgFY. 04/12/18 21:58:19ID:???
>>899
sscanf('a b c d', '%c %c %c %c', &$a, &$b, &$c, &$d) // 24
$ret = explode(' ', 'a b c d') // 27
$ret = preg_split('/ /', 'a b c d') // 38
$ret = split(' ', 'a b c d') // 49
$ret = spliti(' ', 'a b c d') // 51
(数値の単位は1+1を処理する時間を1としたもの。)
0934nobodyさん04/12/18 22:35:59ID:???
eval()使わんでもバッファリングせんでも
echo 'Eg:\r\n'
$a = 'an apple';
include('foo.txt');
でいけるやん。
0935nobodyさん04/12/19 03:38:23ID:???
あれ、今、グーグルのトップ繋がる?落ちてない?
0936nobodyさん04/12/19 04:23:24ID:???
今確かに調子悪いなGoogle
俺は繋がるがな
0937nobodyさん04/12/19 05:26:12ID:???
>>936
http://that3.2ch.net/test/read.cgi/gline/1089987812/643
0938nobodyさん04/12/19 05:39:45ID:Sywx/9AY
HTMLのタグをPHP(4.x)で出力する場合、
echo("<table border=\"0\" width=\"$width\" height=\"$height\">");
という風にダブルクォートをエスケープしてやらなくてはならないですよね。

上記の例くらいならば何とかなるのですが、
出力文字列が長くなると製造効率が悪い、ダブルクオートの開始と終端が分かりにくいなど
色々問題が出て来ると思うので、もっと効率の良い方法は無いでしょうか?

試したこととしては、
1. シングルクォートで囲む
→ $width等が展開されないのでダメ
2. ヒアドキュメントを使う
→ 上記の例には無いが、定数を使いたい場合は定数が展開されないのでダメ
と、どれもイマイチ解決しきれません。

理想としては、Perlの print qq/〜〜〜/; のように
クォーテーション以外の記号で括れれば良いのですが、
同じような表記方法、もしくは代替案にはどのようなものがあるでしょうか?
0939nobodyさん04/12/19 08:38:07ID:???
漏れなら
echo '<table border=0 width="',$width,'" height="',$height,'">';
こうやってシングルクォートの外に出すかな
パーサの変数名解釈に影響を受けにくいだろうし

解決策じゃないが・・・・
0940nobodyさん04/12/19 10:21:48ID:???
ダブルクォートの中で{$hoge}でいいんだけど
俺は癖で
echo '<table border="0" width="'.$hoge.'"〜〜〜
てやってるな
タグのときはシングルで囲った方がいちいち"エスケープしなくてすむし
0941nobodyさん04/12/19 11:28:40ID:???
>>939
自分は何故かechoとかで、,で複数引数与えるのに違和感がある。
>>940の様に結合してのパターンが多い。
前者の方が内部処理上の効率はよいと思うけど。
0942nobodyさん04/12/19 11:51:04ID:???
>>941
同じく >>940 より >>939 の方が効率が良いと思っていたけど、
実際に CLI 版の PHP で確認してみると、最近の PHP では文字列を
連結した方が速いみたい。

$ time php -r 'for($i=0; $i<100000; ++$i) echo "a"."b"."c"."d"."e";' > /dev/null
$ time php -r 'for($i=0; $i<100000; ++$i) echo "a"."b"."c"."d"."e";' > /dev/null

PHP 4.3.5 以降では文字列連結の方が速くなった。
このあたりで何か PHP 内部で変更があったのかもしれない。

OS は Linux。環境やコンパイルオプションによって変わるのかも
しれないので気になる人は試してみるといいと思う。
094394204/12/19 11:52:41ID:???
>>942 のコードを間違えた。片方はカンマを使って調べた。

$ time php -r 'for($i=0; $i<100000; ++$i) echo "a","b","c","d","e";' > /dev/null
0944nobodyさん04/12/19 15:48:00ID:???
やってみた
ピリオドで繋いだヤツ
$ time php -r 'for($i=0; $i<100000; ++$i) echo "a"."b"."c"."d"."e";' > /dev/null
real 0m0.841s
user 0m0.340s
sys 0m0.100s
コンマで区切ったヤツ
$ time php -r 'for($i=0; $i<100000; ++$i) echo "a","b","c","d","e";' > /dev/null
real 0m0.677s
user 0m0.490s
sys 0m0.100s
ついでに
$ uname -a
Linux debian 2.4.18-bf2.4 #1 Son Apr 14 09:53:28 CEST 2002 i686 unknown
0945nobodyさん04/12/19 16:15:51ID:???
>>938
printfは?
0946nobodyさん04/12/19 18:02:01ID:???
echoで , を使う利点って、
echo 'abc' , $a+1 , 'def';
と括弧を使わずに書ける位しか思いつかないな
あまり意味無いが
0947nobodyさん04/12/19 18:36:53ID:???
935 936は自演かつ、Yahooの回し者
検索のシェアがgoogleに奪われてるのでどうにかしてgoogleを貶めたいと思っての犯行
何も関係のないPHP質問スレッドを汚すな
Yahooの回し者 う・ざ・い
以上。この書き込みに対するレスはいりません。
0948nobodyさん04/12/19 21:33:48ID:???
        ( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ? ( ゚д゚)ハァ?
        ( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ? ( ゚д゚)ハァ?
   ∧__∧  ( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ? ( ゚д゚)ハァ?
   ( ´・ω・)  ( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ?
   /ヽ○==○( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ?
  /  ||_ |( ゚д゚)ハァ?( ゚д゚)ハァ? ( ゚д゚)ハァ? ( ゚д゚)ハァ? ( ゚д゚)ハァ?
  し' ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_))  ̄(_)) ̄(_)) ̄(_))  ̄(_))
0949nobodyさん04/12/19 23:10:00ID:???
突然PHPのsessionが使えなくなりました
なぜ?
0950nobodyさん04/12/19 23:12:52ID:???
くっきえ
095194904/12/19 23:42:02ID:???
cookieに保存してません..
0952nobodyさん04/12/19 23:48:29ID:???
質問するときにちゃんと書け
あと隠してることは何だ?
0953nobodyさん04/12/20 03:36:26ID:???
子供が2人います・・・
0954nobodyさん04/12/20 03:43:02ID:???
>>953
原因はそれだ!明日病院に行ったほうがいい。
0955nobodyさん04/12/20 04:02:34ID:???
オブジェクトのプロパティを可変変数のように扱うことってできますか?

$value="property";

$obj->{$value};

みたいな。
0956nobodyさん04/12/20 04:13:33ID:???
>>955
何故試さない
0957nobodyさん04/12/20 13:46:34ID:???
みんなちゃんとPHPのバージョンあげたか?
0958nobodyさん04/12/20 14:26:27ID:???
>>938
俺はperl時代からヒアドキュメント派だな。
定数は変数に落とせば済む事だし。
0959nobodyさん04/12/20 16:13:27ID:V0qt+teK
藻前ら,php3でまだがんばってますか?

http://securityfocus.com/archive/1/384545/2004-12-12/2004-12-18/0
の対応や
php3で
http://www.hardened-php.net/
みたいなことを八っている香具師はイネーガー
0960nobodyさん04/12/20 18:11:38ID:???
combineに相当する配列処理をPHP4でやりたいです。
$a=("一郎","二郎","三郎");$b=("ステーキ","お茶漬け","抜き");
みたいな二つの配列を、
$c=("太郎"=>"ステーキ","二郎"=>"お茶漬け","三郎"=>"抜き");
のようにするにはどうしたらいいでしょうか。
array_pushやcompactとか色々試したのですがうまくいきません(´・ω・`)。
0961nobodyさん04/12/20 18:14:13ID:???
$a = array("一郎","二郎","三郎");
$b = array("ステーキ","お茶漬け","抜き");
foreach ( $a as $key ) $c[$key] = array_shift($b);
0962nobodyさん04/12/20 18:15:20ID:???
っと、$bが空になるな

$a = array("一郎","二郎","三郎");
$b = array("ステーキ","お茶漬け","抜き");
$i = 0;
foreach ( $a as $key ) {$c[$key] = $b[$i]; $i++;}
0963nobodyさん04/12/20 18:19:21ID:???
function combine($a, $b) {
return array($a => $b);
}

$c = array_map('combine', $a, $b)
0964nobodyさん04/12/20 19:18:53ID:???
こういう簡単な処理にもセンスってでるもんですよね
0965nobodyさん04/12/20 21:26:58ID:???
955
でけたー。
別のところでつまづいていたようだ。
0966nobodyさん04/12/21 01:50:57ID:???
$c = array();
foreach($a as $key=>$value) $c[$a[$key]] = $b[$key];
0967nobodyさん04/12/21 04:26:48ID:???
>>963が一番読みやすいプログラムだな
0968nobodyさん04/12/21 05:51:04ID:???
試してみた所、>>963は、php5のarray_combineとは若干結果が異なるようです。

蛇足だけど、
新しく追加された関数は、PHPのマニュアルのしたのコメントに古いバージョンでの実装も書いてる事が多いし。
古いバージョンのPHP向けに、新しく追加された関数を集めたモジュールもあります: http://pear.php.net/package/PHP_Compat
0969nobodyさん04/12/21 05:54:25ID:???
ちょっとそういう所ダルいね
なんか最初の簡易さがどんどん失われてきてるような気がする
0970軟式PHP04/12/21 13:22:16ID:???
同感でおじゃる。
097196004/12/21 18:48:53ID:???
>>960に答えてくれた方ありがとうです。

>>962と>>966は共に目的達成できました。>>966はまだ意味がよく分からないのですが・・・
>>963は配列が入れ子になってしまう(元々$aが配列だからかな?)みたいですね。

foreachはよく分からないので避けてましたが、今回勉強になりました。
にしても、>>960は誤字脱字で(´・ω・`)ショボーンです。
0972nobodyさん04/12/21 19:18:22ID:???
入れ子にならないやつ。中身は>>966と変わらんが。

function combine($a, $b) {
return $c[$a] = $b;
}

$c = array_map('combine', $a, $b);
0973nobodyさん04/12/21 19:24:33ID:???
>>972
mapじゃキーが保持されないんじゃないの
foreach互換にするなら$cをグローバルからインポートする必要がある
0974nobodyさん04/12/21 19:27:15ID:???
以前はforeachよりarray_mapのほうが早かったけどいつのまにか改善されとんな。
0975nobodyさん04/12/21 19:32:03ID:???
>>959
fixされないんで鯖に置けない
0976nobodyさん04/12/21 20:02:10ID:???
画像のサイズを半分にして表示させようと思ったんですがうまく動きません。
↓どこかに記述ミスでもあるでしょうか?

<?php
$size = GetImageSize("./pic/top.jpg");
$image_in = ImageCreateFromJpeg("./pic/top.jpg");
$image_out = ImageCreate( $size[0] / 2, $size[1] / 2);

ImageCopyResized($image_out, $image_in, 0, 0, 0, 0 $size[0] / 2, $size[1] / 2, $size[0], $size[1]);

ImageJPEG($image_out, "./half_size.jpg");
ImageDestroy($image_in);
ImageDestroy($image_out);
?>
0977nobodyさん04/12/21 20:33:28ID:???
>>976
× ImageCopyResized($image_out, $image_in, 0, 0, 0, 0 $size[0] / 2, $size[1] / 2, $size[0], $size[1]);

○ ImageCopyResized($image_out, $image_in, 0, 0, 0, 0, $size[0] / 2, $size[1] / 2, $size[0], $size[1]);
097897604/12/21 21:04:47ID:???
>>977
ウハッ(;´Д`)
オハズカシ・・・

ところで
> ImageJPEG($image_out, "./half_size.jpg");
サーバー上にサイズを半分にしたjpegファイルを書き込む段階で

Warning: imagejpeg() [function.imagejpeg]: Unable to open './half_size.jpg' for writing in /virtual/[my site name]/public_html/index.php on line 34

こんなメッセージをいわれてしまいまして正しく表示されませんでした。
サーバーにて全く新しいファイルを作ることが出来ないよう設定されているからでしょうか?
0979nobodyさん04/12/21 21:09:53ID:???
>>978
パー



                             ミッション
098097604/12/21 21:21:34ID:???
>>979
現在ルートディレクトリ/public_html/のパーミションが705、
つまりオーナー以外は書き込み出来ないような設定になっているんですが
これをユーザーが書き込みが出来るように変更してしまうのは
さすがにまずくはないでしょうか?
0981nobodyさん04/12/21 21:27:34ID:???
>>980
まずいと思ったら書き込みできるパーミッションのディレクトリに
ファイルを作成すればいいだろ
0982nobodyさん04/12/21 21:55:32ID:7Mk0p/NF
指定したURLから返されるhtmlのデータを取得する関数なんてあった?
URLを指定して解析するようなプログラムが作りたいんだけど…(´Д`)
0983nobodyさん04/12/21 21:57:09ID:???
file()かfile_get_contents()
0984nobodyさん04/12/21 21:57:28ID:???
馬鹿はスルーして次スレを頼む
0985nobodyさん04/12/21 22:08:52ID:7Mk0p/NF
>>983
できました!ありがとう!
fileってファイルに書いてあるデータを読み込むだけじゃないんだね。
0986nobodyさん04/12/21 22:29:09ID:???
>>984
他力本願な馬鹿だな
0987nobodyさん04/12/21 22:35:36ID:???
どうぞ池沼さん>>986

【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/
0988nobodyさん04/12/21 22:39:09ID:???
>>983馬鹿
>>986馬鹿
>>987馬鹿

合体して別の何かが誕生しそうだな
0989nobodyさん04/12/21 22:42:12ID:???
>>988
期待を裏切り、しょうもない駄スレが生まれただけで終わった件
0990nobodyさん04/12/21 22:45:04ID:???
990
0991nobodyさん04/12/21 22:56:42ID:???
プロバイダのphpのヴァージョンがぜんぜんあがんないけど
大丈夫か?(コバルトだけど・・・)
0992nobodyさん04/12/21 22:58:25ID:???
なんだかんだで、>>966が一番センスあるな。
099397604/12/21 22:59:19ID:???
>>981
なるほど。その手がありましたか。
ちなみに作成した画像ファイルってそのままサーバー上に残るんですね。
そもそもサムネイル用のファイルスペースがもったいなかったので
おりじなるの画像ファイルから縮小コピーを作ろうとしたんですが
サーバー上に残るようでは無意味ですね。
出直してきます。
0994nobodyさん04/12/21 22:59:29ID:???
スライスも使ってないし
0995nobodyさん04/12/21 23:00:33ID:???
スライスショット
0996nobodyさん04/12/21 23:05:32ID:???
1000(996)
0997nobodyさん04/12/21 23:05:35ID:???
なにかハムが食べたくなるな
0998nobodyさん04/12/21 23:09:38ID:???
公の人
0999nobodyさん04/12/21 23:11:37ID:???
キューキューキュー
1000nobodyさん04/12/21 23:11:53ID:???
ボンレススリーナイン
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。