【PHP】下らねぇ質問はID出して書き込みやがれ 75
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/10/16(木) 23:52:01ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
014675
2008/10/20(月) 21:02:51ID:7cNHWpvS被害なんて思ってないよん。
0147140
2008/10/20(月) 21:17:34ID:???ひどい言い方って俺のこと? バイナリデコードまでしたのになぁ。
まぁさておき、そのmcryptのdllどこで拾ってきた?
0148nobodyさん
2008/10/20(月) 21:19:52ID:???014975
2008/10/20(月) 21:55:45ID:7cNHWpvS酷い言い方について<いいえ。
php-5.2.6-win32-installer.msiのインストーラの
extensionsのMcryptを選びました。
015075
2008/10/20(月) 21:56:20ID:7cNHWpvSlibmcrypt.dllが別途、必要なのですか?
015375
2008/10/20(月) 22:06:48ID:7cNHWpvSちと、調べてみる。
015475
2008/10/20(月) 22:07:17ID:7cNHWpvSそんなこと言わないで
0155nobodyさん
2008/10/20(月) 22:08:32ID:???条件反射でレスする前に、回答で貰ったキーワードでググって試してみる
くらいのことはした方がいいぜ。無駄なやり取りが増えるだけで先に進まん。
0156nobodyさん
2008/10/20(月) 22:16:20ID:???・ 質問者として、態度をわきまえること。
0157nobodyさん
2008/10/20(月) 22:43:23ID:3TVBsqnm帰ってくる配列の添え字”2”の値を変数$hogeに得るとき
perlなら
$hoge=func()[2];
という風に書けますが
PHPでは同様の事は出来ませんか?
今のところ
$temp=func();
$hoge=$temp[2];
このように書いていますが
これを一行で済ませたいのです
0158nobodyさん
2008/10/20(月) 22:49:32ID:???0161nobodyさん
2008/10/21(火) 03:46:05ID:???0162nobodyさん
2008/10/21(火) 05:35:54ID:y7s7meGiこれはどうやって修正すればいいんでしょうか。
0163nobodyさん
2008/10/21(火) 05:43:48ID:???0164nobodyさん
2008/10/21(火) 06:20:10ID:???0165nobodyさん
2008/10/21(火) 12:58:49ID:???0166nobodyさん
2008/10/21(火) 16:06:56ID:hy+GOPAp【質問内容】
メソッドが取りうる引数の個数を知りたいんですが、何か方法あるんでしょうか?
class SampleClass
{
public function sampleMethod($arg1, $arg2, $arg3=null)
{
// 何かの処理...
}
}
と定義されているときに、SampleClassの外から、
sampleMethodが取りうる引数の個数(2〜3)を取得したんですが、
何かいい方法ないでしょうか?
よろしくお願いします。。。
0167nobodyさん
2008/10/21(火) 16:13:19ID:???0169166
2008/10/21(火) 16:22:24ID:hy+GOPApありがとうございます。
そして、質問が分かりづらい文ですみません。
sampleMethodの外で取得したいんです。
0170166
2008/10/21(火) 16:29:18ID:hy+GOPApそうですか、ないですか・・・
ZendAPIいじるのは、今の自分の技量じゃきつそうですw
ご回答ありがとうございました。
0171nobodyさん
2008/10/21(火) 18:18:57ID:???$method = new ReflectionMethod('SampleClass', 'sampleMethod');
echo $method->getNumberOfParameters(), PHP_EOL;
echo $method->getNumberOfRequiredParameters(), PHP_EOL;
017275
2008/10/21(火) 18:32:42ID:eWc6AMKi以下のようにコーディングしましたが、
結果がcrypt関数と違います。
mcryptと同様な結果にする為にはどうすれば良いですか?
$f_str = "aaaaaaaa";
$f_salt = "aa";
$f_kekka = mcrypt_ecb (MCRYPT_DES,$f_salt,$f_str,MCRYPT_ENCRYPT);
0174nobodyさん
2008/10/21(火) 20:21:51ID:???0175166
2008/10/21(火) 21:48:25ID:hy+GOPApおかげ様で問題が解決しました!
どうもありがとうございました。
0177nobodyさん
2008/10/21(火) 22:30:46ID:???なんかそういう人間向けの参考書でオススメのあったら教えていただけないでしょうか。現場でコード書いてるのが一番かもしれませんが・・
0178nobodyさん
2008/10/21(火) 22:50:47ID:???0179nobodyさん
2008/10/21(火) 22:51:22ID:???0180nobodyさん
2008/10/22(水) 00:51:07ID:hqciJXfD下記のコードでも同じエラーが起きました。
原因と対策方法を教えてください。
&を$amp;に変換するぐらいしか思いつきません。
$a = simplexml_load_string('<a><b>test</b></a>');
$a->b="&";
0181nobodyさん
2008/10/22(水) 00:54:21ID:???0182nobodyさん
2008/10/22(水) 00:54:58ID:???まさにその通りだ
0183nobodyさん
2008/10/22(水) 03:13:09ID:???関係ないけどこれでもsessionのページに飛ぶのね
例の近似度を測るphpの関数使ってるのかな
0184nobodyさん
2008/10/22(水) 07:01:49ID:ydcrSA/Wphp5とmysql5でプログラムしてます
SQLの検索文を実行して、2件が該当するのですが
($sqlResult = $db->Execute($sql文); として、
echo $sqlResult; すると2件入ってます)
count($sqlResult);すると 1 が返ってきます。
何が原因でしょうか?
Execute()と echo $sqlResultと count($sqlResult)の間には
何も処理をはさんでいません。
すみませんが回答よろしくお願いします。
0185nobodyさん
2008/10/22(水) 07:25:34ID:???0186nobodyさん
2008/10/22(水) 07:34:47ID:???echo $sqlResult で何が表示されるか
count($sqlResult) は何を意味するか
0187nobodyさん
2008/10/22(水) 08:02:43ID:ydcrSA/Wすると、返ってきた件数を取得するにはどうしたらいいでしょうか?
0188nobodyさん
2008/10/22(水) 08:34:11ID:???0189nobodyさん
2008/10/22(水) 09:18:26ID:???妄想すればいいのか
0190nobodyさん
2008/10/22(水) 11:42:32ID:hqciJXfD全て置換していれることにします。ありがとございます。
また、質問なんですが
hoge2が入っている要素を削除するため、$keyを取得しようとすると
配列のキーが取得できず、なぜか"b"が入っていて削除できません。
forで解決することもできますが、なぜこうなるのでしょうか?
$a = simplexml_load_string('<a><b>hoge1</b><b>hoge2</b><b>hoge3</b></a>');
foreach ( $a->b as $key => $value ) {
print $key.':'.$value.'<br>';
}
--出力結果---
b:hoge1
b:hoge2
b:hoge3
0191nobodyさん
2008/10/22(水) 12:00:44ID:???配列じゃないからだ
$a->b で思い切り「b」のリストを取得してんだからelement名のbがキーになるだろ
xpathあたりで要素を取り出してunsetすりゃいいんじゃね?
0192nobodyさん
2008/10/22(水) 12:26:51ID:???どこかに公式のそういうのないでしょうか??
0193nobodyさん
2008/10/22(水) 12:28:17ID:GMcgCgHyIISでphp5を動かしています
c:\aaaaa\php\http\hoge.php
から
c:\aaaaa\data\***.txt
など
webサイトより上のディレクトリを"絶対パス"で、見に行かせるのは
どういったパスを書けばいいのでしょうか?
0194nobodyさん
2008/10/22(水) 13:02:03ID:???スコープならあるが?
メソッドの型のことを言ってるならPHPについて勉強してこい
PHPは関数・メソッドについて明示的な型を実装しません、ってなってるから
>>193
hoge.php内で各ならdirnameを2回コール
0196nobodyさん
2008/10/22(水) 13:56:08ID:GMcgCgHyお騒がせしました、ありかどうございます
0197nobodyさん
2008/10/22(水) 14:13:16ID:???0199nobodyさん
2008/10/22(水) 14:27:32ID:???0200nobodyさん
2008/10/22(水) 16:44:13ID:uFfcpDJb<?
$a = 3;
$b = 1;
$c = 2;
$order = array(
"あ" => $a,
"い" => $b,
"う" => $c
);
sort($order, SORT_REGULAR);
print "<pre>";
print_r($order);
print "</pre>";
?>
結果は下記になります。
Array
(
[0] => 1
[1] => 2
[2] => 3
)
添え字がこわれます。
下記のようにしてソートされた添え字をゲットしたいのですが、どうしたらいいですか
Array
(
[い] => 1
[う] => 2
[あ] => 3
)
0201nobodyさん
2008/10/22(水) 17:15:06ID:???0202nobodyさん
2008/10/22(水) 17:19:17ID:???人肌恋しい季節がやってきます
PHPマニュアルに包まれてヌクヌクしたいですね、幸せになれます
0203nobodyさん
2008/10/22(水) 18:24:17ID:???0204nobodyさん
2008/10/22(水) 23:41:52ID:???質問させてください。SSL 環境下でのファイルのアップロードです。
※SSL 証明書は正しく発行されています。
以下のようなHTMLフォームを用意して、
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" enctype="multipart/form-data" method="POST" />
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $maxfilesize; ?>" />
<input id="file" name="file" type="file" />
php で処理したいと考えているのですが、スクリプト内で、「print_r($_FILES);」しても
何の情報も取得できません。
この症状は、利用しているブラウザが、Windows XP/Vista 版の IE、最新版の Webkit で発生します。
Firefox 3.0.3、Safari 3.1.2 では正常に情報を取得することができます。
したがって、ブラウザ側の問題だと思うのですが、この問題を回避するためには、どしたら
良いのでしょうか。
アドバイスいただけますと幸いです。
0205nobodyさん
2008/10/22(水) 23:48:07ID:???0206nobodyさん
2008/10/22(水) 23:49:25ID:FZ7gKE7K【OS名】FreeBSD 6.2
【PHPのバージョン】5.2.4
【連携ソフトウェア】なし
となります。スクリプトの内容はファイルを受け取って、
サーバーに保存するというものです。
0207nobodyさん
2008/10/22(水) 23:51:43ID:FZ7gKE7Kブラウザ側の問題だとは思うのですが、PHP 作成者で、同じような状況に
陥った方がいないかと思ったのと、本当にブラウザの問題なのか、
不明であったために質問しました。
0208nobodyさん
2008/10/23(木) 00:09:13ID:???0209nobodyさん
2008/10/23(木) 00:23:11ID:cEwU+RA6if ($_FILES[$key]['size'] > 0) {
$upfile_path = $_FILES[$key]['tmp_name'];
$upfile_error = $_FILES[$key]['error'];
...
特にもってまわったことはしていないと思います。
if 文以前に print_r($_FILES) を記述しても、なにもセットされていません。
フォームタグが挿入されたHTMLはスクリプト内にインライン記述しています。
0210nobodyさん
2008/10/23(木) 01:07:02ID:???0211nobodyさん
2008/10/23(木) 01:07:35ID:???0212nobodyさん
2008/10/23(木) 01:08:36ID:cEwU+RA6自前のスクリプトではありませんが、試してみたところ、
ttp://masago.kir.jp/php20030814.php
この頁に掲載されているサンプルスクリプトで試してみても、同じ症状が発生するようです。
$_FILES に情報がセットされない。
ただし、ブラウザから、ファイルのデータが送信されていないわけではないようです。
ためしに、3mb あるような大きなファイルを選択して submit すると、データを送信しきるまで、
しばらくタイムラグが発生しますし、その他の post データ($_POST)はきちんと送信されています。
0213nobodyさん
2008/10/23(木) 01:09:51ID:cEwU+RA6ttp://masago.kir.jp/phpsc.php?s=php20030814s.php
0214nobodyさん
2008/10/23(木) 01:19:11ID:???0215nobodyさん
2008/10/23(木) 01:22:09ID:???いいから自分のやってる方法を出してよ
自分は正しいと思っててもうっかりミスがあるってことはよくあるんだから
フォーム書いてvar_dump($_FILES)するだけの4,5行のスクリプトならすぐ書けるでしょ?
それで実行結果がどうなるのか教えて
firefoxではアップロードできるんでしょ?
ならiniは問題ないと思うが俺予想だと多分HTMLの書き方に問題があるんじゃないかなー
0216nobodyさん
2008/10/23(木) 01:38:22ID:cEwU+RA6<html><head><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /></head><body>
<pre><?php var_dump($_FILES); var_dump($_POST); ?></pre>
<form action="test.php" enctype="multipart/form-data" method="POST" />
<input type="file" name="sample" />
<input type="text" name="textdesuyo" value="test desu yo" />
<input type="submit" />
</form>
</body></html>
で、以下のような出力を得ました。
array(0) {
}
array(2) {
["sample"]=> string(12) "test desu yo"
["submitbutton"]=> string(6) "Submit"
}
問題の発生しないブラウザ(Firefox)で試すと、以下のような出力を得ることができます。
array(1) {
["sample"]=> array(5) {
["name"]=> string(27) "test.jpg"
["type"]=> string(10) "image/jpeg"
["tmp_name"]=> string(18) "/var/tmp/php0XGaGr"
["error"]=> int(0)
["size"]=> int(281933)
}
}
array(2) {
["textdesuyo"]=> string(12) "test desu yo"
["submitbutton"]=> string(4) "実行"
}
0217nobodyさん
2008/10/23(木) 02:00:35ID:cEwU+RA6先ほどのサンプルで、<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> の記述が抜けていましたので、
これを追記して試したところ、問題の発生するブラウザで試した場合、
var_dump($_FILES); の結果は何じだったのですが、var_dump($_POST); の結果がえらいことになってしまいました。
array(4) {
["MAX_FILE_SIZE"]=>
string(7) "1000000"
["uploadesample"]=> string(291776) ...ここに意味不明の文字列(恐らくアップロードした画像ファイルの生テキスト)がはいる....
["textdesuyo"]=> string(12) "test desu yo"
["submitbutton"]=> string(6) "Submit"
}
これを見る限り、type="file" とHTML に明示しているにも関わらず、データが $_POST にいってしまっているようです。
なぜなんだろう??
0218nobodyさん
2008/10/23(木) 02:11:24ID:???0219nobodyさん
2008/10/23(木) 02:15:25ID:cEwU+RA6見通しよくするために、HTML 部分を次のようにしていました。
<form id="submitdata" class="form" action="test.php" enctype="multipart/form-data" method="POST" />
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="uploadesample" /><br />
<input type="text" name="textdesuyo" value="test desu yo" /><br />
<input type="submit" name="submitbutton" />
</form>
0220nobodyさん
2008/10/23(木) 02:20:16ID:???$_POSTと$_FILESのvar_dumpは以下。
array(3) {
["MAX_FILE_SIZE"]=>
string(7) "1000000"
["textdesuyo"]=>
string(12) "test desu yo"
["submitbutton"]=>
string(10) "クエリ送信"
}
array(1) {
["uploadesample"]=>
array(5) {
["name"]=>
string(12) "are11693.jpg"
["type"]=>
string(11) "image/pjpeg"
["tmp_name"]=>
string(26) "C:\WINDOWS\Temp\phpA8D.tmp"
["error"]=>
int(0)
["size"]=>
int(135498)
}
}
ちなみにXP+IE7
0221nobodyさん
2008/10/23(木) 02:22:28ID:cEwU+RA6ありがとうございます。それは SSL 環境でオーケーだったということでしょうか?
0222nobodyさん
2008/10/23(木) 02:29:54ID:???0223nobodyさん
2008/10/23(木) 02:38:11ID:cEwU+RA6Windows XP + IE7 だと問題は発生しないのですね。テストしていただいてありがとうございました。
こちらは OpenSSL 0.9.7e-p1 25 Oct 2004 を使用しています。
問題が発生するブラウザでは、送信するファイルを文字列として送信しているのかな??
うーん。ますます分からん。。。
0224nobodyさん
2008/10/23(木) 04:32:40ID:cEwU+RA6同じ現象が発生することが分かりました。となると、ブラウザに問題があるとしか
言いようがありませんね。
もしやと思って、そこらへんのアップローダーでも試してみましたが、やはり
アップロードできませんでした。対処法は分からずじまいのままですが、
あきらめムードにはいっております。
アドバイスをいただいた方々にお礼申し上げます。
0226nobodyさん
2008/10/23(木) 08:50:17ID:cEwU+RA6今手元にウインドウズマシンがないので、確認できないのですが、
どのオプションを変更すればよいのか教えてもらえないでしょうか?
0227nobodyさん
2008/10/23(木) 09:26:29ID:???対象のブラウザを監視してるとか
0228nobodyさん
2008/10/23(木) 10:08:44ID:cEwU+RA6手元にある Mac では、セキュリティソフトを利用していないので
その可能性は低いと思います。
0229nobodyさん
2008/10/23(木) 10:29:11ID:???・送信するファイルを変えてみる。
・設定・仕様を見直す。
・複数のクライアント(マシン/ブラウザの種類・バージョン等)で確認する。
・複数のウェブサーバー(マシン/サーバーソフトの種類・バージョン等)で確認する。
0230nobodyさん
2008/10/23(木) 11:02:02ID:cEwU+RA6その後、テキストファイルを送ってみたところ、
$_POST にテキストファイルの内容そのものがセットされていました。。
いずれにせよ、判断材料が少ないので本腰入れて調査してみます。
0231nobodyさん
2008/10/23(木) 11:06:16ID:???POSTにテキストとかってモロにQUERYだし
0233nobodyさん
2008/10/23(木) 11:30:34ID:cEwU+RA6↓コレです。OS は MacOSX 10.5.5
http://webkit.org/
ウインドウズでは、Win XP、Vista の IE で不具合が生じるとの連絡だけを
受け取っている状況で、詳しいバージョン SP の有無まで確認できていません。
>> 231
おっしゃる通り、multipart/form-data を正しく解釈していないのだと思います。
不思議なのは、さんざんググってみても、このことについて言及したページを
探し当てることができないということです。こんなあからさまな不具合だったら、
すでに誰かが指摘していて当然だと思うのですが。
0234nobodyさん
2008/10/23(木) 11:42:33ID:???これは?
Apache側でKeepAliveが有効だとアップロード出来ないみたいにあるけど
0235nobodyさん
2008/10/23(木) 11:45:07ID:???0236nobodyさん
2008/10/23(木) 12:15:51ID:cEwU+RA6情報ありがとうございます!
本番サーバーは、レンタルサーバーであり、apache で稼働していますが、conf ファイルの
内容は問い合わせてみなければ分かりません(多分 KeepAlive on になっていると思いますが)。
これはもう PHP で対処できる範囲を越えていますね。というか、考えられる問題の範囲が
広すぎます。また出直します。失礼いたしました。>>235
0237nobodyさん
2008/10/23(木) 12:41:51ID:???0238nobodyさん
2008/10/23(木) 12:49:20ID:???データを送信しているか確認するときに参考になるかもね。
http://tokyo.cool.ne.jp/shigetomo/perltips.html#8
0239nobodyさん
2008/10/23(木) 13:23:47ID:R/SfnL8zttp://www.webmasterworld.com/google_adsense/3730583.htm
上記URLを参考にしましたが、ログイン出来ませんでした。
jsで飛ばされているようです。
postで送信するだけで良さそうに思いましたが、ソースファイルを除いても
formデータが見当たりませんでした。
収得できる良いアドバイスはありませんでしょうか?
0240nobodyさん
2008/10/23(木) 13:37:14ID:fEAN24MMマニュアルみても理解できなかったのでご教授お願いします
文字列の中からa,c,d,eのどれかが1文字だけあるかを調べたいんですが
preg_match("/[acde]{1}/s", $str])
ではなんかうまく行きませんお願いします
0241nobodyさん
2008/10/23(木) 13:50:11ID:R/SfnL8zどの様なエラーが出ましたか?
当方ではParse error: syntax error, unexpected ']' と出ています。
カッコが不必要です。
0242nobodyさん
2008/10/23(木) 14:03:20ID:???0243240
2008/10/23(木) 14:04:02ID:fEAN24MMそれを消してやるとエラーは消えましたが
どれか1文字だけってのができません
$str = "apple";
if (preg_match("/[acde]{1}/s", $str)){
echo '正常';
} else {
echo '異常';
exit();
結果→ 正常
どれか一文字だけなので異常ってだるようにしたいんです。
0244nobodyさん
2008/10/23(木) 14:08:29ID:???/^[absd]$/
0245240
2008/10/23(木) 14:19:53ID:fEAN24MM1文字だけの場合は $ で指定だったんですね
/^[absd]$/ にしてみたらちゃんとできました
どうもありがとうございます。
0246nobodyさん
2008/10/23(木) 19:07:00ID:vYlG5hmESystem Linux 2.4.21-37.ELsmp #1 SMP Wed Sep 7 13:28:55 EDT 2005 i686
【PHPのバージョン】PHP Version 4.3.10
【連携ソフトウェア】
【質問内容】
外部のレンタルサーバでphpのコードを動かしています。
ここでjson関連の作業、jsonのデコードとエンコードを行いたいのですが、
php4でも動くライブラリはどこかで配布されていませんか?
自作だとあまりにも心もとなくて・・・。
■ このスレッドは過去ログ倉庫に格納されています