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

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

■ このスレッドは過去ログ倉庫に格納されています
00011様2006/08/23(水) 00:54:52ID:uM5Jzzy0
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0123nobodyさん2006/08/25(金) 01:25:47ID:???
>>122
まーローダー探しに行ってるからね。

Zend Encoderのが良いに決まってる。
0124nobodyさん2006/08/25(金) 01:29:40ID:???
loader探しに行ってるにしても
encoしてるので20秒
生ソースで2秒はないだろう...
主な処理は大量演算ループです。
ふつうencoするならループ系はハヤクナルンジャマイカ?
0125nobodyさん2006/08/25(金) 01:40:07ID:???
>>121
それって動くの?
recursive ()中にrecursive ()が入ってない?
0126nobodyさん2006/08/25(金) 01:48:48ID:???
>>125
お前って奴は・・・
0127nobodyさん2006/08/25(金) 02:06:10ID:/0MHpE74
質問させてください。
PHP5.1.5
Apache2.055
WindowsXP Sp2
という構成でサイトを作っています。

問題:アクセス解析サービスでリファラが正常に取得できない

index.phpにアクセスすると携帯かPCか、アクセスクライアントを判断して
それぞれにあったページを表示しているのですが、
そのページに、以下の様なアクセス解析サービスをつけています。
<img src="http://w1.ax.xrea.com/l.f?id=100646XXX&url=X"; border="3" width="40">

このように画像を読み込んでアクセス解析するタイプでは、リファラが正常に取得できないようなのです。
静的なHTMLでは正常にリファラを取得してくれるのですが、
phpからページ生成をするような場合は、リファラには全て自分のサーバがセットされてしまうようです。

どうにかphpから生成したページでも正常にリファラを取得できるようにはならないものでしょうか。
もし宜しければアドバイス頂けませんでしょうか。
0128nobodyさん2006/08/25(金) 02:11:13ID:???
>>114
国内産でおねがいします
0129nobodyさん2006/08/25(金) 02:19:35ID:???
>>124
そういう単純処理の高速化は難しい。

この手のソフトは一回構文を評価したのち、
早い順番に内部の関数を入れ替えてエンコードするんだけど、
その秒数は異常かもね。Zendの奴使ってるけどそんなケースはないなぁ。
0130nobodyさん2006/08/25(金) 02:27:53ID:???
>>124
早くならないどころか大幅に遅くなってて意味ないじゃんか。
何か設定がおかしいんじゃねぇの?
0131nobodyさん2006/08/25(金) 02:57:20ID:???
>>125
再起呼び出しも知らんのか。お前ホントにプログラマか??
0132nobodyさん2006/08/25(金) 03:23:46ID:???
>>131
すんません。漏れも知らないです。
本職はPGでもなきゃIT系でもないので許してください。
0133nobodyさん2006/08/25(金) 03:43:40ID:???
>>131
ほほぉ、こんなの動くんだ。
勉強になったが、今まで困らなかったからなぁ・・
0134nobodyさん2006/08/25(金) 04:49:02ID:???
勿論抜ける処理をしないといけないけどね。
プログラマだろうが知らない事あって当然
0135nobodyさん2006/08/25(金) 05:24:08ID:???
if($i==10){
echo "post<br>";
return ;
}
recursive();
にすると末尾再帰でループに最適化・・・PHPはされないんだっけ?

0136nobodyさん2006/08/25(金) 06:17:46ID:???
opcodeを最適化するaccelerator使えば末尾呼び出しは最適化される
0137nobodyさん2006/08/25(金) 07:05:50ID:???
>>127
php自身でリファラとればいいじゃん
静的なHTMLでもリファラは自分自身になると思うが(Javascriptとかで渡さない限り)
0138nobodyさん2006/08/25(金) 08:38:20ID:???
>>136
ありがd
0139nobodyさん2006/08/25(金) 11:56:06ID:???
前スレ774 http://pc8.2ch.net/test/read.cgi/php/1154923910/774 ですが
fopen 'r+'
ftruncate
でもダメでした。
file()やfile_get_contents()はflock中でも読み込んでしまうので
上書きのための一時的に空の状態の時に実行されてしまう事があります。

素直にfreadかfgetsでも使おうと思います。
助言くれた方、ありがとう。
0140nobodyさん2006/08/25(金) 11:57:38ID:???
失礼
私は前スレ770でした。
http://pc8.2ch.net/test/read.cgi/php/1154923910/770
0141nobodyさん2006/08/25(金) 12:26:17ID:x7whBw5F
// 制限時間を設ける
$expire = time() + 60 * 60 * 24 * 10;

// クッキー情報をセット
setcookie("name", $name, $expire);

これで、Warning: Cannot modify header information - headers already sent by...というエラーが出るのですが、何故でしょうか?
0142(^ω^)2006/08/25(金) 12:36:10ID:???
マニュアルは、しっかり、何回も、読むのよ!
分かりましたね!?
聞いてなかったとは言わせないよ!
ねえみなさん!

http://jp.php.net/manual/ja/function.setcookie.php
><html>や<head>タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
0143nobodyさん2006/08/25(金) 12:46:45ID:x7whBw5F
>>142
<?php
$name = $_POST['name'];
$name = htmlspecialchars($name);
$expire = time() + 60 * 60 * 24 * 10;
setcookie("name", $name, $expire);
?>

ありがとうございます。
setcookie以前には出力は出ないようにしました。
しかし、この6行のスクリプトでも同じようにエラーが出るのですが、何故でしょうか?
0144nobodyさん2006/08/25(金) 12:58:18ID:r3tiUVo5
すみません、ど素人な質問ですがよろしくお願い致します。
PHP4系とMySQL3.23系で開発してます。

no uid visit_id year month day timestamp
1 35 1 2006 8 20 1156044334
2 1 31 2006 8 25 1156437877
3 1 33 2006 8 25 1156440499
4 31 1 2006 8 25 1156441495
5 31 32 2006 8 25 1156442959
6 31 1 2006 8 25 1156442961
7 35 33 2006 8 25 1156443005
8 35 1 2006 8 25 1156443007
9 35 1 2006 8 25 1156443342


上記のようなテーブル構成でデータが入っているとき、
「同じ年月日の中で、visit_idが同じ値のレコードが複数あった場合、一つだけ選ぶ。
 一つだけ選ぶ基準は、timestampが最も大きいレコード。その時のuid(またはno)」
を、抽出したいと考えています。

たとえば、visit_idが「1」のとき、「no」が「1」と「6」と「9」のレコードを得たいです。
0145144(続き)2006/08/25(金) 13:00:30ID:r3tiUVo5
それで
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
ORDER BY `timestamp` DESC
だと、
「no」が「9,8,6,4,1」のレコードが得られます。
ここまでは想定通りです。


ここで、「uidが重複しているレコードのうち、timestampの値が小さいほう」を除外すれば、
抽出したくないレコード(「no」が「8と4」のレコード)を含まず、
当初の目的である、「no」が「1,6,9」のレコード だけが得られるはずです(…よね?)


そこで、
SELECT `no`, `uid`, `year`, `month`, `day`, `timestamp`
FROM テーブル
WHERE `visit_id`='1'
GROUP BY `uid`
ORDER BY `timestamp` DESC

と、GROUP BY `uid`を加えてみると、得られる結果は「no」が「4と1」のレコードでした。
「no」が「8と4」のレコードを得るのではなく、
逆にこれを除外して「no」が「9」と「6」と「1」のレコードを得たいと
思っていたのに、まったく正反対の結果になってしまいます。

正しい結果を得るには、どういうSQL文を発行したら良いのでしょうか?
0146nobodyさん2006/08/25(金) 13:19:03ID:???
サブクエリー使えばいいんじゃないの?MySQL4.1以降からしか使えないみたいだけど。
PHP関係ないし、DB板で聞いてきたら?
0147nobodyさん2006/08/25(金) 13:24:38ID:HJhLYM88
物件検索システムのスクリプトあるとこ教えて。
探したけどすべて有料なんだもん。
0148nobodyさん2006/08/25(金) 13:31:21ID:???
>>143
<?php の前の改行のせいです
0149nobodyさん2006/08/25(金) 13:36:40ID:???
お願いします。
名前はすべて苗字(漢字)名前(ひらがな)で構成されているリストから
名前=ひらがな部分を抜き出したいのですが、どうすればよいでしょうか?
01501492006/08/25(金) 13:37:18ID:jN6+EhEe
すいません、sageちゃいました
0151nobodyさん2006/08/25(金) 13:38:15ID:???
>>145
年月日の連結文字列カラムをSELECTして
そのカラムでdistinctで重複はじいてとかでいけないかな
0152nobodyさん2006/08/25(金) 13:57:13ID:???
>>149
各文字コードにあった、マッチング処理が必要だと思う
そんなことをやってくれる、公開されたスクリプトあったかな
0153nobodyさん2006/08/25(金) 14:16:07ID:???
http://hotwired.goo.ne.jp/webmonkey/2005/03/index4a_page6.html
上のページ、見てて疑問に思ったんですが、
$page = new stylesMainMenu();
$page = new mainmenu();
だけでページ表示されるんでしょうか?

$page->stylesMainMenu();
$page->mainmenu();

を行う必要はないのでしょうか?
0154nobodyさん2006/08/25(金) 14:27:36ID:???
>>143
UTF-8のファイルでファイルの先頭にBOMが付いているかも
0155nobodyさん2006/08/25(金) 14:32:39ID:cXrhOjOg
引数$testが echo $test;しても表示されないのはなんでなのかなぁ。
ほんとくだらない質問でごめんなさい。
0156nobodyさん2006/08/25(金) 14:33:43ID:???
>>153
コンストラクタはオブジェクト作成時に自動的に実行される関数です
PHP4ではクラス名と同名の関数がコンストラクタになります
PHPでは__construct() も使えます
0157nobodyさん2006/08/25(金) 14:43:28ID:rSZy/sXz
RSSがらみのテストプログラムを作っているのですが、

RDF系で使われている日付形式(例: 2006-08-24T16:20:00+09:00)をタイムスタンプに変換する方法がわかりません。
dateとかstrtotimeでいけるかと思ったんですがうまくいきません。

心当たりのある方、よろしくお願いします。
0158nobodyさん2006/08/25(金) 14:44:36ID:???
最近VBScriptからPHP4系に乗り換えさせられた者ですが、
VBScriptでいう「Response.Clear」みないなものはechoにはないのですか?
0159nobodyさん2006/08/25(金) 14:48:08ID:???
質問します。

// Perlでの処理
@array_1 = (1, 2, 3, 4, 5);
@array_2 = $array_1[1 .. 3];

Perlの配列のスライスのように、phpで上記のようなことは出来ますか?
0160nobodyさん2006/08/25(金) 15:16:22ID:???
>>157
正規表現とmktime()でなんとかしる

>>158
http://jp2.php.net/manual/ja/function.ob-clean.php
あたりかこの近辺かと

>>159
Perl程それをスマートに書く記述はないと思う
0161nobodyさん2006/08/25(金) 15:18:57ID:???
>>159
array_slice
>>160
そりゃ確かに演算子では用意してないけどさぁ
0162nobodyさん2006/08/25(金) 15:27:33ID:???
>>160
うはーまじっすかーΣ(゚ロ゚ )

正規表現よりは桁数で拾った方が速そうではあるけど・・・
くそー今のRDF規格を作った人を恨むしかないか。
RFC822形式なら一発なのに・・・

ありがとうございました。
0163nobodyさん2006/08/25(金) 15:37:15ID:bPaTgEu1
質問です。(PHP5,apache)
下記のコードにおいて、methを実行することで$inにout.phpで宣言している変数を代入するには、どうすればよいでしょう?

include("out.php");

class{
var $in;
function meth(){
$this->in = (out.phpで宣言されている変数)
}
}
0164nobodyさん2006/08/25(金) 16:02:31ID:???
>>157
こんな感じ?
$rdfdate = "2006-08-24T16:20:00+09:00";
$time = strtotime(preg_replace('/(.*)T(.*)([-+])(.*):(.*)/', '\1 \2 \3\4\5', $rdfdate));
echo $time; //1156404000
0165nobodyさん2006/08/25(金) 16:04:50ID:???
>>163
$this->in = $GLOBALS['out.phpの変数名'];
0166nobodyさん2006/08/25(金) 16:09:30ID:???
>>164
正規表現が苦手なので桁数でやってしましました。

function getTime($rdftime){
$t = strtotime($rdftime);//RFC形式は通る
if($t == -1){
//RFCではない。=RDF形式
$y = substr($timestamp , 0 , 4);
$m = substr($timestamp , 5 , 2);
$d = substr($timestamp , 8 , 2);
$j = substr($timestamp , 11 , 2);
$f = substr($timestamp , 14 , 2);
$b = substr($timestamp , 17 , 2);
$t = mktime($j, $f, $b, $m, $d, $y);
}
return $t;
}

こんな感じで。
0167nobodyさん2006/08/25(金) 16:26:32ID:???
/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2}))?(?:([-+])(\d{2}):?(\d{2})|(Z))?/
0168nobodyさん2006/08/25(金) 17:26:44ID:???
PHP5ならstrtotime()で一発だお。
0169nobodyさん2006/08/25(金) 17:37:14ID:???
>>160 ありがとうございます。これでバッサリすっきりです。
0170nobodyさん2006/08/25(金) 18:40:51ID:???
変数に値を追加することは可能でしょうか?

たとえば

$aaa = "あああ";

この$aaa→"あああ"につなげて"いいい"を入れたいんです。
0171nobodyさん2006/08/25(金) 18:41:41ID:???
>>170 $aaa .= "いいい";
0172nobodyさん2006/08/25(金) 19:00:07ID:???
>>171
ありがとうございます
01731442006/08/25(金) 19:36:10ID:r3tiUVo5
>>151
アドバイスありがとうございます。
それは、何らかのクエリを二段階で投げる、という意味でしょうか??
0174nobodyさん2006/08/25(金) 19:53:37ID:Zr4Rxmi9
配列にある値の中から最小のものを返してくれる関数はありませんか?
0175nobodyさん2006/08/25(金) 20:15:11ID:???
配列の中にあるものは、intかdoubleだよね?
なら簡単に作れそうなきもするけど。
0176nobodyさん2006/08/25(金) 20:16:44ID:???
min()
0177nobodyさん2006/08/25(金) 20:31:53ID:???
>>176
配列もちゃんと自動で解釈してくれるんですね。ありがとうございました!
0178nobodyさん2006/08/25(金) 20:59:07ID:???
初歩的な質問ですいません。(間違ってプログラム板で質問してしまいました・・)

if($Cid==$line[1] or $Cid==$line[2] or $Cid==$line[3] or $Cid==$line[4] or
$Cid==$line[5] or $Cid==$line[6] or $Cid==$line[7] or $Cid==$line[8] or.................
$Cid==$line[100]) {

をなんとか一文ですっきりする方法はないのでしょうか?
例えば

if($Cid==$line[1から100]) {

のような感じです。
0179nobodyさん2006/08/25(金) 21:10:31ID:???
in_array()
0180nobodyさん2006/08/26(土) 00:50:39ID:???
shift_jisのログファイルを読み取ってutf-8で表示するにはどうすれば良いのですか?
若しくはどのようにしてログファイルにutf-8で保存するのですか?
0181nobodyさん2006/08/26(土) 01:51:42ID:???
/ext/pcre/php_pcre.c眺めてたら

>#define PCRE_CACHE_SIZE 4096

とか

> * If we reached cache limit, clean out the items from the head of the list;
> * these are supposedly the oldest ones (but not necessarily the least used
> * ones).

とか書いてあるんだけど、パターン使いまくりはあまりよろしくないってこと?
0182nobodyさん2006/08/26(土) 02:20:20ID:???
>>179
すいません。具体的にはどうなるのでしょうか?
0183nobodyさん2006/08/26(土) 03:24:48ID:???
>>182
くだ質スレだけど・・・答えは出てるんだからちょっとは自分で調べてみたらどうだ?
0184nobodyさん2006/08/26(土) 03:32:20ID:???
>>182
関数の動作ぐらい自分で調べる方法を身につけましょう
http://www.php.net/manual/ja/index.functions.php
ここらで検索するか逆引き的な本でも買いなされ

定番は「PHP5逆引き大全 500の極意 」なんじゃね
0185nobodyさん2006/08/26(土) 04:55:01ID:???
大体よ、arrayって何なんなんだよ? 配列ってどういうこと?
なんで自信満々に「俺は配列だよ」とか答えるんだよ死ね
0186nobodyさん2006/08/26(土) 07:15:19ID:???
>>185
誰もそんなこと言ってないようだけど
少し寝たほうがいいよ
0187nobodyさん2006/08/26(土) 07:25:14ID:???
>>181
正規表現のパターンを4096個も使うことってのはあんまないような気が・・・。
キャッシュが太りすぎたときにちょこっとクリアされるとは言っても心配するほどのことでもなさそう。
ループ内とかで繰り返し使われるパターンがクリアされたら確かに二度手間にはなるけど、また再登録されるわけだし、立て続けに同じのがクリアされる確率は低いと思う。

まあphpが正規表現のコンパイル結果をキャッシュしてるっての初めて知ったので、情報ありがd。
0188nobodyさん2006/08/26(土) 09:21:45ID:???
>>182
http://jp2.php.net/manual/ja/function.in-array.php

これでも分からないならお前にPHPは20年早いから諦めろ。


>>185
× I'm array.
○ in_array()

寝ろ。
0189nobodyさん2006/08/26(土) 09:37:57ID:???
> I'm array.
01901782006/08/26(土) 11:48:00ID:???
みなさん ありがおうとうございます。 in_array がヒントですね。

ただ、これでも $Cid = array("$line[1]", "$line[2]", "$line[3]",..................................... "$line[100]");
と$line[100]まで延々と記述しなければならないのでしょうか?
なにか数字が1〜100までつづきます みたいなことを定義できないのでしょうか?

おねがいします。
0191nobodyさん2006/08/26(土) 12:15:14ID:???
>>190
お前は何を言っているんだ
0192nobodyさん2006/08/26(土) 12:25:17ID:???
>>191
はい、要は↓をシンプルにしたいんです >< PHPのことがあまりわからず
サイトを引き継いだんですが・・・・・

$Arr=array();
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",",$Data[$i]);
if($Cid==$line[1] or $Cid==$line[2] or $Cid==$line[3] or ........... つづく $Cid==$line[100]まで){
array_push($Arr,$Data[$i]);
}


この ........... $Cid==$line[100]){ 部分がなんとか短くスマートに出来ないか模索中さんです。
in_arrayをつかってもいちいち100まで記述しなければいけないのなら同じですよね?
0193nobodyさん2006/08/26(土) 12:32:54ID:???
>>192
in_arrayの説明をもう1000回読め

ヒントじゃなくて答えだ
0194nobodyさん2006/08/26(土) 12:35:17ID:ZmsklhSj
lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllll/ ̄ ̄ヽlllllllllllllllllllllllllllllllllllllllllll
lllllllllllllllllllll /      ヽllllllllllllllllllllllllllllllllllllll
iiiiiiiiiiiiiiiiiiiiii  試 も あ .iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiiiiiiiii|  合 う き  |iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
;;;;;;;;;;;;;;;;;;;;;|  終  ら  |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;|  了  .め  |;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;:;:;:;:;:;:;:;:;:;:;|  だ  ろ  |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:
;:;:;:;:;:;:;:;:;:;:;|        |:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:;:
:.:.:.:.:.:.:.:.:.:.:ヽ、      /.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:
:. :. :. :. :. :. :. :. ‐‐--‐‐':. :. :. :. :. :. :. :. :. :. :. :.
: : : : : : : : : : : : : : : : : : : : : : : : ,.‐- 、 : : : :
                  廴ミノ
                 ///¨' 、
                 y':;:;:;:/⌒i!
                J:;:;:;:;};:;:/;},
      ;il||||li'       t`'---‐';:;:;:l
     ,.r'"''、,┘        7;:;:;:;:;:;:;:;「
    ノ4 (⌒i        .}:;:;:;:;:;:;;/
   /..,__彡{, |         `i:;:;:;:;:;}
   (  .ミi!} l、         .」:;:;:丿
  クュ二二`Lっ)        `==='

0195nobodyさん2006/08/26(土) 13:02:58ID:???
>>192
ムリです!って言ってその会社やめちゃえば?
0196nobodyさん2006/08/26(土) 13:27:32ID:???
何度読んでもわかりませんよ・・

   ●;  rz ・・・・・・・

0197nobodyさん2006/08/26(土) 13:31:01ID:???
いやちょっと。お前いくらなんでもそれは頭悪すぎないか?
0198nobodyさん2006/08/26(土) 13:35:58ID:???
正直 今も昔も頭は良くないです。
なんどhttp://jp2.php.net/manual/ja/function.in-array.php読んでもわかりません・・

もうちょっと猿にもわかるヒントくれませんか?
0199nobodyさん2006/08/26(土) 13:45:52ID:???
ヒントじゃなくて答えだって。
わかんないなら100こ並べろ。
0200nobodyさん2006/08/26(土) 13:53:16ID:???
>>192
explode した結果が 100 以上の要素を持つ配列になり得るから困ってる?
0201nobodyさん2006/08/26(土) 13:55:21ID:???
バカのフリした釣りだろ
アレ読んで理解出来ないやつなんていねぇし
0202nobodyさん2006/08/26(土) 14:05:40ID:???
>>198
それを読んでもわからないなら、やめたほうがいい。

それと、お節介かもしれないが、知的障害あるか検査したほうがいい。
知的障害があることが既知なのであれば、
プログラミングという高度な知的作業を行うことがそもそも間違いだと思う。
0203nobodyさん2006/08/26(土) 14:37:14ID:???
>>198

  死ね

0204nobodyさん2006/08/26(土) 15:01:54ID:8b0v97H2
くだらない質問ですがお願いします。
$massage="
http://・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
";
mb_language('Japanese');
mb_internal_encoding("SJIS");
mb_send_mail(省略);
を送信した場合
http://・・・・.com/・・・・.php?data=%82v%82%85%82%82%83%7D%83X%83%5E%81%5B」
とメールが届くのですが通常のアウトルックなどのメーラーで受信した場合クリックすると正常なデータを返しますが
hotmailなどのWebメールで受信した場合クリックすると
http://・・・・.com/・・・・.php?data=?v?…???}?X?^?
見たいに変換されます。
受信したアドレスのプロパティーを見ると
「javascript:ol('http://・・・・.com/・・・.php?data=?v?…???}?X?^?);」
なっています。一種の文字化けなのですがどのように対処すれば良いでしょう?
0205nobodyさん2006/08/26(土) 15:03:23ID:???
もうこの阿呆の相手するの飽きた。
マニュアルの日本語すら理解できないサルには俺らが何書いたところで理解できるわけもなし。
これやるからとっとと帰れ。

if(in_array($Cid, $line)) {
echo "私にサイト引き継ぎなんて到底無理です。私にPHPなんて200年は早いのです。";
}

$lineが100個でない時に生じうる意図しない動作に関しては自分で考えて何とかするように。
0206nobodyさん2006/08/26(土) 15:25:17ID:???
>>178
>>1を読んでIDを表示させろ。
偽者が出現していて荒れている気がする。
0207nobodyさん2006/08/26(土) 15:30:13ID:???
>>205
まったく意味がわかりません。もっと詳しくおしえてください 
職失いそうです ><

0208nobodyさん2006/08/26(土) 16:04:56ID:???
能力ないんだから仕方ない。つまり社会のゴミ。
0209nobodyさん2006/08/26(土) 16:15:06ID:???
>>180
mb_convert_encoding($value, "UTF-8", "SJIS")
0210nobodyさん2006/08/26(土) 16:31:15ID:???
ずいぶん今日は回答者が横暴ですね。
0211nobodyさん2006/08/26(土) 16:32:37ID:???
>>210=>>207

まあマニュアルも読めない奴に答える必要は無いということだm9(^∀^)
0212nobodyさん2006/08/26(土) 16:34:51ID:???
自分と意見が合わなかったらなんでも本人乙ですか。
うざいからお前帰っていいよ。

次の質問どうぞ
0213nobodyさん2006/08/26(土) 16:38:21ID:???
煽ってんのはどうせ1人だろ?気にしなくていいよ。
0214nobodyさん2006/08/26(土) 18:49:13ID:8NxWDex1
質問させて頂きます。

○大まかな処理
サーバにある画像を、CSVファイルの値を元にファイル名変換し、ローカルに保存する。
全部で1600件。

○環境
スクリプト実行サーバのOS:ローカルのWindowsXP(an httpdとPHP)
スクリプト実行サーバのPHP:4.3.11
画像があるサーバのOS:不明

画像ファイル名までは全て同じURL。
http://www.example.com/img/〜.jpg

○考えている処理の流れ
1.「商品一覧CSV」読み込み。
2.「商品一覧CSV」A列の旧ファイル名を使い、画像があるURLを生成。
  http://www.example.com/img/old.jpg
3.画像があるURLを元に、ファイルが存在するかチェック。
4.存在すれば、「商品一覧CSV」B列の新ファイル名に変換し、保存
(サーバ上のファイルは、変換せずにそのまま残します。)
  http://www.example.com/img/new.jpg
1600件分。

次に続きます。
0215nobodyさん2006/08/26(土) 18:49:53ID:8NxWDex1
質問の続きです。


○質問内容
CSV読み込みや、文字列の変換などは出来そうなのですが、
ファイルダウンロードや保存処理などが全く判りません。

以下、教えて頂きたいことです。
・勉強をするにしても、見当がつかないので、具体的なキーワード
・もしできましたら、簡単で構わないのでサンプルのソース

お忙しい中、大変恐縮ですが、
こちらの質問に少しでもお時間を頂ければと思います。

出来るだけ丁寧に書いたつもりですが、
日本語おかしかったらごめんなさい。

何卒、よろしくお願い申し上げます。
0216nobodyさん2006/08/26(土) 18:59:14ID:???
ダウンロードはPEARのHTTP_Requestでも使って
イメージのURLを直接GETしてレスポンスを
そのままバイナリでローカルに保存すればいいだけ
数行で終わる処理
02172042006/08/26(土) 19:03:15ID:8b0v97H2
全然わからないでしょうか?一応文字コードとかかな?とか思ってるのですが。

$massage="
http://・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
";
mb_language('Japanese');
mb_internal_encoding("SJIS");
mb_send_mail(省略);
を送信した場合
http://・・・・.com/・・・・.php?data=%82v%82%85%82%82%83%7D%83X%83%5E%81%5B」
とメールが届くのですが通常のアウトルックなどのメーラーで受信した場合クリックすると正常なデータを返しますが
hotmailなどのWebメールで受信した場合クリックすると
http://・・・・.com/・・・・.php?data=?v?…???}?X?^?
見たいに変換されます。
受信したアドレスのプロパティーを見ると
「javascript:ol('http://・・・・.com/・・・.php?data=?v?…???}?X?^?);」
なっています。一種の文字化けなのですがどのように対処すれば良いでしょう
0218nobodyさん2006/08/26(土) 19:10:43ID:???
文字コードだと原因を踏んでるのに
mb_send_mail(省略);
ここを省略するなよ
0219nobodyさん2006/08/26(土) 19:17:18ID:???
>http://・・・・.com/・・・.php?data=UrlEncode($_GET['data'])
ここが凄いなぁ、と、思いました。何でも出来ます。
0220nobodyさん2006/08/26(土) 19:24:46ID:???
>>214
>ファイルダウンロードや保存処理など
ファイル残すなら copy() でいけるんじゃないかな。
システムコマンド発行してもできるんかもしれないけど俺はよく知らん。
02212202006/08/26(土) 19:29:02ID:ZmsklhSj
220追記。
コピー先にローカルを指定するってことね。(C:\〜〜)
試してないから分からんけどできなかったらfile_get_contents()とfile_put_contents()でごりごりと。
02222042006/08/26(土) 19:35:18ID:8b0v97H2
すみません。mb_send_mailです。
mb_send_mail($_GET['mail'],"登録手続き",$message,"From: ...@....com");

hotmail以外の普通のメーラーからは正常に動作します。
問題はhotmailに渡った時のメーラーの文字コードなどの設定なのかな?などと思いながらもわかりません。
■ このスレッドは過去ログ倉庫に格納されています