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

【PHP】下らねぇ質問はここに書き込みやがれ 41

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/03/06(火) 15:39:46ID:naBsdy1Z
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0175nobodyさん2007/03/07(水) 18:29:12ID:???
>>174
strip_tagsは?

画像を残したいなら、
strip_tags( $html, '<img>' )
とか。
0176nobodyさん2007/03/07(水) 18:38:09ID:???
>>174
それPHPと関係無いんじゃ・・
リンクを現在のページするとか、javascriptなら出来るのかなぁ。

質問が分かりにくかったが、スレ違い!
0177nobodyさん2007/03/07(水) 18:38:15ID:???
>>171
日本語でおk
具体的にどうしたいんだよ
0178nobodyさん2007/03/07(水) 18:53:21ID:???
クリックさせたくないのだからjavascriptのonMouseOverハンドラでマウスが乗ったら強制終了させるとか?
0179nobodyさん2007/03/07(水) 18:53:30ID:79lMnQw0
UTF-8なtxtを吐き出すだけなんですが、
その吐き出されたtxtを見ると、改行がされていません。
改行はどうすればいいのでしょうか?
EUC-JPでは、\nでうまく言っていたのですが。。
調べると\n\rというのもあるので試したのですが駄目でした。
0180nobodyさん2007/03/07(水) 18:57:33ID:???
二つのDomDocumentの結合の仕方が分かる人いたら教えて下さい。
01811712007/03/07(水) 19:00:51ID:???
>>175
まさにこれです!思い通りに出来ました。ありがとうございました。
0182nobodyさん2007/03/07(水) 19:11:52ID:???
>>179
UTF-8でも改行は\nだよ
普通に変換できてないんじゃないの
0183 ◆MvRbZL6NeQ 2007/03/07(水) 19:20:06ID:???
すみません。短期間でPHPを教えていただきたいのですが
時給おいくらでやっていただけますか?
0184nobodyさん2007/03/07(水) 19:26:48ID:???
土日だけで時給3000円ならやるかな
0185nobodyさん2007/03/07(水) 19:36:07ID:???
時給10000円が最低ラインだぞ
0186 ◆MvRbZL6NeQ 2007/03/07(水) 19:37:32ID:???
>>184
プロの方ですか?
職務経歴を教えてください
0187nobodyさん2007/03/07(水) 19:39:47ID:???
   ∩___∩     /
   | ノ      ヽ  /
  /  >   < |/ そんな餌パクッ
  | //// ( _●_)/ミ
 彡、     l⌒l  ノ
 / __  \ \ヽ
. (___)   \__)
. O|       /
  |  /\ \
  | /    )  )
  ∪    (  \
        \,,_)
0188nobodyさん2007/03/07(水) 19:42:43ID:d0r2wAeE
GDを使って画像のサムネイル化などを行っているのですが、
元の画像が小さい場合(数KB〜数十KB)なら問題なく動作します。

ですが、元の画像が大きい場合(100KB超など)だと、以下のようなエラーとなります。
Allowed memory size of 8388608 bytes exhausted (tried to allocate 0 bytes)

これはどうしてなのでしょうか??
php.iniのmemory_limit=8Mなので、100KB程度の画像処理なら十分余裕があるはずですし…。
GDのバグかと思って検索してみましたが、それらしき情報が見つかりません。
GD Version bundled (2.0.28 compatible) です。
何かお分かりの方がいらっしゃいましたら、ぜひ教えてください。
0189nobodyさん2007/03/07(水) 19:45:27ID:???
PHP4.4.2 と PHP5.2.1 で preg_split のパターン構文の解釈が違うみたいなんですが、仕様が変わったのですか。

test.php
<?php
$r = preg_split('/(?<!t)\s/', 'This is test page');
print_r($r);
?>

上記スクリプトを cli で実行すると、
4.4.2 だと、Array( [0] => This [1] => is [2] => test page )
5.2.1 だと、Array( [0] => This [1] => is [2] => test [3] => page )
になります。

それと、5.2.1 でパターン部分を '/((?<!t)\s)/' にすると、
PHP Warning: preg_split(): Compilation failed: lookbehind assertion is not fixed length at offset 6
というメッセージが出ます。

OSは FreeBSD6.2(PHP5.2.1) と FreeBSD5.4(PHP4.4.2) です。
0190nobodyさん2007/03/07(水) 20:00:48ID:???
>>189
ID晒せボケ
しかも人の質問のあとすぐ質問するな
189はスルーでよろ
0191nobodyさん2007/03/07(水) 20:01:13ID:???
今日は豊作ですね
01921892007/03/07(水) 20:01:58ID:T4xZjQn/
これでいいんでしょ。おねがいしますよ。
0193nobodyさん2007/03/07(水) 20:02:58ID:???
>>190
IDのことは賛成だが、質問の直後に質問・・・ってのは
たまたま偶然タイミングがかぶっただけじゃねぇ?

でも、ま、とりあえずスルーして>>188の質問を先に処理するかw
0194nobodyさん2007/03/07(水) 20:03:52ID:???
>>192
うわっっ、その態度を見てもう>>189に答える気が失せた。
完全スルーしよっと。
0195nobodyさん2007/03/07(水) 20:03:55ID:T4xZjQn/
>>188=>>190=>>193
01961452007/03/07(水) 20:04:28ID:???
>>162-163
レスありがとうございます。
バッククオートなんて使ったことなかったのでちょっと新鮮です。
権限はCGIにすれば大丈夫なので早速使ってみたいと思います。
0197nobodyさん2007/03/07(水) 20:08:38ID:???
>>195
お前、自分の態度を棚にあげといて他人を貶めようとするなよww
0198nobodyさん2007/03/07(水) 20:10:43ID:T4xZjQn/
教えないふりしてるけど、ほんとはしらないんですよねw
0199nobodyさん2007/03/07(水) 20:11:30ID:T4xZjQn/
もうthebbsいくからいいです。氏ねよ、くずども。
0200nobodyさん2007/03/07(水) 20:15:12ID:???
ここまで典型的なガキだと、逆に新鮮だなw
0201nobodyさん2007/03/07(水) 20:17:37ID:???
春なのに〜お別れですか〜♪
0202nobodyさん2007/03/07(水) 20:26:45ID:???
>>188
PHP自体のバージョンはいくつだ??
02031892007/03/07(水) 20:45:08ID:nw8KmYa6
申し訳ありません。
リロードせずsageのチェック外し忘れた私が悪かったです。

偽物まで出てきてしまったし、188の質問も解決していないし、
もう答えてもらえそうにありませんね。

ごめんなさい。お騒がせしました。
02041882007/03/07(水) 20:46:51ID:d0r2wAeE
>>202
phpバージョンは4.3.1です。
もし出来ましたら、同じように大きいサイズの画像でGD関数の
動作実験をしてはいただけませんでしょうか・・・?

ちなみに、107KBのJPEGを元画像として用いてサムネイル化しようとして、
ImageCreateFromJPEG、ImageCopyResampled、ImageJPEGのうち
どれかを実行した時点でコケた(=エラーメッセージが出た)ということまでは
突き止めています。
0205nobodyさん2007/03/07(水) 21:23:30ID:???
>>204
元が100KBのjpegでもそれをメモリ上に展開してゴニョゴニョするので、
簡単にM単位になっちゃうんですよ。
0206nobodyさん2007/03/07(水) 21:35:10ID:???
DB板とどっちに質問しようか迷ったのですが、こちらに質問させて頂きます。
mysqliを使ってMySQLからストアドの結果セットを取得したいのですが、
以下の様なエラーになります。

内容A:
<?php
 $mysqli_connect = mysqli_connect(host, user, pass, schema);

 $sql = "CALL spSelGetMembId()";
 $query_resultA = mysqli_query($mysqli_connect, $sql);
 $rowA = mysqli_fetch_array($query_resultA, MYSQLI_BOTH);
 $member_id = $rowA[0];
 printf ("A: " .$member_id. "\n");

 $sql = "CALL spSelGetMembId()";
 $query_resultB = mysqli_query($mysqli_connect, $sql);
 $rowB = mysqli_fetch_array($query_resultB, MYSQLI_BOTH);
 $member_id = $rowB[0];
 printf ("B: " .$member_id. "\n");
?>

結果A:
A: MEMBER0001
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result,
 boolean given in /var/www/html/test.php on line 12
B:

(↓につづく)
0207nobodyさん2007/03/07(水) 21:35:31ID:???
ですが、これを以下のような形にすれば問題なく動作します。

内容B:
<?php
 $mysqli_connect = mysqli_connect(host, user, pass, schema);

 $sql = "SELECT `memberid` FROM `test`";
 $query_resultA = mysqli_query($mysqli_connect, $sql);
 $rowA = mysqli_fetch_array($query_resultA, MYSQLI_BOTH);
 $member_id = $rowA[0];
 printf ("A: " .$member_id. "\n");

 $sql = "SELECT `memberid` FROM `test`";
 $query_resultB = mysqli_query($mysqli_connect, $sql);
 $rowB = mysqli_fetch_array($query_resultB, MYSQLI_BOTH);
 $member_id = $rowB[0];
 printf ("B: " .$member_id. "\n");
?>

結果B:
A: MEMBER0001
B: MEMBER0001

(↓につづく)
0208nobodyさん2007/03/07(水) 21:36:05ID:???
現在呼び出しているストアドは簡単なものですが、
これをベースに複雑なストアドを呼び出すように
したいと考えています。

2回目のストアド呼び出しが失敗する原因について
何か知ってましたら、教えて下さい。
連投スマソ

テーブル:`test`
--------------
| memberid    |
--------------
| MEMBER0001 |
--------------

ストアド:
CREATE PROCEDURE `spSelGetMembId` ()
BEGIN
 SELECT `memberid` FROM `test`;
END $$

環境:
PHP 5.1.6 + MySQL 5.0.27 + Apache 2.0.59

OS:
CentOS 4.4
0209nobodyさん2007/03/07(水) 21:37:55ID:DBiwlIWz
すいませんID出てませんでした。上3つは自分です。
0210nobodyさん2007/03/07(水) 21:40:23ID:???
class hogeHoge{
function testHoge($id,$name){
〜ソース〜
}
}

上記のように、class内のfunctionに複数の変数って指定できますよね?
しかしなぜか、Missing argument 2 for というエラーが出ます。
function testHoge($id)にすると問題ないのですが・・。
0211nobodyさん2007/03/07(水) 21:42:23ID:???
>>210
エラーメッセージの通りだよ呼ぶときに2つ目の引数が無い
0212nobodyさん2007/03/07(水) 21:43:09ID:???
愉快犯ぐらい見抜けよ。これじゃまじめに質問してる初心者がかわいそう。
0213nobodyさん2007/03/07(水) 21:44:35ID:???
>>210
関数にコールするときに、二つの引数を渡している?
省略したいのなら:

function testHoge($id, $name = NULL) ... とかすればいいのでは?
0214nobodyさん2007/03/07(水) 21:55:37ID:???
>>206
mysqli_fetch_arrayしたらカーソルは次のレコードに移っていて
1レコードしかないから2回目のqueryではfalseが返って来て
2回目のmysqli_fetch_arrayでfalseを渡してるからboolean渡すなやボケってことじゃない?
0215nobodyさん2007/03/07(水) 21:56:09ID:???
>>186
メインではないけど一応職務でPHPそこそこ使ってる。
symfony初め使えそうなライブラリを常に探して使ってる。
普通のつてで講義なら3000円でいいけど2ch繋がりだとしたら1万は要るなw
0216nobodyさん2007/03/07(水) 21:57:37ID:???
>>205
> 元が100KBのjpegでもそれをメモリ上に展開してゴニョゴニョするので、簡単にM単位に

えええ〜〜〜、それはいくらなんでも適当な嘘を吐き過ぎじゃない?
どんだけゴニョゴニョしようとも、単なるリサイズ処理ごときで
元画像の80倍以上ものメモリを要するなんてありえないっしょ。

まあGD関数の実装は知らないけどさ。。。
0217nobodyさん2007/03/07(水) 22:00:05ID:???
>>188
ソース張れそれだけではわからん
普通はそんなことでメモリ食いつぶすような事はない
02182102007/03/07(水) 22:00:19ID:???
>>211.213
表示する側は以下のように書いています。
$obj->testHoge($id,$name);

実際には$nameの箇所は数字で、1とか2とかにしています。
なので、二つ目の引数はあるとおもうのですが・・。
02191882007/03/07(水) 22:09:21ID:d0r2wAeE
>>217
サムネイル化関数のソースは以下の通りです。
よくネットに転がってるものと大差の無い、標準的なものだと思いますが…。

function thumb_create($src, $W, $H){
$size = GetImageSize($src);
switch ($size[2]) {
case 1 : $im_in = @ImageCreateFromGif($src); break;
case 2 : $im_in = @ImageCreateFromJPEG($src); break;
case 3 : $im_in = @ImageCreateFromPNG($src); break;
}
if (!$im_in) return FALSE;
if ($size[0] > $W || $size[1] > $H) {
$key_w = $W / $size[0];
$key_h = $H / $size[1];
($key_w < $key_h) ? $keys = $key_w : $keys = $key_h;
$out_w = $size[0] * $keys;
$out_h = $size[1] * $keys;
} else {
$out_w = $size[0];
$out_h = $size[1];
}
(※改行多すぎのため、2分割して書き込みます)
0220nobodyさん2007/03/07(水) 22:10:09ID:???
>>210
呼び出しのときに引数が足りないっていみのエラーなわけだが
02211882007/03/07(水) 22:10:25ID:d0r2wAeE
(※サムネイル化関数の続きです)
$im_out = @ImageCreateTrueColor($out_w, $out_h);
$resize = @ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $out_w, $out_h, $size[0], $size[1]);
$filename = "test";
switch ($size[2]) {
case 1 : $im_in = @ImageGIF($im_out, $filename.".gif"); break;
case 2 : $im_in = @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : $im_in = @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);
}
0222nobodyさん2007/03/07(水) 22:21:55ID:???
>>210
またnewしてない落ちじゃないよな?

$obj_hogehoge = new hogeHoge();
$obj_hogehoge->testHoge("ID","NAME");
02232092007/03/07(水) 22:23:48ID:DBiwlIWz
>>214さん
レスありがとうございます。
testテーブルの件数を増やす&最初のカーソルを開放する
事を試してみたのですが、結果は同じでした。

MySQLのクエリブラウザ上で実行する分には大丈夫、
かつストアドでないSQLで問題が無いので
もしかするとストアド固有の問題なのかもしれません。
0224nobodyさん2007/03/07(水) 22:32:13ID:???
>>219
確かにおかしなところなさそうだな、、
一気にいくつも生成してないんだったら
本当にメモリ使い果たしてるのかもしれん
怪しげな前後の部分でmemory_get_usageで
一気に増えてる部分特定して元画像のサイズ少しずつ
変えてもメモリ使用量比例してたらお手上げ
0225nobodyさん2007/03/07(水) 23:15:29ID:???
>>218
それでも解決しなればコードUP
0226nobodyさん2007/03/07(水) 23:48:18ID:LKc55zBo
よろしくお願いします。以前質問させていただいたものですが
mysql文字化け対策にttp://phpspot.net/php/pgMySQL4.1%8
CnUTF-8%82%CC%8F%EA%8D%87.html
を参考にしてやりましたが、今度はmysql_connect() [fun
ction.mysql-connect]: Can't connect to MySQL serv
er on 'localhost' (10061) inのエラーで接続できず・・・
初めてPHPをやっているので手探り状態の日々がつづいています。
ソースはttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd
/php_s02.htm参考に
PHP・MYSQLはXAMPPの最新版で
MySQL 5.0.33
PHP 5.2.1 & PHP 4.4.5
phpMyAdmin 2.9.2です 
ようは上記に記載した以外に文字化け対策の方法が
あったら御教授よろしくお願い致します
0227nobodyさん2007/03/07(水) 23:56:21ID:???
>>226
文字化けを解決したいのかMySQLに接続したいのかハッキリしろ!
・・・まぁ両方だろうけどw
ところで何でPHPを二つ入れてるんだ?

まずMySQLのサービスがちゃんと動いているか確認してみれあsふぁsdふぁ
02281882007/03/08(木) 00:28:43ID:e2mjdXJz
>>188です。
その後いろいろ実験してみたところ、JPEGだと100KB超でも問題なくサムネイル化できます。
が、PNGで大きい画像(実験では110KB)だとサムネイル画像作成に失敗します。
ImageDestroy($im_in);の行で、以下のエラーメッセージが出ます。
imagedestroy(): supplied argument is not a valid Image resource〜

@ImagePNG〜の行ではエラーメッセージが出ていませんが、サムネイル画像は作成されておりません。
それと、同じPNGでも小さい画像(5KBなど)で試したときは問題ありませんでした。

もしかしてGD関数で大きいサイズのPNGを扱うときのバグ・・・??
02291882007/03/08(木) 00:43:27ID:e2mjdXJz
あ、すいません、さらに追加です。

さきほど「JPEGなら大きい画像でも成功」と書きましたが、
なぜか失敗するケースもあることが判明ました・・・orz

失敗する条件はまだ特定できていませんが、
とりあえず「あるディレクトリにスクリプトと画像をあらかじめアップしておき、
SSHからスクリプト実行」の場合は必ず成功し、
「あるディレクトリにスクリプトを置いておき、ブラウザにてフォームから画像を送信して
スクリプトを走らせた場合」には必ず失敗してしまいました。

両者のスクリプトと画像はまったく同じものなのに、なぜでしょうか・・・
0230nobodyさん2007/03/08(木) 00:47:07ID:???
それは送信サイズが制限オーバーしてるんじゃねーのかな
画像程度じゃあんまり考えられないけど…
FireWorksとかのPNGだとかなりでかくなるよね

php.iniのUPLOAD_MAX_SIZEだっけ、そんな感じのところで少し大きめの容量
受け取れるようにしたら。
0231nobodyさん2007/03/08(木) 00:49:07ID:???
ゴメン、110KBって書いてあったw
さすがに送信サイズの訳無いな。

エラーメッセージとか、なんか
array受け取れない所にarrayが渡されてる時にでるやつだよね。
02321882007/03/08(木) 00:53:43ID:e2mjdXJz
フォームからのPOSTの場合、アップされた画像自体はきっちり保存されています。
あくまでも、その画像を前掲のサムネイル生成関数に通したときに
関数内で問題が発生(サムネイル化に失敗)しているようです。

フォームからのPOST時にはエラーメッセージすら出ず、非常に困っております・・・
0233nobodyさん2007/03/08(木) 00:54:47ID:???
>>188
てゆかさ、上に書いてるコードの下のほうの

switch ($size[2]) {
case 1 : $im_in = @ImageGIF($im_out, $filename.".gif"); break;
case 2 : $im_in = @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : $im_in = @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);

はおかしいんじゃねーの?

ttp://jp2.php.net/imagejpeg
bool imagejpeg ( resource image [, string filename [, int quality]] )

って書いてるよ。
boolなイメージをぶっ壊そうとしてんじゃん?
02341882007/03/08(木) 00:58:39ID:e2mjdXJz
>>233
小さい画像の場合では特にエラーもなくサムネイル化できておりますので、
そのコード自体には問題ないかと思いますが・・・
02351882007/03/08(木) 01:09:27ID:e2mjdXJz
何度も一人で書き込んでしまい、すみません。
原因箇所を突き止めました。

今までずっとGD関数が問題だと思っておりましたが、
真のトラブル箇所は、サムネイル生成関数内のいちばん初めの行、
$size = GetImageSize($src);
でした。

ここで$srcに「大きいサイズ(100KB超など)のPNG画像のパスを与える」場合に、
その行でスクリプトがストップします。
みなさんもGetImageSize()で大きいサイズのPNGを計測してみてください。
きっと失敗するはずだと思います・・・
0236nobodyさん2007/03/08(木) 01:10:36ID:???
とりあえず怪しいところはつぶしていくのが定石だろうが。
bool値をデストローーイ!するのが原因かもしれんのだし。
まぁ、ないとおもうけど(^ω^)
>そのコード自体には問題ないかと思いますが・・・
まぁ、平然とこんな事が言えるお前の頭が問題だということだな。
一生悩んどけ。
0237nobodyさん2007/03/08(木) 01:11:13ID:???
わかった。
falseが返ってきてるな。
imagejpegで作成失敗でfalseが返される。
尚且つ、ImageDestroy(false);
になってるからエラーが出てる。
0238nobodyさん2007/03/08(木) 01:12:23ID:???
memory_limitに当たってるだけじゃないの?
0239nobodyさん2007/03/08(木) 01:13:31ID:???
もっと1024MBとか豪華に使って試してみれと。
02402332007/03/08(木) 01:13:55ID:???
>>188
ローカルでは画像のサイズがどうであれImageDestroy($im_in)で失敗するよ。

switch ($size[2]) {
case 1 : @ImageGIF($im_out, $filename.".gif"); break;
case 2 : @ImageJPEG($im_out, $filename.".jpg"); break;
case 3 : @ImagePNG($im_out, $filename.".png"); break;
}
ImageDestroy($im_in);
ImageDestroy($im_out);

に変えたら500k超えてるpngでもサムネイルかできる。
8192px x 6144px
0241nobodyさん2007/03/08(木) 01:14:09ID:???
HDD増設してみてはどうだろう?
0242nobodyさん2007/03/08(木) 01:17:04ID:???
>>188
OSを再インストールしてみれ
0243nobodyさん2007/03/08(木) 01:23:01ID:???
gimpのソースが公開されてるから、リサイズ専用に改造して
execで使えば良いんじゃね。
0244nobodyさん2007/03/08(木) 01:25:10ID:z05LMp1V
フォームのテキストボックスに自動で月/日を入力させたいんですが
素人丸出しの記述になっています。玄人の方は、どう記述しますか?



<input name="tuki" type="text" istyle="4" value="
<?php
$today = date("m");
print($today);
?>
" size="5" /> 月<br>
<input name="hi" type="text" istyle="4" value="
<?php
$today = date("d");
print($today);
?>
" size="5" /> 日
0245nobodyさん2007/03/08(木) 01:26:48ID:z05LMp1V
シュウセイ…(汗

<input name="tuki" type="text" value="
<?php
$today = date("m");
print($today);
?>
" size="5" /> 月<br>
<input name="hi" type="text" value="
<?php
$today = date("d");
print($today);
?>
" size="5" /> 日
0246nobodyさん2007/03/08(木) 01:32:05ID:???
あとで読みやすいから、

<?php
  $m = date("m");
  $d = date("d");
?>
<input name="tuki" type="text" value="<?=$m?>" size="5" /> 月<br>
<input name="hi" type="text" value="<?=$d?>" size="5" /> 日
0247nobodyさん2007/03/08(木) 01:34:24ID:z05LMp1V
>>246
スマートな記述ですね。
勉強になりました。ありがとです。
0248nobodyさん2007/03/08(木) 01:42:12ID:???
>>247
どこがスマートな記述…
スマートな書き方するとこう

<?php
list($m, $d) = sscanf(date("md"), "%02s%02s");
?>
0249nobodyさん2007/03/08(木) 01:42:49ID:GIE8ipFx
preg_grepとおなじ動作をするマルチバイト関数ってありませんよね?
mb_preg_grepがあるのかと思ってマニュアル覗いてみたんですけど・・期待はずれでした。
0250nobodyさん2007/03/08(木) 01:48:14ID:???
<?php
$time = time();
$month = date("m",$time);
$day = date("d",$time);

// 省略

echo "<INPUT type='text' name='month' value='",$month."' />\n";
echo "<INPUT type='text' name='day' value='",$day."' />\n";
02511882007/03/08(木) 02:03:10ID:e2mjdXJz
>>237、>>240
>>235で書きました通り、関数内処理の1行目
$size = GetImageSize($src);
でストップしてしまうことが判明しております。(大きいPNGを引数に与えた場合のみ)
(この行の前後にechoで適当な文字を出力してみて、ここで止まることを確認しました)。

ですので、imagejpegやImageDestroyは関係ないようです。
おそらくGetImageSize()に潜むバグではないかと・・・
0252nobodyさん2007/03/08(木) 02:04:48ID:???
ていうか聞きすぎじゃね?もすこし自分で努力してみようと思え
0253nobodyさん2007/03/08(木) 02:11:57ID:???
>>188
試しに俺もおまいのソース使ってサムネイル作ろうとしたら、失敗したぞ。
つーかうちではPNGだけじゃなくJPEGでも無理なんだけど?
一応記録↓
5KB JPEG, 5KB PNG = OK
30KB JPEG, 30KB PNG = OK
90KB JPEG = OK
111KB PNG = NG
120KB JPEG = NG
0254nobodyさん2007/03/08(木) 02:13:37ID:???
自演乙
0255nobodyさん2007/03/08(木) 02:16:03ID:???
getimagesize バグ でググった?
0256nobodyさん2007/03/08(木) 02:19:00ID:???
表示先が文字化けしてるんですが・・・

$url = "http://www.yahoo.co.jp/";;
include($url);
0257nobodyさん2007/03/08(木) 02:26:53ID:???
>>256
自殺しろ
0258nobodyさん2007/03/08(木) 02:27:04ID:???
俺の環境では化けないな
っつかallow_url_includeをOnにすな
0259nobodyさん2007/03/08(木) 02:32:25ID:???
つべこべ言ってないでmemory_limitを増やせよ。
PNGなんて圧縮されてるからファイルサイズと必要なメモリに関連性なんて全くない。
02601882007/03/08(木) 02:37:50ID:e2mjdXJz
>>259
memory_limit = 8Mを16Mにしたら、解決しました・・・
すみません、ありがとうございます。

> PNGなんて圧縮されてるからファイルサイズと必要なメモリに関連性なんて全くない。

とのことですが、もう少し詳しく教えていただけないでしょうか。
JPEGなども圧縮されているものだと思うのですが、それとは「圧縮」の意味が違うのでしょうか?
また、あるサイズのPNGを処理するのに必要なメモリ量を計算する数式などありますでしょうか。

100KB程度の画像を処理するのに8MBでも足りないとは、想像を超えておりました…
みなさんスレ汚しすみませんでした。
0261nobodyさん2007/03/08(木) 03:00:50ID:???
>>260
まったく聞きすぎだ

でも勉強になった
0262nobodyさん2007/03/08(木) 03:12:44ID:???
単純に赤8bit・緑8bit・青8bit・透明度8bitの320x240の画像を
高速に処理できる状態でメモリ上に置いておくには
(1+1+1+1)*320*240の307200バイト必要なんだよ。
640x480になったら単純に
(1+1+1+1)*640*480=(1+1+1+1)*(320*2)*(240*2)=(1+1+1+1)*320*240*4で
4倍のメモリが必要にになる。
さらに拡大縮小などもう1枚コピーを作る必要がある処理をするなら
元画像と処理後の画像が同時に存在する状態ができるから
同じサイズに拡大縮小したとしても2倍のメモリが必要になる。
0263nobodyさん2007/03/08(木) 03:34:05ID:???
C言語でも勉強すればいいよ
0264nobodyさん2007/03/08(木) 03:41:32ID:???
>>262
おまいスゲーな!!
でもなぜJPGだとそうならないんだ??
0265nobodyさん2007/03/08(木) 04:32:23ID:???
PHPでpngを処理すると、むちゃんこメモリを食いまくる、まで読んだ。
0266nobodyさん2007/03/08(木) 04:39:23ID:???
JPEGは透明度データがないからPNGの3分の4倍(1.33…倍)以上の
画像サイズにする必要があるんじゃないか?
縦だけあるいは横だけ4/3倍とか縦横ともに√(4/3)倍するとか。
0267nobodyさん2007/03/08(木) 04:45:21ID:???
3分の4倍じゃなくて4分の3倍じゃない?

っていうか簡単に言えば、
JPEGは同じ縦横サイズなら、PNGの3/4のファイルサイズになる
ってことでは?
0268nobodyさん2007/03/08(木) 04:55:21ID:???
んだからメモリのリミットに当てるには3分の4倍サイズにして用意してくれと。
0269nobodyさん2007/03/08(木) 08:58:17ID:a3iASN9B
セキュリティについての本を購入予定なんですが、
何かお勧めの本が前に紹介されたしたが
何という本でした?
0270nobodyさん2007/03/08(木) 09:25:21ID:WIAr6em1
PHPとApacheを同じバージョンにし、設定も全く同じにしたのですが、片方の
マシンでは正常にプログラムが動作するのに、もう片方ではエラーがたくさん
出ます。

OSは同じ(Windows XP)ですし、インストールディレクトリも同じにしました。
こういうことってあるものなんでしょうか?



0271nobodyさん2007/03/08(木) 09:46:23ID:???
あるわけない。
iniをWINDOWSにつっこんでないとか
dllをWINDOWS\system32につっこんでないとかそういうのだろ。
02722702007/03/08(木) 09:57:01ID:WIAr6em1
>271
そういうのではありません。
php,Apacheはバージョンとインストールディレクトリを正常に動いている
マシンと同じにすれば、設定ファイルをそのままかぶせても問題ありません
よね?
0273nobodyさん2007/03/08(木) 10:00:33ID:???
>>270
具体的にどういうエラーが出てるんだか。
多分、同じ設定ってのが勘違いしてるだけでしょ。
0274nobodyさん2007/03/08(木) 10:05:45ID:???
設定ファイルをコピーして再起動していない
■ このスレッドは過去ログ倉庫に格納されています