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

【PHP】下らねぇ質問はID出して書き込みやがれ 86

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/07/31(金) 21:19:01ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0693nobodyさん2009/08/23(日) 16:30:35ID:???
>>691
foreach($allAry as $key=>$val) {

このなかにforをつかう

}
0694nobodyさん2009/08/23(日) 16:35:45ID:???
>>691
foreach($参照する変数 as $KEY名=>$値){

この書式をよく理解してないと思う。
この書式は、参照する配列変数の一次元目について、
キーと値の対応表を得るのに使う。要するに、配列の
キーがわからないときにそれをリストアップするものだよ。

なので、

$allAry が、
$allAry = array(
  array('name'=>'yamada','age'=>15,addr=>'tokyo-to'),
  array('name'=>'sato','age'=>18,addr=>'chiba-ken'));
というようなデータ構造の場合、$KEY名には、1、2しか
入ってこないし、$値には一名分の配列そのものしか
入らない。

もう、$allAryが、上記のような構造の場合、普通に
foreach($allAry as $one ){
とでもやって、一時変数に $one['name']の値を保存して
おいて逐次比較すればいいんじゃないかな。
0695nobodyさん2009/08/23(日) 16:40:23ID:???
$array[0][name] = "Yamada";
$array[1][name] = "nanashi";

を foreach($array as $key => $val) で展開したら、$keyが0のとき$val['name']に
Yamadaが入るから、次のと比較するなら$key+1して$arrayを参照して比較すれば、
と思ったけど違ったんだっけか。
0696nobodyさん2009/08/23(日) 17:06:43ID:???
>>692
youtube以外のドメインからとったID( [\w-] )をどうやったらアウトになるのか教えて
0697nobodyさん2009/08/23(日) 18:51:19ID:???
>>696
信頼できるドメインからIDを取得できなかったらアウトですよね
0698nobodyさん2009/08/23(日) 18:52:08ID:???
>>696
悪意のあるコードを仕込まれたサイトのIDを取得した場合という判断を考えられない池沼乙
0699nobodyさん2009/08/23(日) 18:57:48ID:???
>>696の言ってる意味がわからないんだけど
誰か翻訳よろ
0700nobodyさん2009/08/23(日) 19:08:29ID:???
>>696

youtube.hoge
youtube.test

こんなサイトがあったとして、君はyoutubeってだけで何でもいいからIDを取っちゃうのかい?
0701nobodyさん2009/08/23(日) 19:40:25ID:???
>>698
[\w-]のIDからどうやって悪意のあるサイトに飛ぶんですか。
取ってるIDは[\w-]の範囲内ですよ
>>698
もしyoutube.comからHTMLをとってきてIDとるなら問題ないし。
ユーザーが入力したものだとしたらドメインが一致してもそのIDがでたらめなものかもしれないからドメインの問題じゃない


馬鹿ばかりだな
0702nobodyさん2009/08/23(日) 19:52:05ID:???
>>701
IDから悪意のサイトに飛ぶなんてどの回答者も書いてないじゃん
少し落ち着けよ
0703nobodyさん2009/08/23(日) 19:54:29ID:???
飛ばないなら問題ないじゃん
0704nobodyさん2009/08/23(日) 20:58:34ID:???
>>691は、ふつうこうやるんじゃないの?

foreach($users as $key => $user){
 if($users[$key] == $users[$key+1]){
  // ここにやりたい処理を書く
 }
}
0705nobodyさん2009/08/23(日) 21:06:06ID:???
あ、たいしたことじゃないけど['name']を付け忘れたので修正

foreach($users as $key => $user){
 if($users[$key]['name'] == $users[$key+1]['name']){
  // ここにやりたい処理を書く
 }
}
0706nobodyさん2009/08/23(日) 21:15:46ID:???
foreachでやるとオーバーするだろ
そういう時はforでやるべし
0707nobodyさん2009/08/23(日) 21:16:25ID:???
重複があるかどうか一発でわかる関数があるのに何故使わない?
マニュアルの配列関数のところ見れ
0708nobodyさん2009/08/23(日) 21:23:11ID:???
>>706ごもっともwww
0709nobodyさん2009/08/23(日) 21:24:49ID:???
>>691
array_mapを使うと幸せになりますよ
0710nobodyさん2009/08/23(日) 21:37:56ID:???
関数を呼ぶのと、ifで比較するのってどっちが早いんだろうとか考えてると
いいコードは書けませんよね
0711nobodyさん2009/08/23(日) 22:00:24ID:???
それは雇われたPGの考え
0712nobodyさん2009/08/23(日) 22:23:38ID:nlDqD5AK
ユーザログインを管理する公開されてるサンプルでもなんでもいいので
使いやすいもの・参考になる簡単なもの無いですか?
やりたいことは、
・各ユーザに対する専用ページの保護
・ユーザ名・パスワードを入れた後はログアウトするまでユーザ専用ページ情報を開ける
・メールアドレスをユーザ名として使用
0713nobodyさん2009/08/23(日) 22:26:14ID:???
すいません。
できればコードは「クラス」なものが良いのですが。
07146912009/08/23(日) 22:27:22ID:???
アドバイスくれた方、みなさんどうもありがとう
参考にしてやってみます。ありがとう
0715nobodyさん2009/08/23(日) 22:45:58ID:???
>>712
つCMS
0716nobodyさん2009/08/23(日) 23:43:48ID:???
>>715 ありがとうございます。
基本から良く分かってないのでできればどのCMSのこのモジュールが分かりやすいよ
とかいうのがあればおききしたいのですが。
0717nobodyさん2009/08/24(月) 01:27:27ID:???
>>716
知ってる限りじゃDrupal。

静的ページを作るだけじゃかなり面倒臭いので
CMSのコンテンツマネージメント機能を利用する
ついでじゃなきゃお勧めできないけどw

つーか、PHPの標準機能だけでも結構あっさりと
できるでしょ。ユーザ管理DBを置いて、共通処理
で各ページ表示処理の手前で、認証やってダメな
ら弾けばいいんだから。Cookieにすればパラメータ
の受け渡しに迷うこともないし、セッションとしても
使えるし。
0718nobodyさん2009/08/24(月) 01:29:32ID:???
>>716
どの程度の規模なん?
ユーザ少ないんだったらhtaccessという手もあるよ
0719nobodyさん2009/08/24(月) 02:17:17ID:???
>>717 Drupal調べてみます。
> つーか、PHPの標準機能だけでも結構あっさりとできるでしょ。

基本DB使ってセッションで_SESSION[USER]=ユーザ名があればログイン中
というふうにしたらメアドがネットにながれちゃうのかなぁ?とか。
んでなんか一回安全で一般的なユーザ管理の方法を学ぼうかなぁとおもいまして
サンプルを探しているわけです。
(できればフォームで登録申請→登録メアドにメールが届く→メール内URLをクリックで本登録とか機能も作りたい)
一応ネットでいくつか見てはみたのですが説明サンプル的なもので実践的でないもの
っぽかったので、これ使ってりゃそんな間違いないし簡単だよってものがあるのかお聞きしたかったのです。

>>718
100人程度登録・書き込みしてくれたらまぁいいかな程度なんですが。
Basic認証のことかなぁ?できればログインフォームでのログインクラスとして実装したいのですが。
0720nobodyさん2009/08/24(月) 11:39:25ID:F/8gKHCC
改行のない数万バイトのデータがあります
これを一定(1バイトの文字*60文字=60バイト)の長さで一気に配列に格納したいのですがスマートな方法はありますか?
このデータは最初から最後まで60バイトで区切っていって丁度きっちり割り切れるデータです
0721nobodyさん2009/08/24(月) 11:42:20ID:???
forで回せばいいじゃん
0722nobodyさん2009/08/24(月) 11:47:52ID:???
>>720
データの先頭60バイトを切り取って、配列に格納
この処理をarray_mapを使って再帰的に処理すればforより短いコードで書ける
0723nobodyさん2009/08/24(月) 11:58:07ID:???
array_mapでどうやって・・・?
0724fusianasa2009/08/24(月) 11:58:25ID:???
ずばり
str_split
0725nobodyさん2009/08/24(月) 12:00:31ID:???
バイナリセーフではありません
0726nobodyさん2009/08/24(月) 12:21:50ID:???
>>720
スマートと言っても何がスマートなのかよくわからん
見た目をすっきりなのか
行数をすっきりなのか

まぁ、こんな手もある
20文字区切りだけどな
$teststr = '123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890';
$splitstr = chunk_split($teststr,20,"\n");
$bunkatu = split("\n",$splitstr);
0727nobodyさん2009/08/24(月) 12:24:50ID:???
きっちり分けれるなら最後に区切り文字が二つ繋がるから空の要素が一つ出来る
それの処理が必要
0728nobodyさん2009/08/24(月) 12:28:32ID:???
>>726
わざわざ改行をつけるなら初めから改行付きでデータを作るだろzk
0729nobodyさん2009/08/24(月) 12:30:49ID:???
>>728
>>720を読んでからにしろな
0730nobodyさん2009/08/24(月) 12:36:33ID:???
みなさんありがとうございます、自分の知らなかった関数が出てきたのでちょっと調べてて遅くなりました
>>726さんのchunk_splitが一番よさそうなのでそれでやってみようと思います
本当に勉強になりました、みなさんありがとうございました
0731nobodyさん2009/08/24(月) 12:42:56ID:???
chunk_splitの他にphp5での関数があるなstr_split
0732nobodyさん2009/08/24(月) 12:44:08ID:F/8gKHCC
>>703は自分です

>>731
ありがとうございます、そちらもしらべて学習します
0733nobodyさん2009/08/24(月) 12:53:11ID:F/8gKHCC
str_splitはsplitする手間が省けて区切り文字なく直接配列に割り振ることができるんですね
ループの処理もいらず、短い1行でやりたいことができました!
0734fusianasa2009/08/24(月) 13:02:41ID:???
僕が書き込んだんだぞ!!
ぷんぷん
0735nobodyさん2009/08/24(月) 13:08:02ID:???
にこにこぷんぷん
0736nobodyさん2009/08/24(月) 13:13:36ID:???
ぷんすかぷんぷん
0737nobodyさん2009/08/24(月) 14:01:09ID:???
>>729
読んでからレスしたんだが
改行がないんだからわざわざ付けてどうすんだ
データ処理時に改行を付加するなら最初からデータの末尾に改行をつけるのがスマート
0738nobodyさん2009/08/24(月) 15:02:37ID:???
頭悪いな〜
0739nobodyさん2009/08/24(月) 16:07:53ID:???
>>738
頭悪いのはお前
数万バイトぐらいで改行分をケチる必要はないだろう
0740nobodyさん2009/08/24(月) 16:26:21ID:ywIYQab+
PHP Version 5.3.0
imagick2.3.0 / ImageMagick 6.5.5
を利用しています

Imagickで取り込んだデータをブラウザに出力する場合、静止画であれば

echo [Imagickのインスタンス];

でいけるのですが、
アニメーションGIFを出力する場合は一旦ファイルに書き出してからでないと無理でしょうか?
0741nobodyさん2009/08/24(月) 18:12:09ID:gGslhGFk
識別IDから国名を表示したく、以下のように書きました。
配列の要素数が増えると、処理が遅くなりそうで…
そもそも、配列で処理しようとしてることが間違いなのか…
上手な書き方、教えてください。

<?php
//$array[] = array(識別ID, 国名, 点数);
$array[] = array('a01', '日本', '10');
$array[] = array('a02', 'アメリカ', '20');
$array[] = array('a03', 'ロシア', '30');
//(省略)

$str = 'a02';
foreach($array as $item){
list($id,$name,$i) = $item;
if(in_array($str, $item)){
echo $name;
}
}
?>
0742nobodyさん2009/08/24(月) 18:21:11ID:???
>>741
プログラムのほかの部分が判らんからあれだけど、
任意の識別IDから国名を出したいのなら、識別IDをキーにすべきじゃないか?

$array['a01'] = array('日本', '10');
$array['a02'] = array('アメリカ', '20');
$array['a03'] = array('ロシア', '30');

echo $array['a02'][0];
0743nobodyさん2009/08/24(月) 19:06:02ID:???
連想配列使おうよ
0744726,7312009/08/24(月) 19:23:46ID:???
>>737
ちょっとは応用に頭を使えよ…
改行改行って拘りすぎだ
chunk_splitは特定バイト毎に改行文字を挿入する
だから\nじゃなくて<br>でも何でも使えるんだよ

今回は思いついた\nを使っただけだ
0745nobodyさん2009/08/24(月) 20:51:53ID:waMnQ6RO?2BP(931)
MySQLに格納した画像データの取り出しについて質問です。
格納の仕方・手順については、MySQL Query Browserを用いて、
格納した画像を表示・ローカルPCに保存(して表示)できたので問題ないと思います。

しかし、PHPを用いていざ表示してみようとすると、
『格納したものと同じデータ容量・同じサイズの白色(無色かも?)の画像』が表示されるだけです。

言っている意味が分かりづらいかもしれないですが、
それをローカルPC上に保存してみても、
画像を表示することはできないのですが、
(Windows Picture and Fax Viewerで表示しようとすると、
『画像を描画できませんでした』と表示される)
データ容量とサイズはしっかりとあっています。

こういった場合に考えられる原因がお分かりになる方、ご教授いただけませんか。

ソースコードを書く必要があれば書きます。
また、他に不足している情報があれば補足しますので、
どうぞよろしくお願いします。
0746nobodyさん2009/08/24(月) 20:59:09ID:???
ヘッダ出してないからじゃね
0747nobodyさん2009/08/24(月) 20:59:21ID:???
HTTPヘッダ忘れ。
0748nobodyさん2009/08/24(月) 21:01:25ID:???
>>740
無理だと思った理由は?こんな症状が出たとか書くと答えてもらえる
どんなフォーマットでも出力方法は同じ
http://www.php.net/manual/ja/function.imagick-getimageblob.php

>>744
737じゃないが、>>726のヌル文字やデリミタの混入で
動くけど挙動がおかしくなるコードは下策
初心者に教えるべきでもないな
0749nobodyさん2009/08/24(月) 21:34:50ID:???
配列のソートに有用なライブラリを探しています。

今私がやりたいのは、二次元配列を、n番目の配列をキーにソートをする、ということです。
イメージとしては、MySQLのORDER BYみたいな感じです。

array_multi_sortでもできますが、ソートのパターンが増えるたびにコードを書かないといけないのが少し煩わしいです。

何かいいのないでしょうか。
0750nobodyさん2009/08/24(月) 21:35:44ID:???
スレタイ
07517452009/08/24(月) 21:36:51ID:waMnQ6RO?2BP(931)
>>746,747
ヘッダは
header('Content-type: image/jpeg');
と出力しています。

ただ1つ気になるのは、 image/jpeg であっているのか?というところです。
元画像はもちろん jpg なんですが、
先述の MySQL Query Browser を使って保存すると、
jpg とは認識してくれない( All Files(*.*) となっている)のです。
(もともと自動認識してくれないのかもしれませんが)
それを *.jpg として保存すると見られますし、あるいは *.png などとしても見られます。

ちなみにヘッダを出力しないと、文字化けしたバイナリデータが表示されます。
また、ヘッダの前に echo " "; などを追加するとエラーが起きるので、
ヘッダより前に何かが出力されてしまっている、ということもないと思います。
ソースコードの保存はutf8、BOMなしでしてます。
07527402009/08/24(月) 21:37:48ID:ywIYQab+
>>748
レスthx

なるほど、出力する時はその関数だったのか

php.netの例がそのままインスタンスechoしてるだけだったので、
正直変な書き方だとは思ってたんだw
どっちでもいいのかもしれんが今後はそれ使います

で、変更してみたけど結果は変わらず、
おそらくアニメーションGIFの1フレーム目だけが静止画として表示されるのみ

テストソース
$image = new Imagick('./img/0');
header('Content-type: image/gif');
echo $image->getImageBlob();

で、もうちょっと自力で探してたら
ttp://kyle-in-jp.blogspot.com/2008/09/imagemagickphpgif.html
このブログでまさにやりたい事がエントリされたのでちょっとこれから勉強してきます。
0753nobodyさん2009/08/24(月) 21:38:39ID:???
>>751
じゃ再現するコードうpだ
07547452009/08/24(月) 21:45:23ID:waMnQ6RO?2BP(931)
>>753
了解です。
クラスオブジェクトとかを使っているので、
画像を表示するプログラム単体ではわかりづらいかもしれないです。
<?php
require_once( 'Config.class.php' );
require_once( 'Tables.class.php' );

$config =& new Config();

$_SESSION['permission'] = ADMIN;
$DSN = $config->DSN();
$uid = $_GET['uid'];
$img_type = $_GET['img_type'];


$cartoonist =& new Cartoonist( $DSN, "user_id", $uid );
// ↑Tables.class.php により、これで、
// Cartoonist テーブルの user_id フィールドにおいて、 $uid と一致するデータを、
// Cartoonist->user_id や Cartoonist->user_password などとして呼び出せます。

if( $cartoonist->isError() ) {
die( $cartoonist->getError() );
}
if( $img_type = "illust_1cut" ){
header('Content-type: image/jpeg');
echo $cartoonist->illust_1cut;
}
$cartoonist->__destruct();
?>
よろしくお願いします。
07557452009/08/24(月) 21:46:46ID:waMnQ6RO?2BP(931)
連投すみません、

×:// Cartoonist->user_id や Cartoonist->user_password などとして呼び出せます。

○:// $cartoonist->user_id や $cartoonist->user_password などとして呼び出せます。
0756nobodyさん2009/08/24(月) 22:03:38ID:???
>>744
<br>なんて使うか
バカじゃねええの
0757nobodyさん2009/08/24(月) 23:13:57ID:???
>>754
出力されるべき画像の形式は何なの?
0758nobodyさん2009/08/24(月) 23:19:04ID:???
サイズだけじゃなく、MD5とかで壊れていないことを確認済みなんだろうか
0759nobodyさん2009/08/24(月) 23:19:18ID:???
array(18)
{ [0]=> array(2)
{ ["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-1" }
[1]=> array(2) { ["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-2" } ....以下略
という風に並んでいるものがあって、
a-1 b-1,b-2....
a-2 b-1,b-2....
っていう風に取り出す方法ないでしょうか…。
どうしたら良いものかさっぱり…。

二次元配列…?でも上手くいかなかったし。
0760nobodyさん2009/08/24(月) 23:25:43ID:???
こういう場合、再帰という手法を使う
0761nobodyさん2009/08/24(月) 23:26:56ID:???
何のデータ構造だこりゃ?
07627592009/08/24(月) 23:31:55ID:HdED1h1S
sage入れてた。ごめんなさい。
0763nobodyさん2009/08/24(月) 23:52:54ID:???
とりあえず、このデータだけでは並びがわからん。
0764nobodyさん2009/08/25(火) 00:01:24ID:???
foreachで別の配列なり変数なりに放り込む
0765nobodyさん2009/08/25(火) 00:04:51ID:???
[0]
 ["aaa"] = "a-1"
 ["bbb"] = "b-1"
[1]
 ["aaa"] = "a-1"
 ["bbb"] = "b-2"

[0]と[1]の両方に同じデータが入ってるのか?
0766nobodyさん2009/08/25(火) 00:22:12ID:???
もしかしてただのcsvだったりするのか
0767nobodyさん2009/08/25(火) 01:07:51ID:Owp0h4vB
Auth::getAuthData()がうまくできなくて困っています。
ソースはこんな感じ。

require_once( "Auth/Auth.php" );

$params = array(
  dsn' => "mysql://user:pass@localhost/db",
  'table' => "member_table",
  'usernamecol' => "username",
  'passwordcol' => "password",
  'crypttype' => "md5",
  'db_fields' => "*",
);

$auth_obj = new Auth( "DB", $params );
$auth_obj->start();
if( $auth_obj->getAuth() ) {
  print "ようこそ!" . $auth_obj->getAuthData( 'username' ) . "さん<br>";
};


認証はできててエラーは何も出ず、
ようこそ!さん
と表示されます。getAuthDataがNULLを返しているような感じ。
フィールド名をいろいろ変えても同じ。
ぐぐったけどわかりません。
なんでこんなシンプルな関数が動作しないのか…。何を調べればいいのでしょうか。
0768nobodyさん2009/08/25(火) 01:08:26ID:???
array(
  [0] => array(
    [0] => "a",
    [1] => "b",
  ),
  [1] => array(
    [0] => "c",
    [1] => "d",
  ),
)
こんな感じでかいてくれ上のだと見にくい
0769nobodyさん2009/08/25(火) 01:11:13ID:Owp0h4vB
追記:ぐぐってこれも試してみたけどだめでした。
http://go4it.seesaa.net/article/113476888.html
0770nobodyさん2009/08/25(火) 01:19:06ID:???
>>769
エラー全部表示してみたら?
07717592009/08/25(火) 01:20:46ID:EILdhFsc
array[18]{
[0]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-1"
}
[1]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-2"
}
[2]=> array(2){
["aaa"]=> string(1) "a-1" ["bbb"]=> string(6) "b-3"
}
[3]=> array(2){
["aaa"]=> string(1) "a-2" ["bbb"]=> string(6) "b-1"
}
[4]=> array(2){
["aaa"]=> string(1) "a-2" ["bbb"]=> string(6) "b-2"
}
[5]=> array(2){
["aaa"]=> string(1) "a-3" ["bbb"]=> string(6) "b-1"
}
.....略

書き方を変えてみました。
0772nobodyさん2009/08/25(火) 01:22:03ID:???
>>771
foreach
0773nobodyさん2009/08/25(火) 01:25:07ID:???
>>771
function array_print( $array )
{
foreach( $array as $key => $value )
{
if( is_array( $value ) )
{
array_print( $value );
}else{
print $value;
}
}
}
07747452009/08/25(火) 01:39:37ID:jyvND+zG?2BP(931)
レス遅くなってすみません。

>>757
元ファイルが jpg なので、jpg 形式で出力すればいいかと思ってたんですが・・・。
データベースに格納する際、何か必要な処理があるんでしょうか?

>>758
md5 で確認、といいますとどういうことでしょうか?
暗号化するコマンドの md5 しか知らないのですが・・・。


よろしくお願いします。
0775nobodyさん2009/08/25(火) 01:42:12ID:Owp0h4vB
>>770
エラー全部表示にしても、何も出ません。

しょうがない、Authを使うのはあきらめよう。これだから他人の書いたライブラリは信用できない。
07767452009/08/25(火) 01:43:00ID:jyvND+zG?2BP(931)
連投すみません。

>>758
もしかして、
echo $cartoonist->illust_1cut;
の部分を、
echo md5( $cartoonist->illust_1cut );
としてみる、ってことでしょうか?
そうなのであれば、その結果、
f85f7936575718c32cbc4018e7dc63a6
と出力されたので、壊れてないと思われます。
0777nobodyさん2009/08/25(火) 01:48:21ID:???
>>776
自作でいろいろやってる部分を省いて、一番単純なコードでちゃんと表示されるかどうか試してみたら?
問題が再現するコードってのはそういうこと
0778nobodyさん2009/08/25(火) 02:04:17ID:???
SQLに入れる段階でバイナリ含めてエスケープされると思うんだが
07797452009/08/25(火) 02:30:52ID:????2BP(931)
>>777,778,他皆様

以下のようなスクリプトにしてみたところ、表示できました!
あとはこれをいじってどうにか自分の思う形に持っていきたいと思います。
面倒見てくださった皆様ありがとうございました。

<?
// DB接続
$conn=mysql_connect("localhost","root","");
// DB選択
mysql_select_db("eninaru");
//DBからバイナリ画像を取得
$sql = " SELECT illust_1cut FROM Cartoonist LIMIT 1 ";
$result = mysql_query( $sql );
$val = mysql_fetch_assoc( $result );
//画像として表示
header("Content-type: image/jpeg");
echo $val['illust_1cut'];
exit;
?>
0780nobodyさん2009/08/25(火) 09:19:58ID:???
>>756
お前本当に頭悪いな
chunk_splitは区切り文字として何でも使えるんだから好きなのを使えば良いだろ?
固定バイト数毎に配列に格納する方法についての質問に
・forループで格納する方法の別の方法として
chunk_splitを使って特定バイト毎に区切り文字入れてsplitで分ける方法を出しただけだ
その後にphp5のマニュアルを見たらstr_splitを見つけたけどな

考え方として案を出しているのに区切り文字に拘り続ける理由がわからん
そんなのは自分のシステムに合わせた区切りにするだけじゃないのか?
0781nobodyさん2009/08/25(火) 09:31:01ID:???
お前らまだやってんのか
他人のどうでもいいプログラムのことでけんかすんなよ...
0782nobodyさん2009/08/25(火) 09:34:08ID:???
どうでもいい…(ノ_・。)
0783nobodyさん2009/08/25(火) 10:55:25ID:Nftjn5Vt
windowsXP+IISです

あるシステム関数を含んだコードを実行すると下のようなエラーが出ます。
何に原因があると思いますか?
Warning: system() [function.system]: Unable to fork ["C:/Program Files/Xpdf/pdftotext.exe" -enc Shift-JIS ./showPickingListNoUpdate.pdf2.pdf .\_4a933e906bb263.14282916] in C:\public_html\group\pdf_test.php on line 8
07847832009/08/25(火) 10:56:27ID:Nftjn5Vt
実行したスクリプト
(以前にここでPDFのテキストを抽出したいと相談した時に教えてもらったサイトのコードで試しました
パスは適宜修正済みできちんとその場所に実行ファイルやPDFファイルがあります)
----------------------------------------------
<?php
class PdfToText {
public static $exepath = '"C:/Program Files/Xpdf/pdftotext.exe"';
public static $options = ' -enc Shift-JIS';
public static function execute($path=null) {
$tmp_path = PdfToText::get_temp_file_path($path);
system(PdfToText::$exepath . " " . PdfToText::$options . " {$path} {$tmp_path}");
$text = null;
if (file_exists($tmp_path)) {
$text = readfile($tmp_path);
unlink($tmp_path);
}
return $text;
}
public static function get_temp_file_path($path=null) {
$dir = dirname($path);
if ($dir[(strlen($dir)-1)] != DIRECTORY_SEPARATOR) {
$dir .= DIRECTORY_SEPARATOR;
}
return ($dir . uniqid('_', true));
}
}
echo PdfToText::execute("./test.pdf");
?>
0785nobodyさん2009/08/25(火) 11:19:30ID:???
>>783
windowsでphpを使ったことがないので外しているかもしれんけど...

ttp://www.iis-aid.com/articles/trouble_shooting/warning_exec_function_exec_unable_to_fork
ttp://www.somacon.com/p255.php
あたりを見ると、IISユーザーにC:/Program Files/Xpdf/pdftotext.exe
を実行するパーミッションがないからじゃないだろうか。
0786nobodyさん2009/08/25(火) 11:53:08ID:???
>>780
自分のきめえさを指摘されたら本気になって弁論
フイタワ
0787nobodyさん2009/08/25(火) 11:55:46ID:2Veus9TY
【OS名】FreeBSD 6.2
【PHPのバージョン】5.2.3
上記仕様のレンタルサーバーでSmartIRCというライブラリを使用して
IRCBOTを動かしています。動作としては指定のIRCチャンネルに
10分置きに現在時間を知らせるメッセージを送信するというものです。
問題なく動作はしてくれるのですが、1時間ほど経つと
IRCBOTがチャンネルから落ちてしまいます。PHPは初心者で
あまり詳しくないのですが、恐らくPHPのセッションが1時間で
タイムアウトしてしまう設定になってるのではないかと想像しています。
自分でタイムアウト時間を設定したいのですが、どのように
すれば良いでしょうか?ご教示よろしくお願い致します。

(SmartIRC)http://pear.php.net/package/Net_SmartIRC/
(参考ページ)http://www.phppro.jp/phptips/archives/vol36/



0788nobodyさん2009/08/25(火) 12:10:51ID:???
>>787
quickIRCに乗り換えれば?
0789nobodyさん2009/08/25(火) 12:17:26ID:???
つうかよどこのレンサバかぐらい書け
07907872009/08/25(火) 12:44:57ID:2Veus9TY
>>788
ご提案ありがとうございます。
ですが、「IRCBOTが1時間で勝手に落ちる」という問題が
解決可能なのであれば、SmartIRCでBOTを運用したいと思っています。

>>789
すみません、書き漏れておりました
レンタルサーバーはland.toという所を使っています。
http://land.to/
0791nobodyさん2009/08/25(火) 13:02:09ID:???
>>783
>>785の書いているIISが実行ファイルを処理できる権限があるかどうかのチェック

>>787
スクリプトはCRONか何かで定期的に起動するタイプなのか?
常駐だとレンタルサーバーならプロセスがkillされているかもしれん
07927872009/08/25(火) 13:22:01ID:2Veus9TY
>>791
ご回答ありがとうございます。
CRON等で定期的に起動はしていません。
EIからBOTスクリプトの書かれたphpを一度だけ読み込んでます。
読み込んだ後はブラウザを閉じています。

>常駐だとレンタルサーバーならプロセスがkillされているかもしれん
なるほど。。。
BOTを常駐させたいのですが、プロセスがkillされない方法は
ないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています