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

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

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


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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0115nobodyさん2010/08/05(木) 14:20:19ID:???
ラジオボタンだと、どうしたって1個しか選べないんじゃないの?
複数許可するブラウザ(フォームの実行系)があるのかな。
0116nobodyさん2010/08/05(木) 15:21:22ID:???
A,B,Cそれぞれの選択肢から2個を上限として選んでください
例:Aから1個Cから1個
  Bから1個Cから1個

こんな感じだろたぶんw
0117nobodyさん2010/08/05(木) 15:39:48ID:???
複数選べるラジオボタンだから、単にグループにしてないだけでしょう。
3つ選んでたら駄目って表示すればいいだけなのでセッションとかなんか勘違いしてるか
書いてない条件があるのかしらんけど、それが出来ないなら説明しても出来ないと思うけど。
0118nobodyさん2010/08/05(木) 16:30:52ID:???
>>114
俺は巻き込みで3ヶ月以上規制されたぞ
0119nobodyさん2010/08/05(木) 22:13:58ID:ON5OkfeA
require "test.txt";でファイルを読み込むことはできますが、

$inpo ="baka"."aho"."text";として
↑上の$inpoって変数だけでrequireで指定したファイルを
読み込むことってできるのでしょうか
0120nobodyさん2010/08/05(木) 23:22:41ID:???
できるわけねえだろks
0121nobodyさん2010/08/05(木) 23:29:26ID:???
require $inpo;
ってわけでなく?
0122nobodyさん2010/08/05(木) 23:53:58ID:ON5OkfeA
ってわけです 失礼いたしやした
0123nobodyさん2010/08/06(金) 00:15:53ID:???
>>120は何をどう勘違いしたんだろうか
0124nobodyさん2010/08/06(金) 00:54:38ID:???
>>122
それやるのは良いが色々とちゃんとチェックしといたほうがいいよ
0125nobodyさん2010/08/06(金) 01:08:32ID:S3CmsbHM
>>124
あまり一般的では無いという事ですかね?
調べてみます
0126nobodyさん2010/08/06(金) 10:24:33ID:???
>>123=>>119

$inpoって変数だけで
           ^^^^^^^
0127nobodyさん2010/08/06(金) 13:40:38ID:zz9oR7D2
foreach ($xml->item as $x) {
   $result[] = array(
      "title"  => $x->title,
      "author"=> $x->children("http://purl.org/dc/elements/1.1/")->author
   )
}

「$x->children("http://purl.org/dc/elements/1.1/")->author」の中身が複数件ある場合は
どうすれば取得できるのでしょうか。
0128nobodyさん2010/08/06(金) 14:38:45ID:???
宿題きめえ
0129nobodyさん2010/08/06(金) 15:02:47ID:???
resultに入れたいデータ構造による
0130nobodyさん2010/08/06(金) 17:47:46ID:???
PHPってなんておしゃれな名前なの
惚れちゃう
0131nobodyさん2010/08/06(金) 23:15:11ID:???
PHPである程度なんでも作れるようになったからC#の勉強してみたって人いますか?
0132nobodyさん2010/08/07(土) 00:51:01ID:???
先にJAVA触ったなで、C#もやったけどその後Cっていう変な流れ
0133nobodyさん2010/08/07(土) 20:05:26ID:6W+R9iQf
すいません。

require("Framework.php");
Framework::execute();//実際にはFramework.php内で実行

class IndexAction {

function dispatch(&$c){
$c->set("このページはインデックスページ");
}

}

のように記述して動作するフレームワークのような物を作っているのですが
Framework側からIndexActionクラスの存在が確認できませんでした。
ためしに、Framework::execute();をIndexActionクラス以降に記述すると動作するのですが
classは関数とは違い呼び出される以前に認識させれていないといけないのでしょうか?

環境はwindows 7 + apache2.2 + php4です。
0134nobodyさん2010/08/07(土) 23:20:10ID:4rhxgL+i
PDTとPHPEclipseどっちがおすすめですか?
0135nobodyさん2010/08/08(日) 03:01:23ID:344hAWEQ
FPDF+FPDIで、文字を書き込む位置をあらかじめテンプレートの
PDFファイル内にマーカーとして埋め込んでおいて、プログラムから
そこに実際の文字列を入れるということはできないでしょうか?
(Wordの差し込み印刷のイメージです)
いちいち文字の位置をミリ単位で指定するのが非常に大変なもので。
0136nobodyさん2010/08/08(日) 17:32:39ID:gTT1Yd8I
こんなCGI作ってください!
みたいなスレあったと思うんだけど、なくなりましたか?
0137nobodyさん2010/08/08(日) 21:15:52ID:sz2+sMLW
今日XAMPPを一日かかってやっとインストールしました
稼働中のHPからすべてをダウンロードしてローカルで実行する環境までやっとできました

で、うごかしてみたところopendirで failed to open dir: No error in 〜 というエラーが出ています

パスの設定がローカルと本番で違うのかといろいろ試してみたのですが、ずっと解消しません

もしかしてApachかフォルダに権限を与える必要があるでしょうか?
方法を具体的に教えていただければと思います
0138nobodyさん2010/08/08(日) 21:50:19ID:???
初心者はXAMPPを使うな!!!!!!!!!!!
ApacheとPHPを一つずつ入れられるようになってから使え!!!!!!!!!!
0139nobodyさん2010/08/08(日) 22:02:30ID:sz2+sMLW
これはXAMPPの問題なのですか?

それがわかっただけでも収穫です
0140nobodyさん2010/08/08(日) 22:43:01ID:???
>>137
エラーメッセージの詳細がわからないからなんともいえないな。
パスが存在しないのかもしれないし、権限がないのかもしれない。
>>138はXAMPPが悪いといっているのではなくて、問題の切り分けができない人が使うと、
「何が問題なのかが分からない」という状態になることを危惧しているのだろうと思う。
0141nobodyさん2010/08/09(月) 00:09:41ID:???
こんな質問するくらいだからパーミッションは絶対無い
100%パス間違ってる、だな
0142nobodyさん2010/08/09(月) 01:16:25ID:???
XAMPとか初心者が無理に入れたところで動かないだろう
仮想マシンでUbuntu動かした方がいい
0143nobodyさん2010/08/09(月) 01:47:43ID:DI3eal4w
普通解凍しただけで動くんじゃないの?
0144nobodyさん2010/08/09(月) 06:16:44ID:???
phpの自作関数を投稿して共有出来るサイトがあれば教えてください。
php 投稿サイト で検索しても出てこなくて。
0145nobodyさん2010/08/09(月) 08:08:41ID:???
http://ideone.com/
0146nobodyさん2010/08/09(月) 09:46:50ID:???
規制中は平和だったな。 また規制にならんかな。
0147nobodyさん2010/08/09(月) 10:10:50ID:???
>>133
この場合 IndexAction は実行開始前に定義済みになるので原因は他にある
0148nobodyさん2010/08/09(月) 21:48:06ID:ZoOeKZuo
Array
(
 [0] => Array
 (
 [name] => abc
 [age] => 14
 ),

 [1] => Array
 (
 [name] => def
 [age] => 47
 ),

 [2] => Array
 (
 [name] => ghi
 [age] => 21
 )
)

以上のような連想配列があるのですが、
ageの大きい順にソートするには、どういうやり方があるでしょうか?
0149nobodyさん2010/08/09(月) 21:57:36ID:???
usort
0150nobodyさん2010/08/09(月) 22:00:58ID:???
まず最初のキーとageの値をだけの配列を作る
arsortで並び替える
それをforeachかなんかで回して
元の配列からからの配列に値をいれていけばいいんじゃね

間違ってたらごめーんね
0151nobodyさん2010/08/09(月) 22:27:09ID:ZoOeKZuo
>>150
とてもヒントになりました。
何とか形にできそうです、ありがとう!
0152nobodyさん2010/08/10(火) 11:23:59ID:???
クラスとか継承とかわけわかめなのですが、PHPでそういう概念を説明してある
書籍とかがあまり無い気がします。
Javaの本でも読んだ方が概念的な理解は早いですかねえ。
0153nobodyさん2010/08/10(火) 11:26:39ID:???
>Javaの本でも読んだ方が概念的な理解は早いですかねえ。

その方が良いな。
0154nobodyさん2010/08/10(火) 13:05:11ID:???
名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/08/10(火) 12:57:42 0
携帯から画像のアップロードが出来るページを
作成したいと思っています。

現在、サクラインターネットを使っているのですが、
ページ内に複数のリンクが存在しており、
それぞれのリンクがクリックされると

mailto: *** 

でそれぞれ異なるメールアドレスへ向けてメールを送信する事によりサーバ側で
受け取ったメールに添付された画像をページごとに用意したディレクトリに
保存しようと思っています。

例) 1                 例) 2
pagename1@test.co.jp      pagename2@test.co.jp
※メールアドレスはページによって変えたいですがドメインは同じです。


しかし、動的にページが増える場合にはメールアドレスも動的に生成しなくては
ならない事と、スパムメールが届く可能性があるのですが、
この様な事をしたい場合にはどうするのが一般的なのでしょうか?

当方にて調べたところ、
携帯から画像のアップロードを行う場合は、
メール送信を介して行うのがオーソドックスな様なのですが他に何か良い方法はありますか?
0155nobodyさん2010/08/10(火) 14:09:30ID:???
ttp://www.test.co.jp/
教育評価研究所
0156nobodyさん2010/08/10(火) 14:15:18ID:???
154
まさかそんなドメインのHPがあるとは思ってもいませんでした。

それより >>154 を実現するにはどうすれば良いのかご教示下さい。
0157nobodyさん2010/08/10(火) 14:18:42ID:???
>>154
受け取る側のメアドは1つで良いと思う。
日本語がおかしいので、根本的な何かを間違ってる気がする。
0158nobodyさん2010/08/10(火) 14:53:16ID:???
>>157
動的に生成したページの為、
どのページよりアップロードされたかを

メールアドレスのうち@の左側の部分で判断しようと思っていたのですが、
メールアドレスは1つで、本文に何がしかの値を設定する事により
その部分で判定をすれば良いということでしょうか?


ただ、スパムメール業者にメールアドレスを拾われて、
スパムメールが届く可能性があるので、

メールを受信した場合に送信されたメールの本文を元に
スパムメールであるかどうかを判定し、スパムメールの場合には、
自動でメールの削除処理を行いたいのですがどうすれば良いでしょうか?
※さくらインターネットの共有鯖を想定しています。
0159nobodyさん2010/08/10(火) 15:45:47ID:???
拡張メールアドレス

でググれ
0160nobodyさん2010/08/10(火) 16:03:33ID:???
文字列を暗号化するにあたり、
次の関数を使用しているのですが、

第3引数の $iv に9文字以上を設定して実行すると警告が出てしまいますが、
これは仕様なのでしょうか?
(8文字以内で無いとダメなのか?)

mcrypt_generic_init($resource, $key, $iv);

【警告内容】
Iv size incorrect; supplied length: 14, needed: 8


暗号強度を高める為に、最終的には最低でも15桁程度は
$iv に指定したいと思っています。
0161nobodyさん2010/08/10(火) 16:25:14ID:???
そこの文字数を増やすと暗号強度が高まるの?
0162nobodyさん2010/08/10(火) 16:37:39ID:???
mcrypt使ったこと無いのであれだが
マニュアル見てる限りivの使い方間違ってないか?
0163nobodyさん2010/08/10(火) 16:50:04ID:???
>>162
いや、かなりそっち方面の詳しい人の書いた
HPのソースを拝借してるので正しい筈。

ってか雑魚に質問した俺がアホだった。
0164nobodyさん2010/08/10(火) 16:58:30ID:???
>>163
マニュアルには
IV は通常そのアルゴリズムのブロック長と同じ大きさですが、
mcrypt_enc_get_iv_size() をコールする ことにより、その大きさを得る必要があります。
IV は ECB では 無視されます。IV は CFB、CBC、STREAM、nOFB では必須です。
IV はランダムで一意である必要があります(しかし、秘密ではある必要は ありません)。
暗号化と復号で同じ IV を使用する必要があります。
IV を使用したくない場合にはゼロに設定しますが、これは推奨されません。

こう書いてあるけどどうなのよ
ていうかその人に聞けば良いんじゃないのか
0165nobodyさん2010/08/10(火) 17:12:55ID:???
>>164
何か研究者っぽい人が趣味で載せてるっぽいHPなので
質問しても華麗にスルーされそうなのでやめました。

あのサイトどこだったかなぁ。
0166nobodyさん2010/08/10(火) 17:26:55ID:???
>>165
IDださないと誰かわからんよ

暗号化のアルゴリズムは何を使ってる?
種類によって長さが変わってくるはず

mcrypt_generic_init($resource, $key, $iv);

この前に$resouce生成している行があるでしょ?
そこで種類はわかる。

というかmcrypt_enc_get_iv_sizeで得られる長さ以上は無理だよ
0167nobodyさん2010/08/10(火) 17:32:23ID:???
マニュアルに書いてある事が理解できない奴はスルーされるだろうな
0168nobodyさん2010/08/10(火) 17:34:06ID:mBoLwcDd
test.txtに、
1行目 $test ="こんにちは";
と書いておき
sample.phpで
$sample = file(test.txt)で読み込み
$sample[1]とした時、文字列が[1]に入ってますが、

sample.php内で、
変数$testとして使いたい場合はどうすればよいのでしょうか?
0169nobodyさん2010/08/10(火) 17:36:31ID:???
>>168
PHP: include - Manual
http://jp2.php.net/manual/ja/function.include.php
0170nobodyさん2010/08/10(火) 17:51:37ID:???
>>168
$testでかくなら.txtじゃなくphpとして扱ってincludeしたほうがいい
どうしてもテキストがいいなら
test=こんにちわ

php側
list($a, $b) = preg_split("/=/",$c);
${$a} = $b;


これでいいはず
0171nobodyさん2010/08/10(火) 18:40:33ID:mBoLwcDd
ありがとうございました なんとかなりそうです
0172nobodyさん2010/08/10(火) 18:40:54ID:???
テキストがいいならparse_ini_file使えば?
http://php.net/manual/ja/function.parse-ini-file.php
0173nobodyさん2010/08/10(火) 18:55:47ID:mBoLwcDd
そうですね そっちのほうが良さげですが、なんとかなりそうなので次回やってみます
ご指導ありがとうございます。
0174nobodyさん2010/08/10(火) 23:27:55ID:f5P1YaX5
pg_fetch_arrayだと結果の配列の中身はすべて文字列だけど、fetchAll( PDO::FETCH_ASSOC )だと
データ型に応じた型で返るでおk?
0175nobodyさん2010/08/11(水) 19:42:33ID:???
メールの受信をトリガにPHPスクリプトを実行させる為に
.mailfilter に転送設定を行い abc.php を実行させようとしています。
受信メールの内容を取得し加工した上で
別のメールアドレスに送信しようとしているのですが、

/home/xxx/www/abc.php

abc.php の中に require_once('Mail/mimeDecode.php'); という宣言を入れた状態で
次の3パターンを実行した場合、(1)の場合のみエラーも出ずに正常に送信されますが
これは一体なぜでしょうか?
(Pearのパッケージは既にインストール済みです。)

(1)ブラウザからのアクセスした場合
 http://xxx.sakura.ne.jp/abc.php

(2)CUI上からキックした場合
 php abc.php

(3)起動元となるメールアドレスにメールを送信し
 .mailfilter経由で abc.php をキックした場合

※【abc.php】の中身
<?php
require_once('Mail/mimeDecode.php');
// 〜 略:別のメールアドレスへの送信処理 〜 //
?>
0176nobodyさん2010/08/11(水) 20:14:48ID:???
>>175
(2)と(3)は、何て言うエラーが出るの?ファイルが見つからないって言われてない?
0177nobodyさん2010/08/11(水) 20:18:48ID:???
>>176
(2)
→ TeraTerm上では何もエラーが表示されません。

(3)
→ メールを送信すると、送信元のメールアドレスに次のエラーメッセージが返って来ました。
The original message was received at Wed, 11 Aug 2010 20:16:33 +0900 (JST)
from ksav**.sakura.ne.jp [***.***.***.***]
----- The following addresses had permanent fatal errors -----
<***@xxx.sakura.ne.jp>
(reason: 255)
----- Transcript of session follows -----
554 5.3.0 unknown mailer error 255
0178nobodyさん2010/08/11(水) 22:29:45ID:hbz/oQrU
ファイルを
・外部からはアクセス不可
・PHPで操作(作成・削除など)可能
にするためには、そのファイルをドキュメントルートより上に置けばいいと思いますが、
その方法を使わずに、ドキュメントルートの下に置いて同じことを実現するためには
どうすれば良いのでしょうか?
0179nobodyさん2010/08/11(水) 22:55:16ID:???
Apacheなら.htaccessに
Order allow,deny
Deny from all
を書く、IISは知らん。
0180nobodyさん2010/08/12(木) 00:06:04ID:0qoFhKL3
>>179
環境を書き忘れててすみませんでした。
Ubuntu+Apacheなので、.htaccess試してみます。
ありがとうございました!
0181nobodyさん2010/08/12(木) 00:23:53ID:???
>>177
Pearへのパスをどうやって設定しているか知らないけど、
(2)でシェルから php -i 実行して、ちゃんとinclude_pathに入っている?

(3)も同じようにでメール受信をトリガに php -iの結果を
適当なファイルに保存して、あとで中身を確認すると何かわかるかも。

カレントディレクトリが、/home/〜/wwwだとは限らないよ
0182nobodyさん2010/08/12(木) 00:44:45ID:???
>>181
Pearへのパスは、php.iniより設定しています。
⇒ サーバコントロール > PHP設定の編集 > * php.ini 設定ファイル編集 *

;■Pearのインストールディレクトリの設定
include_path = ".:/home/xxx/www/pear/PEAR/"


しかし、php -i で include_path を調べたところ上記で指定したパスが表示されていませんでした。
include_path => .:/usr/local/php/5.2.13/lib/php => .:/usr/local/php/5.2.13/lib/php

しかし、php.iniではしっかりと指定している為おかしいと思い、
ブラウザから abc.php に次のコードを追記し確認したところ

$ip = get_include_path();
echo "get_include_path()=".$ip."<br>";

次の出力がされました。

get_include_path()=..:/home/xxx/www/pear/PEAR/

従って、インクルードパス指定は通っていると思われるのですがなぜ
CUI上からのコマンド実行をした場合 や メール受信のトリガからコールされた場合に
abc.phpに記載した require_once('Mail/mimeDecode.php');  の部分で
なぜ、失敗してしまうのか分りません・・・

うーん、参ったぁ〜〜〜
0183nobodyさん2010/08/12(木) 00:58:40ID:???
make時の設定によるが、apacheから実行した場合と、CUIから実行した場合で、
それぞれ別のphp.iniを参照するようになっている場合がある。

php -c 〜で直接iniファイルを指定する方法もあるから、調べてみ
0184nobodyさん2010/08/12(木) 01:14:46ID:???
ソース内でset_include_pathやini_setで設定する
0185nobodyさん2010/08/12(木) 03:26:14ID:???
>>183 >>184 
何だか出来たっぽいです!!
ほんとーにありがとうございます!!!

うれしぃーーーー!!
0186nobodyさん2010/08/12(木) 11:13:04ID:???
【OS名】WindowsXP
【PHPのバージョン】5.2.13
【連携ソフトウェア】MySQL
【質問内容】

PHPからMySQLに持続的接続をしたいのですが

mysqli_connect('p:localhost');
これを実行しても

Unknown MySQL server host
と言われてしまいます。

p:を外すと接続できます。
何か使い方間違えているのでしょうか…?
0187nobodyさん2010/08/12(木) 11:21:16ID:???
5.3からなのではないでしょうか
http://php.net/manual/ja/mysqli.persistconns.php
0188nobodyさん2010/08/12(木) 11:42:07ID:???
>>187
ほんとだΣ
ありがとございました!
0189nobodyさん2010/08/12(木) 17:20:40ID:PSNYtZ9G
JavaScriptでの文字数カウントとPHPでの文字数カウントが違うので調べたところ、
サーバに渡ってきている文字列の改行コードが\r\nになっていることに気づきました。
これはOSとブラウザによって変わる部分ですよね
今まで意識していなかったのですが、
本来は文字列のバリデーション等をする前に、
改行を\nに統一するフィルタをかける必要があったのでしょうか?
今までDBに格納したデータも混在した改行コードが入っていると思うとへこみます
0190nobodyさん2010/08/13(金) 01:39:53ID:CCRng8uM
http://経由で呼ばれてる時と
ローカルのコマンドラインから呼ばれてる時ってどのように判断したらいいでしょうか?

昨日あげたphpで
$debug = true;
としたままアップロードしてしまって大変な目に会ったんで
自動的に判断してくれるようにしたいのですが

0191nobodyさん2010/08/13(金) 02:01:26ID:???
>>190
各々で実行した時の$_SERVER変数の違いを確認してみたら?

または、コマンドラインからは引数付きで起動し、argc、argvの有無をみるとか
0192nobodyさん2010/08/13(金) 02:37:17ID:???
>>191
ありがとうこざいます。
0193nobodyさん2010/08/13(金) 04:16:01ID:???
fopen を a の追記のみで開いたファイルってロックする必要なし?
0194nobodyさん2010/08/13(金) 10:07:59ID:21Z4+sGW
変数に格納していない配列の値を任意の添字で取り出すのってできないのかなあ
イメージ的には array(1,2,3)[2] みたいな
0195nobodyさん2010/08/13(金) 11:16:26ID:???
そうする必要性がある事ってあるの?
0196nobodyさん2010/08/13(金) 11:36:45ID:???
perlはできるね まあ、一旦変数に入れればよろし。
0197nobodyさん2010/08/13(金) 11:43:14ID:???
>>195
たとえば $value に任意の値が入ってくるとして、

<?php
$kari[0] = 'yes';
$kari[1] = 'no';
?>
<b><?php echo $kari[$value]; unset($kari) ?></b>

こんなん書かずに

<b><?php echo array('yes', 'no')[$value] ?></b>

この1行で済ませられたらいいなと

あとはexplodeで分割した中からn番目を取り出すときに
一旦配列変数に格納するのもなんか嫌だ

>>196
うー、なんとかならんのかね
0198nobodyさん2010/08/13(金) 11:52:09ID:???
メールを受信したらPHPにて受信メールを解析するプログラムを
作成しているのですが、次のコードがどうしても分りません。
どの様に記述すれば良いかご伝授下さい。

<知りたいコード>
・添付されたファイルの総数
・添付されたファイル名称の取得
・送信先メールアドレス
 ⇒ 送信元では無く、送信先のメールアドレスです。


<参考にしているサイト>
http://www.aiwake.co.jp/modules/bulletin/index.php?page=article&storyid=4
0199nobodyさん2010/08/13(金) 14:45:22ID:???
case "image": 以下でカウント取れば?
ファイル名は $part->ctype_parameters['name'] 
あて先は $structure->headers['to']

いろんな形でメールくるので、携帯の対応したかったら
いろんなメール送って $structure 見てみるといいよ。いろいろ足りない。
0200nobodyさん2010/08/13(金) 15:06:36ID:???
>>197
array_searchってやつを使ってみたら?
俺は使ったことないけどそれっぽいと思う
0201nobodyさん2010/08/13(金) 15:54:50ID:???
>>199
ありがとうございます。
添付ファイル数については、

$cnt = count($structure->parts);

として取得する事が出来ました。

しかし、実際の添付ファイル数 + 1 が $cnt には入る様なのですがこれは仕様なのでしょうか?
0202nobodyさん2010/08/13(金) 16:21:00ID:???
>>201
それだと本文の分がプラスされてるでしょ
0203nobodyさん2010/08/13(金) 16:26:28ID:???
まず198はメールの仕様を知るべきだ
0204nobodyさん2010/08/13(金) 16:35:58ID:???
>>201
蛇足だが、本文無しで添付だけされた場合に
multipartになる場合もあるし、そうでない場合もある
>>198のサイトのサンプルは、>>199さんが言うように色々足りないよ

あと次からIDだしてね
0205nobodyさん2010/08/13(金) 16:45:15ID:???
>>202
ありがとうございます。

>>203
正直メールの仕様と言うかプロトコル的な部分をあまり理解していませんでした。
勉強します。

>>204
本文無しで投稿した場合に mutipart になるなんて予想もしてませんでした。
他にも幾つか、こういった内容を詳しく解説しているサイトも同時に見ていたのですが、
無駄にコードが長くて >>198 のサイトは短くて凄い!
と思ってましたがそれが間違いだと気付かされました。

IDの表示・非表示を同制御したら分りません。
0206nobodyさん2010/08/13(金) 17:00:52ID:???
>>205
>>1
>◆質問する時の注意
>・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
0207nobodyさん2010/08/13(金) 17:21:45ID:2GOnN1Mf
sage 外しのチェック
02082052010/08/13(金) 20:09:13ID:2GOnN1Mf
>>198のサンプルコードはやはり抜けが多い様なので
より詳しく信頼出来る解説サイトを探しまして何とか
それらしきサイトを見つけました。

http://d.hatena.ne.jp/ya--mada/20080415/1208318475

ただ、一点このコードでも漏れがある様で、
添付ファイルに日本語が含まれている場合に、
ファイル名称を正常に取得する事が出来ません。

文字化けを回避する為に次の様に取得したファイル名に
対しても文字コードをSJISにする様にしたのですが
やはりダメでした。

$fileName = mb_convert_encoding($fileName,"SJIS","auto");

メールに添付されたファイル名が日本語の場合でも
文字化けせずにファイル名を取得するにはどうすれば良いでしょうか?
0209nobodyさん2010/08/13(金) 20:28:38ID:???
メールだと文字コードはISO-2022-JPでしょauto指定しても含まれてないから意味無い
02102052010/08/13(金) 20:33:21ID:2GOnN1Mf
>>209
どうすれば日本語が含まれるファイル名を
文字化けせずにファイル名称を取得する事ができますでしょうか?
0211nobodyさん2010/08/13(金) 21:35:25ID:Ps4VPPCk
質問です。
配列をarray_mergeで結合したいのですが
配列の数が可変の場合はどのように処理すればいいのでしょうか

以下のように試行錯誤しているのですが・・・

$count = count($data);
for ($i=0; $i<$count; $i+=2) {
     $arr[] = array_merge($data[$i], $data[$i+1]);
}
0212nobodyさん2010/08/14(土) 03:25:34ID:QXgWu0QA
昨日XAMPPをインストールしてPHPをはじめた初心者なのですが
count(array);の部分で
Fatal error: Call to undefined function conut() in C:\xampp\htdocs\index.php on line 41
とのエラーがでます

count()が無いってことは標準関数が読み込めていないってことですよね……?
PathはC:\xampp\php;には通しました
どうすればいいのかさっぱり分からなくて困っています……
初歩的ですが自分にはどうしようもないのでアドバイスをお願いします
02132052010/08/14(土) 03:29:45ID:???
どなたか >>208 についてご存知の方はいませんか?
0214nobodyさん2010/08/14(土) 04:27:01ID:???
>>205
ttp://www.emaillab.org/essay/japanese-filename.html
■ このスレッドは過去ログ倉庫に格納されています