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

くだすれPHP(超初心者用)6

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/04/05(日) 22:04:26ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/

前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/

関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0654nobodyさん2009/07/19(日) 09:49:52ID:???
>> switch文で1つのcaseに2つの条件としたい
ここがまちがいだときづけ。
できるできないのもんだいではない。
0655nobodyさん2009/07/19(日) 10:27:29ID:???
知らんやつがPHPコード送ってきた場合、
それを安全に見るにはどうしたらいいの?

エディターで見るのは多分安全だと思う。

いきなりアパッチ起動して、ブラウザで見るのは危険?
なぜなら、ファイルを削除されたりするから。
0656nobodyさん2009/07/19(日) 10:30:20ID:???
知らんやつがPHPコード送ってくる状況がないからわからん
スパムで送ってきたの?
0657nobodyさん2009/07/19(日) 10:36:28ID:???
いや、子分。
知らんヤツという言い方は悪かった。
ようは自分以外が書いたコードを
安全に見る方法が知りたいの。
0658nobodyさん2009/07/19(日) 10:39:42ID:???
なにかあっても損害賠償請求できる範囲の人間ならいきなりブラウザで見てもいいんじゃない?
ソースが読めるならその限りではないけど
0659nobodyさん2009/07/19(日) 10:39:48ID:???
子分から恨みを買ってるかどうかぐらいエディタで見ればいいじゃない。
0660nobodyさん2009/07/19(日) 10:52:45ID:???
エディタでみてみた。
実行するといきなりmailコマンドを実行
するようなソースだった。

ここをコメントアウトしてから実行しないと
そこのメールアドレスにメール飛んじゃう><
06616352009/07/19(日) 10:55:01ID:???
>>660
子分、フルボッコだね
0662nobodyさん2009/07/19(日) 12:26:28ID:???
いままで参考書とか解説サイトとかで
コードを発見した場合、
中味を見ずにいきなり
コピペで実行してたんですが、
(なぜなら安心だから)

こんどからは、まずエディターでじっくり
ソースを眺めて、安全かどうかを確認して、
もし安全でない部分があったらコメントアウトするなり
対処して、それからブラウザで実行、ってしないと
ヤバイ、ってことに気付きました。

他人のコードをさわるってこういうことなのね。
0663nobodyさん2009/07/19(日) 12:35:07ID:???
>662
普通、そうしないか・・・?
自分で書いたコードでさえ、ブラウザで実行する前には一応目を通すのに。
0664nobodyさん2009/07/19(日) 12:49:51ID:???
PHPの勉強なのにソース読まないでまず実行して何が勉強になるんだ・・・?
0665nobodyさん2009/07/19(日) 12:57:31ID:???
PEARのエラー制御ですが、
エラーレベルを最強にしてPEARを実行すると、エラーが
たくさん出まくるので、

(1)エラーレベル0にする
(2)PEAR読み込む
(3)エラーレベル最強にする
(4)本体のコード書く

こういう順番にすればいいんじゃないか?
っておもったのですが 、これであってますか?
0666nobodyさん2009/07/19(日) 13:03:16ID:???
オレ竜は、エラー警告レベル最強にしたぐらいで出まくるのは使わないことにしてる
0667nobodyさん2009/07/19(日) 13:31:56ID:???
エラー出まくるのは開発理念がおかしいので許容できないなら使わない
0668nobodyさん2009/07/22(水) 13:08:49ID:p7cs3Pfv
受信してきた画像ファイルを保存したいのですが
バイナリに戻したデータを単純に保存すると
ヌルバイトの部分が5c80に変えられてしまいます
どうしたらうまく保存できますか?
0669nobodyさん2009/07/22(水) 22:31:57ID:???
その部分のソースかけよ
0670nobodyさん2009/07/23(木) 11:50:25ID:???
「ひとり用wiki」ってソフトがあって、
それの書き込みデーターを、
ノートンが間違ってウイルスと誤認して、
データーを全部削除してしまうという
事件が以前、ありました。

このような事故を防ぐためには、
どのような対策を取ったら
いいのでしょうか?
0671nobodyさん2009/07/23(木) 11:56:20ID:???
それほんとにワームか何か入ってたんだろ
0672nobodyさん2009/07/23(木) 12:15:51ID:???
ノートンの誤認です。
有名な事件です。
0673nobodyさん2009/07/23(木) 12:18:59ID:???
それPHP関係あんの?
0674nobodyさん2009/07/23(木) 12:19:01ID:???
スタンドアローンにしてノートン入れない方法があります
0675nobodyさん2009/07/23(木) 12:57:47ID:???
データーの保存をMySQLにしたPHPアプリの場合、という
意味です
0676nobodyさん2009/07/23(木) 13:15:49ID:???
そういう意味だったのか。
0677nobodyさん2009/07/23(木) 14:17:25ID:???
;セミコロン
を出力するのって、どうやるの?
06786772009/07/23(木) 14:19:27ID:???
わかったから
もういいです。
0679nobodyさん2009/07/23(木) 14:20:17ID:???
普通に出せないか?
0680nobodyさん2009/07/23(木) 14:23:29ID:???
php5.3ってimagejpeg使える?
0681nobodyさん2009/07/23(木) 14:51:55ID:???
print ";";
0682nobodyさん2009/07/23(木) 14:54:51ID:???
>>679
あるよ。
以上。
はい次の方。
0683nobodyさん2009/07/23(木) 16:11:36ID:WhUpMqXo
数値が120,121,122,123,124の時は120を、
数値が125,126,127,128,129の時は125を返したい
(5の倍数に切り下げる)場合は、ドウすれば良いのか?

エクセルでは=FLOOR(数値,5)とすればスグに決着が付くンだが・・・
0684nobodyさん2009/07/23(木) 16:13:21ID:???
人に物を聞く時の態度を先に学びましょう
0685nobodyさん2009/07/23(木) 16:28:28ID:???
なんか特別な関数があるかもしれんが

$n = 124;
print $n - ($n % 5);
0686nobodyさん2009/07/23(木) 16:49:36ID:WhUpMqXo
数値を5で割った余りを数値から引く、ということですね。

>なんか特別な関数があるかもしれんが

ありそうですね・・・色々探したのですが。。。
06876352009/07/23(木) 20:21:37ID:???
普通にfloor()じゃだめなのか?
06886872009/07/23(木) 20:24:42ID:???
忘れてくれ。orz
0689nobodyさん2009/07/23(木) 20:32:06ID:???
roundがあるだろうんぽ
0690nobodyさん2009/07/24(金) 00:12:39ID:???
round でできるならやってみてくれ
0691nobodyさん2009/07/24(金) 00:46:52ID:???
関数使わなくても普通に>>685でいいだろう
0692nobodyさん2009/07/24(金) 00:52:45ID:???
自演乙
0693nobodyさん2009/07/24(金) 04:39:09ID:???
わかったから
もういいです。
0694nobodyさん2009/07/24(金) 09:37:22ID:???
俺の嫁
0695nobodyさん2009/07/24(金) 10:12:22ID:???
ブサイクって
0696nobodyさん2009/07/25(土) 00:23:56ID:???
生きてる意味ないよね
0697nobodyさん2009/07/25(土) 07:56:09ID:???
でも名器
0698nobodyさん2009/07/25(土) 08:30:26ID:???
Q.あなたならどっち?

1.美人でガバガバ。
2.ブスでミミズ千匹。
0699nobodyさん2009/07/25(土) 08:40:22ID:???
1に握りこぶしでも埋めてやる。
0700nobodyさん2009/07/25(土) 09:38:35ID:???
言いたいことも言えないこんな世のなんちゃらって隆が言ってたよ
0701nobodyさん2009/07/25(土) 21:38:49ID:???
>>700
藤井?
0702nobodyさん2009/07/26(日) 11:36:31ID:???
>>700
岡村?
0703nobodyさん2009/07/26(日) 16:45:15ID:???
>>700
高島?
0704nobodyさん2009/07/26(日) 20:24:07ID:???
下のような感じで、sessionでtime()を使って経過時間を出したいんですが(分・秒などへの
変換は省略してます)、sessionではtime()は最後のスタンプしか取れない(残らない)ようで、
"time1"の情報が消えて、"time2"の方の値しかとれず、計算できません。
どうしたらいいでしょうか?

$_SESSION["time1"] = time();
$_SESSION["time2"] = time();

$keika = $_SESSION["time2"] - $_SESSION["time1"];

0705nobodyさん2009/07/26(日) 20:26:33ID:???
time1の結果が取れないってどう確認したの?
0706nobodyさん2009/07/26(日) 20:36:59ID:???
1行目と2行目の間でセッションをまたいでるなら、session_start()が抜けてるとかの初歩的なセッションの使い方ミス。
0707nobodyさん2009/07/26(日) 21:24:39ID:???
>>704
var_dumpでみました(null)。
あと、開始時刻を日時表示すると1970/01/01 09:00:00となります。

>>706
ビンゴでした。
session_start()の位置が悪かったようです。
<html>より上に移動させれば期待通り動きました。

お二方ともありがとうございました。
0708nobodyさん2009/07/26(日) 21:25:17ID:???
>>704じゃなくて>>705
0709nobodyさん2009/07/30(木) 19:12:20ID:???
<?php
$a=0;

if($a){
?>

<p>hello</p>


<?php
}

else {
?>

<p>bye</p>

<?php
}
?>

--------------------------------------
こういうコードって普通なの?
0710nobodyさん2009/07/30(木) 19:47:29ID:???
多く使われてるかどうかは知らん。
けど、PHPの使い方の一つではある。
0711nobodyさん2009/07/30(木) 20:37:46ID:???
普通はテンプレートエンジン
0712nobodyさん2009/07/30(木) 21:20:15ID:???
時間が無いときにたまに使う。
間に入るテキストの量によるかな。
0713nobodyさん2009/07/31(金) 13:13:32ID:VVW/5zpY
お願いだから俺と作業する時はこっちで頼むね

<?php if($a): ?>
<p>Hello</p>
<?php else: ?>
<p>Bye</p>
<?php endif; ?>
0714nobodyさん2009/07/31(金) 13:46:30ID:???
お願いだから私と作業する時はこっちで頼むね

<?php
$greeting = $a ? 'Hello' : 'Bye';
?>
<p>{$greeting}</p>
07157142009/07/31(金) 13:47:26ID:???
あ。バグった。これで。

<?php
$greeting = $a ? 'Hello' : 'Bye';
print <<<_HTML_
<p>{$greeting}</p>
_HTML_;
0716nobodyさん2009/07/31(金) 14:28:31ID:???
絶対一緒に作業したくないなw
0717nobodyさん2009/07/31(金) 19:14:57ID:gwmKk+1i
正規表現がよくわかりません。

mb_ereg_match( "[^a-zA-Z\!-\@\:\-\,\.\s]{2,}", $str )
↑
文字列に英数字記号以外の文字が2回以上連続しているのが
含まれているかどうかを判定したいんですが、これじゃダメなようです。

どこが間違っているんでしょう?

内部エンコーディングはUTF-8、デフォルト言語はニュートラルです。
0718nobodyさん2009/07/31(金) 20:50:38ID:420G9Lso
ダブルクォーテーション("")、シングルクォーテーション('')で処理速度に違いはありますか?
ダブルの方は変数を認識するようなので、同じ文字列だとシングルの方が実行速度が速い気がするのですが
もちろん普通なら人間じゃ体感できない違いなんでしょうが、気になるので教えてください!
0719nobodyさん2009/07/31(金) 20:57:13ID:???
違うっちゃ違う
一例だけど参照するならこんなとことか
http://www.php.lt/benchmark/phpbench.php
0720nobodyさん2009/07/31(金) 21:15:49ID:420G9Lso
>>719
めっちゃ参考になります!ありがとうございます!
0721nobodyさん2009/08/01(土) 00:08:28ID:???
>>717
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0722nobodyさん2009/08/01(土) 01:23:40ID:sEcc+VNI
連想配列のインデックス部分だけimplode()みたいなことしたいんだけど
どうしたらよい?
0723nobodyさん2009/08/01(土) 01:34:20ID:???
>>722

implode( "", array_keys( $a ) );
0724nobodyさん2009/08/01(土) 07:05:49ID:RvN4vKjq
<?php
$req="http://api.rakuten.co.jp/rws/2.0/rest?operation=ItemRanking&version=2009-04-15&developerId=&affiliateId=&genreId=409365";

$string = preg_replace('/:/','_',file_get_contents($req));

$xml = simplexml_load_string($string) or die("XMLパースエラー");

$output = "<table>n";
foreach ($xml->Body->itemRanking_ItemRanking->Item as $item) {

$output.= "<tr><td><img src='" . preg_replace('/http_/','http:',$item->smallImageUrl) . "'></td>";
$output.= "<td>商品名:".$item->itemName</td></tr>"; //エラー出る場所です

}

$output .= "</table>n";

echo $output;

?>

エラーが出る場所はわかっているのですがなぜエラーが出るのかがわかりません
楽天APIのXMLをphpで表示したいと考えています

ご教授願います
0725nobodyさん2009/08/01(土) 07:12:32ID:???
>>724
>$output.= "<td>商品名:".$item->itemName</td></tr>";

”の数があってないとか・・・
$output.= "<td>商品名:".$item->itemName."</td></tr>";
07267242009/08/01(土) 07:25:36ID:RvN4vKjq
>>725
まさにその通りでした
当方の質問にお応え頂き誠に有り難う御座います
0727nobodyさん2009/08/04(火) 03:11:34ID:bt+0qZLb
PHPで時刻の差分って出せないんですかね?
8:00 - 0:45 = 7:15 みたいな計算するにはどうしたらいいんでしょう?
0728nobodyさん2009/08/04(火) 03:21:16ID:???
タイムスタンプについてまず知りなさい。
0729nobodyさん2009/08/04(火) 03:25:50ID:???
>>727
echo date('H:i', strtotime('08:00 -45 min'));
0730nobodyさん2009/08/04(火) 03:38:20ID:bt+0qZLb
>>729
じゃあ
8:00 - 6:45 だったら?
結局自分で何時間何分か出して、引かないといけないみたいですね・・・
インターバル計算できないのか・・・
0731nobodyさん2009/08/04(火) 03:40:39ID:bt+0qZLb
date("H:i", strtotime(strtotime("01:00") - strtotime("00:30")))
ってやったら、18:00 ってどういうことなんだ・・・・
0732nobodyさん2009/08/04(火) 03:50:28ID:???
>>ID:bt+0qZLb
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0733nobodyさん2009/08/04(火) 05:00:43ID:???
元の時間をunixタイムで計算してください
それで計算したのを元の時間にもどせばよい
0734nobodyさん2009/08/04(火) 10:31:32ID:bt+0qZLb
>>733
たしかに、strtotime()で、unixタイムは出るので、それ同士を引けば、秒の差分は出たんですけど、
それをどうやって、date("H:i", )みたいに整形して表したらいいのかがわからないんです・・・・




0735nobodyさん2009/08/04(火) 11:52:35ID:???
便乗質問。
>>731
strtotimeの戻り値をstrtotimeに入れてもいいんですか?
0736nobodyさん2009/08/04(火) 11:55:24ID:???
お前は何を言ってるんだ?
0737nobodyさん2009/08/04(火) 12:09:19ID:???
strtorime(strtotime())ってことでしょ
やってみりゃいいじゃないって話だけど
07387342009/08/04(火) 12:12:15ID:bt+0qZLb
自己解決しました
0739nobodyさん2009/08/04(火) 12:36:14ID:???
僕の夏休み
0740nobodyさん2009/08/04(火) 15:56:23ID:???
花火、すいか割り、プール、絵日記…
0741nobodyさん2009/08/04(火) 22:06:13ID:RR0r5hKi
超くだらないことですが、ご教示ください。
http://ansaikuropedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91
アンサイクロペディアのオブジェクト指向のページですが、

function 話す() {
if (($this->今日は話した)) {
$this->好感度--;
return "しつこい";
}
$this->今日は話した = 1;
$this->好感度++;
return "別に";
}

「(($this->今日は話した)) 」はどういう意味なのでしょうか?
コードをみると、「($this->今日は話した == 1)」だと意味が通じると思うのですが・・・
0742nobodyさん2009/08/04(火) 22:06:17ID:???
Aという時間がある
Bという時間がある。

Aをタイムスタンプに直す。
Bをタイムスタンプに直す。

A-Bを計算する。

差分を、好きな形式に変換しなおす。
0743nobodyさん2009/08/04(火) 22:09:52ID:???
タイムスタンプなんかに直さなくていいだろ
0744nobodyさん2009/08/04(火) 22:14:17ID:???
>>741
PHPで1と0をboolで評価した場合前者はtrue、後者はfalseになる
boolで評価するといってもキャストは必要ない
つまり$this->今日は話したは
$this->今日は話した == trueという意味をもっている
つまりあなたのいっている$this->今日は話した == 1と同じ意味です
http://www.php.net/manual/ja/types.comparisons.php
0745nobodyさん2009/08/04(火) 22:26:12ID:???
長々と書いているが、

if(1)

これと同じってことだろ?


説明が長いやつはたいてい、レベルが低い。
よくわかってる人ほど、短く、適切な説明をする。
0746nobodyさん2009/08/04(火) 22:27:06ID:???
PHPで多人数で開発するときでも、
OOP使いまくり、インターフェースで
多重継承使いまくり、にすれば
問題ないんだよね?
0747nobodyさん2009/08/04(火) 22:28:35ID:???
なんでこいつはケンカ腰なの?ストレス溜まってんの?
ストレスのはけ口にされると迷惑ですよ
0748nobodyさん2009/08/04(火) 22:30:48ID:RR0r5hKi
>>744
ありがとうございました。
0749nobodyさん2009/08/04(火) 22:39:50ID:???
>>745
だったらお前も余計なコメント省けw
0750nobodyさん2009/08/04(火) 22:43:34ID:???
>>745
この場合は1じゃなくてif(true)だよ
07517442009/08/04(火) 22:53:59ID:???
>>744
>つまり$this->今日は話したは
>$this->今日は話した == trueという意味をもっている
このつまりってのはいらなかったな
0752nobodyさん2009/08/04(火) 23:31:54ID:???
phpってこれから先ずっとあるの?
0753nobodyさん2009/08/04(火) 23:46:49ID:???
WEBアプリはしばらく続くだろうけど、phpはどうなんだろね
バージョン6が出るかどうかだろうか?

スクリプト言語のバージョン6は、出ないことが運命づけられてる気がするので心配だ
0754nobodyさん2009/08/05(水) 00:22:29ID:???
もう出てるじゃん
■ このスレッドは過去ログ倉庫に格納されています