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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0305nobodyさん2011/04/03(日) 22:25:16.61ID:???
岡崎図書館って転送量が問題になったの?
0306nobodyさん2011/04/03(日) 23:17:59.35ID:???
逮捕されるとかマジで?
0307nobodyさん2011/04/03(日) 23:29:36.16ID:K4LtsUMu
$ary = array("aaa", "bbb", "ccc");

echo "<ul>";

foreach ($ary as $v) {
echo "<li>".$v."</li>";
}
echo "</ul>";

もしforeachの中で$aryが空だと分かればulタグを出力しないで<p>空です</p>と出力するにはどうしたらよいでしょうか?
$aryが空かどうかはforeachの中でしかチェックできない仕様のためどなたかご教示お願いいたします
0308nobodyさん2011/04/03(日) 23:41:58.04ID:ZIlKnwAq
if文で
if($ary=null)
{
echo <p>空です</p>;
}
else{
foreach ($ary as $v)
echo "<li>".$v."</li>";
}
0309nobodyさん2011/04/03(日) 23:43:06.44ID:K4LtsUMu
そのような事も考えたのですがforeachの中でしかチェックできない仕様なので。。。
0310nobodyさん2011/04/03(日) 23:46:18.13ID:???
空だとそもそもforeachの中に入らないと思うが
0311nobodyさん2011/04/03(日) 23:50:05.18ID:???
んなことない
0312nobodyさん2011/04/03(日) 23:50:37.03ID:???
>>309
空だとエラー出るからそもそもコードが間違ってるな
あとforeachの外いじれないのに外の<ul>制御しようってのが矛盾してるぞ
どうしてもやるならクライアントサイドで書き換えるって手になる
0313nobodyさん2011/04/03(日) 23:50:44.04ID:K4LtsUMu
解決しました
0314nobodyさん2011/04/03(日) 23:51:23.36ID:K4LtsUMu
すみません空というのは$ary = array()の事を伝えたかったのです
0315nobodyさん2011/04/03(日) 23:52:45.18ID:???
どんなふうに解決したのか教えてください
正直、信じられません
0316nobodyさん2011/04/03(日) 23:55:00.75ID:???
こんなの難しいレベルでもねえだろwwwwwwwwwwwwwwwwwwwwwww
0317nobodyさん2011/04/03(日) 23:55:42.66ID:K4LtsUMu
>>315
ob_startで解決しました
0318nobodyさん2011/04/04(月) 02:07:01.89ID:???
>>304
無知乙
短間隔のポーリングで問題になるのは
サーバのソケット数が足りなくなることだろ
この記事読んどけ
http://nosa.cocolog-nifty.com/sanonosa/2006/04/windowstime_wai_00d2.html
0319nobodyさん2011/04/04(月) 06:54:18.17ID:???
>>306
被害者が訴えさえすれば逮捕されることも有り得るということだな。
岡崎図書館の場合は結局不起訴(事実上の無罪)になったが、20日間も警察に拘束された事実は消えない。
第3者機関はシステムに問題があると指摘したが、結局システム会社も図書館長もシステムの不備は認めず仕舞い。
一旦振り上げた手はそう簡単に降ろせないわけだ。大人とはそういうもの。
0320nobodyさん2011/04/04(月) 15:08:49.89ID:eDunUa2Z
今ってデータベースはPDOだけ使えばいいですか?
0321nobodyさん2011/04/04(月) 15:11:15.14ID:???
PDOなんかいらない!
MySQL関数で十分だ!!
0322nobodyさん2011/04/04(月) 15:16:28.83ID:uKnLpE6z
ありがとうございます
PDOのがいいんですね
これからPDOを使うことにします
0323nobodyさん2011/04/04(月) 16:40:57.86ID:1s3/8KTt
urlencode(日本語).jpg
見たいな感じでキャッシュつくって読んでみたら、
ブラウザによっては勝手にデコードされるんですけど。。。

何か良い手はありませんか?
0324nobodyさん2011/04/04(月) 17:22:14.80ID:???
何に対してよい手を探しているのか。
ファイル名変えたら?
0325nobodyさん2011/04/04(月) 17:37:56.31ID:???
>>324
デコードされないように追加変換する事にした。
ファイル名の変更は現実問題として無理なのでNGです。
ありがとう。
0326nobodyさん2011/04/04(月) 19:24:16.22ID:???
お前らわかってて質問してるだろwww
0327nobodyさん2011/04/04(月) 19:26:00.86ID:???
てことはファイル名を変更したんじゃないのか
解決したならいいが
0328nobodyさん2011/04/04(月) 21:26:32.22ID:9VudboYI
$im = imagegrabscreen();
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);

これをWindows Vista+apache+PHP5.3.6で実行すると真っ黒な画像が表示されてしまいます
サービスの設定で「デスクトップとの対話をサービスに許可も済んで、apacheの再起動もやりました
何が原因でしょうか?
0329nobodyさん2011/04/04(月) 21:28:06.65ID:???
下記の内容で困っています・・・。


サイトA
IE→ログイン可能
Firefox→ログイン可能
Chrome→ログイン可能

サイトB
IE→ログインできない
Firefox→ログイン可能
Chrome→ログイン可能

という謎の現象が発生しております。
サイトAとサイトBのスクリプトは全く同じで、
Cookie周りが怪しいなと思っているのですが、
その場合、どこを見ればわかりやすいでしょうか
0330nobodyさん2011/04/04(月) 21:35:40.21ID:???
>>328
ホウ!こんな面白そうな関数があったのか!
0331nobodyさん2011/04/04(月) 21:43:23.07ID:8EkRwCFf
opensocialのmixiアプリ開発をしています。
phpの知識もフレームワークの知識もゼロで、手持ちの本を見ながらやってるのですが
完璧に行き詰ってしまって困っています。

javascriptを利用してサーバサイド側のcakePHPフレームワークを介してデータをやりとりするというところなのですが、
通信を開始してもまったく返答がないので何かしらのエラーがあるのは確実なんですが、cakePHPのデバッグ方法がわからず、
一体どこでエラーが起きているのかまったくわからない状態です。
何かエラーの原因を探る方法があればご教授ください。
0332nobodyさん2011/04/04(月) 21:46:04.32ID:9VudboYI
解決しました
0333nobodyさん2011/04/04(月) 21:48:06.02ID:???
>>331
cakePHPよりCodeIgniterがお勧め
cakePHPの教本よりもCodeIgniterの日本語マニュアルのほうが親切で分かり易い
cakePHPはもう今の時代にはコードが古いので乗換えをお勧めする
0334nobodyさん2011/04/04(月) 21:53:00.10ID:vvCt2F5b
<?php
$cookie = setcookie("TestCookie", 1);
var_dump($_COOKIE);
var_dump($cookie);
?>

上記の実験をしてみると

Firefoxでは
int (1)
bool (true)
が返るのですが

IEでは
array (0)
bool (true)
と返ってきます。

IE自体のCookieは有効なのですが、
なんでCookie登録されないのでしょうか・・・。
0335nobodyさん2011/04/04(月) 21:55:19.92ID:???
フレームワークの変更は現実問題として無理なのでNGです。
0336nobodyさん2011/04/04(月) 21:56:51.48ID:???
>>334
$_COOKIE が空だからだよ!
0337nobodyさん2011/04/04(月) 22:00:36.54ID:vvCt2F5b
>>336
setcookieって$_COOKIEに入るものではないんですか?
0338nobodyさん2011/04/04(月) 22:02:48.28ID:???
setcookieはクライアントにHTTPヘッダーでクッキーを送信するもの
$_COOKIEはクライアントがHTTPリクエストするときに送信してくるもの
0339nobodyさん2011/04/04(月) 22:06:43.19ID:???
だからそのページをリロードすればIEでも同じ結果になるんじゃない?
0340nobodyさん2011/04/04(月) 22:09:22.69ID:vvCt2F5b
>>339
何度もリロードしていますが、
一向にIEには値は入らないです・・・。
0341nobodyさん2011/04/04(月) 22:09:47.57ID:???
つーか、var_dump($_COOKIE); の結果が int (1) ってどうなのよ??
0342nobodyさん2011/04/04(月) 22:10:37.83ID:vvCt2F5b
>>341
すみません省略してしまいました。

実際には
array("TestCookie" => int(1))
です
0343nobodyさん2011/04/04(月) 22:12:49.71ID:???
じゃぁIEのセキュリティポリシーの問題じゃないの?
0344nobodyさん2011/04/04(月) 22:15:34.84ID:vvCt2F5b
>>343
ごめん、>>329でID出し忘れてたのか

サイトA
IE→ログイン可能
Firefox→ログイン可能
Chrome→ログイン可能

サイトB
IE→ログインできない
Firefox→ログイン可能
Chrome→ログイン可能

こんな感じで、別の同じスクリプトでは有効になっているので、
IEの設定ではなく、サーバ側の設定と見ています

サーバのCookieの設定でIEだけ無効になるようなものってありましたっけ
0345nobodyさん2011/04/04(月) 22:21:45.07ID:???
さくらのVPSに php 5.3.6+APC 3.16を入れて
input type=fileで送信されたファイルをphpで受け取る際に、
APCとAjaxを利用して、プログレスバー的なものをしようとしています。
その際、ファイルが正常に入力された場合、想定通りの動きをすんですが、

ファイルを入力せず送信した場合
[firefox]
index.php(POST先)と名前のついた 0kbのファイルをダウンロードしそうになる
[IE7.0]
ページが表示されない
という挙動を示します。
action先を変えたり、action先のプログラムを差し替えたりすると再現せず、
またAPC_UPLOAD_PROGRESSをhiddenで埋め込むのをやめると、通常通りの挙動(ファイルが入力されていないこと表示)
を示します。

Ajaxで表示に使用しているjsファイル、script類をすべて読み込まないよう
設定しても再現します。

エラーも何も出ず、このようなケースは初めてなので困っています。
何か原因として考えられることはあるでしょうか?
03463452011/04/04(月) 22:23:52.98ID:rHhHUBKG
すいませんsageてました。。
03473452011/04/04(月) 22:26:59.30ID:rHhHUBKG
追記:
送信側のフォームを表示するプログラムと、action先(受け側)のプログラムは同じプログラムで
GETのmodeという値によって、動作が変化するようになっています。
挙動を確認したところ、空のindex.phpをダウンロードしようとする場合には
print "test";
と頭に書いてみても、空のままです。
0348nobodyさん2011/04/04(月) 22:29:36.68ID:???
>>344
phpinfo見比べてみたら?
あとはパケットモニターしてサーバーから送られてくるメッセージを比較してみるとか
03492011/04/04(月) 22:32:16.62ID:???
>>328
XPだが、その設定だけでこっちでは動いた。
0350nobodyさん2011/04/04(月) 22:46:02.63ID:???
春休みだからレベル低い回答者ばっかw
いや回答者でもねえかw
0351nobodyさん2011/04/04(月) 22:53:23.46ID:???
お前が一番低レベルなんだよ
wつけてるの全部お前だろ?
>>304とか
0352nobodyさん2011/04/04(月) 22:57:25.16ID:???
確かにレベル低いと思ったら春だったのか
0353nobodyさん2011/04/04(月) 23:17:05.38ID:???
で、>>350はレベルの高い回答者なの?
じゃぁ皆の質問を解決してあげたら?
0354nobodyさん2011/04/04(月) 23:20:27.24ID:???
>>333
ど素人なので教本通りに進める以外に方法がないです・・・(´・ω・`)

jQueryを利用して以下のようなコードを実行してcakePHPから返答が返ってこないです
$.post(アドレス, { データ:データ }, function(data, status){
・・・省略・・・
}, 'json');

アドレスは、http://mobomoga.sakura.ne.jp/source/cakephp/app/accounts/save/です
実行されるfunctionは↓です
function save() {
$this->set("response", false);
}
とりあえず全ての要求に対して"response", falseを返すようにしてみたのですが
そもそもデータが戻ってきません。でも直接上記のアドレスにアクセスするとちゃんと"response",falseを返しているように見えます。
もう何が何やら、、、藁にも縋るような思いです。
どなたかデータが戻ってこない原因に心当たりがあれば教えていただけませんか。
0355nobodyさん2011/04/04(月) 23:23:30.28ID:vvCt2F5b
>>348
確認したところ、
サイトAではGETリクエスト時に
「Cookie: TestCookie・・・」を送信しているのに対し
サイトBではそのような表記はありませんでした。

>>354
おそらく、ページ見たらわかると思うけど
{"response":false}
じゃなく、
<html>
〜〜〜〜〜
{"response":false}
〜〜〜〜〜
</html>
まで返ってるからじゃない?

CakePHPわからんけど

0356nobodyさん2011/04/04(月) 23:34:28.04ID:???
>>355
やっぱりIEの設定じゃない?
Cookieを常に許可にしてみたら?
0357nobodyさん2011/04/04(月) 23:34:38.53ID:???
非推奨関数使いすぎのCakePHPなんて今すぐ窓から投げ捨てろ
0358nobodyさん2011/04/04(月) 23:38:58.32ID:???
なんとなくだけど、Aero無効、もしくはオーバーレイを無効にしてみたらどうだろうか。
0359nobodyさん2011/04/04(月) 23:39:43.47ID:???
うそー、Cakeってもうだめなのー
なにならいいのー
0360nobodyさん2011/04/04(月) 23:44:36.79ID:vvCt2F5b
>>356
常に許可でも無理ぽいなー
ありがとう

ふと思ったんですが、これってドメイン関係あります?
DNSの設定で、本日ドメインに対してIP割り当てたので・・・。

なさそうかな・・・。
0361nobodyさん2011/04/04(月) 23:46:52.23ID:???
PHP5.2のサポートはもう終わったのにPHP5.3に正式対応してないフレームワークなんて古い制作会社ぐらい
0362nobodyさん2011/04/05(火) 00:19:19.98ID:???
>>354
それだとPHPがHTMLを返してるのが原因。
試しにJavaScriptのコールバック部分に、alert(data);って入れて試してみな。HTMLタグが表示されるはず。
それをJSONデータのみを返すようにする必要がある。

CakePHPわからないから解決策は答えられないけど、Ajax用の設定があったはず。
「CakePHP Ajax」とかでググったらそれっぽいのたくさん出てくると思うよ。
0363nobodyさん2011/04/05(火) 00:55:33.92ID:???
>>355,>>362
ありがとうございます。
cakePHPではjson形式で返すように記述する部分が別にありまして、
そちらのファイルに<?php echo json_encode(array("response"=>$response)); ?>と記述しています。
前述したjQueryのpostのfunction内にalertを記述しても表示されないので、コールバック関数が呼ばれず
おそらくデータを取りに行ったまま文字通り何も返答しない状態になっているのかと思われます。

自分なりに考えたのですが、お二人の話から察するに、javaから送られたリクエストを受け取って「"response":false」というものを
セットすることはできているが、上記にある、JSON形式でjavaScriptに返答するファイルにセットされたものが渡されてないという感じっぽいですよね、、、。
となると、cakePHPの内部的な設定を間違えているのかなぁ・・・・。
ここで質問するのはお門違いだったかもしれませんね(´・ω・`)
0364nobodyさん2011/04/05(火) 01:05:45.94ID:???
>>363
そう、JSON返す処理自体は正しいんだけど、JSONデータの表示がHTMLテンプレートの中に組み込まれてる状態だから
JSON返すページのみHTMLテンプレートを使用しないように設定すればいいんだと思う
0365nobodyさん2011/04/05(火) 01:20:59.01ID:O9iT5e/s
Cookieの件ですが解決しました
まさかサブドメインにアンダーバー(_)が入っているとIEで使えないとか・・・。
いい勉強になりました
0366nobodyさん2011/04/05(火) 01:51:18.82ID:???
ドメイン名にアンダーバーは使用禁止だから、セキュアな方向に進んだんだな。よいことだ。
0367nobodyさん2011/04/05(火) 02:37:35.04ID:???

質問するときにID出さない奴には要注意

0368nobodyさん2011/04/05(火) 05:11:36.20ID:/Jg2TDSU
PC用のページにアクセスしてきた携帯を携帯用のページに飛ばしたいと思っています。

momo.php?mode=age2   > momokeitai.php?mode=age2
momo.php?mode=age255 > momokeitai.php?mode=age255
のようにしたいです。
この辺の処理はどうしたらいいでしょうか?

$UA = $_SERVER['HTTP_USER_AGENT'];

if(preg_match("/DoCoMo/",$UA)||
preg_match("/KDDI/",$UA)||
preg_match("/SoftBank/",$UA)||
preg_match("/Vodafone/",$UA)||
preg_match("/J-PHONE/",$UA)
){

}

よろしくお願いします<m(__)m>
0369nobodyさん2011/04/05(火) 05:32:57.12ID:???
>>368
header("Location: momokeitai.php?mode=".$_GET['mode']);
0370nobodyさん2011/04/05(火) 05:40:44.30ID:???
.htaccessでしたほうがいい
0371nobodyさん2011/04/05(火) 06:36:47.85ID:/Jg2TDSU
$UA = $_SERVER['HTTP_USER_AGENT'];

if(preg_match("/DoCoMo/",$UA)||
preg_match("/KDDI/",$UA)||
preg_match("/SoftBank/",$UA)||
preg_match("/Vodafone/",$UA)||
preg_match("/J-PHONE/",$UA)
){
header("Location: momokeitai.php?mode=".$_GET['mode']);
}
これでやってみましたが
momokeitai.php?mode=
でIDの部分が空のまま転送されます。・゚・(ノД`)・゚・。
なんででしょう
>>370
.htaccessは負担が重いので使えません(´;ω;`)
0372nobodyさん2011/04/05(火) 06:42:35.99ID:/Jg2TDSU
$UA = $_SERVER['HTTP_USER_AGENT'];

if(preg_match("/DoCoMo/",$UA)||
preg_match("/KDDI/",$UA)||
preg_match("/SoftBank/",$UA)||
preg_match("/Vodafone/",$UA)||
preg_match("/J-PHONE/",$UA)
){
if(isset($_GET['id'])) {
$id = $_GET['id'];
}
header("Location: momokeitai.php?mode=".$id);
}

これでできましたありがとうございます!
0373nobodyさん2011/04/05(火) 06:57:00.71ID:???
>>371
modeに何も入ってないとしか・・・
コードは間違ってないと思うよ
0374nobodyさん2011/04/05(火) 10:13:47.60ID:???
$_SERVERはやめましょう
getenv('HTTP_USER_AGENT')と書きましょう
0375nobodyさん2011/04/05(火) 10:18:51.89ID:vfRDyz1b
public_html/ … 公開ディレクトリ
application/ … 非公開ディレクトリ

のようにディレクトリ階層が別れており、
上記のポジションを崩さず、下記のように設定は可能でしょうか。

http://hoge.example.com/hoge1/
http://hoge.example.com/hoge2/
0376nobodyさん2011/04/05(火) 10:23:47.55ID:???
>>375
http://hibari.2ch.net/test/read.cgi/php/1297364669/10
0377◆oDupeixhZv52 2011/04/05(火) 10:26:05.38ID:???
>>375
public_htmlにhoge1 hoge2作れ
0378nobodyさん2011/04/05(火) 10:26:45.43ID:O9iT5e/s
>>376
ごめんなさい、ZF使ってないです

http://hoge.example.com/hoge1/ → /home/www/hoge/hoge1/public_html
http://hoge.example.com/hoge2/ → /home/www/hoge/hoge2/public_html

のように、ドキュメントルートの設定は可能でしょうか
0379nobodyさん2011/04/05(火) 10:27:48.92ID:???
>>378
読んだの?htaccessの話なんだけど
0380nobodyさん2011/04/05(火) 10:29:21.42ID:O9iT5e/s
>>379
ドキュメントルートにapplicationを設置した場合、
public_htmlとapplicationの階層崩れますよね
0381nobodyさん2011/04/05(火) 10:34:08.53ID:???
質問の意味がわかんない
>>375では
http://hoge.example.com/hoge1/
http://hoge.example.com/hoge2/
のように設定したいと言いながら>>377に回答貰った後に
>>378
http://hoge.example.com/hoge1/ → /home/www/hoge/hoge1/public_html
http://hoge.example.com/hoge2/ → /home/www/hoge/hoge2/public_html
にしたいって・・・
どこにpublic_htmlとapplicationが入ってんの?
0382nobodyさん2011/04/05(火) 10:39:10.40ID:???
>>378
だからそうしたいならpublic_htmlにhtaccessでアクセス拒否して
/home/www/hoge/hoge1/public_htmlやらにhtaccessでアクセス許可すりゃいいだろ?
0383nobodyさん2011/04/05(火) 11:06:27.51ID:???
>>382
質問の意味が理解できていないようですね
0384nobodyさん2011/04/05(火) 11:09:02.49ID:O9iT5e/s
>>381

ディレクトリ階層
hoge1/public_html/index.php etc
hoge1/application/config.php etc

hoge2/public_html/index.php etc
hoge2/application/config.php etc

URL

http://hoge.example.com/hoge1/ → /home/www/hoge/hoge1/public_html
http://hoge.example.com/hoge2/ → /home/www/hoge/hoge2/public_html
0385◆oDupeixhZv52 2011/04/05(火) 11:18:42.07ID:???
http://httpd.apache.org/docs/2.0/ja/urlmapping.html
みたいな設定の話?
0386nobodyさん2011/04/05(火) 12:02:28.35ID:???
>>384

>>382 + rewrite
0387nobodyさん2011/04/05(火) 12:06:53.84ID:uZc7Aq85
変数がセットされている+その値が正しいかを調べる為に

if (isset($var) && $var == 1)

みたいな書き方をしているのですが、これって正しいですよね?
一応、エラーは出ませんが・・。
0388nobodyさん2011/04/05(火) 12:08:52.13ID:???
正しくないです
0389nobodyさん2011/04/05(火) 12:15:43.61ID:???
変数がセットされている+その値が正しいかを調べる為に

if (unset($var) & $var = 1)

みたいな書き方をしているのですが、これって正しいですよね?
一応、エラーは出ませんが・・。
0390nobodyさん2011/04/05(火) 12:16:23.67ID:???
正しいです
0391nobodyさん2011/04/05(火) 14:20:25.76ID:0O+W0/s0
質問です。よろしくお願いします。

$main はCSVより読み込んだテキスト(HTMLタグ付き)が配列で収納されています。
同様に $link にもcsvより読み込んだファイル名を収納しており、このファイル名でファイルを生成します。

・やりたいこと。
ファイルを複数生成し、テンプレートを読み込み、そのメイン記事となる部分にcsvで記載したテキストを表示させたい。
テンプレートファイル内の#include# にmein[] の中身を順に書き出したい

・やったこと
下記プログラム。
csv を配列に収納→ for で配列の数だけ回しながらファイル生成と記事の作成をしようとした。


・問題点
for の中にある $n が有効になっていない?
生成されるファイル名は 配列$linkの[0]から[7]の名前で生成されますが
記事の内容は全て $main[1] が書き出されています。
$main["$n"] の$n が変化していない印象がある。

ファイル一式をUPしました
http://www1.axfc.net/uploader/Sc/so/221739

03923912011/04/05(火) 14:21:03.81ID:0O+W0/s0

for($n = 0; $n < 8; $n++) {
$filename = $link[$n].".html";//ファイル名の指定
$main_txt = $main["$n"];
if ( !file_exists ( $filename ) ) {//もしファイル名がなかったら
touch($filename); // 新しくファイルを作成
chmod($filename,0666);
//テンプレートファイルにある文字列を置換する
$keys['#include#'] = $main_txt;
$buff = strtr($buff, $keys);
$fp = fopen( $filename,"r+"); // 読み書きモードでオープン
flock($fp, LOCK_EX); // 書き込みロック
fseek($fp, 0); // ポインタを先頭に戻す
fputs($fp, $buff); // 書き込み
fclose($fp); // ファイルを閉じる
}//ファイルがある場合は処理しない
}


改行制限のため分割
プログラム一部抜粋しました。
0393◆oDupeixhZv52 2011/04/05(火) 14:50:58.68ID:???
置換後にいくら置換しても変わらないから。
0394nobodyさん2011/04/05(火) 15:04:26.86ID:???
>>393
テンプレートファイルの中身は最初の中身のままです。
置換したものを別ファイル名で保存しているので問題ないと思うのですが。

別の指摘でしたらすいません、詳しく教えてください
0395nobodyさん2011/04/05(火) 15:06:41.63ID:???
いや、$buffの中身が
0396nobodyさん2011/04/05(火) 15:14:25.71ID:???
- $buff = strtr($buff, $keys);
+ $buff2 = strtr($buff, $keys);

- fputs($fp, $buff);
+ fputs($fp, $buff2);

        ∧∧
       ヽ(・ω・)/
      \(.\ ノ
    、ハ,,、  ̄
03973912011/04/05(火) 15:54:56.13ID:???
ありがとうございます。試してみます
0398nobodyさん2011/04/05(火) 16:23:39.15ID:9JKVBGzM
外部サイト(ローカルエリア)の画像ファイルの有無を調べたいのですが、
file_existsでは絶対パスが使用できないので困っています。
何かいい方法ありませんか?
0399nobodyさん2011/04/05(火) 16:48:14.83ID:RXGsg7Xb
$array = array("test" => "テスト");
$key = "test";
// A
echo $array["$teset"];
// B
echo $array[$test];

Bなんですけど変数に"や'で囲まなくてもいいのでしょうか?
echo $array["'". $test. "'"];な感じに囲むものでしょうか?
0400nobodyさん2011/04/05(火) 16:51:29.60ID:???
>>398
file_get_contents
0401nobodyさん2011/04/05(火) 16:56:00.18ID:9JKVBGzM
>>400
うおぉぉ、なぜ思いつかなかったんだ…
ありがとうございます
0402nobodyさん2011/04/05(火) 16:56:07.86ID:???
>>399
$key = "test" なんだから、
$array["test"] = $array[$key] でしょ

> echo $array[$test];
$test は定義されていない

"$key" は文字列の中で$keyが展開されて "test" と同じ
'$key' は展開されないのでそのまま「$key」という文字列になる
"'".$key."'" は "'"."test"."'" = "'test'"
0403◆oDupeixhZv52 2011/04/05(火) 17:01:41.36ID:???
>>398
http://www.php.net/manual/ja/function.file-exists.phpの下にある
url_exists みたいなのもある。

>>399
ふつうは囲まない。
"$key" みたいなのは  NULLのとき "" になるのを使うこともある。

0404nobodyさん2011/04/05(火) 17:02:19.98ID:???
複数のサーバー間で、1Gbytes程度のファイルの転送をしたいです。
file_get_contentsでファイル転送リストを取得、foreachでそれぞれ
file_get_contentsでファイルを取得していますが、一定サイズ以上になるとうまくいきません。
ファイルすべてをメモリ上にプールすることなく、取得する方法はないでしょうか。
■ このスレッドは過去ログ倉庫に格納されています