PHP@プログラム板

このエントリーをはてなブックマークに追加
341デフォルトの名無しさん
リクエストパラメータなどを収めた連想配列から、いくつかのパラメータだけ
の部分配列を取り出したい。

$request = array('hoge'=>1, 'fuga'=>2, 'piyo'=>...
これからキーが hoge, fuga の物だけを取り出すとすると、

foreach (array('hoge', 'fuga') as $param) {
$a[$param] = $request[$param];
}

これ、もうちょっと簡潔に書けないかな?

$a = array_intersect_key($request, array_flip(array('hoge', 'fuga')));
こんなの考えたけど、あんまり短くならない。
342デフォルトの名無しさん:2009/02/28(土) 13:24:25
>>341
関数にする。
array_flip(array('foo','bar'))の部分を最初から連想配列にする。
343デフォルトの名無しさん:2009/03/02(月) 18:23:16
http://changi.2ch.net/test/read.cgi/entrance/1226843784/468-
468 名前:名無しさん?[sage] 投稿日:2009/03/02(月) 11:25:37 ID:??? ?2BP(0)
PHPにバグ、vmwareの組み込みedのバグによる脆弱性。アップデートを。

と、いう事らしいです
お気をつけを
344デフォルトの名無しさん:2009/03/03(火) 16:14:31
firefoxだとsessionが動作するのに
IEだと動作してくれないのって何が原因ですか?
345デフォルトの名無しさん:2009/03/03(火) 17:15:45
htmlを通るとsessionが切れるとかいう話もどっかで聞いたな
346デフォルトの名無しさん:2009/03/03(火) 23:44:08
phpで作りたいものがない
347デフォルトの名無しさん:2009/03/03(火) 23:52:02
何ならあるの
348デフォルトの名無しさん:2009/03/04(水) 06:31:16
子作り
349デフォルトの名無しさん:2009/03/05(木) 12:37:25
<?PHP
function timeSinceLastCall() {
static $lastTime = null;

$curTime = microtime(true);

if($lastTime === null)
$elapsed = 0;
else
$elapsed = $curTime - $lastTime;

$lastTime = $curTime;

$d=sprintf("%.f", $elapsed);


return $d;
}

for ($i=1;$i<10;$i++){
print 'Loop took ' . timeSinceLastCall() . 's';
print '<br>';
}



?>
350デフォルトの名無しさん:2009/03/12(木) 22:25:59
<?php
$handle = fopen("./file.txt", "r+");
$b=file_get_contents ('./file.txt');
$a=$b+1;

fwrite($handle, $a);
print $a;
?>

このコードを実行すると、
一回ごとに数字が1増える
351デフォルトの名無しさん:2009/03/12(木) 22:45:13
アクセスカウンタじゃんw
352デフォルトの名無しさん:2009/03/12(木) 23:50:26
で、アクセスカウンタって、そうやってテキストで作るのと、数値項目一つ入れたDBで作るのと、どっちがいい?
353デフォルトの名無しさん:2009/03/13(金) 00:21:56
データーベースで作る場合は、
まず、
「どのデーターベースにしようかな?」
って決めなきゃならないじゃん。
354デフォルトの名無しさん:2009/03/13(金) 00:24:01
そんで決めたら、今度は、
「どのアクセス方法でアクセスしようかな?」
って、アクセス方法を決めないといけないじゃん。

PDOとか、pear::dbとか、
pear::mdbとか、pear::MDB2とか。
(これらはデーターベースアクセス抽象化レイヤー)

それか、O/Rマッパー使うか?とか。
pear db_dataobjectとか。
355デフォルトの名無しさん:2009/03/13(金) 00:24:53
そんで例えば、PDO使う、とか決めるじゃない。
そしたら、今度は、
PDO->execでやるのか、
プリペアードステートメントでやるのか、
バインドパラムは使うのか?
とか、悩まないといけない。
356デフォルトの名無しさん:2009/03/13(金) 00:27:00
そんでわからないから、例えばWEBプログラム板で聞くじゃない
そしたら

「おれたちはマニュアルにのってることしか
回答できねええんだよおおおお」

とかってキモヲタが絶叫してるし。

まじ関わり合いになりたくねぇえ、って心の底から思うじゃない。
思わずプログラム板に避難しちゃうくらいきもいから。
357デフォルトの名無しさん:2009/03/13(金) 00:48:09
>>353-356
おまいらのせいで100gで3600円もする貴重な最高級煎茶が無駄になったじゃないか
358デフォルトの名無しさん:2009/03/13(金) 00:56:54
>>352
テキストが良いよ
359デフォルトの名無しさん:2009/03/13(金) 02:08:50
排他しろヴォケ
360デフォルトの名無しさん:2009/03/13(金) 08:17:04
開いたら閉じてくれぇえええええ
361デフォルトの名無しさん:2009/03/13(金) 19:32:19
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
<input type="submit" value="プッシュ!">
<input type="hidden" name="bbb" value="
あれほど言ったのに、まだそんなカキコするですか!もう許さんです!
あんたを許すわけにはいかんです!こんなカキコでレスたくさん付くとでも
思ってるなんて頭おかしーよです!あんたみたいなバカ初めて見たです!
あんたみたいなバカ、ゴキブリ以下です!あんたみたいなバカ、ウジ虫以下です!
死んでほしーです!つーか、死ぬべきです!あんたは絶対に許されないです!
勘違いしたバカを許すわけにはいかんのです!面白半分にいい加減なカキコ
するヤツなど許さんです!キャラメルコーンのピーナッツをケツの穴に詰めて
死ねよです!!!
">
</form>


<?php
if(isset($_POST['bbb'])){
print "<pre>". $_POST['bbb'] ."<pre>";
print "<br>";
}
?>
362デフォルトの名無しさん:2009/03/13(金) 19:33:03
>>361
これを「1.php」とかのファイル名で保存して実行。

するとプッシュってボタンが出るから、
それを押すと、自分に対する応援のメッセージが出力される。
363デフォルトの名無しさん:2009/03/13(金) 20:12:21
<form method="post" action="<?php $_SERVER["PHP_SELF"]; ?>">
<input type="submit" name="bbb" value="プッシュ!">
</form>

<?php
if(isset($_POST['bbb'])){
$handle = fopen("./file.txt", "r+");
$b=file_get_contents ('./file.txt');
$a=$b+1;
fwrite($handle, $a);
print $a;
}
?>
364デフォルトの名無しさん:2009/03/13(金) 20:13:14
>>363
これを「2.php」とかの名前で保存。

それと、file.txtって名前のテキストファイルを作成して
同じディレクトリに置いておく。

これで事前準備はOK。

あとは、2.phpを実行して、ボタンを押すと、
一回押すごとに、数字が1増える。
365デフォルトの名無しさん:2009/03/13(金) 22:28:07
<?php
$cnt = 0;
$f = file_get_contents (__FILE__);
file_put_contents (__FILE__,
  preg_replace_callback("/(?=>\$cnt = )[0-9]+(?=;)/",
    create_function(
     ...

って感じで、自身を書き換えるカウンタもつくれるんだろうな
366デフォルトの名無しさん:2009/03/13(金) 22:41:47
>>365
そこの変な書き込みしているやつ、止まれ。
お前はタリバンか。
367デフォルトの名無しさん:2009/03/14(土) 05:50:25
画像をアップロードするものを作っているのですが
拡張子はjpgでも中身はTIFFだったりする場合って、みなさんどう対処されてます?
ブラウザでは表示されないんで困ってます

教えてエロい人!
368デフォルトの名無しさん:2009/03/14(土) 06:30:59
>>367
ファイルの先頭数バイトで判定すれば良いんじゃね?
369デフォルトの名無しさん:2009/03/14(土) 07:52:45
>>368
バイナリは詳しく分からないので
getimagesize()で確認してみるとにしました

欲を言えばGDとかで通常のjpgにしたかったんですけど
上書きしたjpgも何故かブラウザで見れなかった〈(。А。)〉
370デフォルトの名無しさん:2009/03/14(土) 09:58:10
>>369
俺が適当に作って使ってるやつでよければ
大抵のサーバマシンには fileコマンド ぐらい入ってると予想して
無かったらドンマイ
function getExtensionByMineType($fname)
{
$minetype = trim(`file -i $fname | cut -d' ' -f2`);

$ext = NULL;

switch ($minetype)
{
case "image/jpeg":
$ext = ".jpg";
break;

case "image/gif":
$ext = ".gif";
break;

case "image/png":
$ext = ".png";
break;

default:
$ext = NULL;
break;
}

return $ext;
}
>>370 コード参照用
371デフォルトの名無しさん:2009/03/14(土) 10:00:31
調べて増やせば他の拡張子も対応可能
貼ってから気付いたけどマイムタイプだな
372デフォルトの名無しさん:2009/03/14(土) 11:46:57
postgresql の COALESCE みたいな関数ってある?
$a=""; $b=null; $c="hoge";
xxx($a, $b, $c); hoge と表示される
373デフォルトの名無しさん:2009/03/14(土) 13:56:08
PostgreSQLのってか標準SQLのな
まーないけどこんな感じでなんとかなるんじゃね。

$ret = $a == "" ? ($b == "" ? ($c == "" ? null : $c) : $b) : $a;

is_nullとか===にしちゃ駄目よ。

そういやPHPの日本語マニュアル見ると三項演算子ってterniary条件文ってなってるけど
ternaryの間違いだよなこれw
374デフォルトの名無しさん:2009/03/14(土) 15:21:26
やっぱないのか
PHP5.3 から ?: ってのが出来てるみたいだね
375デフォルトの名無しさん:2009/03/14(土) 15:44:55
いや昔からできてるけど
376デフォルトの名無しさん:2009/03/14(土) 16:17:00
昔からって三項演算子の省略型が?
$ret = $a ?: $b
377デフォルトの名無しさん:2009/03/14(土) 16:32:05
C++あたりから普通にあるじゃん・・・
378デフォルトの名無しさん:2009/03/14(土) 16:46:48
誰がC++の話してんだよ^^;
379デフォルトの名無しさん:2009/03/14(土) 16:56:18
あぁすまん、Cからあっ(ry

C派生なんだからPHPは最初からあったでしょ >三項演算子
380デフォルトの名無しさん:2009/03/14(土) 17:04:44
381デフォルトの名無しさん:2009/03/14(土) 17:28:26
>Notice: Undefined variable
エラーでてコンパイルすら通らなかった。
382デフォルトの名無しさん:2009/03/14(土) 17:29:45
ちがった、こっちだったw

>Parse error: syntax error, unexpected ':'
383デフォルトの名無しさん:2009/03/14(土) 18:40:33
コンパイルしてるのか
384デフォルトの名無しさん:2009/03/14(土) 18:52:20
PHPはソースが変更されて最初のアクセスでコンパイルされて中間コードが生成される
二度目以降はこの中間コードを直接見るので一度目より速度は多少速くなる。

実はこれ4.xの途中で変更された仕様で、古いバージョンだと毎度コンパイルしてるから遅い
385デフォルトの名無しさん:2009/03/14(土) 19:00:23
php5でSmartIrcは
どうやってつかうのでしょうか
おしえてください
386デフォルトの名無しさん:2009/03/14(土) 19:08:22
しらない
387369:2009/03/14(土) 19:18:54
>>370
遅くなりましたが、ご丁寧にどうもありがとうございます!
388385:2009/03/14(土) 19:27:40
ttp://www.dotup.org/uploda/www.dotup.org2648.gz

ダウンロードしたんだよ
頼むよ、おしえてくれよ
389デフォルトの名無しさん:2009/03/15(日) 09:26:40
ドキュメント読めばいいじゃん
390デフォルトの名無しさん:2009/03/15(日) 19:34:38
ageんなカス
391デフォルトの名無しさん:2009/03/19(木) 22:49:07
 
日本を狙う 朝鮮人の原爆ミサイル建造費用は

  日本国内の 在日パチンコ屋からの送金

パチンコの市場規模は 年間30兆円

  日本の国家予算の 3分の1以上

  北朝鮮の国家予算の なんと100年分!

これを在日朝鮮人が 自由に動かし

  パチンコマネーを 北朝鮮に送金している

パチンコ屋を 全面営業禁止にしない限り

  北朝鮮は制裁など 痛くもカユくもない
 
在日朝鮮人なら 生活保護もらい放題

  毎月二十数万円もらって 毎日遊んで暮らしてる

  住宅費・医療費・教育費なんでも無料

  税金は1円も払わない 超特権階級(貴族)

  民主党は 選挙権まで与える予定

  日本は 在日天国  <丶`∀´> ウハウハ〜♪

http://2cchan.ham-radio-op.net/kimuchi.html
392デフォルトの名無しさん:2009/03/28(土) 02:06:58
Visual Studio2005( VS.Php 2.6 試用版 )を使用して
PHPのデバッグ実行を行おうとしているのですが、PHPスクリプト内に設定した
ブレークポイントで止りません。
一体どうすればブレークポイントを止める事が出来ますか?


【ブレークポイント上のエラー】
・ブレークポイントは、現在の設定ではヒットしません。
Unbound break point

【IEの設定】
次のチェックを外しています。
・スクリプトのデバッグを使用しない(Internet Explorer)
・スクリプトのデバッグを使用しない(その他)

【php.iniの設定】
[DBG]
debugger.enabled = true
debugger.profiler_enabled = true
debugger.JIT_host = 127.0.0.1
debugger.JIT_port = 7869
debugger.enable_session_cookie = true

extension=php_dbg.dll
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
393デフォルトの名無しさん:2009/04/02(木) 20:35:48
文字列の関数を利用する時は、
非マルチバイト関数を利用する事が
ないかとおもいますが。

マルチバイト関数と、非マルチバイト関数対応表と、
マルチバイト関数が存在しない非マルチバイト関数表
とかってどっかにないでしょうか?
例、mb_trimが存在しない。
394デフォルトの名無しさん:2009/04/04(土) 22:42:33
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!go-pear.bat 氏ね!
395デフォルトの名無しさん:2009/04/05(日) 00:34:44
>>393
http://jp.php.net/manual/ja/ref.strings.php
http://jp.php.net/manual/ja/ref.mbstring.php
ここから関数群の差分取るスクリプト書けばおk
396デフォルトの名無しさん:2009/04/05(日) 00:48:44
>>395
ありがとうございます。

非マルチバイト関数を使うな!
といっても、もれが出てしまいます。
皆様どのように解決しておりますでしょうか?

思いつくのは。
・コーディング後に非mbチェックスクリプトを実行。
・関数を改造してこけるようにする。
・対処しない、根性でテスト。
397デフォルトの名無しさん:2009/04/05(日) 01:22:45
>>396
0003. セキュリティを考慮して、特定の関数を使用不可能にする方法
ttp://php.to/tips/3/
398デフォルトの名無しさん:2009/04/05(日) 01:47:54
>>397
ありがとうございます。
399デフォルトの名無しさん:2009/04/06(月) 04:27:20
<?php
$a=mb_convert_encoding(`ping www.google.com`,"UTF-8","SJIS");
print "<pre>";
print_r ($a);
print "</pre>";
?>


-----------------------------------------------
これはおもしろい。
実行すると、PHPからpingを打って、
結果を表示してくれる。
400デフォルトの名無しさん:2009/04/06(月) 05:38:29
$a = `ping www.google.com`;

でいいんじゃないのかと思うが。
401デフォルトの名無しさん:2009/04/06(月) 05:44:59
>>400
やってみたらできた、ありがとう。
execのコードを一部改変したものですから。
402デフォルトの名無しさん:2009/04/07(火) 07:55:39
言い訳スンナヨ
403デフォルトの名無しさん:2009/04/07(火) 16:33:34
Net_UserAgent_Mobileを使って3G端末の識別がしたいんだけど、isFOMA()メソッド
を使用したら、「Call to undefined method Net_UserAgent_Mobile_NonMobile::isFOMA()」
って表示された。
本でもネットでも以下の方法しか記載されてないから、わけわからない。
$agent = Net_UserAgent_Mobile::singleton();

if ($agent->isFOMA()) {}
404デフォルトの名無しさん:2009/04/08(水) 00:59:15
それってPEAR?
405デフォルトの名無しさん:2009/04/08(水) 03:12:46
>>399
へぇーそんな事も出来るんだ。
面白いね
406デフォルトの名無しさん:2009/04/08(水) 11:28:04
>>403
Net_UserAgent_Mobile_NonMobile::isFOMA()

Net_UserAgent_Mobile::isFOMA()
は違うがな
407デフォルトの名無しさん:2009/04/08(水) 14:18:15
http://d.hatena.ne.jp/indiana/20090217/p1

ここにある、かなをローマ字に変換するクラスですが、
うまく動きません。サンプルまでそのまま引きうつして実行しても、
だめです。非常に便利なクラスなのでぜひ活用させてもらいたいの
ですが、何か、アドバイスをもらえませんでしょうか。
408デフォルトの名無しさん:2009/04/08(水) 14:35:36
エスパーじゃないので解りません
409デフォルトの名無しさん:2009/04/08(水) 22:36:15
使えない人ですね
410デフォルトの名無しさん:2009/04/08(水) 23:00:59
>>407
文字コードは設定と一致してる?
クラスの先頭にある
var $charset='utf-8';
の 'utf-8' を 'shift_jis' に変えてみるとか
411デフォルトの名無しさん:2009/04/08(水) 23:40:42
>>410
ファイルはすべてUTF-8にしています。
文字コードを試しに変えてみましたが、だめなようです。
エラーは出ませんが、何も表示されません。
412デフォルトの名無しさん:2009/04/08(水) 23:42:24
>>411
display_errors
error_reporting
413デフォルトの名無しさん:2009/04/09(木) 00:46:02
手元のインタプリタで試したけどそのままで動いてる
(utf-8 => shift_jisのみ修正)

> class kana2roma {
// var $charset='utf-8';
var $charset='shift_jis';

> $roma=new kana2roma();
echo $roma->conv('アキハバラあったかまつり');
akihabaraattakamatsuri
null

このクラスは漢字を単純に捨ててるので、認識できない文字の
場合も同様に捨ててるだけ(エラーがでない)の可能性も高い
だとすると文字化けした場合、すべての文字が単純に捨てられてる
だけの可能性がある

なので以下の2点を確認することを勧める
1) 半角英字の文字がそのまま出力されるか
2) 関数 _baseOne() の最後を書き換えて文字を確認する
return NULL;
=>
return $str;

これで漢字などの変換対象でない文字もそのまま出力するはず
これで文字化けなどが起こっているなら文字コード回りを再度見直した
ほうがよいと思う
414デフォルトの名無しさん:2009/04/09(木) 07:45:35
PHPのCLI版おもすれー
415デフォルトの名無しさん:2009/04/09(木) 10:08:47
CLI ってまぎらわしい。
Common Language Infrastructure (いわゆる .NET)
Command Line user Interface (いわゆる DOS窓)
Command Line Interpreter (いわゆる CMD.EXE、COMMAND.COM)
416デフォルトの名無しさん:2009/04/09(木) 10:10:01
あと、Client (Client application) を CLI と略すこともある。
まぎらわし〜〜〜
417デフォルトの名無しさん:2009/04/09(木) 11:33:27
<html>
<head>
<title>フォームのデータを受け取る</title>
</head>
<body>

<?php

echo "<p>入力内容:".@$_POST["text1"];

?>

<form method = "POST" action = " <? = $_SERVER["PHP_SELF"]?> ">
<table>
<tr>
<td><input type = "text" name = "text1"></td>
<td><input type = "submit" value = "送信" name = "sub1"></td>
</tr>
</table>
</form>
</body>
</html>

本で読んで上のようなコードを書いたんですがうまくいきません
原因分かる方いたら教えてほしいのですが
phpは5.2 アパッチは2.2を使ってます
418デフォルトの名無しさん:2009/04/09(木) 12:10:24
Access forbidden!
要求されたオブジェクトへのアクセス権がありません。 読み込みが許可されていないか、 サーバが読み込みに失敗したかでしょう。

サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。

Error 403
localhost
04/09/09 12:08:32
Apache/2.2.11 (Win32) PHP/5.2.9-1

書き忘れたのですが、上のようなエラー文が出ます
419デフォルトの名無しさん:2009/04/09(木) 14:20:28
>>417-418
apacheのerror.logさらせ話はそれからだ
420デフォルトの名無しさん:2009/04/09(木) 14:39:05
[Thu Apr 09 14:36:08 2009] [error] [client 127.0.0.1] (20024)The given path is misformatted or contained invalid characters:
Cannot map POST /%3C?%20=%20$_SERVER['PHP_SELF']?> HTTP/1.1 to file, referer: http://localhost/rcvform2.php

POSTがちゃんと働いていないということでしょうか?
421デフォルトの名無しさん:2009/04/09(木) 15:40:26
<? = $_SERVER["PHP_SELF"]?>

を普通にファイルへのパスにしたらどうなりますか。
422デフォルトの名無しさん:2009/04/09(木) 15:54:37
>>421
うまくいきました!
ということは<? = $_SERVER["PHP_SELF"]?>の部分記述の仕方に問題があったんですね
お騒がせしてすみませんでした。
423デフォルトの名無しさん:2009/04/09(木) 17:04:02
ブラウザからメールアドレスを入力してもらって、
そのアドレス宛にメールを送るプログラムを書いているのですが、

メールの件名の7文字目だけ抜けるという現象に見舞われています。
(文字化けは起こしていません)
文字コードなど怪しいところは調べたのですが解決に至っていません。


スクリプト内で設定した件名:パスワード再発行URL
メーラで表示されている件名:パスワード再行URL

ヘッダ内のsubject
=?utf-8?Q?=e3=83=91=e3=82=b9=e3=83=af=e3=83=bc=e3=83=89=e5=86=8d=e7=99?= =?utf-8?Q?=ba=e8=a1=8cURL?=

文字コード以外で調べるべき箇所があるのでしょうか。
アドバイスなどありましたらお願いします。
424デフォルトの名無しさん:2009/04/09(木) 22:42:50
>>422
その場合、phpのショートタグなんちゃらが
無効になっている。
425デフォルトの名無しさん:2009/04/09(木) 22:44:18
>>423
あいうえおかきくけこ

といれて、抜けるかどうか調べる
426デフォルトの名無しさん:2009/04/10(金) 05:23:33
427407=411:2009/04/10(金) 08:12:20
>>413
ご指摘、ありがとうございます。
当方の環境では、半角英字も全て、出力されません。
やはり文字コード周りが怪しいので、PHP.iniを見直して
みたいと思います。

このクラスは、utf-8などの文字コード設定と内部コードが
あっている必要があるということでしょうか?
428デフォルトの名無しさん:2009/04/10(金) 22:38:57
<?php
print "Type your name , please?.\n";
$a=fgets(STDIN);
$b=trim($a);
print "Your name is " . $b . ", ok?\n";
?>


------------------------------
CLI用。
これを、アパッチ経由でなくて、
WindowsのMS-DOSプロンプトで動かす。
「1.php」とかの名前で保存して、
その保存したディレクトリにDOSで移動して
php 1.php
って打ち込む。

すると

Type your name , please?.
samansa
Your name is samansa, ok?

とかってDOSプロンプト上でphpプログラムを実行できる。
429デフォルトの名無しさん:2009/04/10(金) 22:39:41
$a=fgets(STDIN);


この行でDOSプロンプトからの
キーボードからの入力を受け付けることができる。
ただし日本語は文字化けする。
430デフォルトの名無しさん:2009/04/10(金) 23:52:51
なにを言いたいのかよくわからないけど、
プログラムの簡単な確認なら

php -a

で組込みのインタラクティブシェルが起動するので、
対話的にプログラムを実行できる
あと、Windowsだと、ASConsole というのもある。これもインタラクティブシェル
なんだけど、複数行の入力をサポートするので関数とかのコピペが簡単に
できて結構便利

ちなみに自分の環境では>>428のプログラムで日本語文字化けしなかった
431デフォルトの名無しさん:2009/04/11(土) 03:19:32
ソースコードをutf-8で書いて、
それをDOSプロンプトで出力したので
文字化けしたのかな?
(DOSプロンプトはシフトJIS出力なので)

おそらくソースコードもシフトJISで保存すれば
文字化けしないんだと思う。
432デフォルトの名無しさん:2009/04/11(土) 08:55:19
windowsのphpに脆弱性upでとよろ
433デフォルトの名無しさん:2009/04/11(土) 09:40:17
入社面接に応募したらPHPで100行くらいの自作コードを送るように言われたんだけど、
JAVAの経験はあるのですがPHPの経験がなくてどんなの作ったらいいかわからないので、
なにか意見いただけませんか?
434デフォルトの名無しさん:2009/04/11(土) 10:55:16
100行って微妙だな。
435デフォルトの名無しさん:2009/04/11(土) 11:55:38
質問です。
ニュースサイトなどでよく見かける、「あるページに、内容が関連する他のページの見出しを表示」がしたいのですが、
これはどのような仕組みで実現しているのでしょうか。教えてください。
436デフォルトの名無しさん:2009/04/11(土) 12:41:22
比較する記事から形態素解析で使われている単語を抽出して、ある程度一致したものを列挙するだけ
形態素解析エンジンはChasenとかKakasiとかMeCabとかYahooAPIとか色々あるんで
好きなのを選ぶといいよ
437デフォルトの名無しさん:2009/04/11(土) 12:47:44
一方俺はタグを使った
438デフォルトの名無しさん:2009/04/11(土) 13:28:06
ブログツールのMovableType使ってた時は、タグの類似度でやってたな。
439435:2009/04/11(土) 15:39:09
おー、「形態素解析」初めて聞きました。そういうのがあるんですね。
わかりました。挑戦してみます。ありがとうございます。
440デフォルトの名無しさん:2009/04/11(土) 18:57:59
>>434
100行で魅せろって意味だとしたら相当難しいな
441デフォルトの名無しさん:2009/04/11(土) 19:48:21
ある意味良課題
442デフォルトの名無しさん:2009/04/11(土) 20:07:46
君たちやってみたまえ
443デフォルトの名無しさん:2009/04/11(土) 21:25:31
100行ならメール専用画像アップローダぐらいは作れそうだな
444デフォルトの名無しさん:2009/04/16(木) 06:51:16
バイナリセーフでない正規表現系の関数は、
基本的に危険だから使わないほうが良い?
445デフォルトの名無しさん:2009/04/16(木) 06:51:58
危険、という意味は、ヌルバイト攻撃されるから。
¥nを入れられると、その後ろに’(シングルクオーテーション)等を
自由に入れられてしまう。
446デフォルトの名無しさん:2009/04/16(木) 07:09:31
教科書読んでると、たまに

「*Windows版では動作しません」
って書いてある関数があるんだが、これを実験するには、
やはり、自分のパソコンにLinuxを入れるしか
ないのだろうか?
447デフォルトの名無しさん:2009/04/16(木) 10:07:43
>>445
素のままのデータを使うなよw
448デフォルトの名無しさん:2009/04/16(木) 17:06:43
>>446
Cの時は読み飛ばした
今ならVMWare使って遊ぶ
449デフォルトの名無しさん:2009/04/16(木) 17:08:41
VMwareかぁ、、、
危険ではないのかな?
450デフォルトの名無しさん:2009/04/16(木) 18:11:14
php初心者です。
画像などのファイルをアップロードしてデータベースに格納したものをダウンロード
して表示させるときにcontent-typeをつけて表示していますが、ファイルがいろいろな種類のときに
ダウンロードしてきたデータのmime-typeを判定する方法があったら教えて下さい。
お願いしますm(_ _)m
451デフォルトの名無しさん:2009/04/16(木) 19:12:40
自分のパソコンの中で判定するってこと?
452デフォルトの名無しさん:2009/04/16(木) 19:53:42
>>451
判定結果をcontent-typeの後につけて、出力をしたいと思っています。
453デフォルトの名無しさん:2009/04/18(土) 17:28:42
>>449
何が?
454デフォルトの名無しさん:2009/04/18(土) 18:29:25
>>453
Windowsが起動しなくなるとか、、、
455デフォルトの名無しさん:2009/04/18(土) 21:33:38
>>454
phpの方が危険度高いぞw
456デフォルトの名無しさん:2009/04/20(月) 23:10:44
php初心者ですがアドバイスをいただきたくm(_ _)m
今までC言語6年とJava1年やってきてますので、完全なコンピュータ素人では
ないつもりです。が、Web系は関わった事が無いのでhtmlとかxmlとかは素人です。

今度担当するプロジェクトでphpを覚える必要が出てきまして、入門用の書籍を
探しています。
今日色々とPHP本を漁って、オライリーの「プログラミングPHP」が良さそうかな、
と思いました。

そこで質問が2つ。
○先輩に「PHP5徹底攻略(マンモス本?)」を薦められたのですが、執筆された
時期が5年以上前なので、情報が古くないかと心配です。
○上記の2冊以外でオススメの入門書がありましたら教えてください。

以上、よろしくお願いいたします。
457デフォルトの名無しさん:2009/04/20(月) 23:50:26
phpの言語仕様はC言語に毛が生えた程度。
クラスの概念がC言語には無いけど、Javaやってたようだから何とかなると考えれば、
入門書に頼らずとも、本家サイト(php.net)の言語リファレンス(http://www.php.net/manual/ja/langref.php)よめば、何とかなる様に思えます。

むしろ大変なのは、phpの外の世界。
html, http, セキュリティ対策(XSS, SQL-Injection等)、Javascript、CSSなど、理解しなければならないことが山の様にあります。
458デフォルトの名無しさん:2009/04/21(火) 00:43:24
>>456
俺も>>457にほぼ同意。そんだけ経験あればマニュアルとか、買ってもリファレンス系で足りるはず。
下手に入門本とか買うとかえって混乱すると思う。(オライリー系ならいいけど)
むしろWEBアプリならではのセキュリティとかMVCとかの方が面倒。
459デフォルトの名無しさん:2009/04/21(火) 02:53:59
削除したはずの要素までファイルに記録されてしまう。削除した要素を無視する方法があったら教えてほしい。
$names["test"]=123;
$names["a"]=1235;
unset($names["a"]);
save_namefile($names);

function save_namefile($a)
{
        $fp = @fopen("./names.txt","w");
        flock($fp,LOCK_EX);
        foreach($a as $key => $v){
                $buf = $key . "<>" . $v . "\n";
                fputs($fp,$buf);
        }
        flock($fp,LOCK_UN);
        fclose($fp);
}
460デフォルトの名無しさん:2009/04/21(火) 02:55:48
457が言いたいことを全部言ってくれた

>>459
WebProg板のくだスレで質問してた人?
461デフォルトの名無しさん:2009/04/21(火) 02:57:23
>>460
違うが。
462デフォルトの名無しさん:2009/04/21(火) 03:07:37
もしかして、既に出てる質問なのか。
もし、そうなら、そこのURLを教えてほしい。
該当する板に行ったがなかった。
463デフォルトの名無しさん:2009/04/21(火) 05:57:45
>>456
俺も似たような状況だったけど、webフレームワーク憶えたらすぐに実戦にもっていけた。
PHP憶えるついでに、CakePHPとかやってみたらどうかと思う。

MVCフレームワーク一度も使ったことないなら、CodeIgniterの書籍が超わかりやすいからお勧め
CodeIgniter自体は軽量すぎてあまりオススメしないがw

Amazon.co.jp: CodeIgniter徹底入門: 河合 勝彦, 鈴木 憲治, 安藤 建一: 本
http://www.amazon.co.jp/dp/4798116769
http://images-jp.amazon.com/images/P/4798116769.09.MZZZZZZZZZ.jpg
464デフォルトの名無しさん:2009/04/21(火) 06:09:03
>>456
●はじめてのphp言語 プログラミング入門
●独習PHP
●実践マスターPHP+MySQL
●速効!図解プログラミングPHP + MySQL
465デフォルトの名無しさん:2009/04/21(火) 09:56:06
>>456
マンモスの徹底攻略4ならPDFで公開されているから、何か買う前にダウンロードしてみたらどうだい。
466デフォルトの名無しさん:2009/04/21(火) 14:07:58
>>459
そのサンプルを実行してみると君がいったような動作には
ならない。予想では
0. サンプルが実際のコードをあらわしていない
(実際のコードにはつまらないタイプミスがある、など)
1. names.txtへの書き込みが失敗している
2. web上で動かしていて上書きされている
467デフォルトの名無しさん:2009/04/21(火) 19:05:47
>>464
独習PHPは、わかりにくかったでしゅ
468456:2009/04/21(火) 23:13:35
皆様ありがとうございます。
ここの意見も参考に色々な本を試し読みしまくって、結局「プログラミングPHP」と
PHPのセキュリティに関する本を買いました。
私にとってレベルが高すぎず低すぎず、文体とか読んだ感じとかのフィーリングが
好きだったので。
今回の仕事にPEARとxmlが絡む事は確定しているんで、その辺もフォローしている本の
方が良いかな?と結構迷いましたが、基本とセキュリティ知識をある程度身につけて
からにします・・・不器用なんでw
469デフォルトの名無しさん:2009/04/21(火) 23:13:46
>>466
うむ・・・。
スクリプト一式をこちらにおいておきます。

http://www6.atpages.jp/~autonomydoll/chat/
(chat_error.phpがうまくいかないほうです)
470デフォルトの名無しさん:2009/04/22(水) 00:22:51
>>469
すみません。後になって気付いたので訂正します

× 空の要素が記録されてしまう
○ 空の要素が<>の形で記録されてしまう
471デフォルトの名無しさん:2009/04/25(土) 18:17:06
http://www.itmedia.co.jp/enterprise/articles/0809/10/news038.html

「PHPの「mt_rand()」機能の脆弱性では、
ユーザーが新しく作成したパスワードを
攻撃者が予測できてしまう可能性がある。」

これってどういうことかな?
472デフォルトの名無しさん:2009/04/25(土) 18:50:54
mt_randの中がどうなってるか柱泣けど
通常PCで発生させる乱数ってのは擬似乱数って言って
同じ条件なら同じ乱数が出るようなタイプの乱数だから
パスワード再発行したときと同じ日時で乱数発生させたら
同じパスワード出来ちゃうとかそんな感じじゃないかね
473デフォルトの名無しさん:2009/04/26(日) 20:28:34
>>471-472
ここが分かりやすいかな。
ttp://blog.ohgaki.net/php-python
474466:2009/04/26(日) 20:33:34
>>470
>>469のアドレスをアクセスするとソースが見えないんで想像だけど
(というか見えるようにしてもらっても全部を見る気はない w)、
「値が空の要素は除外したい」だったら foreach()のブロックの最初に
if (strlen($v) == 0) continue;
を追加すればいいと思う。
475デフォルトの名無しさん:2009/04/26(日) 22:26:20
<?php
$link = mysql_connect('localhost', 'root', 'pass');
//データーベース コネクト

$db_selected = mysql_select_db('bbb', $link);
//テーブル選択

$result = mysql_query('SELECT c FROM ddd');
//クエリー発行

print mysql_result($result, 0);
//表示
?>

-----------------------
これだけで、MySQLに接続して
テーブルを選択して、
クエリーを発行して、
結果を表示できるよ!
PHP、マジで超カンタン
476デフォルトの名無しさん:2009/04/26(日) 22:29:07
ちなみにテーブル構造です

ホスト名 localhost
ユーザー名 root
パスワード pass

データーベース名 bbb
テーブル名 ddd

テーブル構造

 | a  | b  | c
--------------------
0| 111|222 | 333
477デフォルトの名無しさん:2009/04/26(日) 22:33:09
この場合、
bbbというデーターベースに接続して、
dddというテーブルを選択して、
cというカラムを選択して、
行番号0の行を選択して、
そこのデーターを取ってきて、
画面に表示した。
478デフォルトの名無しさん:2009/04/26(日) 22:34:51
いやちょっと説明違うな。

bbbというデーターベースに接続して、
dddというテーブルを選択して、
その中のcというカラムを選択して、
データーを全部取ってきた。そして
その中の、行番号0の行を選択して、
そのデーターだけを画面に表示した。
479デフォルトの名無しさん:2009/05/02(土) 22:52:07
<?php
$b="a";
for($i=1;$i<60;$i++):
print $b++;
print "\n";
usleep(1000000/2);
endfor;

exit;
?>

------------------------------------------------
これをCLIモードで実行すると、
ちょっとおもしろいよ。
480デフォルトの名無しさん:2009/05/02(土) 23:03:57
<?php
print "文字を入力してください\n";
$in = fgets(STDIN);
$c = rtrim($in);
print $c . "、、、ですと?!";
?>

------------------------------
これも実行すると
ちょっと面白い例。

CLIから実行。
PHPで対話的アプリが実装できる。
481デフォルトの名無しさん:2009/05/03(日) 04:16:01
またお前か
全然成長してないな
482デフォルトの名無しさん:2009/05/03(日) 04:45:11
俺も25年前くらいにBASICで同じようなことやって一喜一憂してたから気持ちはわかる
483デフォルトの名無しさん:2009/05/03(日) 11:19:40
ここはプログラム板。
キチガイは入れない場所ですぞ
484デフォルトの名無しさん:2009/05/03(日) 16:33:09
<?php
`CLS`;
?>



なんでこれで
画面がクリアされないのか、
理由がわからないづら
485デフォルトの名無しさん:2009/05/03(日) 16:51:34
行番号がないからだろ
486デフォルトの名無しさん:2009/05/03(日) 18:46:26
>>479
笑いどころはここらへん?
>exit;
>?>
487デフォルトの名無しさん:2009/05/04(月) 17:55:58
MSSQLに接続できん・・・・・
もう2日はトライしてるわ・・・
488デフォルトの名無しさん:2009/05/04(月) 18:05:51
つ PDO
489デフォルトの名無しさん:2009/05/04(月) 18:20:54
>>448
mysql使ってたんだけど、コマンドラインからの操作が面倒くさすぎてMSSQLserverにしたら
2005年版は何かphpとの接続にパッチやら入れないといけないらしく、上手くいかない・・・・
あぁ〜PCやりすぎて目が痛いよう
490デフォルトの名無しさん:2009/05/04(月) 21:17:34
そんなあなたのためにphpmyadminというものがあるが使わなかったんか?
491デフォルトの名無しさん:2009/05/04(月) 21:32:28
MySQL Admnistratorでいいと思う
ちゅうかなんでその理由でPostgreSQLなどに行かずに
急にSQLServerに飛ぶのか解らんが
492デフォルトの名無しさん:2009/05/04(月) 21:48:04
>>490
>>491
あ〜そんな物があったのか・・・・丸二日費やしたのが馬鹿みたいだぜ。
なんとなく目に留まったのがMSSQLだったからorz

ちょっと試してみます
493デフォルトの名無しさん:2009/05/04(月) 22:07:18
xamppだったら
最初からついてるよね。
494デフォルトの名無しさん:2009/05/04(月) 22:19:05
最近のテスト環境構築丸々入ってるよ〜系なら大抵ついてくるね>phpmyadmin
というか、ほんとに便利だから入れないと移行とか大変すぎる
495492:2009/05/05(火) 16:23:27
MySQL Admnistratorは英語って以外は中々使いやすいね。
日本語のかねやんMySQLAdmin使いたいんだけど何か接続できないから諦めた。

それにしてもphpは自分の設定であってるかどうか不安だわ。
少しでも調べないで変えると戻すのも苦労する
496デフォルトの名無しさん:2009/05/05(火) 17:51:51
自PCの環境で完成した〜と思って、サーバにあげて実行してみたら
Fatal error: Call to undefined function zip_open()

・・・まあ、PHP暦1週間の初心者なので・・・(´・ω・`)
497デフォルトの名無しさん:2009/05/05(火) 21:15:31
コマンドのインストールに失敗する前にWebmin使ってみよう!

・・・ファイアウォールの設定はしっかりとね。
498デフォルトの名無しさん:2009/05/05(火) 21:42:23
>>495
Tools→Options→GeneralOptions
右上LanguageをJapaneseにしてアプリ再起動

1%だけ日本語になるぜw
499484:2009/05/09(土) 01:25:34
データベースには接続できるのですが、テーブルにアクセスできません・・・・。
毎回接続までしか試しておらず、MYSQLからMSSQLに設定を変えて、またMYSQLに戻した
からかもわからないのですが、いつからアクセス出来なくなったのかわかりません。
どなたかエスパーしてください・・・・・何を聞いていいのかもわかりません。

INSERT INTO 生徒 (id,名前) values (0001,'鈴木');
とコマンドラインからSYSQLに同じ命令を打ったら
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'INSERT INTO c”?a?’ (id,a??a‰?) values (0001,'e?´a?¨') LIMIT 20 OFFSET 0' at line 2

とエラーが出てきました。
これはphpのエラーじゃないのでしょうか?
500デフォルトの名無しさん:2009/05/09(土) 01:59:47
>>499
>You have an error in your SQL syntax ってエラーが出てるから、SQL文に問題あるのでは?
501デフォルトの名無しさん:2009/05/09(土) 02:03:30
>>499
項目名にマルチバイト文字なんて使えるのか?
502デフォルトの名無しさん:2009/05/09(土) 02:19:37
>>499
`項目名`

あと mysql_real_escape_string を忘れずに
503デフォルトの名無しさん:2009/05/09(土) 02:32:09
>>502
それはバッククオートで囲め、て意味?
ただコードを書くだけでは意思が伝わらないことが多いよ
504デフォルトの名無しさん:2009/05/09(土) 02:33:30
テーブル名もマルチバイト文字だな。
505デフォルトの名無しさん:2009/05/09(土) 02:56:10
SQLのオブジェクトにマルチバイト文字を使うのは面倒。
エンコーディングでいかようにでも化けちまうきがすんだけど
''で括ってもどうなるか、EUCになるならいいが、最近はUTF-8もあるから。



506デフォルトの名無しさん:2009/05/09(土) 02:58:37
>>503
テーブル名や項目名をバッククオートで囲む、これ癖つけておいたほうがいいよ
`table`.`index` という感じで

PostgreSQLから移ってきた時に、これで丸2日ほどつぶしてしまったよ俺。。。
507デフォルトの名無しさん:2009/05/09(土) 03:36:11
別にマルチバイトでも問題ないよ
OracleやAccessじゃよくある
508デフォルトの名無しさん:2009/05/09(土) 11:07:26
ただ文字化けしてるだけじゃん。文字コードの設定を統一すればいいよ。

> とコマンドラインからSYSQLに同じ命令を打ったら
コマンドライン版の PHP.EXE のこと?
PHPで直接、SQL の INSERT 文が発行できたっけ???

もしコマンドライン版の mysql.exe なら、mysql.ini で文字コードを設定する。
自分が何をしているのか、相手に伝えられないと答えようがないよ。
509499:2009/05/09(土) 14:24:17
皆さんありがとうございます。
マルチバイトを使わずにアクセスした所、アクセス出来たので設定がおかしいのだと思います。

あああああああああああああああああ何でこんなに設定がめんどくさいんだpg歩ディfgしあhふぃさdhfじゃs」dpfは
環境設定だけでプログラム全く書いてねえぇぇぇぇぇぇl!!!!!!!!!!!!!!!!!!!
510デフォルトの名無しさん:2009/05/09(土) 15:52:55
わからんなら、何かフレームワーク使った方が楽だし憶えやすいぞ。
511デフォルトの名無しさん:2009/05/09(土) 16:33:32
設定が面倒くさいんじゃなくてマニュアル読んで手順通り設定してないだけだろ
文字コードさえ一致してればマルチバイトであろうがなんであろうが動く
むしろマルチバイトで動かないけどアスキーにしたら動いたってのは何も解決して無くて
まだどこかで文字コードの不一致が起きたまま動いていると言うことだ
512デフォルトの名無しさん:2009/05/09(土) 16:44:33
データベース名やテーブル名、フィールド名に2バイト文字を使うのは今では普通なのか?
今まで使ってはいけないと思って使ってなかったけど・・・。
テーブル名やフィールド名を考えるのがメンドイんだよな〜
513デフォルトの名無しさん:2009/05/09(土) 16:58:02
好きか嫌いかだろうな。 別にローマ字でもいいと思ってるし。
要は間違えなければいい。
514デフォルトの名無しさん:2009/05/09(土) 17:18:10
今では普通じゃなくて昔から使えたし別に今更禁止する意味もない
禁止なのは開発の規約上アルファベットで揃えるから禁止とか
日本人しか理解できないから禁止とかそういう理由であって
システム的に動かないから禁止ってわけではない
515デフォルトの名無しさん:2009/05/09(土) 17:19:12
あとはシステム的に開発環境などをスキル低い人が設定できないから
トラブル避けるために禁止ってのもあるけど
516デフォルトの名無しさん:2009/05/09(土) 18:01:45
DBで設定してる文字コードと違うことは良くあるね
だから接続したあとに設定するわけで

MySqlだけど置いときます

<?PHP

//DB接続
$_DB = mysql_connect( "localhost", "root" )or die("Could not connect");

//テーブルを選択
mysql_select_db( "table" );

//DBとの接続間で使う文字コードをセット
mysql_set_charset("utf8");

?>
517デフォルトの名無しさん:2009/05/09(土) 18:07:32
仕事で日本語テーブル名、日本語項目名で作られたデータベース使ったことあるけど、最低、最悪だったよ
SQL文書くのに面倒くさくて、見たくもない、日本語禁止。
518デフォルトの名無しさん:2009/05/09(土) 18:10:37
秀丸で手入力でもしてるのか?
ツール使えよ
仮にカラム名が英文だったとしても打ち間違ってバグの元になるぞ
519デフォルトの名無しさん:2009/05/09(土) 22:24:57
移植性を考えるとマルチバイト文字はオヌヌメできぬ。
520499:2009/05/10(日) 00:55:00
スレチギリギリにも関わらず皆さん本当にありがとうございます。
テーブル名やカラム名をマルチバイトを使わずに、挿入するデータだけを
マルチバイトを使ったら、挿入できたのですがテーブル内容を表示するとき
文字化けが起こりました。
また、mysql_uery,mysqli_set_charset関数はエラーが出て使えませんでした・・・。
Call to undefined function mysql_query() と出ます。

環境は
PHP Version 5.2.8
Apache 2.0.63
NetBeans 6.5
MySQL 5.1 
MySQL Administrator です
521デフォルトの名無しさん:2009/05/10(日) 01:00:51

>むしろマルチバイトで動かないけどアスキーにしたら動いたってのは何も解決して無くて
>まだどこかで文字コードの不一致が起きたまま動いていると言うことだ
522デフォルトの名無しさん:2009/05/10(日) 01:01:28
なんか初心者スレ案内したほうがいいような気がしてきた
523デフォルトの名無しさん:2009/05/10(日) 01:04:16
>>520
ちゃんとphpとmysql(のDB)と文字コード合わせてる?
524デフォルトの名無しさん:2009/05/10(日) 01:05:49
PHPの文字周りは難しいので
ある程度の学習が必要です。
ttp://www.oreilly.co.jp/books/9784873113654/

個人的には、全文字エンコードを統一し、
フレームワークの利用を推奨です。

・全文字エンコードの例
htmlのcharset
phpのファイル
php.ini
DBのcharset
525デフォルトの名無しさん:2009/05/10(日) 01:56:29
こういう場合にSQL周りをクラスでラップしてると
文字コード関係の問題解決は楽なのよねぇ
526デフォルトの名無しさん:2009/05/10(日) 02:26:38
リリース後に運用でgdgdになって火消しに行くこと多いんだけど
PHPの場合DB周りも含めて実装が意味不明な事が多いんだよねぇ
せめてPEARでも使ってよと思うんだけど、何故かそうしてる所が少ない…
独自実装の方がどう考えても面倒でしょうに
527デフォルトの名無しさん:2009/05/10(日) 02:40:24
mysqli_set_charset を使うには php に mysqli をインストールすること。
デフォルトではインストールされない。
mysql_uery なんて関数ははじめから無い。
たぶん mysql_query か mysqli_query の間違いだろ。

とにかく、php.ini、my.ini の設定を最初っからやりなおせ。
そうすれば文字化けも直る。
入門書・解説サイトなどをよく読め。
528デフォルトの名無しさん:2009/05/10(日) 02:42:07
PEAR など既存のライブラリを使いたがらないのは
他人の書いたコードのデバッグをしたくないからだろ。
PEAR に100%バグが無いと保証あるなら別だが。
529デフォルトの名無しさん:2009/05/10(日) 02:46:57
うちはSmartyぐらいしか使ってないなぁ
530デフォルトの名無しさん:2009/05/10(日) 02:47:24
こんなとこだと思うw

・有名なライブラリの存在を知らない。
・自分が作ったほうがバグが少ないという
根拠のない自信。
・作ってみたい。
・コスト意識がない。
531デフォルトの名無しさん:2009/05/10(日) 02:55:26
最近はメンテや機能追加ばっかりだから
追加でライブラリ使うことを向こうから止められる

開発楽になりますよって言っても聞かないしー
532デフォルトの名無しさん:2009/05/10(日) 02:59:47
その辺のSI会社のプログラマが書いたライブラリより
PEARにバグが無い確率の方が低いだろJK
533デフォルトの名無しさん:2009/05/10(日) 03:01:39
PERA_DBやPEAR_MDBに今さら重大なバグあったら世界がひっくり返るわw
少なくとも、文字コードが良く解りませんって言ってる奴が
直接SQL発行するよりも1億倍マシ。
534デフォルトの名無しさん:2009/05/10(日) 03:02:38
>>532
PEARにバグが有る確立の方が低い
の間違いか?
535デフォルトの名無しさん:2009/05/10(日) 03:05:49
日本語が不自由だからPEAR()笑なんてカスみたいな勝手ライブラリ使うんだろ
どう考えても上級PGがノウハウもって書いた独自ライブラリの方が優れてる
536デフォルトの名無しさん:2009/05/10(日) 03:06:37
>>500ですけど、朝まで続くの?
537デフォルトの名無しさん:2009/05/10(日) 03:14:08
>>533
ペラDBってなんですか?www
538デフォルトの名無しさん:2009/05/10(日) 05:17:55
<?php
$a = mysql_connect(localhost,root,pass);
$d= mysql_select_db(aaa,$a);

for ($index = 1; $index <= 100; $index++) :

$e=rand();
$f=rand();
$sql = "insert into bbb (id,name,value) VALUES ('','$e','$f') ";
$c = mysql_query($sql,$a);

endfor;

?>
----------------------------------
↑このスクリプトを実行すると、
データーベースに100のレコードを追加する。
idはオートインクリメントで、バリューはランダムで生成。

できあがてから、phpmyadminで見ると、すげーおもしろいよ。
539デフォルトの名無しさん:2009/05/10(日) 05:20:16
データーベース構成

サーバー localhost
ユーザー名 root
パスワード pass

データーベース名 aaa
テーブル名 bbb

テーブル構成

id | name | value

idはプライマリーキーで、
オートインクリメント。
540デフォルトの名無しさん:2009/05/10(日) 05:38:32
面白くはないと思うけど
541デフォルトの名無しさん:2009/05/10(日) 05:39:06
×自分が作ったほうがバグが少ないという
○自分が作ったライブラリなら、バグ出ても自分で直せる
542デフォルトの名無しさん:2009/05/10(日) 05:40:54
PEAR_DBくらい何処でも使われてるライブラリなんて
そもそも使って困るようなバグなんて絶対にないし
仮に万が一出ても速攻で修正されるわ
543デフォルトの名無しさん:2009/05/10(日) 05:44:38
>>541
次の行もみてねw

あと>>530は、オープンソース限定の発言でした。>失礼
544デフォルトの名無しさん:2009/05/10(日) 05:57:14
<?php
$a = mysql_connect(localhost,root,pass);
mysql_select_db(aaa,$a);
$d = rand(1,300);
$e = mysql_real_escape_string($d);

$sql = "select name from bbb where id='$e' ";

$b = mysql_query($sql);
$c = mysql_fetch_assoc($b);
print_r($c);
?>

------------------------------------------
↑これがデーターを
取り出すときのコードね。

データーベース構造は>>539と同じ。
545デフォルトの名無しさん:2009/05/10(日) 06:18:35
<?php
$a = mysql_connect(localhost,root,pass);
mysql_select_db(aaa,$a);
$d = rand(1,300);
$e = mysql_real_escape_string($d);
print "id=" . $e;
print "<br>";

$sql = "update bbb set name='12345' ,value='67890' where id='$e' ";

$b = mysql_query($sql);
var_dump($b);
?>

------------------------------------------------------------------
↑これが、データーをアップデートするときのコード。
データーベース構造はさっきとおなじ。
546デフォルトの名無しさん:2009/05/10(日) 06:20:09
これで、SELECT,INSERT,UPDATE、の
3つの構文が使えるようになりました。

あとはもうオレ様無敵状態。
547デフォルトの名無しさん:2009/05/10(日) 06:22:08
>>546
つせめてPEARでも使ってよと思うんだけど
548デフォルトの名無しさん:2009/05/10(日) 06:23:16
>>546
DELETE

あと何が凄いってコネクションクローズしてないことだな
549デフォルトの名無しさん:2009/05/10(日) 06:38:13
PDOをつかえば、sqlサーバ入れ替えられるよって云ってみたが、
お勧めのSQL鯖との親和性を証明できぬ。
550デフォルトの名無しさん:2009/05/10(日) 06:55:33
SQLサーバってまさかDBMSのこと?
551デフォルトの名無しさん:2009/05/10(日) 07:37:23
deleteとかって、
普通、使わないと思うんだよね。
552デフォルトの名無しさん:2009/05/10(日) 08:17:10
なんで?
553デフォルトの名無しさん:2009/05/10(日) 09:13:27
確かにupdateで削除フラグ立てるケースが多いな。メンテ時とかに一括削除したり。
554デフォルトの名無しさん:2009/05/10(日) 12:29:40
スレ間違いならスマン
PHP4を使ってるんだが、

$output = '<emoji=1>';
print($output);

のようにすると、<emoji=1>が出力されない。空。

<br />のようなHTMLは出力されるけど、独自タグが出力されない。
これって、サーバー側とかPHPで何か設定とかあるのか?

555デフォルトの名無しさん:2009/05/10(日) 14:44:16
>>553
DBによってはupdateって、コピー先のデータを書き換え、元のところに
システム側でのDeleteのフラグを立てるんだよね
この辺は仕様把握しておかないとボトルネックになる

ウチだと元に戻せること前提だから、消すこと事態がないんだけど
556デフォルトの名無しさん:2009/05/10(日) 15:22:12
ホスト変数が使えない旧mysql APIとか
へんてこ仕様山盛りのunified ODBC APIは
もう捨てちゃえばいいのに。
557デフォルトの名無しさん:2009/05/10(日) 15:33:05
>>474
サンクス。その方法でやったらうまくいった。
558デフォルトの名無しさん:2009/05/10(日) 23:51:00
今日はOOPの勉強するかな。
559デフォルトの名無しさん:2009/05/11(月) 00:20:27
もしかして、
クラスの、メンバ変数定義のところで、
$a=$a*2;

とかって、計算をしたら、ダメなのかな?
560デフォルトの名無しさん:2009/05/11(月) 00:24:14
やったこたないが、検証してみれば分かるだろ?
561デフォルトの名無しさん:2009/05/11(月) 20:26:30
マニュアル読めば分かるだろ?
562デフォルトの名無しさん:2009/05/11(月) 22:52:36
ここはプログラム板ですよ。
「マニュアル読め」しかいえないキチガイは
かえってください!
563デフォルトの名無しさん:2009/05/11(月) 23:33:51
じゃあ google-toi, s'il te plait
564デフォルトの名無しさん:2009/05/12(火) 01:13:37
>>559
メンバー変数定義?

class test
{
private $a = $a * 2;
private $b;

function __construt()
{
~~~~
}

}


ってことか?
565デフォルトの名無しさん:2009/05/12(火) 01:15:52
=w=)コンストラクタでやりゃいいだろ・・・
566デフォルトの名無しさん:2009/05/12(火) 01:46:58
>>565
おお。
そのためにコンストラクタってあるんだ?
567デフォルトの名無しさん:2009/05/12(火) 01:51:38
なんなんだが・・・
568デフォルトの名無しさん:2009/05/12(火) 02:50:29
わしゃーてっきり

self:$:hogera

かと
569デフォルトの名無しさん:2009/05/12(火) 19:00:13
つーか前後関係の説明がさっぱりないから、意味不明
570デフォルトの名無しさん:2009/05/12(火) 20:13:44
>>562
プログラム板だとなぜにマニュアル読まないんだ?
あと,マニュアルに書いてあることをなぜわざわざ質問するんだ?
571デフォルトの名無しさん:2009/05/12(火) 21:36:41
「マニュアル」
しか言えない人はこなくていいです。
帰ってください。
572デフォルトの名無しさん:2009/05/12(火) 21:50:12
まあその程度でも給料もらえるんだよね、PHPプログラマって。
ドキュメント読んで探すより回りのデキる奴に聞いたほうが早い
(邪魔だが朝出した簡単な課題に1日かけられるよりマシかも知れない)
573デフォルトの名無しさん:2009/05/12(火) 21:53:46
他人を逆引きリファレンスにするのはだーれだ!
おれら、生き字引じゃ、なーいんだ!
574520:2009/05/13(水) 00:42:29
未だに設定が上手くいきません・・・・
skip-character-set-client-handshake
を書いてみたりしたのですが、全く変化ありません。
色々なサイトの情報を全て試したので元に戻せるのかも微妙です^q^

どこかにまとめて記述してあるサイトを教えてください。
575デフォルトの名無しさん:2009/05/13(水) 01:10:26
何を? っていうか現状どうなってるか書かねーからこっちも何も言いようが無いんだけど
576デフォルトの名無しさん:2009/05/13(水) 07:22:14
>>574
>色々なサイトの情報を全て試したので元に戻せるのかも微妙です
戻せないなら全部消してインストールしなおしがおすすめです。
これを機会にバージョン管理ツールの使い方をちょっとかじって
楽に戻せるようにしておきましょう。
577デフォルトの名無しさん:2009/05/13(水) 20:04:31
>>574
最初の質問がどこにあるかわからないから、
もう一回最初から質問書いて。
578デフォルトの名無しさん:2009/05/13(水) 21:33:33
svn使ってるけど、本番サーバのフォルダにリポジトリと同期させるのが
コマンドラインでやるしかなくなったことでひるんでる。
作業用クライアントマシンにPHP環境仕込んだけど、やっぱサーバの
環境とはかなり違う・・・憂鬱。
579デフォルトの名無しさん:2009/05/13(水) 21:44:08
svnで本番環境に展開するのと
クライアントにPHP入れたことに何か関連性があるのか?
580デフォルトの名無しさん:2009/05/13(水) 22:33:48
>>579
ない。
581デフォルトの名無しさん:2009/05/13(水) 22:34:42
$a_a++;
ってやったら、プラスされないんだけど、
なんで?
582520:2009/05/13(水) 22:45:39
php.ini
default_charset = "UTF8"
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UFT8
mbstring.http_output = UFT8

my.ini
default-character-set=utf8
mysql.default_charset = UTF-8

上記を設定したのですが、MySQLにマルチバイト文字を追加しAdministoratorなどで見てみると文字化けが起こります。
やりたい事は、マルチバイトでレコードの追加と表示とブラウザへの表示です。
フレームワークのコード設定がおかしいのでしょうか?

環境↓
PHP Version 5.2.8
Apache 2.0.63
NetBeans 6.5
MySQL 5.1 
MySQL Administrator
583デフォルトの名無しさん:2009/05/13(水) 22:46:38
UFT8
584デフォルトの名無しさん:2009/05/13(水) 22:53:04
> MySQLにマルチバイト文字を追加し

発行したSQLくらい書け
585デフォルトの名無しさん:2009/05/13(水) 23:16:26
>>583
早速直しました。ありがとうございます。

>>584
INSERT INTO `test` (id,name) values (0012,'ああ')
でphpから挿入しようと試みました。
マルチバイト以外は正常に挿入できたので文法に間違いはないと思います。

utf8で全て揃えたら今度は挿入時にエラーが発生するようになってしまいました・・・・

586デフォルトの名無しさん:2009/05/13(水) 23:31:22
>>585
・・・・・・・・・・。で、エラー文を書く気は無いのかい。
587デフォルトの名無しさん:2009/05/13(水) 23:34:07
PHP暦2週間でくだらない質問すいません。

File_Archive::extract
        ↑このコロン二つってどういう意味なんでしょう?
文法とか調べたけど全然載ってないので・・・・
588デフォルトの名無しさん:2009/05/13(水) 23:39:19
>>586
すましえん

try{
$dbh=new pdo($dns,$user,$password);

    $st=$dbins->query("INSERT INTO `test` (id,name) values (0012,'ああ');");
if($st){
print "よい";
}
else{
print "だめ";
var_dump($st);
}
}catch(pdoexception $e){
print"エラー :".$e->getMessage();
die();
}

で実行すると

だめbool(false)

と出てきます。
少し前までは文字化けしながらも挿入できたのですが・・・
589デフォルトの名無しさん:2009/05/13(水) 23:41:55
>>585
INSERT INTO `test` (`id`,`name`) values ('0012','ああ');

こうじゃダメかい?
590デフォルトの名無しさん:2009/05/13(水) 23:42:19
>>587
親クラスのメソッドとか、メンバに
アクセスするってこと。

たとえば

親クラスA{

unko-
}

だったら、子クラスがBだったら、
親クラスAのメソッドunko-にアクセスしたかったら、
A::unko-

って書く。
591デフォルトの名無しさん:2009/05/14(木) 00:00:59
>>589
出来ませんでした・・・。
INSERT INTO `test` (id,name) values (0012,'aa');
にするとすんなり挿入できるのですが・・・・

utf8 UTF8 UTF-8 など表記の違いがあるのでしょうか
592デフォルトの名無しさん:2009/05/14(木) 00:05:55
ソースがutf8nじゃ無いとか面白いことしてないよな。
593デフォルトの名無しさん:2009/05/14(木) 00:13:44
>>591
うーん、とりあえず自分の晒してみる

 $query = "
  INSERT INTO inline
   ( `day_index`, `write_day`, `edit_day`, `text`, `flag` )
    VALUES
   ( ". $ID .", ". time() .", ". time() .", '". mysql_real_escape_string( $post_array["text"] ) ."', '1' )
  ";
594デフォルトの名無しさん:2009/05/14(木) 00:25:09
>>592
sjisだったりしてなぁ。
595デフォルトの名無しさん:2009/05/14(木) 00:40:15
596デフォルトの名無しさん:2009/05/14(木) 00:52:53
>>591
phpinfoで設定確認をされました?
597デフォルトの名無しさん:2009/05/14(木) 00:55:16
PHPてBOMに対応してないんだ、
勉強になった>結構はまりますよね。
598デフォルトの名無しさん:2009/05/14(木) 01:12:33
>>591
あと、mysql_set_charset関数は、ためしました?
mysqli_set_charseじゃないよ。
ttp://www.phppro.jp/phptips/archives/vol42/1
599デフォルトの名無しさん:2009/05/14(木) 01:17:08
すみません、>>598は間違いかも。

ttp://arumtaunsaram.tumblr.com/post/102893729/php-mysql
600デフォルトの名無しさん:2009/05/14(木) 01:29:38
ごめんなさい、ごめんなさい。
>>599も見なかったことに。。。
ROMにもどります・・・

ttp://blog.ohgaki.net/set_namesa_mcb_asc
601デフォルトの名無しさん:2009/05/14(木) 01:53:26
>>600の続き。(連投すみません)
また違う指定されてる方もおられました。
MySQL、PDOとSET NAMESの組み合わせで、
鉄板の指定てあるのかな?

ttp://d.hatena.ne.jp/jrofbyr/20081228/p1
602デフォルトの名無しさん:2009/05/14(木) 09:53:34
for文とwhile文ってみんな使い分けてるの?
for文の方がコード少なくていいから、
while文使った事ほぼないんだけど。
603デフォルトの名無しさん:2009/05/14(木) 11:21:04
というか用途が全然違うでしょ
604デフォルトの名無しさん:2009/05/14(木) 12:14:15
while文で例えばインクリメントで加算していく処理とか。
605デフォルトの名無しさん:2009/05/14(木) 13:51:30
while は
テキストファイルを読み込む時 とか
DBからデータを取り込むとき
hashの処理とか
が多い(while not eof)

for は配列処理とか(個数が決まっているとか)が多いかも
606デフォルトの名無しさん:2009/05/14(木) 16:41:49
foreachもたまには思い出してあげてください・・・
607デフォルトの名無しさん:2009/05/14(木) 17:58:22
すまん そだね
608デフォルトの名無しさん:2009/05/14(木) 20:03:55
>>602
ファイルからデーター抜くときはwhile
609520:2009/05/14(木) 20:29:30
レス下さった方ありがとうございます。
phpinfoで確認した所、ちゃんとutf8に設定されていました。

mysql_set_charset()などの関数が使えればいいのですが、別途にインストールが
必要なのでしょうか?

Fatal error: Call to undefined function mysql_set_charset()
とエラーが出てしまいます。
610デフォルトの名無しさん:2009/05/14(木) 20:40:03
>>609
ちなみにPHPのバージョンは?
古いと関数自体ないよ

ttp://www.phppro.jp/phptips/archives/vol42/1
>mysql_set_charset関数はPHP-5.2.3から追加された
>MySQLのクライアント側の文字コードまで設定することができる関数です。
611デフォルトの名無しさん:2009/05/14(木) 23:50:19
sql でcharset指定できなかったっけ?
#postgresと間違えているか?
612520:2009/05/15(金) 00:20:02
諦めて一度全てアンインストールしてみます。
XAMMPでまとめて入れてみます。
613デフォルトの名無しさん:2009/05/15(金) 01:00:43
XAMMPインストールしたらデフォルトでマルチバイトが扱えました!!!!!1111
どうもお騒がせしました。
これからもよろしくお願いします
614デフォルトの名無しさん:2009/05/15(金) 01:06:07
いままでxampp使ってなかったの?
615520:2009/05/15(金) 01:15:09
すいません、追記ですが
$dbh->query("SET NAMES 'utf8' ;")
を書いたらマルチバイトが扱えるようになりました。
書かなかったら使えませんでした。

>>614
phpの入門書的な本に、それぞれ単体でインストールする方法が載っていたのでXAMMPは存在自体
知りませんでした。

設定をいじくると怖いので、しばらくこれでいきます。
どうせローカルでの用途しかないので。
皆さんありがとうございました。
616デフォルトの名無しさん:2009/05/15(金) 07:32:52
一応 my.cnf の default-character-set はちゃんと調べたほうが
いいと思う
617デフォルトの名無しさん:2009/05/15(金) 15:08:45
PHP 5.2.3 以後に追加された
mysql_set_charset('UTF8');
の方が望ましい。

・・・らしいよ。
618デフォルトの名無しさん:2009/05/15(金) 15:54:31
SET NAMES だと正しくエスケープできない場合があるから
セキュリティ上よくない。
619デフォルトの名無しさん:2009/05/15(金) 17:40:06
>>618
utf8なら問題なくね?
620デフォルトの名無しさん:2009/05/15(金) 20:33:12
phpでシリアル通信のプログラムを作成しようとしています

お勧めのライブラリは何でしょうか
621デフォルトの名無しさん:2009/05/15(金) 20:55:52
シリアル通信つーてもいろいろあるわけだがUARTで良いのかえ?
622デフォルトの名無しさん:2009/05/15(金) 21:20:15
USBです
623デフォルトの名無しさん:2009/05/15(金) 22:58:43
USB経由でなんかデバイス接続して、
それのコントロールとかをPHPで書けるってことなのかえ?

すごいなあ
624デフォルトの名無しさん:2009/05/15(金) 23:03:48
>>620
とりあえずphpで作ろうとするなw
デバイスドライバがある前提にしたって、それに特化したライブラリがなきゃ話にならん
625デフォルトの名無しさん:2009/05/15(金) 23:10:22
>>624
いままでCとか組み込み系とかで
10年くらいやってきた人なんでしょう?たぶん。
626デフォルトの名無しさん:2009/05/15(金) 23:47:59
ならなぜJavaに行かんのだw
627デフォルトの名無しさん:2009/05/16(土) 06:32:05
>>617
phpのバージョンが不明だから 書いてみた
628デフォルトの名無しさん:2009/05/16(土) 13:33:53
foreachの必要性が良くわからん
629デフォルトの名無しさん:2009/05/16(土) 15:06:55
一度に挿入するデータが多すぎて(カラムが多すぎて)、phpの中に書くと大変かつ汚くなってしまうので
外部にクエリを書いて読み込みたいのですが、可能でしょうか?
630デフォルトの名無しさん:2009/05/16(土) 15:16:06
>>629
ライブラリが導入可能であれば、
O/R Mappingとかいいですね。
SQL文いらなくなります。
631デフォルトの名無しさん:2009/05/16(土) 22:11:07
>>629
クエリを生成するルーチンを書けばいいんじゃないかな
632デフォルトの名無しさん:2009/05/16(土) 22:50:12
>>629
俺は連想配列からクエリ生成するようにしてるよ
633デフォルトの名無しさん:2009/05/16(土) 22:59:08
>>628
配列からデーターを一個づつ抜いてきて、
なんかの処理をするときに便利だよ

配列を使わないのなら、得に使わないかもしれない
634デフォルトの名無しさん:2009/05/17(日) 00:34:29
最近のパソコンには”シリアルポート”(RS-232CとかUARTとか)が標準装備されていない。
むしろUSBコネクタに接続するシリアルポートの方が一般的だったりする。
若い人はそれしか知らんやろね。
635デフォルトの名無しさん:2009/05/17(日) 00:40:32
セントロニクス36ピンだろJK
636デフォルトの名無しさん:2009/05/17(日) 00:46:19
それはパラレル・・・・
637デフォルトの名無しさん:2009/05/17(日) 01:36:16
PCのパラレルポートはちいせえんだよ
あのセントロニクスの巨大コネクタがいいんじゃねぇか
638デフォルトの名無しさん:2009/05/17(日) 01:47:39
>>634
今、RS-232C⇔UBSの製品おおいよ
この間仕事で使ったよ
639デフォルトの名無しさん:2009/05/17(日) 01:51:11
デスクトップは今でも殆どRS-232Cはあるよ
ノートはなくなったけど
640デフォルトの名無しさん:2009/05/17(日) 02:28:43
>>629
プロシージャ使えばいいんじゃない。
641デフォルトの名無しさん:2009/05/17(日) 06:43:18
>>630
そこから吐かれるSQLの効率がよく問題になると思うのだが
#チューニングするときは、ちゃんとわかってないとできないぞ

>>633
それをいうならhashだろう?
642デフォルトの名無しさん:2009/05/17(日) 16:11:20
「hash」っていうのは、添え字がハッシュ値な配列じゃん。配列ジャン!
それに、添え字が連続した数値の普通の配列にもforeachは便利に使えるぞ。
643629:2009/05/17(日) 18:16:58
レスありがとうございます。
カラムが20以上あって何も考えずに書くと骨が折れます・・・。

ルーチンとは、forなどで回すということですよね?
その場合、トランザクションはどのようにすればよいのでしょうか?
644デフォルトの名無しさん:2009/05/17(日) 18:52:07
>>642
うーん 配列と実装は違うと思うよ
key<->val のmapはhash使ってると思うしw
#ちごうたかな?
645デフォルトの名無しさん:2009/05/17(日) 18:52:41
どのようにも何も普通にやればいいんじゃないかな
646デフォルトの名無しさん:2009/05/17(日) 19:01:38
test
647デフォルトの名無しさん:2009/05/17(日) 19:50:48
>>644
ま、この辺読んでから語ってくださいな
ttp://www.php.net/manual/en/language.types.array.php
648643:2009/05/17(日) 21:04:48
すいません、トランザクションは自己解決しました。
649デフォルトの名無しさん:2009/05/18(月) 22:49:17
登録フォームから新しく登録された人の情報を、その人のidの名前で新しくhtmlファイルを作って保存したいのですが、

$arr['id'] を新しく生成するページの名前
$arr に登録された情報が入っていて
$newpage に新しく生成するページのhtmlが<?= ?>込みで書かれているのですが

なにか上手い方法はありませんか?
650デフォルトの名無しさん:2009/05/18(月) 22:53:53
意味がわかりません
ソースを書いてください
651デフォルトの名無しさん:2009/05/18(月) 23:01:54

$arr=$array(id=>'0001',name=>'sato');
$newpage="
<html><body>
id=<?= $arr['id'] ?><br>
name=<?= $arr['name'] ?>
652デフォルトの名無しさん:2009/05/18(月) 23:05:55
その人のidの名前って、
0001.html ?
それとも、
naoko.html?
653651:2009/05/18(月) 23:06:23
途中で送信してしまいました。

$arr=$array(id=>'0001',name=>'sato');

$newpage="
        <html><body>
           id=<?= $arr['id'] ?><br>
           name=<?= $arr['name'] ?> </body></html>"

この2つを合わせて
$arr['id'].html というファイルに
<html><body>
id=0001<br>
name=sato</body></html>

と書き込みたいです。
654デフォルトの名無しさん:2009/05/18(月) 23:15:03
そうですか。で?
655デフォルトの名無しさん:2009/05/18(月) 23:15:46
どこで行き詰ってるの?
656デフォルトの名無しさん:2009/05/18(月) 23:17:06
ようやくわかった。

0001ってIDの人がきたときに、
0001.htmlっていうHTMLファイルを作って、
そこにデーターを書き込みたい、ってことだな?
657デフォルトの名無しさん:2009/05/18(月) 23:18:13
$arrayって何よ
658デフォルトの名無しさん:2009/05/19(火) 01:07:20
はじめてプログラムに挑戦している者です。
独習PHPという本で、値がダブルクォーテーションで囲まれているか
シングルクォーテーションで囲まれているかで、結果が違うという内容なのですが
サンプル通りに入力して、ブラウザで表示すると

サンプル

<?php
$title='サーバサイド技術の学び舎 - WINGS';
$data1="「$title」はサーバサイド技術の最新情報をお届けします。<br />";
$data2='「$title」はサーバサイド技術の最新情報をお届けします。<br />';
print($data1);
print($data2);
?>

↓次のようなエラーが出てしまいます。
Parse error: parse error, expecting `']'' in C:\Apache Software
Foundation\Apache2.2\htdocs\samples\chap2\variable2.php on line 3

どうすれば正しく表示されるようになるでしょうか(´Д`)??
教えてちょんまげm(_ _)m
659デフォルトの名無しさん:2009/05/19(火) 01:53:40
<?php
$title='サーバサイド技術の学び舎 - WINGS';






$data1="「$title 」はサーバサイド技術の最新情報をお届けします。<br />";






$data2='「$title」はサーバサイド技術の最新情報をお届けします。<br />';
print($data1);
print($data2);
?>

---------------------------------
これで、できる。
660デフォルトの名無しさん:2009/05/19(火) 01:54:22
$title 」は


ここに、半角スペースを入れた。
eと、」のあいだ。
661658:2009/05/19(火) 02:00:07
できました!ありがとうございますm(_ _)m
助かりました(。・_・。)ノ
662デフォルトの名無しさん:2009/05/19(火) 02:08:51
どうやら文字コードで化けてたようだ
Shift-JIS以外だと何もせず動いた
663デフォルトの名無しさん:2009/05/19(火) 13:44:44
PHPを始めようと思い、環境を作りました
文字コードの設定に関して教えて下さい

サイトなどを見るとUTF-8かEUC-JPで構築されている例が多いのですが
どちらの文字コードの方が主流、またはおすすめなんでしょうか?
SJISで構築してみたのですが、文字の正規表現が上手くいかず
構築しなおそうかと思っています

宜しくお願い致します
664デフォルトの名無しさん:2009/05/19(火) 14:13:33
SJIS でうまくいかないと言うヤツは
UTF-8 にしても EUC にしてもうまくいかない。
まずは、なぜ SJIS でうまくいかなかったのか
それを解決してみろや。

SJIS か EUC か UTF-8 かは、サーバOSや
クライアントOS(Windowsとは限らないぞ、ケータイだってあるし)
にあわせて最適なヤツをその都度選定すればいい。
665デフォルトの名無しさん:2009/05/19(火) 14:34:20
オレはPC向けはUTF8、ケータイ向けはS-JISだな。
DB使わない場合はPC向けでもS-JISで作る事はあるけど。
666デフォルトの名無しさん:2009/05/19(火) 14:40:48
ちょっと迷ったので質問させてください。

@POSTがない場合に代用の値を入れる。
if($data != $_POST['data']) $data = 0;

Aデータを配列に入れ、キーを付けて再格納する。
$file = $file('./data.txt');
foreach($file as $xxx){
 $p = split('<>',$xxx);
 $data[$p[0]] = $xxx;
}

この二つより軽い書き方とかあるんでしょうか?
667デフォルトの名無しさん:2009/05/19(火) 15:15:03
間違えました、@は正しくはこうです。
if(!$data = $_POST['data']) $data = 0;
668デフォルトの名無しさん:2009/05/19(火) 17:53:07
$data = ( array_key_exists( "data", $_POST ) ? $_POST['$_POST'] : 0 );
669デフォルトの名無しさん:2009/05/19(火) 17:54:49
みすった・・・ orz

$data = ( array_key_exists( "data", $_POST ) ? $_POST['data'] : NULL );

array_key_exists だとエラーログも荒れないというのも重要です
670デフォルトの名無しさん:2009/05/19(火) 19:23:44
>>669
おお……ありがとうございます!
671デフォルトの名無しさん:2009/05/19(火) 19:54:21
とりあえずforで10000回繰り返してみました。

if(!$data = $_POST['data']) $data = 0;
結果0.0024509429931641/sec

$data = (array_key_exists("data", $_GET) ? $_GET['data'] : NULL);
結果0.0069079399108887/sec

if(isset($_GET['data'])){
$data = $_GET['data'];
}else{
$data = NULL;
}
結果0.0036120414733887/sec

orz
672デフォルトの名無しさん:2009/05/19(火) 19:56:32
間違えました、一番目はこうです。
if(!$data = $_GET['data']) $data = 0
結果0.0024509429931641/sec
673デフォルトの名無しさん:2009/05/20(水) 00:03:47
何で1000回も回す必要があるん?
数msの差なんてDBで・・・
674デフォルトの名無しさん:2009/05/20(水) 00:08:30
入門書って必ずこう書くべきだと思うのね。

(1)プリント分。hello
(2)変数、定数
(3)配列、連想配列(ハッシュ)
(4)if、switch(条件分岐)
(5)while,for,forech(ループ)
(6)ユーザー定義関数
(7)OOP
675デフォルトの名無しさん:2009/05/20(水) 00:10:23
自分だと(3)と(4)は逆かな
676デフォルトの名無しさん:2009/05/20(水) 00:11:36
そんでページの色は









にするべきだと思うのね。虹の色にあわせて。
677デフォルトの名無しさん:2009/05/20(水) 00:12:51
>>675
なんでだよ。ヘンタイ。
678デフォルトの名無しさん:2009/05/20(水) 00:16:07
>>677
プログラムを書かせるため。

表示、変数、分岐まで覚えさせて、それらでプログラムを作らせる
プログラムは覚えるだけじゃなく、自分で考えて書くことが大事だと思ってる
679デフォルトの名無しさん:2009/05/20(水) 00:21:28
(1)プリント分。hello
(2)変数、定数
(3)配列、連想配列(ハッシュ)

の間は、プリント文と変数と定数だけでいいんだよ!
680デフォルトの名無しさん:2009/05/20(水) 00:22:49
(A)まず直接print文でhelloを出させる
print "hello";

(B)
次に変数に入れて出させる
$a="hello";
print $a;

(C)
次に定数を教える

(D)
そん次に
配列を教える。
使い方はprint文だけ。
681デフォルトの名無しさん:2009/05/20(水) 01:16:44
俺は0章で他の言語の思想を尊重してバカにしない事をまず教える
682デフォルトの名無しさん:2009/05/20(水) 13:09:39
requireとincludeって使い方に何か違いがあるんですか?
includeは古い書き方だって聞いたのですが、そういう認識でいいんでしょうか?
683デフォルトの名無しさん:2009/05/20(水) 13:27:06
>>682
include → Warning 続けて動作する。
require → Fatal Error 実行停止

基本は
684デフォルトの名無しさん:2009/05/20(水) 13:27:55
あーすまん、どっちを推奨するか書きたかったが、用件によって違うんでなしで。
685デフォルトの名無しさん:2009/05/20(水) 13:43:35
>>683
requireだと読み込むファイルがなかったらそこで終わるということですか?
includeを使ったことがないので、厳密な違いがあるのかなと

requireを使ってれば間違いないという考え方は危険なんでしょうか?
686デフォルトの名無しさん:2009/05/20(水) 14:11:56
>>685
大体はrequireでオッケー
自分でエラー処理とかしたい場合はincludeを使うという感じかな?
687デフォルトの名無しさん:2009/05/20(水) 15:04:02
>>686
なるほど、そういう使い方ですか
まだPHPを始めて日が浅いので、色々やってみます

ありがとうございました
688デフォルトの名無しさん:2009/05/20(水) 19:22:33
ちょっと質問させてくれ。
ウニコードの整数配列から文字列を作りたいんだが、$array = array(0xE8, 0xC3, ... ); pack('C*', $array); だとうまくいかない。
とりあえず、文字境界で区切って、整数列の長さごとにswitchして
... case 2: pack('C*', $array[0], $array[1]); break; ... みたいな事やってるんだが、他にうまい方法しらない?
689デフォルトの名無しさん:2009/05/20(水) 19:37:40
似たようなことしてるんで、参考になれば。
http://www.ibm.com/developerworks/jp/opensource/library/os-php-unicode/
690688:2009/05/20(水) 22:56:32
>>689
情報どもです。遅くなってすまない。一応その辺りは一通り目を通してた。
html_entity_decodeで一括変換するのも試してみたが、元データがUTF8だから、実体参照にするための変換入れたりするよりは、>688の書き方を選んだ次第。
でも、switchの辺りとか、コードの見た目がアレな感じかなと。
PHP書くのが初めてなんで、他の関数とか、C#のparamsっぽいのとか、定型的な書き方の見落としがあるのかと思ってここに来た。

しかし、型制約のない言語はエラーチェックとかデバッグが大変やね・・・w。
691デフォルトの名無しさん:2009/05/21(木) 01:08:26
>>690
すまそ、何がしたいのか汲み取れなかった。

pack関数が配列をサポートしてないから、エラーなるね。
おそらくswitch〜caseの書き方しかないと思う。

数字だろうと文字だろうと基本は文字の書き出しです、ベースはWebですし。
バイナリ数使うとややこしくなるんで、文字列で書き出すしか。(フォーマットはしっかりして)

計算したあとSQL打つときは、ちゃんと枠にはめないと後々大変です ^^;
692デフォルトの名無しさん:2009/05/21(木) 03:52:39
>>691
いや、若干後出しっぽくなったかも。すまぬ。
PHPコードとしてもこれはアリみたいだからこのまま使うことにした。
サンクス
693デフォルトの名無しさん:2009/05/21(木) 16:58:41
$a = array(0xe3, 0x81, 0x82, 0xe3, 0x81, 0xbb);
$s = call_user_func_array('pack', array_merge(array('C*'), $a));
echo $s;
694デフォルトの名無しさん:2009/05/21(木) 22:45:56
このスレのルール

情報はあとだしで、
なるべく小出しでちょっとづつ出しましょう
695デフォルトの名無しさん:2009/05/21(木) 23:03:04
>>694
まてwww

↓この辺は、ぜひテンプレに入れてくれ
教えてクン養成マニュアル
http://www.redout.net/data/osietekun.html
696デフォルトの名無しさん:2009/05/22(金) 00:28:52
やっぱ逆引き辞書無いと不便だな、と昨日痛感したよ・・・
697デフォルトの名無しさん:2009/05/23(土) 00:46:00
>>696
頼むから、PHPマニュアルなんかと併用してくれよ

あと、そう言う人は人のソースをたぶんあんまり読んだりしないんじゃ
ないかという偏見を持ってみたり
他の言語でいうクックブックやレシピ集くらいまで行けば別だけど
698デフォルトの名無しさん:2009/05/23(土) 09:04:13
<?php
$a=rand(1,2);
if($a==1){
?>

aaa

<?php
}
else{
?>

bbb

<?php
}
?>


-------------------------------
こういう書き方って普通なの?
699デフォルトの名無しさん:2009/05/23(土) 09:37:12
普通っていうか、
aaaのところをprint "aaa";にするかどうかは人それぞれだろ。
700デフォルトの名無しさん:2009/05/23(土) 09:41:17
推奨はどっちなの?
701デフォルトの名無しさん:2009/05/23(土) 10:46:20
それはaaaやbbbの分量、それとaaaやbbbにPHP側から
埋め込みたいデータがどのぐらいあるかによる。
702デフォルトの名無しさん:2009/05/23(土) 13:33:38
>>700
読みやすい方
703デフォルトの名無しさん:2009/05/23(土) 13:51:47
witch 〜 case でやったほうが美しい・・・
704デフォルトの名無しさん:2009/05/23(土) 14:00:33
ていうか、それ動くのか?
705デフォルトの名無しさん:2009/05/23(土) 16:58:13
echoかprintで出力しろよ
もしくは外部ファイル読み出すとか
706デフォルトの名無しさん:2009/05/23(土) 17:00:37
switch 〜 caseじゃなくてか
707デフォルトの名無しさん:2009/05/23(土) 23:27:44
最近の流行のフレームワークを教えてくれ
708デフォルトの名無しさん:2009/05/23(土) 23:42:15
cakeでいいんじゃない
709デフォルトの名無しさん:2009/05/23(土) 23:46:40
>>708
レスThks

だよね。
ちょっと使い倒してみます。
710デフォルトの名無しさん:2009/05/24(日) 05:28:50
http://www.e-and-a.ws/116.asp

ここのページに書いてある、

<?php

header("Content-Type: image/gif");
$image = imagecreate(120,120);

$black = imagecolorallocate($image,0,0,128);
$yellow = imagecolorallocate($image,255,255,0);

imageline($image,10, 60, 110, 60, $yellow);
imageimg($image);
imagedestroy($image);

?>

このサンプルコードが動かない。

「画像ファイル "http://localhost/1.php" は壊れているため、表示できませんでした。」

ってなってしまう。なんで?
711デフォルトの名無しさん:2009/05/24(日) 06:15:11
Javascript で、

<script>

a="hello world!";
b=a.strike();
document.write(b);


</script>

こういうの見ると、ああ、OOPなんだな、って思うね。

なので、PHPで、おんなじようなことしたいんだけど。
どう書いたらいい?

OOPでクラスを書いてnewするの??
712デフォルトの名無しさん:2009/05/24(日) 06:24:05
<s><?php echo "hello world!" ?></s>
713デフォルトの名無しさん:2009/05/24(日) 06:35:19
>>712
ふざけんなゴミクズ。
PHPなめとんのか?コラ。
714デフォルトの名無しさん:2009/05/24(日) 06:36:09
SQLはじめると、型っていうのが出てくるんだよね。

とりあえず、数値だけでも、
tiniint
smallint,
int
って3種類あるんだけど、
127以下だったらtinyintでいいのか?
715デフォルトの名無しさん:2009/05/24(日) 06:38:17
>>710
そもそもGDライブラリ入ってる?
716デフォルトの名無しさん:2009/05/24(日) 06:42:54
>>711
マニュアルでクラス関連嫁。

>>714
せめてDBが何なのか晒そうや。
717デフォルトの名無しさん:2009/05/24(日) 07:46:16
<?php
foreach (range('a', 'z') as $letter) {
print $letter;
print "<br>";
}
?>

こういうことができるのが、PHPのすごいところ。

おなじことをperlでやったら、正規表現を駆使した
渾身の一作で、何十行
書かないといけないことやら。
718デフォルトの名無しさん:2009/05/24(日) 08:01:33
<?php
$a = uniqid();
print $a;
?>


これ、試してみたら、全然ユニークじゃないんだけど、
どういうこと?

生成されるIDの左側が常に一緒なんだけど??
719デフォルトの名無しさん:2009/05/24(日) 08:08:55
一文字でも違えばユニークだと思うが
ランダムと勘違いしてないか?
720デフォルトの名無しさん:2009/05/24(日) 08:13:06
>>718
http://www.phppro.jp/phpmanual/php/function.uniqid.html

<?php
// 接頭辞なし
// PHP 5 以降でのみ動作します
$token = md5(uniqid());

// よりよい、推測しにくい方法
$better_token = md5(uniqid(rand(), true));
?>
721デフォルトの名無しさん:2009/05/24(日) 08:17:47
PEARって別にincludeとかしないでも、
ソースの中にベタ書きしてもいいのか?
722デフォルトの名無しさん:2009/05/24(日) 08:21:15
他人に配布しないならいいんじゃね
723デフォルトの名無しさん:2009/05/24(日) 08:43:56
>>717
何がすごいのかわからんけど。

('a'..'z').each{|x|puts x}
724デフォルトの名無しさん:2009/05/24(日) 08:48:57
>>723
だからさ。
そういう書き方すると、
なにをやっているのか、意味が
まったくわからないわけじゃん。
725デフォルトの名無しさん:2009/05/24(日) 08:49:35
>>717程度の話ならどの言語で書いても数行じゃないか
数十行になるのはアセンブラくらだよ
726デフォルトの名無しさん:2009/05/24(日) 08:52:10
まぁ、ある程度簡単で読みやすく書けるところはいいと思うね

でもコメントは書こうよ・・・
727デフォルトの名無しさん:2009/05/24(日) 08:53:22
>>724
それは単に言語を読めて無いだけ
728デフォルトの名無しさん:2009/05/24(日) 08:54:12
>>724
普通に解るだろ別に
それはその言語を知らないから読めないだけじゃないか
729デフォルトの名無しさん:2009/05/24(日) 08:55:23
単にa〜zまでを出力するのに可読性を低くしたり数十行使ったり方がむしろ難しいと思うの
730名無し募集中。。。:2009/05/24(日) 08:56:08
だからDANあたりにPHP使いはアホとか言われるんだよまったく
731デフォルトの名無しさん:2009/05/24(日) 09:26:46
>>724
「PHPのすごいところ」って、そういう意味かw
まあ、>>717はわかりやすいからいいんじゃない?
別にすごいとは思わんけど…w
732デフォルトの名無しさん:2009/05/24(日) 10:19:01
>>717
perlではこう書けます。
foreach my $letter ('a' .. 'z') {
    print "$letter<br />";
}
同じくらい読み易いでしょ?
733デフォルトの名無しさん:2009/05/24(日) 10:22:55
むしろ正規表現を使うほうが難しいw
734デフォルトの名無しさん:2009/05/24(日) 11:39:26
>>717
>>723 はRubyの例だけど読みやすいように書いてみるか

('a'..'z').each do |x|
 puts x + "<br />"
end

これって、すごいのだろうか?w
735デフォルトの名無しさん:2009/05/24(日) 13:17:46
PHP しか知らないんだから PHP がすごいのも仕方ないw
736デフォルトの名無しさん:2009/05/24(日) 13:19:54
コージーお兄さん、サ
737デフォルトの名無しさん:2009/05/24(日) 13:21:50
誤爆失礼
738デフォルトの名無しさん:2009/05/24(日) 13:43:40
Perlだったら
print foreach a .. z, "<br>";
こんだけ。
739デフォルトの名無しさん:2009/05/24(日) 13:57:58
それいいな。
740デフォルトの名無しさん:2009/05/24(日) 14:15:33
>>738
ダウト。仕様を満たしていない。
741デフォルトの名無しさん:2009/05/24(日) 14:33:52
>>717
>おなじことをperlでやったら、正規表現を駆使した
>渾身の一作で、何十行
>書かないといけないことやら。

強引に正規表現を使ってやったぞ

(my $str = join('', 'a'..'z')) =~ s/(\w)/$1<br>/g;
print $str;
742デフォルトの名無しさん:2009/05/24(日) 15:29:15
>>717
Perlでやるとこう?
print join '', ('a'..'z'), '<br>';

または
print ('a'..'z');
print '<br>';

読みにくいかなぁ
743デフォルトの名無しさん:2009/05/24(日) 15:33:20
>>742
元のphpのコードでは、
一文字ずつ、後ろに"<br>"を付けるようになってるんだが…
744デフォルトの名無しさん:2009/05/24(日) 15:59:05
>>> for o in range(ord('a'), ord('z')+1):
... print chr(o), '<br />'

Pythonは'a'..'z'と書けないけど、for x in 〜: という構文はPerlのforeachや
Rubyのeachよりも「その言語をしらないユーザー」に読みやすい。

inclusiveな範囲で文字列を列挙する関数を書くとこうなる。
>>> def chrange(from_, to_):
... for o in xrange(ord(from_), ord(to_)+1):
... yield(chr(o))
>>> for c in chrange('a', 'z'):
... print c, '<br />'
745デフォルトの名無しさん:2009/05/24(日) 16:10:23
717は必ずレスがもらえるコピペ
746デフォルトの名無しさん:2009/05/24(日) 16:10:28
>>744
[Ruby]
for o in ('a'..'z')
 print o + "<br/>"
end
747デフォルトの名無しさん:2009/05/24(日) 16:17:02
>>746
素直にそう書けばいいのに、 Rubist ってやたら .each {|x| ... } を使いたがるよね。読みにくい。
748デフォルトの名無しさん:2009/05/24(日) 16:25:08
>>743
しまった><

じゃあこう
# aからzまで後ろに<br>を付けて出力
print map{"$_<br>"}('a'..'z');
749デフォルトの名無しさん:2009/05/24(日) 16:32:27
>>747
eachもmapもselectもsortもFile.openも似たような構文で書けるから。
なんでeachだけforみたいな別記法使わなきゃならんのという感じ。
rubyの世界の殻の中ではちゃんと統一はとれている。

rubyの外からだと独特で読みにくいのは認めるけど、こればかりは
「使ってみないと分からない」の世界じゃないのかなぁ。
750デフォルトの名無しさん:2009/05/24(日) 16:32:58
>>747
Ruby使いの人は、for使わない症候群なんですよ。普通は>>746みたいに書かない
751デフォルトの名無しさん:2009/05/24(日) 16:34:27
>>747
一言で言うと、「ダサイ」んだよ。Rubyで for 使うと。
他の言語で言うと、foreachを使うべきところで for使う感じ。
752デフォルトの名無しさん:2009/05/24(日) 16:48:38
>>751
Perlの場合、foreachと書くところでforと書いた方がスマートな場合を
Larry Wall自身が自著で幾つか例を挙げている。
753デフォルトの名無しさん:2009/05/24(日) 17:15:14
だからどうした、としか
754デフォルトの名無しさん:2009/05/24(日) 17:22:40
>>747
だって、for が each の構文糖なんだもん
755デフォルトの名無しさん:2009/05/24(日) 17:23:12
print "$_<br>" foreach 'a'..'z';
756デフォルトの名無しさん:2009/05/24(日) 19:14:36
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?
757デフォルトの名無しさん:2009/05/24(日) 19:24:22
<img src="<?php rand(1,10); >.jpg">
で1.jpg〜10.jpg用意しろ
758デフォルトの名無しさん:2009/05/24(日) 19:27:27
これはスクリプトではないので他の方お願いします
759デフォルトの名無しさん:2009/05/24(日) 19:35:42
javascriptでいいんじゃない
760デフォルトの名無しさん:2009/05/24(日) 19:44:37
>>757で何が足りないのか言ってくれないと次が出せない
761デフォルトの名無しさん:2009/05/24(日) 19:46:13
PHPのタグの閉じに?が抜けてるから
そのままコピペして動かなかっただけじゃないのかw
762デフォルトの名無しさん:2009/05/24(日) 19:46:44
この質問かつてないくらい様々なスレにマルチされてるな
763デフォルトの名無しさん:2009/05/24(日) 19:46:49
>>760
遅れてすいません
今サーバをもってないのですが
無料PHPサーバでおすすめあげてもらえませんか?
764デフォルトの名無しさん:2009/05/24(日) 19:47:33
>>762
まあ、初心者っぽいからねぇ
765デフォルトの名無しさん:2009/05/24(日) 19:49:48
>>763
Apacheでいいんじゃね?
766デフォルトの名無しさん:2009/05/24(日) 19:50:30
>>765
ありがとうございます!
767デフォルトの名無しさん:2009/05/24(日) 19:52:40
あぁ、後データベース使いたいならfirebirdがいいよ
768デフォルトの名無しさん:2009/05/24(日) 19:53:33
BDはXindiceの方がいいよ
769デフォルトの名無しさん:2009/05/24(日) 20:00:19
ありがとうございます!!

携帯ではJSは使えないようです
770デフォルトの名無しさん:2009/05/24(日) 20:03:30
いや今時のJSは携帯持ってるよ
771デフォルトの名無しさん:2009/05/24(日) 20:37:49
未だにcookieが使えない携帯があります
772デフォルトの名無しさん:2009/05/24(日) 20:53:57
>>757
すげえええ
773デフォルトの名無しさん:2009/05/24(日) 22:08:32
>>745
けどこのスレってPHP初心者大半 + 一部の分かってる人、と
思ってたら、わりと他の言語もたしなんでる人がヲチしてる
みたいなのが分かってちょっと驚いてるw
774デフォルトの名無しさん:2009/05/24(日) 22:34:53
MySQLで、レコードの数を知りたい時はどうかくの?
775デフォルトの名無しさん:2009/05/24(日) 22:58:42
>>774
見積書

内容           数量   単価
DBレコード調査      1   \50,000-
776デフォルトの名無しさん:2009/05/24(日) 23:49:42
>>775
ボロい商売だな
777デフォルトの名無しさん:2009/05/25(月) 00:02:22
あと勉強することっていったら、
e-mal、正規表現、MySQL、画像生成くらいかなぁー
778デフォルトの名無しさん:2009/05/25(月) 00:10:49
あとinclude_pathの意味がわからない
779デフォルトの名無しさん:2009/05/25(月) 00:11:41
なんでotuneの野郎がこんなスレ見てるのかマジで意味がわからない
780デフォルトの名無しさん:2009/05/25(月) 00:17:54
それと、pearとsmartyとcakeかな。
781デフォルトの名無しさん:2009/05/25(月) 00:27:43
>>773
LLバトルロワイヤルスレから人が来てるからな。
わざわざPHPの初心者スレをチェックする Ruby/Perl/Python 使いなんて
ほとんどいないだろ。
782デフォルトの名無しさん:2009/05/25(月) 00:40:20
PHPはスクリプト系の王者なんだから、
他の言語のことなんか気にしてないのにねー
783デフォルトの名無しさん:2009/05/25(月) 01:25:51
723
>('a'..'z').each{|x|puts x}

724
>だからさ。
>そういう書き方すると、
>なにをやっているのか、意味が
>まったくわからないわけじゃん。

まじっすか。
foreach (range('a', 'z') as $x) { echo $x; }
とおなじじゃないのか。
この程度で「意味がまったくわからない」というのなら、プログラム書くのやめたほうがいいよ。
いくらなんでも頭悪すぎる。

784デフォルトの名無しさん:2009/05/25(月) 01:27:55
単にRubyの構文知らなかっただけだろ
785デフォルトの名無しさん:2009/05/25(月) 01:41:02
>>783
アンカーの張り方くらい覚えてから書き込んでくれよ
786デフォルトの名無しさん:2009/05/25(月) 02:46:03
>>783
頭が悪すぎる
787デフォルトの名無しさん:2009/05/25(月) 02:54:04
>>783
しばらくROMったほうがいいよ。
788デフォルトの名無しさん:2009/05/25(月) 02:57:22
789デフォルトの名無しさん:2009/05/25(月) 02:58:03
>>783
はどうせotuneとかだろ
790デフォルトの名無しさん:2009/05/25(月) 07:25:19
ペチパーの低レベルさがまざまざと
791デフォルトの名無しさん:2009/05/25(月) 07:26:56
>>784
やってる奴じゃないと、普通はわかんないだろ・・・・
#そのくらいは想像せいや ってのもありだけど
792デフォルトの名無しさん:2009/05/25(月) 07:38:36
putsってあったらRubyかTCLだろJK
793デフォルトの名無しさん:2009/05/25(月) 07:44:04
>>724
Cしか知らない人がいきなりforeachとか'a' .. 'z' とか見たらそこで凍ると思うぞ。
方言みたいなもんなんだから言語が違ったら読みにくいのは仕方ないだろ。
794デフォルトの名無しさん:2009/05/25(月) 12:09:35
RANDMIZE
DIM
GOTO
GOSUB
RESTORE
READ
PEEK
POKE
IF 〜 THEN 〜 ELSE
FOR 〜 NEXT
モシ 〜 ナラバ イケ 〜
795デフォルトの名無しさん:2009/05/25(月) 12:42:03
tumblrからお越しの皆様は、半年ROMってろ
796デフォルトの名無しさん:2009/05/25(月) 14:55:44
tumblr のやつらってキモイよね〜
誰にも相手されてないくせに
やたら自意識過剰でさ〜

弱小ゴミクズ言語のくせにナマイキなんだよね〜
797デフォルトの名無しさん:2009/05/25(月) 22:50:30
<script>
a="byebye";
<a src="javascript:'window.alert(a);'">aaaa</a>
window.alert(a);
</script>

これをサニタイズするにはどうしたらいい?
798デフォルトの名無しさん:2009/05/25(月) 23:30:05
htmlspecialchars
799デフォルトの名無しさん:2009/05/26(火) 08:46:23
>>796
やめなさいってw
俺は両方見てるんだからさw
800デフォルトの名無しさん:2009/05/26(火) 09:25:22
>>797
高木「サニタイズ言うな」
801デフォルトの名無しさん:2009/05/26(火) 11:29:58
>>797
意図がわからない
scriptタグの中にHTMLを書くってのは何か意味があるの?
何のために「サニタイズ」したいのかもわからない
802デフォルトの名無しさん:2009/05/29(金) 03:32:32
http://oshiete1.goo.ne.jp/qa2543364.html

ここに、

>extract($_POST);
>とか、
>extract($_GET);
>とすれば、$_POST[aaa] は $aaa へ展開され、そのまま変数に入ります

って書いてあるんだけど、こんなやり方あるの?
803デフォルトの名無しさん:2009/05/29(金) 03:34:32
グーグルで検索したら、extractは危険だから使うな、って
書いてあるのだが、どうなのだ?
804デフォルトの名無しさん:2009/05/29(金) 07:29:55
>>803
危険な理由を考えてみ。宿題。

昔のPHPはクエリのaaaは自動的に$aaaに展開されていた。
危険すぐるので今はoptional、非推奨になっている。
805デフォルトの名無しさん:2009/05/29(金) 07:33:42
普通に考えて、野良クエリーがグローバル変数を侵食するとか怖くてつかえんだろw
806デフォルトの名無しさん:2009/05/29(金) 08:22:54
GETで送ったaaaが普通に$aaaに入るはんて怖すぎるw
でも初期につくったPHPプログラムを見ると、普通にif ($aaa == とか使ってて
え、なにそれこわい
807デフォルトの名無しさん:2009/05/29(金) 13:10:18
>>806
昔はそれしかできなかったんだから、しょうがないでしょ?
機能的にできなかったことで、今の観点から文句をいわれてもねぇーって感じ
808デフォルトの名無しさん:2009/05/29(金) 13:52:25
いや、$HTTP_VARSは使えたでしょ
809デフォルトの名無しさん:2009/05/29(金) 15:56:20
お伺いします。
よくこういうmysql_queryの使用例が出てくるのですが、

mysql_query('SELECT * FROM テーブル WHERE なんとか);

WHEREってどんな役割があって、どう使うものなのかがどうしてもわかりません。
色々とググっては見たのですが、具体的な解説は見付かりませんでした。
どうか教えてください。
810デフォルトの名無しさん:2009/05/29(金) 16:46:36
>>809
板違い。データベース板で聞いてよ。
SQL文については初歩の初歩だから、入門書の1冊くらい読みなさい。
811809:2009/05/29(金) 17:15:27
そうでしたか、ごめんなさい。
でもおかげで「SQL文」で検索したらわかりました。
いままではPHPを使っているんだから、
PHP関連から探すという先入観があり進めなかったようです。
812デフォルトの名無しさん:2009/05/29(金) 17:45:33
>>808
そういう問題じゃない。
この野良クエリが変数に入ることがなぜ脆弱性を引き起こすのか理解してないな。
813デフォルトの名無しさん:2009/05/29(金) 19:17:19
大げさだが、環境変数書き換えるようなもんだからな
814デフォルトの名無しさん:2009/05/29(金) 23:18:50
>>809

WHERE id=1 とか。
815デフォルトの名無しさん:2009/05/29(金) 23:19:35
>>810
お前が板違い。

質問に一切答えない
webprog板のキチガイ自閉症どもから
避難してこのスレができたのだ。
816デフォルトの名無しさん:2009/05/29(金) 23:21:09
>>811
PHPを学ぶときに、
「PHPだけ学べばいいんだ」
って思って最初はじめるんだけど、じきに

PHPプラス、SQLも学ばなくては
いけないんだ、って気づかされる。

つまり、PHPとMySQLのバイリンガルになることを
強要されるってこと。これがキツイ。
817デフォルトの名無しさん:2009/05/29(金) 23:37:33
PHPで自分でテキストいじり倒すよりはるかにSQLのほうが簡単だと思うが
SQLなんてエディタで楽々吐けるんだし
818817:2009/05/29(金) 23:38:43
そういう意味ではPHPとDBはセットなんだと思うよ
今の時代でPHPだけってシステムのほうがほぼ無いんじゃないかな
819デフォルトの名無しさん:2009/05/29(金) 23:40:15
>>815
そういうおまえも、質問には何一つ答えてないワケだが。
820デフォルトの名無しさん:2009/05/30(土) 00:05:13
SQL補完できるエディタとかってあるの?
821デフォルトの名無しさん:2009/05/30(土) 00:25:29
>>820
会社ではAccess、自宅ではPHPmyAdmin使ってる

Winアプリでフリーだとこのあたりが有名かな

黒猫 SQL Studio
http://kuronekosoft.ewinds.net/sqlstudio.aspx

A5:SQL Mk-2
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/

ODBCで準備しないといけないが、マニュアル見ればすぐ出来ると思う
あと、PostgreSQLならWinでインストールするとSQLエディタも付いてる
822デフォルトの名無しさん:2009/05/30(土) 00:43:30
PHP+Postgreは少数派か・・・

んー、スーパーグローバルの値を、SQL文にそのまま使うのは怖いね。
限定された空間で作るなら適当にやるけど、公開サーバーだと・・。

とりあえずは、SQL Escapeは必須だし、$_POSTで受け取った変数の中身
くらいはチェックに掛けるな
823デフォルトの名無しさん:2009/05/30(土) 00:57:24
結局、このスレには
> WHEREってどんな役割があって、どう使うものなのか
という問いに答えられるヤツは一人もいないのか。
824デフォルトの名無しさん:2009/05/30(土) 00:59:22
>>823
うん、答える人はいないよ
825デフォルトの名無しさん:2009/05/30(土) 00:59:41
そんなの調べれば出てくるからな
826デフォルトの名無しさん:2009/05/30(土) 01:26:10
>>823
だいたい「どんな役割があって、どう使うものか」を聞きたい人って
学校や会社の宿題が終わらなくて2chで済まそうっていう屑ぐらい
じゃん。そんな屑にいちいち答え教えてたらキリがない
827デフォルトの名無しさん:2009/05/30(土) 04:46:24
PHPスクリプトがサーバーで動くとき、
アパッチ権限で動く場合と、
自分の権限(自分のアカウントがもしyamadaならyamada)で動く場合と、
この2つだけ?

もっと他にもあるの?
828デフォルトの名無しさん:2009/05/30(土) 04:49:10
「サーバー権限」
「ユーザー権限」

この2つ?
829デフォルトの名無しさん:2009/05/30(土) 06:02:00
>>816
PHPっつーかweb開発やってるとPHP、SQL、DB、HTML、CSS、JavaScript(AJAX)、Flash(ActionScript,Flex)、
サーバー構築の知識、サーバーメンテの知識、一通り必要だぞ。
別にPHP関係なくて、Ruby や Railsだって今時そうだし。
それで、キツイ言ってたら、プログラマーやってけないと思うけど。
830デフォルトの名無しさん:2009/05/30(土) 07:04:33
つか簡単でしょそれら
831デフォルトの名無しさん:2009/05/30(土) 07:19:02
つーかDB触るアプリだと、必須だと思うのだが>SQL
SQLでできることはSQLでやったほうが、パフォーマンスぜんぜんいいしね
#基本はねw

>>809
SQL今後も書きそうなら、入門書位読みなさい

>>827
Apacheからたたく場合はApacheのuser(and group -> httpd.conf) だっしょ?
#普通はパーミッションあわせるわなぁ・・・・
cuiの場合は起動するuser(and group)にあわせる
そういう意味では、変わらないと思うのだが
#基本はね
#cron なんかだと user 指定する場合もあるけど
832デフォルトの名無しさん:2009/05/30(土) 08:16:40
>>830
簡単なことしかやってなかったらいいんですけどねえ・・・
833デフォルトの名無しさん:2009/05/30(土) 09:13:26
「つか」って何ですか?
834デフォルトの名無しさん:2009/05/30(土) 11:19:55
>>827
> Apacheからたたく場合はApacheのuser(and group -> httpd.conf) だっしょ?
suEXECでユーザ権限で動くサーバも多い。
設定次第では、特定の既存ユーザのアカウントで動かすこともできるが、まあこれは
Apacheのuserってことになるのかな。
他のパターンはあるのかなってことだろ?
835デフォルトの名無しさん:2009/05/30(土) 11:21:09
>>834>>831へのレス
836デフォルトの名無しさん:2009/05/30(土) 11:22:01
つーか、どうせこんな質問、レスばかりになるんだから、ム板にPHPを持ってくるのは
やっぱり激しくミスマッチな気がする。
837デフォルトの名無しさん:2009/05/30(土) 11:46:37
>>834
あ そうだ すまん
#自分じゃつかわねーから 忘れてた
838デフォルトの名無しさん:2009/05/30(土) 12:03:27
>>816
>PHPとMySQLのバイリンガルになることを強要される
飯のタネだと思えばつらくもなんともない
839デフォルトの名無しさん:2009/05/30(土) 12:10:13
てか、言語だけ覚えてもただの言語マニアだろ。
どんな言語でも実用的なもの作ろうと思ったら、
システムや外部ツールとの連携を覚えることは必要になる。

PHPでもコマンドラインツールだけ作る用途で使うなら、
SQLなんて知らなくてもいい。
むしろパイプやファイル入出力のほうが有用になる。
840デフォルトの名無しさん:2009/05/30(土) 12:23:38
このスレ、板違いだろ
841デフォルトの名無しさん:2009/05/30(土) 12:36:08
>>839
覚えたばっかりで使ってみたかったんですね。
842デフォルトの名無しさん:2009/05/30(土) 12:43:54
SQLとファイル入出力を両方知った上でどちらを使うか洗濯するのであって
片方しか知らなくていいってことじゃないと思うが
俺は文字を表示したいだけだからechoだけで十分だし
そこまでできてるので俺はPHPできる人ですって話にはならんわけで
843デフォルトの名無しさん:2009/05/30(土) 13:10:13
>>832
そりゃ君の精進が足りないのだよ
844デフォルトの名無しさん:2009/05/30(土) 13:26:56
別に1年目からそれを全て求められるわけじゃないからねぇ
5年やって純粋なPHP以外は解りませんだったらアホだけど
5年やればそのうちの8割くらいは触ることになるはずだから
845デフォルトの名無しさん:2009/05/30(土) 18:24:27
いや、5年もいらないだろ
846デフォルトの名無しさん:2009/05/30(土) 19:11:02
じゃ何年?
847デフォルトの名無しさん:2009/05/30(土) 19:22:28
メールフォーム一筋で食ってきた俺なんか未だにSQLとか書いたこと無いぜ仕事ください
848デフォルトの名無しさん:2009/05/30(土) 19:29:17
触るだけなら1年程度で十分だな。
練りこむのを入れるなら3年強。
849デフォルトの名無しさん:2009/05/30(土) 19:31:24
仕事就いて即バグ取りとメンテ、増築させられたよ
C++やってたから文法覚えるだけで特に苦にならなかった

SQLもいくつか見たら、ノリ判るし
850デフォルトの名無しさん:2009/05/30(土) 19:33:21
ノリでプログラムを理解する奴を俺は信用しない。
851デフォルトの名無しさん:2009/05/30(土) 19:42:03
いや、SQLぐらいプログラムできるなら判るでしょ・・・
852デフォルトの名無しさん:2009/05/30(土) 19:51:55
>>847
それはさすがにもう食い扶持ないと思うぞ……。
つーか今までよく食ってこれたなお前。
853デフォルトの名無しさん:2009/05/30(土) 19:58:56
>>850
この場合、ノリってのはプロジェクトの作法みたいなものを指してるんじゃね
条件の記述パターンとかトランザクションのかけ方とか
854デフォルトの名無しさん:2009/05/30(土) 20:56:06
5年必要って話じゃなくて5年やって駄目ならアホって話だよ
大きなプロジェクトなら1年2年スパンだからずっとコードと保守って事もあるし
それで2年やってサーバ知らないからアホって事にはならんけど
次も同じ仕事を2年3年続けてたらアホだよねって
855デフォルトの名無しさん:2009/05/30(土) 21:36:58
>>853
思うに、誤解の無い表現が出来ない奴は、職業プログラマは駄目だってことじゃね?
856847:2009/05/30(土) 23:16:58
>>852
スピード対応重視だったせいか去年までは何故か食えてたんだけど流石に無理があったw
今はデザイナの嫁さんの稼ぎで食ってる主夫≒ニートでござい。
857デフォルトの名無しさん:2009/05/30(土) 23:33:24
確かにメールフォームの需要がなくなるってことはなさそうだな

食えるかどうかはともかくw
858デフォルトの名無しさん:2009/05/31(日) 00:21:36
>>851
やってることのレベルによると思うけど、それは無理
単純なSQLだけならありだろうけど、そんな奴は迷惑
#と数年前の自分に言いたいw
859デフォルトの名無しさん:2009/05/31(日) 00:25:43
MySQL使いに多いんだけどJOINなしのSQLを何度も投げるのはやめて欲しい
もう3.23の時代じゃないんだぞ
860デフォルトの名無しさん:2009/05/31(日) 00:49:02
>>859
・その方がスクリプト(とDBの構造)がシンプルになる。
・その方が 圧 倒 的 にパフォーマンスがいい場合がある。

なんて理由から、JOINを選択的に排除するのは特に問題だとは思わない。
逆に、とにかくJOINする、っていう考え方が害になることも多いんだよ。
4〜5個JOINを入れ子にしたSQLとか、書いた奴以外が読むのは激しく負担。
また、そこでバグでも出された日には目も当てられない。
861デフォルトの名無しさん:2009/05/31(日) 00:53:35
いやだからその考え方が江戸時代の考え方なんだよったく
862デフォルトの名無しさん:2009/05/31(日) 00:55:05
あまり複雑なJOINだと大量に重複データーが混じるが、それって問ボトルネックになるのかな?
863デフォルトの名無しさん:2009/05/31(日) 01:02:48
それはSQLが間違ってるから混ざるのでは
外部結合なんて混ざりようがないだろ
864デフォルトの名無しさん:2009/05/31(日) 01:05:33
JOINがネックになってればそこはチューニングするんだから、
最初からJOINなしで作るのはおかしい。
よっぽど統計の取り方がクソなRDBMSでも無い限り、JOIN使った方が速い。
JOINは害って言ってる奴は、MySQL4しか使ったこと無いんじゃないか。
865デフォルトの名無しさん:2009/05/31(日) 01:07:35
なんで突然外部結合に話を限定するんだ。
それこそまさに、限定的にJOINを使ってるってことじゃないの?
>>859から感じる雰囲気では、こんなSQLも普通だと思ってそうだが、そんなもんなの?
(出所は伏せるが、知ってる人は多いかも)

SELECT
 class_id1, class_id2, name1, name2, rank1, rank2,
 product_class_id, product_id, T1_classcategory_id AS classcategory_id1, T2_classcategory_id AS classcategory_id2,
 product_code, stock, stock_unlimited, sale_limit, price01, price02, status
FROM
(
SELECT
   T1.class_id AS class_id1, T2.class_id AS class_id2, T1.classcategory_id AS T1_classcategory_id,
   T2.classcategory_id AS T2_classcategory_id, T1.name AS name1, T2.name AS name2,
   T1.rank AS rank1, T2.rank AS rank2
FROM dtb_classcategory AS T1, dtb_classcategory AS T2
WHERE T1.class_id IN (
  SELECT class_id1 FROM vw_cross_products_class AS crs_prd WHERE product_id = ? GROUP BY class_id1, class_id2)
   AND T2.class_id IN (
     SELECT class_id2 FROM vw_cross_products_class AS crs_prd WHERE product_id = ? GROUP BY class_id1, class_id2
   )
  ) AS T1
LEFT JOIN (
 SELECT * FROM dtb_products_class WHERE product_id = ?
) AS T3
 ON T1_classcategory_id = T3.classcategory_id1 AND T2_classcategory_id = T3.classcategory_id2
ORDER BY rank1 DESC, rank2 DESC
866デフォルトの名無しさん:2009/05/31(日) 01:10:25
せめて読みやすくしようと勝手にインデントしてみたが、括弧の対応でミスった。
867デフォルトの名無しさん:2009/05/31(日) 01:10:50
それって>>859が書いたんじゃなくてお前が書いたんだろw
言いがかりで正当化しようとするなよ
868デフォルトの名無しさん:2009/05/31(日) 01:12:06
俺も何度か途中参画したプロジェクトでテコ入れしたことあるけど
結合してクエリ投げる回数減らした方がパフォーマンス上がる場合が多かった
869デフォルトの名無しさん:2009/05/31(日) 01:14:43
みんながみんなMySQL使ってるわけじゃないだろ。
接続コストが高いけど性能も高いPostgreSQLやOracle使ってるなら、
JOINした方が全然早い。
単純読み出し命のMySQLくらいじゃないか。都度投げた方が早くなる可能性高いのは。
870デフォルトの名無しさん:2009/05/31(日) 01:19:34
LAMPって知ってる?
ポスグレやOracleはそもそもLAMPの保障外だから
事例としては稀で、実務では通常ありえない組み合わせ
PHPでDBと言えば、特別指定しない限りMySQLのことだから
871デフォルトの名無しさん:2009/05/31(日) 01:26:04
そ、そうだね…
話題変えようか…
872デフォルトの名無しさん:2009/05/31(日) 01:27:12
なんか久々に聞いたなLAMPって単語
873デフォルトの名無しさん:2009/05/31(日) 01:33:55
>>867
>>865のことか?
俺が書いたんではなく、読まされたんだよ。ボトルネックっぽいからと。
結論から言うと、そのデータを取得するためには、90%は無駄な処理。
それを確認するのにどんだけソースとテーブルの関連を調べたか。

最初から、シンプルに3つ位のクエリを出して処理して十分追いつく内容だったし、
マトリックスを作るにしても、もぶっちゃけこのSQLよりPHPで作った方が早かった。
大事なのは、それを突き止めることも困難なスパゲッティSQLを自己満足で書くんじゃないと。

チューニングの結果として複雑になるならまだしも、最初から複雑に書く奴は馬鹿じゃないか?


>>870
さすがに恥ずかしい切り口じゃね?それは。
PostgreSQLも、8.x系統からはまたライトユーザの視野に入るようになってきてる印象。
それまでは、結構昔からDB使ってる人や会社で好まれるもの、っていうイメージがあったが。
874デフォルトの名無しさん:2009/05/31(日) 01:39:12
それはそのSQL書いた奴が馬鹿なだけで、
JOINと言う仕組みが悪いわけじゃないような気が。
875デフォルトの名無しさん:2009/05/31(日) 01:45:20
PostgreSQLもWindows版つくったりと、ユーザー広げようとしてるしね

Joinより、ビューをDB側で用意したほうが圧倒的に早くなるよ
876デフォルトの名無しさん:2009/05/31(日) 01:48:52
なんだ、LEFT JOIN のことか
877デフォルトの名無しさん:2009/05/31(日) 01:57:36
なんだか勇気をもらえるスレだなココ
878デフォルトの名無しさん:2009/05/31(日) 02:03:35
>Joinより、ビューをDB側で用意したほうが圧倒的に早くなるよ

それはない
879デフォルトの名無しさん:2009/05/31(日) 02:26:00
viewったって中身は結合だから、たまたま速ければそれでいいんだけど
遅かった場合に直しようがないから結局最初からSQLで結合した方が楽だよ
880デフォルトの名無しさん:2009/05/31(日) 08:02:33
>>865
ひどいね。スキーマが分からないので何ともし難いけど分かる範囲だと
次のように書ける。

[無保証]
SELECT
 T1.class_id AS class_id1, T2.class_id AS class_id2,
 T1.classcategory_id AS classcategory_id1, T2.classcategory_id AS classcategory_id2,
 T1.name AS name1, T2.name AS name2, T1.rank AS rank1, T2.rank AS rank2,
 product_code, stock, stock_unlimited, sale_limit, price01, price02, status
FROM dtb_classcategory T1, dtb_classcategory T2
INNER JOIN vw_cross_products_class crs_prd1
 ON T1.class_id = crs_prd1.class_id1
INNER JOIN vw_cross_products_class crs_prd2
 ON T2.class_id = crs_prd2.class_id2 AND crs_prd1.product_id = crs_prd2.product_id
LEFT JOIN dtb_products_class T3
 ON T1.classcategory_id = T3.classcategory_id1 AND T2.classcategory_id = T3.classcategory_id2
   AND crs_prd2.product_id = T3.product_id
WHERE crs_prd1.product_id = ? ORDER BY rank1 DESC, rank2 DESC

RDBMSのバージョンも分からないけど、インデックスの使用を妨げる
ような書き方もしていないから多分速いよ。
スキーマが分かればもっと短く速く書けるようになる可能性が高い。
(特にvw_cross_products_class。product_idがキーならこのテーブルを
第一テーブルにしてdtb_classcategoryをJOINした方が速くなる。
あとカンではT3のclasscategory_idの制約も必要ないと思う)
PHP上でロジックを書いた方が速いかはレコード数等々にもよるけど。

あと元クエリーは酷すぎ。多分最善策だったのは、このクエリを事前に
DB板の関連スレにコピペする事だったんじゃないのかな。罵倒しつつ
親切な人がすっきりと書き直してくれたはず。
881デフォルトの名無しさん:2009/05/31(日) 09:00:46
>>870
それは単なる言葉の定義。
そういう構成で使われることが多かった だけやん
誰が何の保障をしてくれるわけ?
882デフォルトの名無しさん:2009/05/31(日) 09:36:19
>>870
いやあの、LAMPって保障とかそういう言葉じゃないから。

既にあったDBがポスグレとかOracleとかあるからしねえ。
昔はポスグレの方が性能高かったから(今は知らん)か、ポスグレ指定されることもあるしねえ。
金あるとこはしょーもないシステムにOracle突っ込もうとするし。
883デフォルトの名無しさん:2009/05/31(日) 14:17:24
>>879
Oracleの待てビュー早くね?
#Ora使いじゃないからわかんないんだけど
884デフォルトの名無しさん:2009/06/01(月) 05:15:49
メールヘッダインジェクションとか
まじで勉強しないとダメなの?
885デフォルトの名無しさん:2009/06/01(月) 05:46:14
パスの相対指定のやり方とかってどうやるの?

外部から見られたら困るtxtファイルなんかを
public_htmlの外に格納するときなんだけど、


--public_html--a--1.php
|
|--private_html--2.txt


こうなっていたとして、1.phpから、2.txtを
読みたいんだけど。

1.phpからみて、一つ上の(a)、一つ上(public_htm)の、一つ上の中の、
private_htmlの中の、2.txt

これでいいの?

だとしたら、相対パスの書き方はどうなるの?
886デフォルトの名無しさん:2009/06/01(月) 06:04:18
require_once('../../private_html/2.txt');

これでできた。
でも、ドキュメントルートを指定して書く
やり方あったよね。それ教えてよ。

[DOCUMENT_ROOT]

こんなかんじのあったでしょ。
887デフォルトの名無しさん:2009/06/01(月) 06:48:49
またお前か
888デフォルトの名無しさん:2009/06/01(月) 07:07:41
>最低限、CR、LFだけはチェックし、含まれる場合
>はセキュリティ上のエラーとして処理(攻撃が行わ
>れたとアラートを発生させる等)しなければなりま
>せん。


こんなこと書いてあるんだけど、
本当にこんなことしないといけないの?
889デフォルトの名無しさん:2009/06/01(月) 07:08:23
ここはプログラム板
C++やJavaの偉い人がきますよ
890デフォルトの名無しさん:2009/06/01(月) 07:33:50
>>888
SQLの場合、実装に穴があると「;」の後ろにLF入れられたら面倒なことになる場合があるけど、
それは穴の方が問題であってLFが問題じゃないよね。
他にCRLFが問題になる場面って思いつかないな。SQLの場合だけ気をつけてればいいかと。
891デフォルトの名無しさん:2009/06/01(月) 07:47:13
>>890
SQLの話じゃないよ。メールヘッダインジェクションの話だよ。
892デフォルトの名無しさん:2009/06/01(月) 09:49:44
>>891
ああ、なるほど。
893デフォルトの名無しさん:2009/06/01(月) 14:45:11
誰がアナルやねん!
894デフォルトの名無しさん:2009/06/01(月) 19:49:24
ここで聞くことなのか怪しいところですが、PHPを自宅で使える環境にできません。
Apache_2.0はちゃんとインストールできてると思います。
PHP5.2.9もちゃんとインストールして、指示されているように設定の文書も変更しました。
(それが古いバージョンのものだったので一部違う部分もありましたがだいたいできたと思います)

ちなみにOSはVistaです。

わかる方がいたら是非教えてください(>_<)
895デフォルトの名無しさん:2009/06/01(月) 20:34:22
LoadModule php5_module "drive:/path/to/php-5.2.6/php5apache2.dll"
は設定してる?
もしくは変更したところを全部書いてみる
エスパーじゃ答えられないし、それやんないとお互い時間の無駄
896デフォルトの名無しさん:2009/06/01(月) 21:21:20
設定の変更などは高度すぎてわからないので
まとめてインストールできるXAMPPというものがあると聞きまして
インストールしたのですが、結局できません。
依然としてApacheは正常に動いてるようなのですが。。

もうなにがなんだか…すいません
897デフォルトの名無しさん:2009/06/01(月) 21:53:29
xamppで失敗できる人がいるとは思わなかったw
単に使い方わかってないだけでインストールは一通り出来てんじゃないの?
何をもって「できない」と思ってるのか書いてくれないからわからんけどさ。
898896:2009/06/01(月) 22:33:17
なんとかでき?ました!笑
メモ帳で書いてたので拡張子がphpのつもりがtxtになってるのが原因でした。。

ありがとうございました!!

ちなみに、こんな一括インストールがあるのに、これが主流でないのはなぜでしょう?
これには何か欠点があるのでしょうか?
899デフォルトの名無しさん:2009/06/01(月) 22:36:48
・Windowsでは連続動作・セキュリティ的に脆弱
・一括インストールだと後のバージョン更新、ライブラリ追加ができない
・バージョンやライブラリ当の違う、複数の環境に対応したテストがしづらい
900デフォルトの名無しさん:2009/06/01(月) 22:43:06
>>898
秀丸使ったほうがいいと思うよ(メモ帳以外のエディタなら何でも)

>何か欠点
使いたいバージョンを手でインストしても、慣れればそう手間ではない
おまけがいっぱい入りそうなのが嫌
Linux鯖がメインでphp以外はディストリのパッケージを使うから
#Win版はzipを解凍
Postgresの方がメインだから
単なる趣味だから
901デフォルトの名無しさん:2009/06/01(月) 22:44:25
まぁ、せっかくだからPHPエディタのスタンドアロン版とかお勧めする
簡易デバッグも出来るし(設定できればの話だが)
902デフォルトの名無しさん:2009/06/01(月) 22:45:36
>>898
お手軽開発用としては割と主流だけどね。
本番用には>>899の理由含めて色々問題があるから使い辛いけど。
903896:2009/06/01(月) 23:30:20
そうなんですか。。。
僕は学校の課題を家でも出来るようにしたいだけだったので、たぶんこれで大丈夫です!
もしハマっていったらまた個別で使いやすいようにインストールしていきます。
ちなみにエディタはGreenPadを使うようにしました。一番簡単なようだったので。。。

いろいろありがとうございました!!
904デフォルトの名無しさん:2009/06/02(火) 01:11:20
>>885
まず http://www.php.net/manual/ja/ これをブックマークしといて。
それから
search for 欄にDOCUMENT_ROOT
を入力してからその右側のプルダウンからonline documentationを
選択してそのさらに右にある矢印をクリック。
気持ち悪いピンクの囲みに何か書いてあるだろう?
905デフォルトの名無しさん:2009/06/02(火) 12:34:17
xampp使うと成長しないからね
906デフォルトの名無しさん:2009/06/02(火) 14:35:27
$arr = (4,7,8,9)
上記配列で、
残りの1~9(今回の場合は1,2,3,5,6)までの値を配列に格納
する方法を教えてください。
907デフォルトの名無しさん:2009/06/02(火) 20:18:19
普通に1から10まで回して、$arrに存在してなかったら追加でいいんではない?
908デフォルトの名無しさん:2009/06/02(火) 20:44:02
$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)
}
なのはなぜですか?
909デフォルトの名無しさん:2009/06/02(火) 21:19:26
トーナメント表などのお勧めな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
912デフォルトの名無しさん:2009/06/03(水) 01:22:39
>>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
913デフォルトの名無しさん:2009/06/03(水) 05:37:18
>>898
主流じゃないと思うが、検索する限りではWindowsではよく使われているようですよ。> XAMPP
914デフォルトの名無しさん:2009/06/03(水) 07:51:52
>>894
xamppにしたほうがいいよ。
915デフォルトの名無しさん:2009/06/03(水) 09:25:13
>>910
rangeという関数あるんですね。
ありがとうございます。
いろいろと活用できそうです。
916デフォルトの名無しさん:2009/06/04(木) 00:57:35
>>906>>908 もなんか質問がおかしいなぁ
>>910 の回答もきっと勘違いだし
頭悪そうなやつばっかだな
917デフォルトの名無しさん:2009/06/04(木) 01:01:23
いやだから文句言うなら回答例を
918デフォルトの名無しさん:2009/06/04(木) 01:24:03
>>917
おまえもばかだなあ。回答例なんてもう必要ないんだよ。
>>906 の質問の正解は >>908 で出てるだろ。>>906 = >>908 かもしれんが。
>>908 が意味不明な質問してるがきっと何か勘違いしてるんだろう。
>>910 は微妙な回答をしているが、これは >>906 の質問が悪いからだな。
919デフォルトの名無しさん:2009/06/04(木) 01:49:21
プログラムって、はじめてやるような例の場合、
精神的な負担やストレスがはんぱないよね。

ストレス度250%って感じ。

同じこと何回もやって、
「ああ、また例のあれだな」
って、先の展開が読めれば
なんてことないんだけど、1回目は
本当に脳の血管がぶちきれそうになる。
920デフォルトの名無しさん:2009/06/04(木) 02:00:39
>>919
そこで言うストレスっていうのは、時間内にできるかどうかもわからん!ってもんだろうな。

時間的な制限がよっぽどきっちきちでなければ、初回が一番楽しい。・・・は語弊があるか。
一番モチベーション高いけどな。
二度目は前回の反省を活かしていじる楽しみがある。(でも一番迷走しやすい)

逆に、三回目以降こそ苦痛で仕方がないような気がする。
どうせそのままでは使えなくてあちこちいじる必要があるのに、全体としてやってることは
前と同じっていう、なんとも言えない作業感が辛くなったりする。

また、前にやった処理と若干違う部分がなんとも修正しにくかったりした場合とかも、変に
あるものを活かそうとして逆に足を引っ張られたりしない?
921デフォルトの名無しさん:2009/06/04(木) 02:03:28
>>920
ああ、あなたは理系だね。
私は文系だから、ストレスを感じ取る
局面が正反対なの。
922デフォルトの名無しさん:2009/06/04(木) 06:28:58
unko大学からのアクセスのときだけ、
専用のページに飛ばすのって
どう書けばいい?

unko大学のリモホが、

abc-123.unko.edu

だったとしたとき。

リモホを変数に格納して、
ピリオドで区切って配列に格納して、
右から二つのセクターが、edu、unko、
と一致しているかどうかを==で調べて、
もしtrueなら飛ばす、これでいいの?
923デフォルトの名無しさん:2009/06/04(木) 06:38:15
>>922
別にそれでもいいけど普通htaccessでしょ。
924デフォルトの名無しさん:2009/06/04(木) 06:42:30
それでいいんじゃねーの
925デフォルトの名無しさん:2009/06/04(木) 07:03:41
>>923
ただ飛ばすだけでなくて、ログも取りたかった。
phpで全部制御すればなんでもできるでしょ?
926デフォルトの名無しさん:2009/06/04(木) 07:06:03
>>925
ログはHTTPdのログがあるじゃないか・・・。
まあPHPで済まして悪いことは何もないからそのままでもいいと思うが。
927デフォルトの名無しさん:2009/06/04(木) 07:36:12
無料のレンタルサーバーだから
アパッチのログは見れないんだよ、dude
928デフォルトの名無しさん:2009/06/04(木) 07:56:52
date関数って、どの時間帯が表示されるのかな?

php.iniの設定で決めるの?
929デフォルトの名無しさん:2009/06/04(木) 07:57:35
つまり自分のパソコンで実験してるときはJSTが表示されて、
レンタルサーバーにアップロードしたら、
そのサーバーのタイムゾーンで表示されてしまうのかな?

だとしたら、アタマこんがらがるね。
930デフォルトの名無しさん:2009/06/04(木) 08:06:04
なんでPHPerって、スレを乱立させるんですか?
931デフォルトの名無しさん:2009/06/04(木) 08:10:51
クッキーの受け入れを拒否してると、
セッションクッキーも受け取れなくなるの?
932デフォルトの名無しさん:2009/06/04(木) 08:20:21
ブラウザの開発元に聞いたら?
サーバ側の処理で「クッキーの受け入れ拒否」とかあるの?
933デフォルトの名無しさん:2009/06/04(木) 08:24:33
仮に誰かが血迷って次スレ立てるとしたら、少なくともスレタイを「PHP初心者@〜〜」にしとけ
それか、ここがム板での雑談スレって扱いなら、テンプレに質問スレへのリンクでも貼って置けよ。

クソスレ乱立させんな
934デフォルトの名無しさん:2009/06/04(木) 08:49:17
>>931
当然。URLにセッションIDを埋めるしかなくなる。
それが他人のパソコンに残ったり、そのURLを利用者が知らずにネットに貼ったりして
セッション乗っ取りが行われる。セッションIDにはワンタイムトークンを使うべきと言われたり、
決済やパスワードの変更等重要なタスクが発生する場面では再認証すべきと言われているのは
そのため。

>>932
開発元に何を聞くんだよw
935デフォルトの名無しさん:2009/06/04(木) 08:50:10
>>928
date_default_timezone_set()
936デフォルトの名無しさん:2009/06/04(木) 09:00:53
>>934
あーー。
それで、use.cookie_only=1
とかにしないとダメなんだ?
937デフォルトの名無しさん:2009/06/04(木) 09:19:47
>>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);
西暦と月の情報だけで、その月の朔を含む週の日曜日を求めるコード。
長くて気持ち悪いんだけど、もっと短くならないかな?
939デフォルトの名無しさん:2009/06/04(木) 17:22:44
十分短いと思うがw
940デフォルトの名無しさん:2009/06/04(木) 17:34:03
>>938
$first_sunday = strtotime('next sunday', mktime(0, 0, 0, $month, 1, $year));
941デフォルトの名無しさん:2009/06/04(木) 18:10:33
>>940
お、ありがとう。
この関数のことは知らなかったよ。
942デフォルトの名無しさん:2009/06/04(木) 20:54:58
>>922
下のは正規表現で一発な気がする
943デフォルトの名無しさん:2009/06/04(木) 23:48:20
>>922
Webサーバが逆引きした名前を用意してくれるとは限らないし、
そもそも逆引きの名前がないかもしれない。
944デフォルトの名無しさん:2009/06/05(金) 01:38:43
>>940
$first_sunday = strtotime("next sunday $year-$month-1");
945デフォルトの名無しさん:2009/06/05(金) 22:05:48
>>944
% php -r "var_dump( date( 'Y-m-d' ,strtotime( 'next sunday 2009-2-1' )));"
string(10) "2009-02-08"
946デフォルトの名無しさん:2009/06/06(土) 14:07:50
PHP5で、文字列の連結を高速化する手法はありますか?

配列に格納後joinするのが早いと思っていたのですが、実際に計測してみると「.」で一つずつ連結する方が早い始末…

メモリ確保の観点から「.」で一つずつ連結するより早い方法がある(C#のStringBuilderのような)と思うのですが、どうなんでしょう
947デフォルトの名無しさん:2009/06/06(土) 15:58:12
>>946
'.'を使うのは並び順とかを指定するコストを人間が
負担してるわけだから早いのは当たり前。

例えば以下でどっちが早い?っつったら二番目に決まってるじゃん。
ループ回す分のコストがないわけだから。

foreach(1..5 as $count){
 print $a[$count];
}

print $a[1] . $a[2] . $a[3] . $a[4] . $a[5];
948デフォルトの名無しさん:2009/06/06(土) 16:01:28
>>945
PHP 4.4.3では2009-02-01と出るな・・・・。
まったくPHPってヤツは。
949946:2009/06/06(土) 16:39:34
>>947
一気に連結するのでなく、逐次です
950デフォルトの名無しさん:2009/06/06(土) 16:52:37

foreach($a as $tojoin){
 $a = $joined . $tojoin;
}
よりも
$joined = join('', $a);
の方が遅いってこと?なら研究の余地があると思うが。

joinは内部的に配列を追ってるから、そのコストを人間が
負担するのでは比べる意味がない。
951デフォルトの名無しさん:2009/06/06(土) 17:09:04
ほとんどの場合、その程度の速度差を気にしたところで何の意味もない
952デフォルトの名無しさん:2009/06/06(土) 17:36:18
一応計測結果です
http://hcw.sblo.jp/pages/user/m/article?article_id=29631051&stq=session%3A%3A%3A%3A3a93f213efaaaa7db99f1d7175ada485

「.」で連結する度にその分のメモリを確保しているのか、参照する時に一度にメモリを確保するのか

もし前者だったらとんでもないロスになりますから、もしそうだったら何かjoinに代わる手法はあるのか

その辺りの情報が知りたくて質問させて頂きました
953945:2009/06/06(土) 17:38:33
>948
2009-02-08になったのはPHP5.2.6@FreeBSD。
まったくPHPってヤツは。。。
954952:2009/06/06(土) 17:56:11
すみません

>>952
>とんでもないロス

は言い過ぎました。

ある程度のロスがあるので、気持ち的にちゃんとした処理が簡単に出来るならしておきたい

に訂正しまふ
955デフォルトの名無しさん:2009/06/06(土) 18:14:47
>>952
あのさあ・・・・。
連結作業があって、それをそのままドンと出すのと、
配列チマチマ作る作業が先にあって、それからjoinするのとじゃ手間が全然違うでしょ。
それでも通常と配列にはほとんど差がでてないという。

逐次データが出てくるような場合は '.'、元々配列ならjoinの方が早いっていうのは
当たり前のような気がするが。

ためしに配列作ってそれを '.'で繋ぐってテストスクリプト作ってみ。

あとこういうのはクラス化するとどこでロスが出るか分からないから>>950みたいに
裸でスクリプト書くのが普通。

そもそも君が知りたいのはjoinのコストと'.'のコストでしょ?全然テストになってない。
テストスクリプト作り直し。
956デフォルトの名無しさん:2009/06/06(土) 18:18:21
質問

リモートホストをサニタイズ無しで
表示するのって危険?
957デフォルトの名無しさん:2009/06/06(土) 19:22:34
大事なのは、リモートホストの直接菜表示が危険かどうかではなく、
それが何故危険かどうかわからないことだ
958デフォルトの名無しさん:2009/06/06(土) 20:30:46
>>955
お願いします、PHP以外のCやC#とかをいじってから言って下さい

C#には文字列連結用のクラスまでデフォルトで用意されてるんですが…
959デフォルトの名無しさん:2009/06/06(土) 21:10:21
>>958
他の何言語を持ち出してきても結論は変わらないでしょ?
それと>>955がCやC#をいじったことがない前提で話を
しているのはなぜ? w
960デフォルトの名無しさん:2009/06/06(土) 21:20:24
>>959
メモリ確保時のロス、リスト構造、ポインタ、PHPのメモリコピーのタイミングなどの話が全く出てこないので、他言語の事を上げさせていただきました

正直、ここまで話にならないとは思いませんでした
961デフォルトの名無しさん:2009/06/06(土) 22:44:04
>>960
話にならないのはお前のテストコードだろ。
俺は元々C書きだ。
お前が本当にC書きなら、メモリ確保やポインタがどうなってるか知りたい場合ソースコード
読むのが普通だろ。何やってんの?

> メモリ確保時のロス、リスト構造、ポインタ、PHPのメモリコピーのタイミングなどの話

PHPのテストコードレベルでそんな話出てくるわけ無いだろ。
962デフォルトの名無しさん:2009/06/06(土) 23:14:44
>>961
失礼しました。コードを書き直しましたが、これで良かったですか?

http://hcw.sblo.jp/pages/user/m/article?article_id=29631051&stq=session%3A%3A%3A%3A521c5f1096213206131ec5d0622a3c5e

本当に連結されてるのか分からないので一応str_replaceを入れましたが、
無くても同じような結果でした

てかあのコードのどこが問題だったのか分からんが、配列joinの話なんだからリスト構造とポインタの話ぐらい出るだろ
963デフォルトの名無しさん:2009/06/06(土) 23:41:46
>>962
おい・・・・・このテストスクリプトって無駄なjoinを繰り返してないか・・・?
他人にお話にならないとか抜かすのは100年早いと思うぞ。

でだ。単純に、

> for ($ii=0; $ii<$cnt; $ii++) {
> > $sb1 .= $str;
> }
と、
> $sb2 ='';
> $sb2 = join('', $test_array);
とを比較してみたら、これでもやっぱり配列の方が遅かったな($test_arrayは用意してある)。
何か問題を感じたらこういう根本的なとこから追っておくのが普通だろ。
964デフォルトの名無しさん:2009/06/06(土) 23:45:39
まてまて、これは公平な試験じゃないな。片側だけ配列にアクセスしてる。

> for ($ii=0; $ii<$cnt; $ii++) {
> > $sb1 .= $test_array[$cnt];
> }
と、
> $sb2 ='';
> $sb2 = join('', $test_array);
だとjoinの方が早い。

結論:
・'.' と joinはjoinの方が早い。
・配列を使った連結と使わない連結は、使わない連結の方が早い(当たり前だわな)
965962:2009/06/07(日) 00:05:10
配列を使わない方が速いに決まってるってのが分からんのですが

実際にどんな処理をしてるのかは知りませんが、
join時に配列の各要素を回ってメモリサイズを計算

メモリ確保

結合

の方が
一回一回メモリを確保で結合していくよりも速くないですか?

まあ勘違いしてるかもしれんので、今度時間のある時にでもCで確認してみます
966965:2009/06/07(日) 00:11:08
一応

>>965で言ってる配列は、ポインタを格納した配列です。
PHPは値を書き換える時点でメモリをコピーするらしいので、
多分ポインタで持ってるのではないかなと

この時点で間違ってるんかな…
967966:2009/06/07(日) 00:57:22
ああああ変なこと言ってる

>>966は無視してくださいスレ汚しすみません
968デフォルトの名無しさん:2009/06/07(日) 01:03:05
まぁぶっちゃけると、そんなこと気にしてる暇があったらコード書け、と。
今の時代、早いコードより見やすいコードのほうが重要
969デフォルトの名無しさん:2009/06/07(日) 05:59:02
ここで遅い、早い言っている人はそれがクリティカルなプログラムをphpで作っているんだw
970デフォルトの名無しさん:2009/06/07(日) 06:01:27
>>965
> 配列を使わない方が速いに決まってるってのが分からんのですが

配列をシークするコストがなくなるからな。文法無視して例を書くと、

foreach(1..100 as $loop){ $a .= 'abc' }
foreach(1..100 as $loop){ $a .= $b[$loop] }

どっちが早いか明白だろ?

> 一回一回メモリを確保で結合していくよりも速くないですか?

仮にPHPがそう設計されてるとして、結合だけに関してはな。
ただ、君のテストコードだとjoinは配列使ってて'.'は配列使ってないので
、配列のコストがjoinには掛かる。だから、「君のテストコード」
の場合ではjoinの方が早いとは限らない。

>>966
だ・か・ら、

ソース嫁、と。

>>968
そうでない場面もあるよ。まあPHPでは少ないけど。
971デフォルトの名無しさん:2009/06/07(日) 06:40:08
>>969
誰がそんなこと言ってるんだ?
972デフォルトの名無しさん:2009/06/07(日) 11:47:39
>>970
> ただ、君のテストコードだとjoinは配列使ってて'.'は配列使ってないので

.で逐次連結するか、すべて一時配列に格納して最後にjoinするか、
そういう前提でどっちが効率的なのか、って質問だろうに。

勝手なテスト書いてクソの役にもたたない結論出されてもね。
973デフォルトの名無しさん:2009/06/07(日) 12:00:11
言われてるのは、何のためにそこまでテストしたいんだってのがぶれ過ぎてるってことじゃないの?

例えば>>962のコードでは
$var2[] ='a';
ってことをやって計測してるけど、本当にこれが最善の配列の作り方なのかとか、
例えば連結する文字列が固定なのであれば
join('', array('a', 'a', 'a', 'a'))
なんて書き方も可能なのでそっちとの比較もしてみるとか、
考慮に入れてもいいような事がいろいろあるはず。

その辺が甘々なのに、ちっちゃなパフォーマンスにこだわるのが違和感バリバリ。
974デフォルトの名無しさん:2009/06/07(日) 12:10:59
というか、joinよりimplodeの方が速度出るんじゃなかったっけ?
その辺から地道に頑張れ
975デフォルトの名無しさん:2009/06/07(日) 12:26:12
joinはimplodeのaliasだぞ。
976デフォルトの名無しさん:2009/06/07(日) 12:33:52
あら。ほんとだ。
差が出るのはsplitとexplodeか。(正規表現の解釈で?)

うん。おれが地道に頑張る
977デフォルトの名無しさん:2009/06/07(日) 12:44:21
          _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|:;
                   |ニ⊃|  |⊂ニ| || ,|/
                   |_. └ー┘ ._| ||/
                   ヘ 「 ̄ ̄ ̄| /
978デフォルトの名無しさん:2009/06/07(日) 12:45:32
相変わらずそのAAは発達しないんだな
979デフォルトの名無しさん:2009/06/07(日) 13:02:35
テストコードを書いた者ですが、
もともとはC#で言う「StringBuilder」を作りたかったのであのようなコードになりました
書き方が悪かったですね

まあ多分色々勘違いしてると思うので大人しくソース眺めてみます
980デフォルトの名無しさん:2009/06/07(日) 15:57:01
>>960
> 正直、ここまで話にならないとは思いませんでした

この流れ、どう読んでもお話にならないのは自分の方だから、
社会に出て身の程を知った方がいいよ。
981デフォルトの名無しさん:2009/06/07(日) 16:07:23
PHPのスレだなあ

とりあえず、>>979のしたかった話と、大方のレスのレベル(階層)がずれてるのは確かだろ。
文字列連結の、PHPの実装上最も速い方法は 「.」 での連結なのか?っていう疑問。
んで、ただ単にCの階層で具体的な話をする(できる)奴がいなかったってだけじゃないか
# 本人が挙げたテストコードが、その階層以前の問題だったってことも大きいんだろうけど

>>960の煽りはいただけないが、>>980の煽り返しは明らかにレベル(次元)が低い、と思う。

ちなみに俺はPHPのソースコードはダウンロードしたことはあるが読んだことない。
982デフォルトの名無しさん:2009/06/07(日) 19:30:07
需要があるみたいなので、そろそろ次スレ頼む
983デフォルトの名無しさん:2009/06/07(日) 19:32:09
>>981
>ただ単にCの階層で具体的な話をする(できる)奴がいなかった
>ってだけじゃないか

>>961が指摘してることを理解してから出直しな
984デフォルトの名無しさん:2009/06/08(月) 13:07:04
>>945
2/1は日曜なんだから次の日曜は8日で当たり前じゃないのか?
985945:2009/06/08(月) 21:33:48
願わくは984にもう少しスレを遡る勇気あらんことを。
986デフォルトの名無しさん:2009/06/09(火) 09:00:33
何だよ性格ひねくれてんな
987デフォルトの名無しさん:2009/06/09(火) 12:44:40
>>984
2/1の次の日曜は8日なんだが、'next sunday'は1日になったり8日に
なったりするからやっぱりPHPはこういうトコ困ったちゃんだな〜って流れだよ。
988デフォルトの名無しさん:2009/06/09(火) 13:23:18
そういう時は "+1 day" してから訊ねるといい。
989デフォルトの名無しさん:2009/06/09(火) 14:03:16
php4とか旧世代の遺物を使ってんのが悪いんだろ
990デフォルトの名無しさん:2009/06/09(火) 14:09:42
>>989
客のサーバにPHP4しか入ってない(んで触れない)こととか普通にあるからなぁ。
991デフォルトの名無しさん:2009/06/09(火) 15:44:13
うちでもメインのサーバーはPHP4だよw
今度PHP5の新サーバーを立てたけど、まだまだPHP4には頑張ってもらわないとw
992デフォルトの名無しさん:2009/06/09(火) 21:40:12
PHP5に入れ替えても完全に動くって補償があるならいいけど
今とりあえず動いてるなら4使い続けちゃうよね
993デフォルトの名無しさん:2009/06/10(水) 06:50:20
サーバーで動かしてるサービスが複数あるから
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をちょこっと使う必要があるから、そのあたりの関数作ったりして、少し憂鬱になる

サポートとっくに切れてるんだから新しくしてよと
996デフォルトの名無しさん:2009/06/11(木) 23:31:58
今回、実験してみたんだけど、
その国が15:00前後になるように
リンクを投入すると、一番クリック数が
多くなるみたいね。
997デフォルトの名無しさん:2009/06/12(金) 01:21:44
わかんないことがあったんで、
アメリカの掲示板に英語で質問したら
すぐに解決した。2ちゃんねるはもういらない。
998デフォルトの名無しさん:2009/06/12(金) 05:53:41
>>997
2chじゃなくてMLとかだろjk・・・。
999デフォルトの名無しさん:2009/06/12(金) 13:07:44
糞スレ終了
php板に帰れよ
1000デフォルトの名無しさん:2009/06/12(金) 13:11:20
?>
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。