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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2012/06/21(木) 19:37:07.93ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0805nobodyさん2012/07/20(金) 23:01:44.79ID:kO69dXPR
>>803-804
ありがとうございます!!
うまくいけました!
0806nobodyさん2012/07/20(金) 23:34:16.31ID:???
>>801
もう終わった話みたいだけれど
関数をif内で定義する意味がわからない。
<?php
if(TRUE)
{
/*
hoge(3);
function hoge($fuga){
return($fuga + 1);
*/
$fuga=3;
$fuga++: //$fuga=$fuga+1;
}
}
?>
または、別の場所にfunction定義じゃ拙い状況ってあるの?
0807nobodyさん2012/07/20(金) 23:44:19.62ID:???
まあ局所的なルーチンは長々とした接頭辞で解決した方が確かにPHPらしくはある
0808nobodyさん2012/07/20(金) 23:49:19.86ID:???
そもそもfunctionを入れ子に定義できてスコープを継がないというのが困り物だよな
0809nobodyさん2012/07/21(土) 00:06:15.25ID:L7H/xY51
>>806
ありがとうございます。
phpはCなどに比べ、かなり柔軟に色々出来、パフォーマンスの上げ方も多彩だということをどこかで見かけていました。
今回は多分、includeと混同していたのだと思います。
そして今のコードは冗長で、ifで分岐できたらif、elseifそれぞれがちょうど纏まりそうですし、
こういうことができたらPHPの使い方に幅が出そうなので、質問した次第です。
0810nobodyさん2012/07/21(土) 00:06:51.46ID:L7H/xY51
意味は特になく、拙い状況でもありません。変な質問ですいませんでした。
0811nobodyさん2012/07/21(土) 00:12:28.49ID:???
スクリプトはパーサが一旦全部読み込むからパフォーマンスは変わらないよ
それよりもインクルードによるディスクI/Oの方が遅くなる
0812nobodyさん2012/07/21(土) 00:22:13.02ID:L7H/xY51
>>811
ありがとうございます、phpでもそうなのですね。
勝手に一行ずつ読みながら実行しているものと思っていました。
0813nobodyさん2012/07/22(日) 15:40:32.42ID:GaaHC7Yr
echo $A."\t";
echo $B."\t";
echo $C."\t";

ブラウザに表示された上記結果を
エクセルにタブ区切りで貼り付けたいのですが、
うまくいきません。
どこが間違っているのでしょうか。
よろしくお願い致します。
0814nobodyさん2012/07/22(日) 15:44:35.21ID:???
ブラウザ右クリック→ソースの表示→それをコピー
08158132012/07/22(日) 15:56:50.51ID:GaaHC7Yr
>>814

while(){
echo "<br/>".$A."\t";
echo $B."\t";
echo $C."\t";
}

説明が少なくてすみません。
whileで繰り返すようにしてて
$A[0] $B[0] $C[0]
$A[1] $B[1] $C[1]
$A[2] $B[2] $C[2]
のようにブラウザに表示されます。
ソースをコピーだと改行されないです。
説明が足りず申し訳ありません。

whileがある場合、どうしたらタブ区切りで貼り付けできますか?
よろしくお願い致します。
0816nobodyさん2012/07/22(日) 17:44:00.58ID:???
>>815
まずエクセルの仕様は確認してるの?
0817nobodyさん2012/07/22(日) 17:51:17.49ID:???
PHPExcelでも使って直接xlsに出力すれってことだな
0818nobodyさん2012/07/22(日) 17:54:58.17ID:???
echo "\n".$A."\t";
これで改行されるだろ
0819nobodyさん2012/07/22(日) 19:08:18.59ID:???
タブ文字が空白文字に化けるとか?
0820nobodyさん2012/07/22(日) 19:12:49.74ID:LcUqLU8f
ロリポップで以下のようなコードで画像を表示すると赤の色が失われます
ロリポップの仕様かコードが悪いのがわからないので直す方法を教えて下さい

$img = "sample.jpg" ; // 読み込む画像のアドレス
$erc = imagecreatefrompng("error.png");

$size = 200

if (!($irc = @imagecreatefromjpeg($img))) // jpeg として読み込んでみる
if (!($irc = @imagecreatefrompng($img))) // png として読み込んでみる
if (!$irc = @imagecreatefromgif($img)) { // gif として読み込んでみる
// 画像が正しく読み込めなかったときの処理
$irc = $erc;
}

if (imagesx($irc) > imagesy($irc)) {
$rrc = imagecreate($size, $size * imagesy($irc) / imagesx($irc)) ;
} else {
$rrc = imagecreate($size * imagesx($irc) / imagesy($irc), $size) ;
}

ImageCopyResampled($rrc, $irc, 0, 0, 0, 0, imagesx($rrc), imagesy($rrc), imagesx($irc), imagesy($irc)) ;

header('Content-type: image/jpeg');

// jpgeg 画像として出力
imagejpeg( $rrc ) ;
imagedestroy( $rcc );
imagedestroy( $irc );
08218202012/07/22(日) 19:35:07.88ID:LcUqLU8f
imagecreatetruecolor()にしたらできました
0822nobodyさん2012/07/22(日) 19:40:58.06ID:???
レン鯖を実験台にする馬鹿か
まずは自分のPCでやれ
0823nobodyさん2012/07/22(日) 20:23:46.31ID:I+0QjfNz
先輩諸兄だめな俺に指導をお願いします

【OS名】RHEL ES4(職場サーバのテスト用に作った自家鯖です)
【PHPのバージョン】5.3.8
【連携ソフトウェア】なし apache httpdでモジュール使用(&バッチとして使用)
【質問内容】
・特定のファイルについて、今現在のファイル内容を元に変更を行い、ファイル内容を変更後の内容に置き換えたい
・変更処理の最中に他からファイル内容を変更されてはまずい為flock()で明示的にロックして読み書きしたい

上記の条件を満たそうと
 $fp = fopen( './hoge.txt', 'r+');
 flock($fp, LOCK_EX);
 $data = fread($fp,filesize('./hoge.txt'));
〜〜$dataを元に変更処理〜〜
 rewind($fp);
 fwrite($fp, $data);

これでOKだな…などと考えていたのですが、コードを書いて、テストをはじめる直前に
元の内容のサイズ > 変更後のサイズ だったらゴミが残ってしまう事に気付きました。

ファイルは読み込み直前に排他ロックしたい、ファイルへの書き込み時にファイルサイズが減って欲しい時もある、
こういう時はどうしたら良いのでしょうか?
0824nobodyさん2012/07/22(日) 20:31:17.26ID:???
ftruncate
0825>>8232012/07/22(日) 20:35:17.32ID:I+0QjfNz
>>824
ftruncateってのがあるのか、ありがとうございます助かりました
0826nobodyさん2012/07/22(日) 20:35:35.41ID:???
一時ファイルにコピーして処理して、あとで名前書き換えたらいいんじゃないの?
0827nobodyさん2012/07/22(日) 20:55:57.16ID:???
<?php
require_onc 
?>
<html>

require_onceがhtmlより上にあると上の部分に
空白が開いてしまいます。なんとかならないですか?
0828nobodyさん2012/07/22(日) 20:58:41.25ID:???
>>747
0829nobodyさん2012/07/22(日) 21:00:07.98ID:???
require先のファイルが空白を出力してるんでね
0830nobodyさん2012/07/22(日) 21:14:12.06ID:FECQN4tJ
しまった、Sageてた
<?php
require_onc 
?>
<html>

require_onceがhtmlより上にあると上の部分に
空白が開いてしまいます。なんとかならないですか?
0831nobodyさん2012/07/22(日) 21:15:43.52ID:???
>>830
糞言語PHPを使うのをやめるといい
0832nobodyさん2012/07/22(日) 21:21:39.14ID:???
あかないし
自分で起きてる症状が他人にも起きると思ったら間違い
つうか再現できるソース全部出せよ
0833nobodyさん2012/07/22(日) 21:40:07.31ID:???
>>830
>>747-750参照
0834nobodyさん2012/07/22(日) 21:51:49.35ID:???
BOMがわからなかったから似たような質問したんだろw
0835nobodyさん2012/07/22(日) 22:23:26.00ID:FECQN4tJ
2つのファイルをutf8nにしたら直りました。
ありがとうございました。
0836nobodyさん2012/07/23(月) 00:11:02.72ID:???
ttp://www.kfb.co.jp/news/index.cgi?n=1
(´゚'ω゚`)
0837nobodyさん2012/07/23(月) 02:07:59.07ID:zNnOSXz7
このスレの住民が農作物を売るログイン機能付きの簡素な通販サイトを
作った場合はどれくらいかかりますか?
0838nobodyさん2012/07/23(月) 02:09:50.07ID:/5p5EQQS
使いものにならないニートなら機会損失を加味しても無料
0839nobodyさん2012/07/23(月) 02:14:11.68ID:???
時間のことでは?
0840nobodyさん2012/07/23(月) 02:17:45.77ID:???
>>837
初期費用6300円、年間基本料金21,000円でどう?
ショッピングモールの出店もおまけでつけておきます。
ただし、基本的な情報の入力はすべてそちらの手作業になります。

あと、割安料金で提供する代わりに、各ページの下に小さな広告が一つ入ります。
08418372012/07/23(月) 02:24:02.39ID:zNnOSXz7
あ、すいません。
制作費と制作期間の両方を質問してます。
関東が放射能だらけの食い物ばっかなので。
関西の農作物を強調して実家の農作物売ろうかなって考えてます。
0842nobodyさん2012/07/23(月) 03:09:16.45ID:???
>>841
マジ質問か。ロリポップ使いなさいよ。

「ロリポップ」で検索!検索!
0843nobodyさん2012/07/23(月) 03:12:42.49ID:???
EC-CUBEでもカスタマイズしてろ
費用も期間もかからないぞ
簡素なのでいいならカスタマイズもいらんだろ
そのまま使えばいい
0844nobodyさん2012/07/23(月) 04:23:57.60ID:???
そうそう、車輪の再発明は無駄よ
0845nobodyさん2012/07/23(月) 04:57:50.71ID:???
>>837
制作期間は、そうですね、1時間ぐらいかな。
詳しくは、カラーミーショッ・・・おおぉっと、これ以上は企業秘密だ
0846nobodyさん2012/07/23(月) 04:59:55.40ID:aO6I8Kad
質問です
index.phpで$_SERVER['PATH_INFO']でURLから値を取得する場合
http://xxxxxxxxx/index.php/hoge
とやらないと/hogeの部分が取得できないのですが、このindex.phpの部分を表示せず
http://xxxxxxxxx/hogeでURLのhogeを取得するにはどうすればいいのでしょうか?
0847nobodyさん2012/07/23(月) 05:04:47.35ID:???
アパッチの設定の問題
0848nobodyさん2012/07/23(月) 05:05:36.23ID:???
.htaccessの問題
0849nobodyさん2012/07/23(月) 05:11:19.13ID:???
つ【Apache】mod_rewriteについて語るスレ
http://kohada.2ch.net/test/read.cgi/php/1023791370/l50
0850nobodyさん2012/07/23(月) 05:16:09.42ID:aO6I8Kad
Apacheの問題だったんですか、ありがとうございます!
0851nobodyさん2012/07/23(月) 09:57:56.37ID:???
P2Util::pushInfoHtml
の::とはどういう意味ですか?
0852nobodyさん2012/07/23(月) 10:21:23.37ID:???
>>851

class Rule {

static function yomekasu ( $resNum ) {
echo '>>' . $resNum . 'をよく読めカス';
}

}

Rule::yomekasu( 1 );
0853nobodyさん2012/07/23(月) 10:26:03.61ID:???
オブジェクト指向のおっさんが再び登場
0854nobodyさん2012/07/23(月) 10:32:29.46ID:???
phpはオブジェクト指向なんだぜ
0855nobodyさん2012/07/23(月) 10:59:34.31ID:???
mb_strlenとかってちゃんと文字コード指定しないとまともに動かないことあるんだな
10時間返せよボケ
0856nobodyさん2012/07/23(月) 11:32:27.55ID:???
>>850->>855
>>1
0857nobodyさん2012/07/23(月) 11:36:26.56ID:???
自治厨うざいですねw
0858nobodyさん2012/07/23(月) 11:44:31.45ID:???
>>856
俺もかよw
どれが俺とは言わないがw
0859nobodyさん2012/07/23(月) 12:11:37.06ID:???
またお前か
気に入らないなら自分でスレ建てろ
しばくぞカスども
0860nobodyさん2012/07/23(月) 12:47:21.60ID:???
立ててきた

【PHP】気軽にPHP質問スレ
http://kohada.2ch.net/test/read.cgi/php/1343015189/
0861nobodyさん2012/07/23(月) 13:46:37.63ID:???
>>856
ちゃんとレス番書けよ低脳
0862nobodyさん2012/07/23(月) 13:55:08.61ID:???
>>850-855
と書けばいいのに
>>850->>855
とか書くのはアホすぎる
0863nobodyさん2012/07/23(月) 14:59:23.71ID:???
>>860
GJ
0864nobodyさん2012/07/23(月) 16:27:26.21ID:SD0s76fa
できるだけ多くの情報量を持つことができかつ短くするには
どういった関数を使えばいいでしょうか?
圧縮・解凍系の物以外でお願いします(デフォルトでバンドルされてないので)
0865nobodyさん2012/07/23(月) 16:30:11.42ID:???
情報って何?
0866nobodyさん2012/07/23(月) 16:43:18.16ID:???
>>864
圧縮・解凍しかないよ
何らかの符号化(圧縮・暗号化)をして、あとで復号化(解凍・解読)するしかないから

ちなみに、
使う文字種を半角英数字のみに制限してなおかつ短くするならBASE64
元のデータの4/3倍程度のサイズになる

ただ短くするのならハッシュ関数系のMD5とかSHA-1
ハッシュ関数なので復号不可能
0867nobodyさん2012/07/23(月) 16:54:37.16ID:???
4/3倍 ?
0868nobodyさん2012/07/23(月) 16:56:59.97ID:???
>>867
そう。圧縮じゃないもん。
http://ja.wikipedia.org/wiki/Base64
0869nobodyさん2012/07/23(月) 17:46:51.98ID:???
単純な数字だけだったら、英数記号使って64進数に変換してみるとか…
0870nobodyさん2012/07/23(月) 17:50:21.36ID:???
大文字26字+小文字26字+数字10字=62字
足りないから記号2字を加えて64字

Base64
08718642012/07/23(月) 18:03:57.29ID:SD0s76fa
レスありがとうございます
やっぱ圧縮以外によさそうなのはないですね
アルゴリズムは公開されてて
ユーザ関数としての実装ならいくつか見つかりましたのでそれを試してみます
0872nobodyさん2012/07/23(月) 21:13:55.03ID:zNnOSXz7
php+javascriptでAjaxをやってるのですが、
文字コードはutf8nと改行コードはCR+LFにしてますが、
改行コードってCR+LFでいいんですかね?
改行コードが違うとブラウザによっては表示されなかったりで
苦戦してます。
0873nobodyさん2012/07/23(月) 21:20:06.58ID:???
いいよ
0874nobodyさん2012/07/23(月) 21:23:46.77ID:???
ブラウザによって表示されないのは書き方が下手糞なだけだろ
0875nobodyさん2012/07/24(火) 00:19:16.75ID:???
php側でもjs側でもいいけど、置換とかしちゃえばいいんじゃね
エスケープついでにやればいいだけだし
08768722012/07/24(火) 00:34:10.23ID:2U8u549s
>>874
ローカル環境でグーグルクロームで表示されていた文字列が
レンタルサーバーにうpしてグーグルクロームでアクセスすると
文字列が表示されないという不具合でした。
調べてみると、改行コードと文字コードをいじったら直ったので
レンタルサーバー上とローカル環境では微妙に違うということです。
0877nobodyさん2012/07/24(火) 00:35:51.04ID:???
改行コード関係ねぇw
0878nobodyさん2012/07/24(火) 02:46:37.14ID:???
アップロード時に文字コード変わってたりして
ftpクライアントソフトの設定見直してみたら?
あとphp.iniとかかもね
0879nobodyさん2012/07/24(火) 03:03:11.32ID:???
php の charset がローカルと違ってたってのはよくある話だな
0880nobodyさん2012/07/24(火) 03:12:33.52ID:???
普通に出力するソース(html)でcharset指定してないんだろ
0881nobodyさん2012/07/24(火) 05:17:28.51ID:???
FTPのアスキーとバイナリの違いも分かってないんだろ
0882nobodyさん2012/07/24(火) 08:36:49.70ID:Q8gvke9w
strstrで探した文字列が見つからない場合、falseが返ってくるとマニュアルには書いてあるのに
うまく判定できないから調べたら、nullが返ってきていた

これ、どういうことでしょうか?普通のCentOS鯖のPHP5.3ですが
0883nobodyさん2012/07/24(火) 09:06:05.80ID:???
は?
nullはFLASEだろ
0884nobodyさん2012/07/24(火) 09:23:24.38ID:???
そりゃあPHPは糞言語だからな
0885nobodyさん2012/07/24(火) 10:22:16.86ID:hlu32Ihw
【OS名】CentOS
【PHPのバージョン】5.3
【質問内容】
for文で変数の末尾の数字を付けたいです。
例:
for ($i = 0; $i < count($ansArray); $i++) {
$this->ans$i = $ansArray[$i];
}
で、$this->ans0, $this->ans1, $this->ans2.....に代入したいのです。
この例のように書くとエラーとなるのですが、何か方法はないでしょうか?

0886nobodyさん2012/07/24(火) 10:29:59.90ID:???
eval("\$this->ans$i = \$ansArray[\$i];");
0887nobodyさん2012/07/24(火) 10:38:53.60ID:???
$this->{"ans".$i}= $ansArray[$i]; でしょ。
0888nobodyさん2012/07/24(火) 10:50:40.67ID:???
ansを配列にしろよw
0889nobodyさん2012/07/24(火) 11:40:43.47ID:???
>>888
それじゃ>>885の求める回答にはならないだろう
0890nobodyさん2012/07/24(火) 11:48:55.30ID:???
>>885
{}で、文字列を展開するやり方知ってる?
$a = 'hoge';
${$a} = 'moge';
echo $hoge;
--------------------
この結果が
--------------------
moge
0891nobodyさん2012/07/24(火) 11:51:22.84ID:???
>>890
Parse error: syntax error, unexpected T_DEC in - on line 5
0892nobodyさん2012/07/24(火) 11:51:31.15ID:???
そんな汚いコード辞めようぜ
0893nobodyさん2012/07/24(火) 11:52:08.91ID:???
だから、

$this -> {'ans'.$i} = $ansArray[$i];

でうまく行くと思う。
でもブレース展開しなくても、

$name = 'ans' . $i;
$this -> $name = $ansArray[$i];

でOK。こっちの方が見通しはいいと思う。
0894nobodyさん2012/07/24(火) 11:56:01.93ID:???
>>882
なにを使ってnullが返ってきていると判断したんだ?
そのソース晒せ。
あと883は無視しとけ。falseとnullは別もんだから。
0895nobodyさん2012/07/24(火) 11:57:09.03ID:???
>>882
いや、false が返ってくるよ。
もう一度確かめてみ?
0896nobodyさん2012/07/24(火) 12:01:03.90ID:???
>>891
お前な、どこからどこまでコピペしてんだよwww
0897nobodyさん2012/07/24(火) 12:07:57.18ID:???
nullとfalseは条件式では同じ意味を持つからどーでもいい
0898nobodyさん2012/07/24(火) 12:10:20.93ID:???
>>897は、マニュアル読み直してこい。
0899nobodyさん2012/07/24(火) 12:12:17.55ID:???
> php -r 'var_dump(strstr("abc", "def"));'
bool(false)
false返ってるね。
FALSEは予約語じゃないと何度言えば・・・
0900nobodyさん2012/07/24(火) 12:15:32.35ID:???
いやstrstrの戻り値がnullだろうがfalseだろうが何を気にする必要があるんだよ
どうせ検索文字列があるかないかを判定するだけだろ?
どっちみち条件式ではfalse扱いなんだから気にするこたーねーよ
0901nobodyさん2012/07/24(火) 12:18:33.78ID:???
>>900
どんな比較演算子で書いているんだ?
0902nobodyさん2012/07/24(火) 12:21:09.39ID:???
んなもんびっくりマークつけるかつけないだけで十分だろうが
0903nobodyさん2012/07/24(火) 12:30:48.49ID:???
有無のチェックだけなら
if ( strstr($mail, "@") )
でいいけど strposだと
if ( strpos($mail, "@") !== FALSE )
ってしないと駄目ってやつだな。
0904nobodyさん2012/07/24(火) 13:25:38.04ID:???
おなかすいた
レス数が900を超えています。1000を超えると表示できなくなるよ。