>>898 お手軽開発用としては割と主流だけどね。
本番用には
>>899の理由含めて色々問題があるから使い辛いけど。
903 :
896:2009/06/01(月) 23:30:20
そうなんですか。。。
僕は学校の課題を家でも出来るようにしたいだけだったので、たぶんこれで大丈夫です!
もしハマっていったらまた個別で使いやすいようにインストールしていきます。
ちなみにエディタはGreenPadを使うようにしました。一番簡単なようだったので。。。
いろいろありがとうございました!!
>>885 まず
http://www.php.net/manual/ja/ これをブックマークしといて。
それから
search for 欄にDOCUMENT_ROOT
を入力してからその右側のプルダウンからonline documentationを
選択してそのさらに右にある矢印をクリック。
気持ち悪いピンクの囲みに何か書いてあるだろう?
xampp使うと成長しないからね
906 :
デフォルトの名無しさん:2009/06/02(火) 14:35:27
$arr = (4,7,8,9)
上記配列で、
残りの1~9(今回の場合は1,2,3,5,6)までの値を配列に格納
する方法を教えてください。
普通に1から10まで回して、$arrに存在してなかったら追加でいいんではない?
$a=array(4,7,8,9);
$b=array(1,2,3,4,5,6,7,8,9,10);
var_dump( array_diff($b,$a));
が
array(7) {
[0]=> int(1)
[1]=> int(2)
[2]=> int(3)
[3]=> int(4)
[4]=> int(5)
[5]=> int(6)
[9]=> int(10)
}
なのはなぜですか?
トーナメント表などのお勧めなscriptってありますかね?
910 :
デフォルトの名無しさん:2009/06/03(水) 00:42:12
>>906 $array = range(1,9);
$data = array(4,7,8,9);
print_r( array_unique( ( array_merge( $array, $data ) ) ) ) ;
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
911 :
デフォルトの名無しさん:2009/06/03(水) 00:46:50
>>908 <?php
$a=array(4,7,8,9);
$b=array(1,2,3,4,5,6,7,8,9,10);
print_r( array_diff($b,$a));
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 5 [5] => 6 [9] => 10 )
PHP Version 5.2.6
>>908 何を聞きたいのか知らんが、なぜ[3]が入るのか?
ということであれば、再現せず
<?php
$a=array(4,7,8,9);
$b=array(1,2,3,4,5,6,7,8,9,10);
var_dump( array_diff($b,$a));
array(6) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[4]=>
int(5)
[5]=>
int(6)
[9]=>
int(10)
}
PHP 5.2.8
>>898 主流じゃないと思うが、検索する限りではWindowsではよく使われているようですよ。> XAMPP
>>910 rangeという関数あるんですね。
ありがとうございます。
いろいろと活用できそうです。
いやだから文句言うなら回答例を
プログラムって、はじめてやるような例の場合、
精神的な負担やストレスがはんぱないよね。
ストレス度250%って感じ。
同じこと何回もやって、
「ああ、また例のあれだな」
って、先の展開が読めれば
なんてことないんだけど、1回目は
本当に脳の血管がぶちきれそうになる。
>>919 そこで言うストレスっていうのは、時間内にできるかどうかもわからん!ってもんだろうな。
時間的な制限がよっぽどきっちきちでなければ、初回が一番楽しい。・・・は語弊があるか。
一番モチベーション高いけどな。
二度目は前回の反省を活かしていじる楽しみがある。(でも一番迷走しやすい)
逆に、三回目以降こそ苦痛で仕方がないような気がする。
どうせそのままでは使えなくてあちこちいじる必要があるのに、全体としてやってることは
前と同じっていう、なんとも言えない作業感が辛くなったりする。
また、前にやった処理と若干違う部分がなんとも修正しにくかったりした場合とかも、変に
あるものを活かそうとして逆に足を引っ張られたりしない?
>>920 ああ、あなたは理系だね。
私は文系だから、ストレスを感じ取る
局面が正反対なの。
unko大学からのアクセスのときだけ、
専用のページに飛ばすのって
どう書けばいい?
unko大学のリモホが、
abc-123.unko.edu
だったとしたとき。
リモホを変数に格納して、
ピリオドで区切って配列に格納して、
右から二つのセクターが、edu、unko、
と一致しているかどうかを==で調べて、
もしtrueなら飛ばす、これでいいの?
>>922 別にそれでもいいけど普通htaccessでしょ。
それでいいんじゃねーの
>>923 ただ飛ばすだけでなくて、ログも取りたかった。
phpで全部制御すればなんでもできるでしょ?
>>925 ログはHTTPdのログがあるじゃないか・・・。
まあPHPで済まして悪いことは何もないからそのままでもいいと思うが。
無料のレンタルサーバーだから
アパッチのログは見れないんだよ、dude
date関数って、どの時間帯が表示されるのかな?
php.iniの設定で決めるの?
つまり自分のパソコンで実験してるときはJSTが表示されて、
レンタルサーバーにアップロードしたら、
そのサーバーのタイムゾーンで表示されてしまうのかな?
だとしたら、アタマこんがらがるね。
なんでPHPerって、スレを乱立させるんですか?
クッキーの受け入れを拒否してると、
セッションクッキーも受け取れなくなるの?
ブラウザの開発元に聞いたら?
サーバ側の処理で「クッキーの受け入れ拒否」とかあるの?
仮に誰かが血迷って次スレ立てるとしたら、少なくともスレタイを「PHP初心者@〜〜」にしとけ
それか、ここがム板での雑談スレって扱いなら、テンプレに質問スレへのリンクでも貼って置けよ。
クソスレ乱立させんな
>>931 当然。URLにセッションIDを埋めるしかなくなる。
それが他人のパソコンに残ったり、そのURLを利用者が知らずにネットに貼ったりして
セッション乗っ取りが行われる。セッションIDにはワンタイムトークンを使うべきと言われたり、
決済やパスワードの変更等重要なタスクが発生する場面では再認証すべきと言われているのは
そのため。
>>932 開発元に何を聞くんだよw
>>928 date_default_timezone_set()
>>934 あーー。
それで、use.cookie_only=1
とかにしないとダメなんだ?
>>936 session.use_cookies = 1;じゃなかったっけ?
セッションハイジャックでググってみるといい。
938 :
デフォルトの名無しさん:2009/06/04(木) 17:18:28
$first_sunday = mktime(0, 0, 0, $month, 1 - date("w", mktime(0, 0, 0, $month, 1, $year)), $year);
西暦と月の情報だけで、その月の朔を含む週の日曜日を求めるコード。
長くて気持ち悪いんだけど、もっと短くならないかな?
十分短いと思うがw
>>938 $first_sunday = strtotime('next sunday', mktime(0, 0, 0, $month, 1, $year));
941 :
デフォルトの名無しさん:2009/06/04(木) 18:10:33
>>940 お、ありがとう。
この関数のことは知らなかったよ。
>>922 Webサーバが逆引きした名前を用意してくれるとは限らないし、
そもそも逆引きの名前がないかもしれない。
>>940 $first_sunday = strtotime("next sunday $year-$month-1");
>>944 % php -r "var_dump( date( 'Y-m-d' ,strtotime( 'next sunday 2009-2-1' )));"
string(10) "2009-02-08"
PHP5で、文字列の連結を高速化する手法はありますか?
配列に格納後joinするのが早いと思っていたのですが、実際に計測してみると「.」で一つずつ連結する方が早い始末…
メモリ確保の観点から「.」で一つずつ連結するより早い方法がある(C#のStringBuilderのような)と思うのですが、どうなんでしょう
>>946 '.'を使うのは並び順とかを指定するコストを人間が
負担してるわけだから早いのは当たり前。
例えば以下でどっちが早い?っつったら二番目に決まってるじゃん。
ループ回す分のコストがないわけだから。
foreach(1..5 as $count){
print $a[$count];
}
print $a[1] . $a[2] . $a[3] . $a[4] . $a[5];
>>945 PHP 4.4.3では2009-02-01と出るな・・・・。
まったくPHPってヤツは。
949 :
946:2009/06/06(土) 16:39:34
foreach($a as $tojoin){
$a = $joined . $tojoin;
}
よりも
$joined = join('', $a);
の方が遅いってこと?なら研究の余地があると思うが。
joinは内部的に配列を追ってるから、そのコストを人間が
負担するのでは比べる意味がない。
ほとんどの場合、その程度の速度差を気にしたところで何の意味もない
953 :
945:2009/06/06(土) 17:38:33
>948
2009-02-08になったのはPHP5.2.6@FreeBSD。
まったくPHPってヤツは。。。
954 :
952:2009/06/06(土) 17:56:11
すみません
>>952 >とんでもないロス
は言い過ぎました。
ある程度のロスがあるので、気持ち的にちゃんとした処理が簡単に出来るならしておきたい
に訂正しまふ
>>952 あのさあ・・・・。
連結作業があって、それをそのままドンと出すのと、
配列チマチマ作る作業が先にあって、それからjoinするのとじゃ手間が全然違うでしょ。
それでも通常と配列にはほとんど差がでてないという。
逐次データが出てくるような場合は '.'、元々配列ならjoinの方が早いっていうのは
当たり前のような気がするが。
ためしに配列作ってそれを '.'で繋ぐってテストスクリプト作ってみ。
あとこういうのはクラス化するとどこでロスが出るか分からないから
>>950みたいに
裸でスクリプト書くのが普通。
そもそも君が知りたいのはjoinのコストと'.'のコストでしょ?全然テストになってない。
テストスクリプト作り直し。
質問
リモートホストをサニタイズ無しで
表示するのって危険?
大事なのは、リモートホストの直接菜表示が危険かどうかではなく、
それが何故危険かどうかわからないことだ
>>955 お願いします、PHP以外のCやC#とかをいじってから言って下さい
C#には文字列連結用のクラスまでデフォルトで用意されてるんですが…
>>958 他の何言語を持ち出してきても結論は変わらないでしょ?
それと
>>955がCやC#をいじったことがない前提で話を
しているのはなぜ? w
>>959 メモリ確保時のロス、リスト構造、ポインタ、PHPのメモリコピーのタイミングなどの話が全く出てこないので、他言語の事を上げさせていただきました
正直、ここまで話にならないとは思いませんでした
>>960 話にならないのはお前のテストコードだろ。
俺は元々C書きだ。
お前が本当にC書きなら、メモリ確保やポインタがどうなってるか知りたい場合ソースコード
読むのが普通だろ。何やってんの?
> メモリ確保時のロス、リスト構造、ポインタ、PHPのメモリコピーのタイミングなどの話
PHPのテストコードレベルでそんな話出てくるわけ無いだろ。
>>962 おい・・・・・このテストスクリプトって無駄なjoinを繰り返してないか・・・?
他人にお話にならないとか抜かすのは100年早いと思うぞ。
でだ。単純に、
> for ($ii=0; $ii<$cnt; $ii++) {
> > $sb1 .= $str;
> }
と、
> $sb2 ='';
> $sb2 = join('', $test_array);
とを比較してみたら、これでもやっぱり配列の方が遅かったな($test_arrayは用意してある)。
何か問題を感じたらこういう根本的なとこから追っておくのが普通だろ。
まてまて、これは公平な試験じゃないな。片側だけ配列にアクセスしてる。
> for ($ii=0; $ii<$cnt; $ii++) {
> > $sb1 .= $test_array[$cnt];
> }
と、
> $sb2 ='';
> $sb2 = join('', $test_array);
だとjoinの方が早い。
結論:
・'.' と joinはjoinの方が早い。
・配列を使った連結と使わない連結は、使わない連結の方が早い(当たり前だわな)
965 :
962:2009/06/07(日) 00:05:10
配列を使わない方が速いに決まってるってのが分からんのですが
実際にどんな処理をしてるのかは知りませんが、
join時に配列の各要素を回ってメモリサイズを計算
↓
メモリ確保
↓
結合
の方が
一回一回メモリを確保で結合していくよりも速くないですか?
まあ勘違いしてるかもしれんので、今度時間のある時にでもCで確認してみます
966 :
965:2009/06/07(日) 00:11:08
一応
>>965で言ってる配列は、ポインタを格納した配列です。
PHPは値を書き換える時点でメモリをコピーするらしいので、
多分ポインタで持ってるのではないかなと
この時点で間違ってるんかな…
967 :
966:2009/06/07(日) 00:57:22
ああああ変なこと言ってる
>>966は無視してくださいスレ汚しすみません
まぁぶっちゃけると、そんなこと気にしてる暇があったらコード書け、と。
今の時代、早いコードより見やすいコードのほうが重要
ここで遅い、早い言っている人はそれがクリティカルなプログラムをphpで作っているんだw
>>965 > 配列を使わない方が速いに決まってるってのが分からんのですが
配列をシークするコストがなくなるからな。文法無視して例を書くと、
foreach(1..100 as $loop){ $a .= 'abc' }
foreach(1..100 as $loop){ $a .= $b[$loop] }
どっちが早いか明白だろ?
> 一回一回メモリを確保で結合していくよりも速くないですか?
仮にPHPがそう設計されてるとして、結合だけに関してはな。
ただ、君のテストコードだとjoinは配列使ってて'.'は配列使ってないので
、配列のコストがjoinには掛かる。だから、「君のテストコード」
の場合ではjoinの方が早いとは限らない。
>>966 だ・か・ら、
ソース嫁、と。
>>968 そうでない場面もあるよ。まあPHPでは少ないけど。
>>970 > ただ、君のテストコードだとjoinは配列使ってて'.'は配列使ってないので
.で逐次連結するか、すべて一時配列に格納して最後にjoinするか、
そういう前提でどっちが効率的なのか、って質問だろうに。
勝手なテスト書いてクソの役にもたたない結論出されてもね。
言われてるのは、何のためにそこまでテストしたいんだってのがぶれ過ぎてるってことじゃないの?
例えば
>>962のコードでは
$var2[] ='a';
ってことをやって計測してるけど、本当にこれが最善の配列の作り方なのかとか、
例えば連結する文字列が固定なのであれば
join('', array('a', 'a', 'a', 'a'))
なんて書き方も可能なのでそっちとの比較もしてみるとか、
考慮に入れてもいいような事がいろいろあるはず。
その辺が甘々なのに、ちっちゃなパフォーマンスにこだわるのが違和感バリバリ。
というか、joinよりimplodeの方が速度出るんじゃなかったっけ?
その辺から地道に頑張れ
joinはimplodeのaliasだぞ。
あら。ほんとだ。
差が出るのはsplitとexplodeか。(正規表現の解釈で?)
うん。おれが地道に頑張る
_Y_
r'。∧。y.
ゝ∨ノ PHP厨が配列の ,,,ィf...,,,__
)~~( 連結の議論をしてる間に _,,.∠/゙`'''t-nヾ ̄"'''=ー-.....,,,
,i i, ,z'"  ̄ ̄ /n゙゙''''ー--...
,i> <i 文明はどんどん発達し r”^ヽ く:::::|::|:::〔〕〔〕
i> <i. ていく・・・・・・。 入_,..ノ ℃  ̄U ̄_二ニ=
`=.,,ー- ...,,,__ |,r'''"7ヽ、| __,,,... -ー,,.=' >ーz-,,,...--,‐,‐;;:'''""~
~''':x.,, ~"|{ G ゝG }|"~ ,,z:''" ___
~"'=| ゝ、.3 _ノ |=''"~ <ー<> / l ̄ ̄\
.|)) ((| / ̄ ゙̄i;:、 「 ̄ ̄ ̄ ̄| ̄| ̄ ̄ ̄\
))| r'´ ̄「中] ̄`ヾv、 `-◎──────◎一'
├―┤=├―┤ |li:,
|「 ̄ |i ̄i|「.//||「ln|:;
||//__|L_」||__.||l」u|:;
|ニ⊃| |⊂ニ| || ,|/
|_. └ー┘ ._| ||/
ヘ 「 ̄ ̄ ̄| /
相変わらずそのAAは発達しないんだな
テストコードを書いた者ですが、
もともとはC#で言う「StringBuilder」を作りたかったのであのようなコードになりました
書き方が悪かったですね
まあ多分色々勘違いしてると思うので大人しくソース眺めてみます
>>960 > 正直、ここまで話にならないとは思いませんでした
この流れ、どう読んでもお話にならないのは自分の方だから、
社会に出て身の程を知った方がいいよ。
PHPのスレだなあ
とりあえず、
>>979のしたかった話と、大方のレスのレベル(階層)がずれてるのは確かだろ。
文字列連結の、PHPの実装上最も速い方法は 「.」 での連結なのか?っていう疑問。
んで、ただ単にCの階層で具体的な話をする(できる)奴がいなかったってだけじゃないか
# 本人が挙げたテストコードが、その階層以前の問題だったってことも大きいんだろうけど
>>960の煽りはいただけないが、
>>980の煽り返しは明らかにレベル(次元)が低い、と思う。
ちなみに俺はPHPのソースコードはダウンロードしたことはあるが読んだことない。
需要があるみたいなので、そろそろ次スレ頼む
>>981 >ただ単にCの階層で具体的な話をする(できる)奴がいなかった
>ってだけじゃないか
>>961が指摘してることを理解してから出直しな
>>945 2/1は日曜なんだから次の日曜は8日で当たり前じゃないのか?
985 :
945:2009/06/08(月) 21:33:48
願わくは984にもう少しスレを遡る勇気あらんことを。
何だよ性格ひねくれてんな
>>984 2/1の次の日曜は8日なんだが、'next sunday'は1日になったり8日に
なったりするからやっぱりPHPはこういうトコ困ったちゃんだな〜って流れだよ。
そういう時は "+1 day" してから訊ねるといい。
989 :
デフォルトの名無しさん:2009/06/09(火) 14:03:16
php4とか旧世代の遺物を使ってんのが悪いんだろ
>>989 客のサーバにPHP4しか入ってない(んで触れない)こととか普通にあるからなぁ。
うちでもメインのサーバーはPHP4だよw
今度PHP5の新サーバーを立てたけど、まだまだPHP4には頑張ってもらわないとw
PHP5に入れ替えても完全に動くって補償があるならいいけど
今とりあえず動いてるなら4使い続けちゃうよね
サーバーで動かしてるサービスが複数あるから
PHP4からPHP5に移行するメリットが特に無い。
PHP5でかかにゃならん仕事はPHP5が入った別のサーバーで書く。
994 :
デフォルトの名無しさん:2009/06/10(水) 09:17:20
>>992 商用の鳥のパッケージ使うならいいけど、srcのほうはupdateとまってるでしょ?
とういうのが気になる
5.2->5.3のギャップもすごそうだね
995 :
デフォルトの名無しさん:2009/06/10(水) 23:34:35
仕事では4ばっかりで、5はまずない
うちの会社はそんな感じ
正規表現苦手なのにXMLをちょこっと使う必要があるから、そのあたりの関数作ったりして、少し憂鬱になる
サポートとっくに切れてるんだから新しくしてよと
今回、実験してみたんだけど、
その国が15:00前後になるように
リンクを投入すると、一番クリック数が
多くなるみたいね。
わかんないことがあったんで、
アメリカの掲示板に英語で質問したら
すぐに解決した。2ちゃんねるはもういらない。
>>997 2chじゃなくてMLとかだろjk・・・。
糞スレ終了
php板に帰れよ
?>
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。