【PHP】質問スレッドpart19【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/07/16 07:12ID:KvHeypq/・新規質問の方は上げてください。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/07/16 07:13ID:KvHeypq/【PHP】質問スレッドpart18【php】
http://pc5.2ch.net/test/read.cgi/php/1087191395/
0003997
04/07/16 08:08ID:G5BXIcySpreg_replace_callback関数の勉強のために上記のHPより以下のものを引用させて使ってみようと試してみたのですが
どうもうまく動作いたしません。
$html = preg_replace_callback( '/\[\[(.+):(.+)\]\]/', 'makeLink', '[[title:url]]' );
function makeLink($m){
return '<a href="'. rawurlencode($match[2]). '">'. htmlspecialchars($match[1]). '</a>';
}
error messageは
Warning: preg_replace_callback() requires argument 2, 'makeLink', to be a valid callback in
これは関数の定義がおかしいという解釈でよろしいのでしょうか?もしよろしければどこがおかしいのかご指摘お願いいたします。
0004nobodyさん
04/07/16 09:19ID:???危険なスクリプトがstrip_tags()を通過できてしまう。
↑ってあるけどさぁ、PHP 4.3.7以前のバージョンでも通らないんだけど。
嘘のアナウンスながすなよなぁ
0005994
04/07/16 09:56ID:???$html = preg_replace_callback( '/\[\[([^:]+):([^]]+)\]\]/', 'makeLink', '[[title:url]]' );
function makeLink($match){
return '<a href="'. rawurlencode($match[2]). '">'. htmlspecialchars($match[1]). '</a>';
}
$mで引数で受けているのに$matchになってるよ
0006nobodyさん
04/07/16 10:15ID:???strip_tags() に第2引数を指定したときの問題。
echo strip_tags("<\0script>alert()</script>", "<s>");
として確認。
XSS が可能かどうかはユーザが使用しているブラウザによるけど。
IE は XSS が可能だったかな。
0007994
04/07/16 10:36ID:???セキュリティうんこ過ぎヌルポ(゚д゚)<シメジ
0008nobodyさん
04/07/16 11:12ID:VHr1659rがっ
0009nobodyさん
04/07/16 12:09ID:G5BXIcySfunction henkan($str) {
$int = $str[1];
//--取得された数字で処理
return $int;
}
text配列内に文字列が格納されておりその中から ’>num(数字)’ にあてはまる部分を正規表現詮索し
<P title="<?php print("説明文"); ?>"> >num(数字) </p> このように置換させたいのですが
functionをどう定義すればよいのかよくわかりません。どなたか詳しく教えていただけないでしょうか?
0010nobodyさん
04/07/16 12:33ID:???$_SERVER['PHP_AUTH_PW'] は取得できるのですが、
$_SERVER['PHP_AUTH_USER'] は取得できません。
なぜでしょうか?
クリーンインストールしたほうがいいのでしょうか。
##############################
## php-5.0.0
'./configure' '--enable-mbstring' '--enable-zend-multibyte' '--without-sqlite' '--with-pgsql=/usr/local/pgsql' '--disable-libxml' '--disable-dom' '--disable-simplexml' '--disable-xml'
'--without-pear' '--with-gd' '--with-zlib-dir' '--with-png-dir' '--with-jpeg-dir' '--with-xpm-dir' '--with-freetype-dir' '--with-apxs=/usr/local/apache/bin/apxs'
# SJIS ユーザ用の php.ini の設定 (http://www.php.net/manual/ja/ref.mbstring.php)
##############################
## openssl-0.9.7d
## mod_ssl-2.8.17-1.3.31
## apache_1.3.31
./configure --with-apache=../apache_1.3.31 --with-ssl=../openssl-0.9.7d --enable-shared=ssl
##############################
## OS 情報
## Vine Linux 2.6r4
# インストールの種類
カスタム
# パッケージグループの設定
X Window システム GNOME / Emacs エディタ / メール/WWW ツール / ファイルサーバ (NFS/SMB) / ネットワークワークステーション / 開発ツール / ドキュメント
0011nobodyさん
04/07/16 13:09ID:???Apache 1.3.x との組み合わせで起きるバグです。
ttp://bugs.php.net/bug.php?id=29132
ttp://news.php.net/php.internals/11223
0013nobodyさん
04/07/16 13:26ID:???したい時は皆さんどうされてます?複数のPCで同時に送信!とか
しか思いつかないんですが○| ̄|_
$time = ceil(time() / 120) * 120
sleep($time - time());
などと行頭に入れてみて、20個ほど起動すればいかがでしょう。
ふと思いついたことなんで参考までに。
$time = ceil(time() / 120) * 120;
sleep($time - time());
1行目でちょうどよい時間(次の偶数分00秒を決定する)
2行目でそのときまでsleepする。
運悪く偶数分00秒とかそういうのにあたらなければ大丈夫なはずです。
誤差は1秒ほどありますが、
0016nobodyさん
04/07/16 14:05ID:xpSWVZ91touchなどでファイルを作成すると所有者がapacheになります。
chownは無効なので他に変更する方法はないでしょうか?
今のところ umask(0); で動作は問題ありませんが、
何か手がありましたらお願いします。
レンタル鯖 Linux Apache/1.3.29 (Unix) PHP/4.2.4-dev safe_mode:off
0017nobodyさん
04/07/16 14:21ID:???の取り扱いで躓いてしまいました。
<input type='file' name='file[]'>でPOSTあげしたのですが、
print_r($_FILES['file']);及びprint_r($_FILES['file'][0]);には何も変数がセットされて
おらずエラーになります。
print_r($_POST['file']);ではArray ( [0] => \"/home/hoge/hoge.tgz\" )となります。
execやvirtual関数を使いcgiを通してファイルを作成する方法しかないようです。
# execでログインすることもできるかも・・・
002017
04/07/16 14:29ID:???0021nobodyさん
04/07/16 15:15ID:???なるほど、その手法でトランザクション処理のテスタークラスなんか
作ってみて実験してみたいと思います。ありがとです(*´ω`*)b
002216
04/07/16 15:24ID:vSsgWICnレスありがとうございます。
その方向で調べてみます。
0023nobodyさん
04/07/16 16:29ID:???変数名を得る方法は無いでしょうか?
こういうこと?
print_r($GLOBALS);
0027nobodyさん
04/07/16 17:42ID:???全角・半角を無視して検索文字列をハイライトするいい方法ありませんかね?
パフォーマンスが悪いのは承知で、
$hage = mb_convert_case($hoge, 'asKV')
$hage = preg_replace('/pattern/', '<span class="match">$0</span>', $hage);
$part = preg_split('/(<.+?>)/', $hage, 0, PREG_SPLIT_DELIM_CAPTURE);
$result = '';
$pos = 0;
foreach ($part as $key => $value) {
if ($key % 2 == 0) {
if (($len = mb_strlen($value)) > 0) {
$result .= mb_substr($hoge, $pos, $len);
$pos .= $len;
}
} else {
$result .= $value;
}
}
というのも考えてみたけど半角の濁点の処理などをさらに追加せねばならず、大変。
他に思いつくのは検索パターンを'a' => '[aAaA]', 'が' => '(?:ガ|が|ガ)'などに
予め置換しておくのもあるけど、置換用の配列を書くのがダルい。
mb_ereg_replaceかpreg_replaceのオプションで全角半角を無視ってのできないかなあ。
0028nobodyさん
04/07/16 17:43ID:23o0JgNKphpinfo()で見ると
SERVER_SOFTWAREにはApache/2.0.49 (Win32) PHP/4.3.8
と表示されてているものの
一番上のバージョン表記とHTTP Response HeadersのX-Powered-Byは
4..3.7のままです
バージョンアップ方法は
phpフォルダをそのまま全部上書き
php.iniを上書き
とやったのですが他に何かやらなければならないことってあるんでしょうか?
0029nobodyさん
04/07/16 17:46ID:3Z+JZGJDphp4ts.dllをC:\Windows\system32にコピーしてみ
0030nobodyさん
04/07/16 18:01ID:23o0JgNK�d!
直りました
0031nobodyさん
04/07/16 18:08ID:LgkOLcz8サーバ上にある●●.htmlというファイルを、
毎日0時にbackup_●●.htmlという風にコピーしてバックアップをとりたいのですが、
タイマーみたいに時間指定でプログラムを動かすにはどうしたらいいでしょうか?
cronとかじゃなくて?
cronを使えるサーバーは少ないのでこういうのはカウンタに連動させたりするのがベスト。
なぜか動くプログラム第二弾(ワラ
こういうのをご希望かな?
mb_internal_encoding(mb_detect_encoding('漢字コードをチェックしますよ'));
$value = 'Abcうソだドンと゛コドーん';
return make_pattern($value);
function make_pattern($value) { $v=mb_convert_kana(
mb_strtoupper($value),'AKVCS');for($i=0;$i<strlen($v);
$i+=2){$s=substr($v,$i,2);$k=mb_convert_kana($s,'ka');
$l=array(strtolower($k),$k,mb_strtolower($s),$s,
mb_convert_kana($s,'c'),mb_convert_kana($k,'K'),
mb_convert_kana($k,'H'));$l=array_unique($l);$r.='('.
implode('|',$l).')';}return $r;}
0037nobodyさん
04/07/16 19:11ID:ctj/r83yWindows だって タスク・スケジューラー や
Cygwin 版の cron (+cygrunsrv) で できるんではないでしょうか
■ このスレッドは過去ログ倉庫に格納されています