5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

PHP@プログラム板

1 :デフォルトの名無しさん:2009/01/23(金) 21:05:34
webプログラム板の連中があまりにも
気持ち悪いので、こっちに立てました。

2 :デフォルトの名無しさん:2009/01/23(金) 21:07:17
プログラマーなんていうものは
もともと気持ち悪いのが多いものなのだが、
それを考慮しても、webprog板はさらにそれよりも
もう一段、気持ち悪い

とにかくキモサが群を抜いている

3 :デフォルトの名無しさん:2009/01/23(金) 21:08:46
プログラム板 → 腐海と風の谷の境界線(ギリギリ瘴気から守られている)
webprog板 → 腐海のど真ん中(マスクなしでは5分で肺が腐ってしまう)

4 :デフォルトの名無しさん:2009/01/23(金) 21:22:17
webprog板にいるのはマジでこういうレベルだから。↓

http://takeshima.2ch.net/test/read.cgi/news4vip/1232701402/

5 :デフォルトの名無しさん:2009/01/23(金) 22:45:49
http://blog.ohgaki.net/espcs_if_a_fa_ia_a_pa_e_oa_a_sa_da_ca_sa

ここに

「そもそもBASIC認証自体が安全ではなく通常利用は避けるべきです。」
と書いてあるのだが、これって本当なのか?

6 :デフォルトの名無しさん:2009/01/24(土) 09:14:28
いまさら感

7 :デフォルトの名無しさん:2009/01/24(土) 10:59:44
どっちも底辺レベルは変わらんな

8 :デフォルトの名無しさん:2009/01/24(土) 15:03:16
php4.4.4

datetime型をyyyy/mm/ddで表示させたいんだけど
どうすればいいの?

9 :デフォルトの名無しさん:2009/01/25(日) 02:06:26
そんな型はありません

10 :デフォルトの名無しさん:2009/01/25(日) 03:48:00
>>8
->format

11 :デフォルトの名無しさん:2009/01/25(日) 06:38:00
<?php
setcookie("aaaaa","12341234");
print $_COOKIE['aaaaa'];
?>

このプログラムを実行すると、
もしかして、一回パソコンの中にめがけて
サーバーから12341234が送信されてきて、
そんで、次にアクセスしたときに、こんどは
パソコンから、サーバーにめがけて、
12341234が、送信されてるの?

つまり、パソコンの中の文字列がそのまま
画面に表示されるのでなくて、いったん
パソコンから出て行って、インターネットレイヤーを通過して、
相手のサーバーまで届いて、そんで今度は変数にセットされて、
またこっちのマシンに戻ってきて、それで最終的に表示されるの?

12 :デフォルトの名無しさん:2009/01/25(日) 09:06:57
>>11
12341234は送信されません

13 :デフォルトの名無しさん:2009/01/25(日) 09:15:34
>>12


14 :8:2009/01/25(日) 14:33:24
言葉足らずですまんです。

mssqlにあるdatetimeをphpでselectしたときだったもんでdatetime型という表現をさせてもらいましたわ。
でもって、時刻の部分が邪魔だったので、splitで分解して、strtotimeのformatにY/m/dで希望する形式に
出せました。

どもでした。


15 :デフォルトの名無しさん:2009/01/26(月) 06:11:43
質問

「予約語は変数の名前として使ってはいけません」
って教科書に書いてあるんだけど、
実際にやってみたらエラーにもならず、
実行されてしまうんだけど、エラーはでないの?

<?php
$if=1;
print $if;
?>

16 :デフォルトの名無しさん:2009/01/26(月) 06:44:59
<?php

for($i=0x127;$i<=0x255;$i++){

$b=$i;

$c=chr($i);

print $c;
print "<br>";
}


?>
このコードを実行すると、ところどころ、□になって
しまう文字があります。
これはこういうものなの?

17 :デフォルトの名無しさん:2009/01/26(月) 06:46:41
やりたかったことは、
アスキー文字の127−255って
どんなものなのか、見たかったということです。

18 :デフォルトの名無しさん:2009/01/26(月) 07:08:57
<?php
while($a=array_shift($_SERVER)){
print ($a);
print "<br>";
}
?>

このスクリプトを実行すると、
サーバー実行環境情報が
全部出てくるよ

19 :デフォルトの名無しさん:2009/01/26(月) 07:55:46
>>15
エラーは出ないみたいだ。

PHP: キーワードのリスト - Manual
http://jp2.php.net/manual/ja/reserved.keywords.php

> 以下のキーワードはいずれも定数、クラス名、 関数名として使用することはできません。
> これらを変数名として使用することは一般的には可能ですが、 混乱を生じる可能性があります。

変数には頭に $ がついているからだろう。

20 :デフォルトの名無しさん:2009/01/26(月) 08:07:51
>>19
サンキュー
人間が混乱するってだけなのね。

21 :デフォルトの名無しさん:2009/01/26(月) 08:09:01
質問

arrayを使わずに
要素を配列につっこむ便利な記法ってないの?
perlにはあったんだけど?

たとえば、
a,b,c,d,eの5要素を配列に入れたいとして、
arrayを使わずに、っていうか、クオーテーションを打たずに
格納する方法ってないのかな?

22 :デフォルトの名無しさん:2009/01/26(月) 09:37:13
<img src="./img/****"> のファイル名の部分に、MySQLの値 $row["@@@@"]をいれたいんだが
上手く表示できない・・・誰か助けてください><

23 :デフォルトの名無しさん:2009/01/26(月) 09:55:06
質問

PEAR + PECLが
PHPの「エクステンション」なの?

24 :デフォルトの名無しさん:2009/01/26(月) 10:25:39
>>21
PHP: 配列 - Manual
http://jp.php.net/manual/ja/language.types.array.php
PHP: array - Manual
http://jp.php.net/function.array

PHPには、配列変数の初期化方法は2つしかないと思う。
・array()を使う。
・$a[] = "hoge"; $a[] = "fuga"; という風に、未定義の変数に[] をつけて要素を一つずつ代入。

Perlはよく知らんのだけど、この記法のことを言ってる?

Perl 配列とリストデータ 【 バイクショップ パルス 】
http://www.pals-net.co.jp/a/perl3.html
> クォートワード(quote word)とは、文字列(空白以外)をリストリテラルへ記述する際に使えるショートカット
> @girls = ( "lucy" , "nancy" , "angie" , "sarah") ;  これはかなり面倒だが、、、
> @girls = qw( lucy nancy angie sarah );        このように書けば同じ結果が得られる

こういうのはPHPにはないと思う。

あと、
> クオーテーションを打たずに
これはカンマのことだと推測したんだが、どう?

25 :デフォルトの名無しさん:2009/01/26(月) 10:28:15
>>22
<img src="./img/<?php echo $row["@@@@"]; ?>">

この記法なら、たいていのサーバの設定で動くはず。
これで駄目ならまた質問して。

26 :デフォルトの名無しさん:2009/01/26(月) 10:36:34
>>21
$myArray = explode(" ", "lucy nancy angie sarah");

27 :デフォルトの名無しさん:2009/01/26(月) 10:48:17
>>26
あー、文字列リテラルだけならそれで行けるか。

28 :デフォルトの名無しさん:2009/01/26(月) 10:50:28
>>24 自己訂正。
> > クオーテーションを打たずに
> これはカンマのことだと推測したんだが、どう?

よく見たらクオーテーションもないのね。何やってんだ俺。

29 :デフォルトの名無しさん:2009/01/26(月) 14:15:12
>>25
ありがとうございました!動きました!感動しましたw

30 :デフォルトの名無しさん:2009/01/26(月) 15:58:00
>>24
Rubyも
a = %w(hoge mage hage)
みたいにいけたよな。
"hoge", "mage", ・・・ がまどろっこしいといえばそうだね。

31 :デフォルトの名無しさん:2009/01/27(火) 14:06:59
PHPはあらゆる記述がまどろっこしいからな。

32 :デフォルトの名無しさん:2009/01/27(火) 15:33:15
>>31
どこが?

33 :デフォルトの名無しさん:2009/01/27(火) 15:48:28
複数の値でtrimする方法を教えてください。
こんな感じで考えています。
$arr(りんご、どりあん、ポテト)
trim($str, $arr)

34 :デフォルトの名無しさん:2009/01/27(火) 15:54:26
>>32
31じゃないけど、PHPが冗長なところはたくさんある。
なんでこんな表記なんだ、洗練された構文を用意しろよっていつも思う。

例えば、変数名に$、配列が array、多重代入が list とかね。
list($a, $b) = array(0, 1);

これが例えばPythonだと
# カッコ()はなくてもいい。
a, b = (0, 1)

しかしこれは悪いことばかりではない。文の意味をarrayやlistというキーワー
ドで検索してすぐ調べられる。
Pythonだと構文の意味をある程度勉強しなきゃならない。

構文が単純なほうが入門はしやすかったりする。LISPなんかその最たるものだな。


35 :デフォルトの名無しさん:2009/01/27(火) 16:00:23
>>33
すまんが意図が分からない。

1行目はこれでOK?
$arr = array('りんご', 'どりあん', 'ポテト');

2行目ではなにが起こるの?
trim($str, $arr)
を実行したあと、trim関数はなにを返して、$str と $arr にはなにが入っているの?


36 :デフォルトの名無しさん:2009/01/27(火) 16:29:44
スレを見失いましたので質問します。
複数の値をでトリムってできるんですか?
$arr(りんご、どりあん、ポテト)
$str="今日の買出しは、りんごとみかんとどりあんね。"
$STR=trim($str, $arr)
echo "今日の買出しは、とみかんとね。"って感じで実装したいです。

37 :デフォルトの名無しさん:2009/01/27(火) 16:48:47
>>36
PHP: str_replace - Manual
http://jp.php.net/manual/ja/function.str-replace.php

$arr = array("りんご", "どりあん", "ポテト");
$str = "今日の買出しは、りんごとみかんとどりあんね。";
$str2 = str_replace($arr, "", $str);
echo($str2);
=> 今日の買出しは、とみかんとね。

ちなみに trimってのは、余計なものを切り落とすって意味で、プログラミング
言語では普通、両端の空白や改行文字を削除することを言う。
置換は普通はreplace。


38 :デフォルトの名無しさん:2009/01/27(火) 17:09:24
>>37
ありがとうございます。
もう忘れません。

39 :デフォルトの名無しさん:2009/01/28(水) 00:27:42
>>24,26
サンキュー、まさにそれが言いたかった。ありがと

40 :デフォルトの名無しさん:2009/01/28(水) 03:38:18
<?php

for ($i = 1; $i <= 100; $i++) {
$d[$i]= rand(0,999);
}

foreach($d as $b=>$c){
print $b."=>".$c;
if ($c==777){
print '<font color="crimson">スリーセブン!</font>';
}
print "<br>";

}
?>

----------------------------------------------------------
スロットマシン作ってみた。
000−999のランダムな数字を100個生成し、
もし777だったら、赤文字で、「スリーセブン!」と表示する。
偽造した特殊景品を持ってくれば換金もできる。

41 :デフォルトの名無しさん:2009/01/28(水) 04:55:01
PHPマニュアル、
chm版、の日本語版、
ダウンロードしてきて
インストールしたんだけど、メニューが文字化けしている。
なんで?

42 :デフォルトの名無しさん:2009/01/28(水) 04:56:44
>>41
自己レス
有名な問題みたいだな
なんで本家は対応しない?

43 :デフォルトの名無しさん:2009/01/28(水) 05:32:28
PHPのマニュアルってchm版はだめだね
字が小さすぎる
フォントを大きくすることも、なぜかできない。

44 :デフォルトの名無しさん:2009/01/28(水) 05:40:54
<?php
for ($i=1;$i<=100;$i++){
$a[$i]=rand();

print $a[$i]." => ".$a[$i]%3;
print "<br>";
}
?>

---------------------------------------------------
ある数を3で割った余りは、
0か1か2の、3通りにしかならない、ということが、
視覚的に、ビジュアルに把握できる良質なプログラム。

45 :デフォルトの名無しさん:2009/01/28(水) 05:41:43
>>44
これちょっと表示が、ガタガタするんだよな
sprintfとかで整形できるのかな?

46 :デフォルトの名無しさん:2009/01/28(水) 08:51:28
PHPでエラーが出たときに、
ドラクエの、のろわれた武器を装備したときのサウンドの、
「デンデンデンデンデン、デン、デン♪」
って音を鳴らしたいのですが、どうやればいいですか?

今は、エラーメッセージは赤で表示されるようにしてあります。

47 :デフォルトの名無しさん:2009/01/28(水) 09:12:06
date関数の引数の説明のところで
Iとlってのがあって、わからんわこんなの

48 :デフォルトの名無しさん:2009/01/28(水) 09:28:26
<?php
for($i=1;$i<=100;$i++){
$a[$i]=rand(1,1000);
}
foreach($a as $b){
print $b;
print " ";
}
print "<br>";
print "<hr>";
print "<br>";

sort($a);

foreach($a as $b){
print $b;
print " ";
}
?>

-----------------------------------
これは、100個の数字をランダムに出力し、
それをsortで並び替えて画面に表示するプログラムである。

49 :デフォルトの名無しさん:2009/01/28(水) 09:56:18
ここは>>1の日記帳なんですね

50 :デフォルトの名無しさん:2009/01/28(水) 10:33:33
>>49
まあそれはそれでいいじゃん。
自分はこういうのも結構好きだな。プログラミングを始めたばかりのころの
ワクワクした気持ちを思い出すから。

51 :デフォルトの名無しさん:2009/01/28(水) 10:38:11
print "<br>
<hr>
<br>";
だな

52 :デフォルトの名無しさん:2009/01/28(水) 10:47:19
switch で、break忘れると、
流しソーメンみたいに、だーーっと
全部実行されてしまうの、どうにかできない?

53 :デフォルトの名無しさん:2009/01/28(水) 11:29:35
>>52
それはCからの伝統で、PHPだけじゃなくて、JavaでもC++でもみんながうんざり
している。あきらめましょう。

ちなみに、分岐によって変数に値をセットするだけなら、連想配列を使った
ほうがきれいに書ける場合もある。


54 :デフォルトの名無しさん:2009/01/29(木) 01:12:42
switchを使って綺麗に書けるような場面って本当に少ないよなあ。

というか、俺の場合は大抵
ifとelseifでスイッチもどきやっちゃうなあ。本当は良くないんだろうけど。

55 :デフォルトの名無しさん:2009/01/29(木) 05:54:44
964+8 :動け動けウゴウゴ2ちゃんねる [sage] :2009/01/29(木) 00:14:53 ID:PetgFQIT0 (1/5) [PC] ?PLT(22225)

お試し版を作ってみたが、基礎番号分布は意外と疎らだった件( ゚∀゚)y─┛~~

be別スレ立てランキング@ニュース速報(お試し版)
http://snowslide.s201.xrea.com/bedb/
※とりあえず今現在のスレ立てランク、更新はしません。

みんな結構立ててるよねぇ、複垢はどの位の割合だろか?

-------------------------------------------------------

↑これってPHP?

56 :デフォルトの名無しさん:2009/01/29(木) 06:11:53
「抽象クラスはそのままではインスタンスを作成できません、
まず子クラスに継承して、その子クラスからインスタンスを作成します」

って教科書に書いてあるんだけど、だとしたら、
もし抽象クラスを作って、それを、どこからも継承できないように、
final指定しておいたら、そのクラスは、永遠に、どこからも
使われることなく、35才の独身女みたいに孤立して宇宙を
永遠にさまようの?

57 :デフォルトの名無しさん:2009/01/29(木) 09:33:29
>>54
> ifとelseifでスイッチもどきやっちゃうなあ。本当は良くないんだろうけど。
別にいいんじゃね?

ちなみにPythonにはswitch文がないから、if 箸キ elif で全部済ませる。
Ruby はswitch case文の代わりに case when文があって、これはbreak不要。

58 :デフォルトの名無しさん:2009/01/29(木) 09:41:42
あ、文字化けした。スマン。
if 〜 elif な。

59 :デフォルトの名無しさん:2009/01/29(木) 11:10:51
配列で困っています。ご教授お願いします。

array("トマト缶","オレンジ","みかん","オレンジ100%","トマトソース",
   "ぶどう","ブドウアイス","オレンジムース");

↑の配列を下記のように出力する方法を教えてください。

print_r("トマト缶"=>"2", "オレンジ"=>"3", "みかん"=>"1", "みかん"=>"1",
    "ぶどう"=>"1", "ブドウアイス"=>"1",)

60 :デフォルトの名無しさん:2009/01/29(木) 11:12:51
↑(修正)の配列を下記のように出力する方法を教えてください。

print_r("トマト缶"=>"2", "オレンジ"=>"3", "みかん"=>"1",
    "ぶどう"=>"1", "ブドウアイス"=>"1",)


61 :デフォルトの名無しさん:2009/01/29(木) 11:45:58
>>59-60

法則がわからん

62 :デフォルトの名無しさん:2009/01/29(木) 12:08:23
http://phpspot.net/php/man/php/function.money-format.html

「注意: システムで strfmon が使用可能な場合
のみ money_format() 関数が定義されます。例
えば、Windows では strfmon は使用できません。
そのため money_format() は Windows では 定
義されていません。」


って書いてあるが、ようはWindowsでは、テストできない
関数ということかな?

なんでWindowsではstrfmonは利用できないんだ??

63 :デフォルトの名無しさん:2009/01/29(木) 12:09:19
>>59
もしかして、オレンジは3回出現してるから、「3」なの?

64 :デフォルトの名無しさん:2009/01/29(木) 12:10:24
>>59
それで、トマトは2回出現してるから、「2」なんだな?
それで、他の野菜は1回しか出現してないから、1だと。

65 :デフォルトの名無しさん:2009/01/29(木) 12:19:12
<?php
$n = 1234567890;
$a = number_format($n);
print $a;
?>


--------------------------------
PHPって、これだけで、3桁ごとに
カンマ打てるんだね。

同じことをPerlでやったら、40行はコードを
書かないといけない。

66 :デフォルトの名無しさん:2009/01/29(木) 12:21:44
君が40行コードを書いてくれれば俺はそれを呼び出すために1行書けば済むのでうれしい

67 :デフォルトの名無しさん:2009/01/29(木) 17:15:23
>>63, 64
そうそう
俺も無茶したくないけど用意されたデータが・・・
違う方法あたってみます。

68 :デフォルトの名無しさん:2009/01/30(金) 03:17:21
>>62
その関数がWindowsでは定義されていないAPIを
利用していると考えるのが一般的では

69 :デフォルトの名無しさん:2009/01/30(金) 03:19:16
>>65
printf,sprintfは?

70 :デフォルトの名無しさん:2009/01/30(金) 04:44:10
質問

「ボタンが押されたら、数字を1増やす」

ってプログラムを作ってるんだけど、
hiddenになんかの値を格納して(aaa=1とか)
それで、1がきたら、カウントアップ、とかって
したほうがいいかなあ?

71 :デフォルトの名無しさん:2009/01/30(金) 04:44:42
>>68
API、、、
PHPでもAPIとかって関係あるのですか?

72 :デフォルトの名無しさん:2009/01/30(金) 04:45:14
>>69
そんなの使わない

専用関数があるんだから。

73 :デフォルトの名無しさん:2009/01/30(金) 04:55:57
 ユーザーの画面に
バナー広告を表示するだけで、
同時に、クッキーをセットするって可能なの?

74 :デフォルトの名無しさん:2009/01/30(金) 05:03:47
>>72
Perlにもprintf,sprintfはあるから、
1行で済むよっていう話

75 :デフォルトの名無しさん:2009/01/30(金) 05:06:37
>>71
PHPそのものはC言語で書かれてるので

76 :デフォルトの名無しさん:2009/01/30(金) 09:23:20
is_nan と
is_numeric の違いがわからないよー

77 :デフォルトの名無しさん:2009/01/30(金) 09:38:26
<?php
$data = "10";

if ( is_numeric($data) ) {
print "numeric";
} else {
print "not numeric";
}
?>

----------------------
これを実行すると、numericって出るんだが、
$dataを文字列としてPHP君に認識してもらうには、
どういうワイロを渡せばいいのかな?

78 :デフォルトの名無しさん:2009/01/30(金) 09:43:04
>>74
いやあ、専用関数があったほうが
数段便利でしょう?

79 :デフォルトの名無しさん:2009/01/30(金) 09:43:38
>>75
CだとAPIとか考えないといけないんだっけ?
だから結局、WindowsのAPIの話がPHPのレイヤーまで
上がってきてしまうんだ?

80 :デフォルトの名無しさん:2009/01/30(金) 09:46:47
>>78
そうだね
便利だと思うほうを使えばいいと思うよ
Perlだと40行〜ってところが引っかかったので
言ってみたw


81 :デフォルトの名無しさん:2009/01/30(金) 10:21:23
グーグルで「PHP」って入れて検索して、
でてきたページにグールグの広告が張ってあって、
「うつ病を解消する唯一の方法」
とかって広告がでてきてワロタ

グーグルは本当になんでも知っている。

82 :デフォルトの名無しさん:2009/01/30(金) 10:37:21
<?php

class aaa
{


function bbb(){
print "aaaaa<br>";
}
function ccc(){
$this->bbb();
}

}

$c=new aaa();
$c->ccc();
$c->bbb();
?>
-----------------------------------
OOPもわかってくると、おもろいな。

83 :デフォルトの名無しさん:2009/01/30(金) 10:56:35
クラスをnewするときは、パーレンはつけても、つけなくても、
どっちでもいいんだね。

(1)$hoge = new hoge;
(2)$hoge = new hoge();

84 :デフォルトの名無しさん:2009/01/30(金) 11:42:45
この前の問題、これでいけたわ。

http://d.hatena.ne.jp/himadatanode/20080321/p5

この前拾ったjavascriptのヘルプ、さっきちょっと使って気
づいたけど、文字サイズ小さすぎて読めない。理由はよ
く分からないけど、これはどげんかせんといかん。

 適当に今調べた感じだと、IEと連動しているとかで、イン
ターネットオプションから、ユーザ補助で、指定のフォント
サイズを使わないとか言うようなのをチェックすると良いら
しいんだけど、

85 :デフォルトの名無しさん:2009/01/30(金) 18:11:17
http://www.codegear.com/jp/downloads/free/delphiphp

さっきこのページを表示しようとしたら、なぜか
すっごく重くって、それで、ページでなくて、なぜか
ソースがまるっと出てきてしまったんだけど、なんで?

86 :デフォルトの名無しさん:2009/01/30(金) 19:11:46
>>85
こっちでは再現しないなあ。
(IE7 and Opera9.61 on WinXP)

87 :デフォルトの名無しさん:2009/01/31(土) 06:12:38
http://kochinet.info/usr/php/4.php

ここに
「?> の意味(line:6)
これは<?phpに対応していて、PHPという言語をここで終わります!
という意味だ。これがないともち!エラーだZE! 」

、、、って書いてあるが、実際には、?>のPHPの閉じタグは
無くても、エラーにはならないよね?

88 :デフォルトの名無しさん:2009/01/31(土) 06:55:01
newすることを、

「コンストラクタ」

と説明してあるサイトを見つけたのですが、この
説明は間違ってますよね?

PHPのOOPにおける「コンストラクタ」とは、
クラス名と、同名のメソッドを置いておくと、
newされたときに、誰も呼ばないでも、自動的に
それが実行されるということですよね。

89 :デフォルトの名無しさん:2009/01/31(土) 13:14:59
newはオブジェクトの作成だろ
そのついでにコンストラクタも呼び出せますよって事だから
あたらずとも遠からずだが、近くない、ぜんぜん近くない

でもここで陰口たたくよりメールしてやりゃいいんじゃね
そのとあるサイトに

90 :デフォルトの名無しさん:2009/01/31(土) 13:30:23
>>88
まあそんな感じ。ちなみに new は演算子の一つな。

PHP: 演算子の優先順位 - Manual
http://jp2.php.net/manual/ja/language.operators.precedence.php


>>89
> でもここで陰口たたくよりメールしてやりゃいいんじゃね
まあまあ。自信がなかったから、ここで確認したんだろう。

91 :デフォルトの名無しさん:2009/01/31(土) 19:16:38
>>87
後に黒歴史化するパターンだなw

92 :デフォルトの名無しさん:2009/01/31(土) 20:13:16
>>87
> 、、、って書いてあるが、実際には、?>のPHPの閉じタグは
> 無くても、エラーにはならないよね?

PHP: 命令の分離 - Manual
http://www.php.net/manual/ja/language.basic-syntax.instruction-separation.php
> ファイル終端における PHP ブロックの終了タグはオプション(任意)です。

Zend Framework: Documentation
http://framework.zend.com/manual/ja/coding-standard.php-file-formatting.html
> B.2.1. 全般
> PHP コードのみからなるファイルでは、終了タグ ("?>") は決して含めてはいけません。

Zendのコーディング規約にもなっている。これは知らなかったな。

93 :デフォルトの名無しさん:2009/01/31(土) 20:20:40
なんで含めたらいけないの?
W3C信者を発狂させたいの?

94 :デフォルトの名無しさん:2009/01/31(土) 20:28:36
?>の後に改行を入れると無駄に1文字または2文字を出力してしまう
そういうバグを出さないためではないかと愚推

95 :デフォルトの名無しさん:2009/01/31(土) 21:38:09
print "<br>";


これをするための専用関数ってないのかな?
毎回打つの疲れる

96 :デフォルトの名無しさん:2009/01/31(土) 22:50:54
テンプレート使い出したら気にならない

97 :デフォルトの名無しさん:2009/01/31(土) 23:01:09
>>95
定型文を登録できる入力支援系ツールとかを使ってみるとか

98 :デフォルトの名無しさん:2009/01/31(土) 23:09:26
>>42
本家に要望出したらいいと思う。
オレは古いの使っているけど新しいのと比較すんの面倒なってきた・・・

どっかのページに文字化け解消法なかった毛?
再コンパイルするんだったような

よかったら新しいの作ってうpしてくれ

>>87
そだね。
フレームワークのCodeIgniterなんかも、コーディング作法で ?>を省略することを推奨しているくらいだ


99 :デフォルトの名無しさん:2009/02/01(日) 02:43:21
>>98
再コンパイル済みのがあったんで
そのままダウンロードして使った。

100 :デフォルトの名無しさん:2009/02/01(日) 02:43:53
あと字もおっきくできる
IEのオプションいじったらできた

101 :デフォルトの名無しさん:2009/02/01(日) 03:24:47
<?php
print "警告- このウェブサイトにアクセスすると、コンピュータに損害が生じる可能性があります。";
?>

102 :デフォルトの名無しさん:2009/02/01(日) 03:41:30
小沢さんについてはまだ世の中に具体的に明らかにできないことが沢山あるが、
他の人々に迷惑をかけるので、私の死後明らかになるよう書き残しておいてある。

103 :デフォルトの名無しさん:2009/02/01(日) 03:42:04
>>102
これがデストラクタ?

104 :デフォルトの名無しさん:2009/02/01(日) 03:58:33
<?php
$d = '%E3%81%93%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E7%A7%98%E5%AF%86%E3%81%AE%E4%BC%9A%E8%A9%B1%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%AD%EF%BC%81';
$a = urldecode($d);
print $a;
?>

105 :デフォルトの名無しさん:2009/02/01(日) 04:40:11
<?php
do {
$a=rand(1,10000);

print $a;
print "<br>";

(
}while$a>1000) ;
?>

----------------------------------------

90%の確率で数値を表示するプログラム

106 :デフォルトの名無しさん:2009/02/01(日) 13:57:34
大手大企業に勤める俺が簡単に説明してやろう。
100人以上見てきたけど、この傾向だけは異論を許さない。


[クラス1]MARCH:テキストや本を見て仕事をする


[クラス2]旧帝大、早慶:テキストや本の原理を理解して仕事をする。


[クラス3]東大、京大:テキストや本の原理を新たに創造する。

例えばナノ測定器のマニュアルがあるとするだろ。
MARCHの奴らはそれに書かれている順番で、何も考えずにボタンを押して作業するのに精一杯。

旧帝大卒の奴らは、測定器の原理(波長のコヒーレンスや方程式など)を自分で理解して装置を使うから、
測定の精度が上がる。


東大の奴らは、測定器の配線とか回路を改造して新しい装置に改造してしまう。
あれにはたまげた。

東大卒だと会社の昼休みに数学のアルゴリズムの問題をみんなで考えて遊んだりする。
MARCH卒はそれが無い。自分の与えられた仕事だけする奴が多い。
だから旧帝大卒とかは夜遅くまで残って仕事してるけど、MARCH卒の奴らはすぐに帰って合コン。

どちらが人生を楽しんでるかというとMARCH卒かも知れないが、
仕事のレベルは段違い。

107 :デフォルトの名無しさん:2009/02/02(月) 04:49:11
インターフェースって、
PHPにポリモーフィズムを
実装するためのものなの?

108 :デフォルトの名無しさん:2009/02/02(月) 05:12:24
>>107
はまちがえた

109 :デフォルトの名無しさん:2009/02/02(月) 05:12:56
やりなおし

インターフェースって、
PHPで多重継承をするための
ものなの?

110 :デフォルトの名無しさん:2009/02/02(月) 10:06:23
またおもしろい関数を見つけた。

<?php
$str = '1234567890';
$shuffled = str_shuffle($str);

echo $shuffled;
?>

これで、ストリングの内容を
自動でシャッフルしてくれる。
わざわざrand使って〜
配列使って〜
とかってやらなくて済む。

111 :デフォルトの名無しさん:2009/02/02(月) 11:31:37
http://www.google.co.jp/search?q=%91%BD%8Fd%8Cp%8F%B3%81@%96%E2%91%E8%93_&btnG=%8C%9F%8D%F5

多重継承の問題点について調べている。
いろいろ根深い問題がありそうだな

112 :デフォルトの名無しさん:2009/02/02(月) 12:09:14
<?php

$a=fopen("1.txt",'r');
while($b=fgets($a)){
$c=str_replace("。","wwwwwwwwwww<br>",$b);
print $c;
}

?>

自動的に草を生やすプログラムが完成した。
これで世界を征服できる。

113 :デフォルトの名無しさん:2009/02/02(月) 12:09:46
「1.txt」例

TV界の崩壊ぶり (ゲンダイネット)
http://news.www.infoseek.co.jp/entertainment/story/02gendainet07026766/

●地方局は壊滅状態になり東京キー局も潰れるぞ!

 はたして“予言”は現実になるだろうか。

 日本テレビの氏家斉一郎取締役会議長(82)が発売中の「東洋経済」で、広告不況にあえぐテレビ界の未来をこ
う予測している。

「トータルのパイが少なくなってきている中でも、たとえば日本テレビがどこかとくっついて5局体制を4局体制に
するということは、
マスコミ集中排除原則により、法律的にできない。(中略)そうすると、少なくなったものを5局で分けていかなく
てはいけない。
しかし、全体を潤すわけにいかないぐらいの需要になってくれば、上位2〜3社しか食っていけなくなるだろう」

114 :デフォルトの名無しさん:2009/02/02(月) 12:10:47
「変換後」
TV界の崩壊ぶり (ゲンダイネット)
http://news.www.infoseek.co.jp/entertainment/story/02gendainet07026766/
●地方局は壊滅状態になり東京キー局も潰れるぞ!  はたして“予言”は
現実になるだろうかwwwwwwwwwww
 日本テレビの氏家斉一郎取締役会議長(82)が発売中の「東洋経済」で、
広告不況にあえぐテレビ界の未来をこう予測しているwwwwwwwwwww
「トータルのパイが少なくなってきている中でも、たとえば日本テレビがどこかと
くっついて5局体制を4局体制にするということは、マスコミ集中排除原則により、
法律的にできないwwwwwwwwwww
(中略)そうすると、少なくなったものを5局で分けていかなくては
いけないwwwwwwwwwww
しかし、全体を潤すわけにいかないぐらいの需要になってくれば、
上位2〜3社しか食っていけなくなるだろう」

115 :デフォルトの名無しさん:2009/02/02(月) 12:33:09
mod_phpだと
printer_openって使えないの?

116 :デフォルトの名無しさん:2009/02/02(月) 13:22:27
MySQL+PHP+Apacheでローカルにサーバー立ち上げてデータベース作ったんだが、
これをWebサーバーに上げるときどうすればいいのかわかりません・・・
作ったファイルをそのままサーバーに上げても起動しないですよね?

117 :デフォルトの名無しさん:2009/02/02(月) 20:27:39
>>116
動くんじゃない?

118 :デフォルトの名無しさん:2009/02/02(月) 20:50:14
>>117
サーバーは別のコンピュータにあってMySQLとか入ってないんです
サーバーに上げるのは、phpで記述したファイルのみですが動きますか?

MySQLのデータベースはコマンドプロンプトで立ち上げましたし、
phpにはMySQLのパスワードを記述しました。
これが別のサーバーでphpファイルのみで動くのか疑問です・・・

119 :デフォルトの名無しさん:2009/02/02(月) 21:01:15
>>118
それだと動かない。
サーバーにもMySQLをインストールしないと。

120 :デフォルトの名無しさん:2009/02/02(月) 21:32:27
>>119
ありがとうございました、やっぱり動かないですよね
サーバーにも同じ環境が作れれば動きますよね、やってみます

121 :デフォルトの名無しさん:2009/02/02(月) 21:50:19
そのサーバーってのは誰が管理してるの?
いわゆる無料のレンタルサーバー?

122 :デフォルトの名無しさん:2009/02/02(月) 22:04:55
大学のサーバーで教授が管理してます
レンタルサーバーも考えましたけど無理っぽいですね

123 :デフォルトの名無しさん:2009/02/02(月) 22:22:51
無料で借りれるレンタルサーバーによくmysql入ってるよ
そういうのにすれば?

124 :デフォルトの名無しさん:2009/02/02(月) 22:48:04
そうなんですか!情報ありがとうございます!!!

125 :デフォルトの名無しさん:2009/02/03(火) 04:50:43
>>116
大学生用にhomeの容量が100KB程度でいいから
LAMPのあるサーバを無料で貸し出してくれるところがあると便利だよな

126 :デフォルトの名無しさん:2009/02/03(火) 10:12:00
PHP勉強してるのって大学生が多いのか?

127 :デフォルトの名無しさん:2009/02/03(火) 10:12:33
>>125
無料で借りれるサーバーなんていくらでもあるよ
mysqlもphpも最初から入ってることがおおい

128 :デフォルトの名無しさん:2009/02/03(火) 10:34:36
質問

PHPエディタで、
「テンプレート」→「クラス」
って選ぶと、

class () {

}

ってひな型が出てくるんだが、
クラスの定義に()パーレンはいらないよね?

ってことは、これってバグ?

129 :デフォルトの名無しさん:2009/02/03(火) 10:45:31
<?php
class greet {
function greet($a){
print "hello! $a";
}
}

$b=new greet('ぼっさん');

?>

クラスの例

130 :デフォルトの名無しさん:2009/02/03(火) 10:52:12
<?php
class greet {
function __construct($a){
print "hello! $a";
}

function __destruct() {
print "I have died!";
}
}

$b=new greet('ぼっさん<br>');
unset($b);


?>

-----------------------------------------
コンストラクタと、デストラクタの例。

131 :デフォルトの名無しさん:2009/02/03(火) 19:25:32
>>128
>PHPエディタで
作者に聞け

132 :デフォルトの名無しさん:2009/02/04(水) 02:07:42
>>129,130
何がしたいの?

133 :デフォルトの名無しさん:2009/02/04(水) 06:56:05
>>132
>49-50

134 :デフォルトの名無しさん:2009/02/04(水) 13:09:44
だめだ。
PDO+sqlite3で
データーを読み込む方法がわからない。

fetchの使い方がわからない。

135 :デフォルトの名無しさん:2009/02/04(水) 13:18:50
PDO使わないでPHPのネイティブ関数使えばいいじゃん?

っていうかもしれないけど、sqlite2ならそれでいけるけど、
sqlite3だと、ネイティブ関数、使用不可ですから。

3の場合は、必ずPDO使わないといけない。
そうでないと、エラーになる。

だれかPDOのfetchの使い方教えて。

136 :132:2009/02/04(水) 17:04:30
>>133
把握した

137 :デフォルトの名無しさん:2009/02/05(木) 00:53:08
>>135
とりま、「pdo sqlite」でググって、一個目の検索結果クリックしてこい

138 :デフォルトの名無しさん:2009/02/05(木) 20:13:48
>>137
それは古いから役に立たない
ソースをコピペして実行しても、全部エラーになる。

139 :デフォルトの名無しさん:2009/02/05(木) 20:58:30
<?php
$dbh = new PDO('sqlite:./test.db', null, null);


$sth = $dbh->prepare("SELECT colour FROM fruit WHERE id=1");
$sth->execute();

$result = $sth->fetch(PDO::FETCH_NUM);

print $result[0];
print("<br>");
?>

140 :デフォルトの名無しさん:2009/02/05(木) 21:00:48
>>139
よりも、もっとカンタンにデーターを取ってこれる方法無い?

データーベースの構造は、

id     |name    |colour
1     |みかん    |yellow
2     |すいか     |green
3     |トマト     |red

こういう状況で、
id=1
の colourのデーターだけを取ってきて表示したい。
なのに、結果が配列で返ってきてしまって、必ず
print $result[0];
ってやらないといけない。これがめんどうくさい。
配列でなくて結果を受け取る方法は無いのか?

141 :デフォルトの名無しさん:2009/02/05(木) 21:03:02
つまりprint_rすればわかるけど、
結果が、

Array ( [0] => green )

って形で帰ってくる。配列なんだよね。
これがイヤ。
普通に変数に入る形で結果を受け取ることは
できないのか?こっちが欲しいのはgreenだけなの。
[0]とかいらないから。

142 :デフォルトの名無しさん:2009/02/05(木) 21:07:59
現状、PHPとSQLと、
2つの言語を同時に並行して学ばないといけない。

バイリンガルにならないといけない。
これがつらい。東大に受かるような記憶力のいい人なら
苦にならないのかもしれないが、こちらはPHPだけ学べば
いいんだ、って最初思ってたのに、実際やってみると、データーの
ストアと取り出しで、データーベースの勉強もしなければならない。
SQLを学ばされる。トランザクションやロールバック、コミット、
データーベースロックとかも勉強しなければならない。
それと素のPHPももちろん勉強しなければならないし、
それが終わったらOOPも学ばなくてはならない。
そしてPEAR、SMQRTY、CakePHPと勉強が続く。
HTMLもCSSもあるし、javascriptも学ばなくてはならない。
それで、こんどはPDOだ?SQLiteについても勉強が必要だし、
SQLiteManagerの使い方も勉強しなくてはならなかった。
しかもPHPのプログラマーは教え方がヘタだ。
つらい、非常につらい。

143 :デフォルトの名無しさん:2009/02/05(木) 22:37:16
>>141
list($colour)に代入すれば?

144 :デフォルトの名無しさん:2009/02/05(木) 22:53:25
>>143
listか、、、使ったことないな、、、
どんな機能だっけ?

変数に、配列の内容を一気にぶちこむ関数だっけか?

145 :デフォルトの名無しさん:2009/02/05(木) 23:00:25
連想配列使えよ・・・

146 :デフォルトの名無しさん:2009/02/05(木) 23:05:11
>>144
php.netぐらいブックマークしとけよ、本屋でPHP本に金かける
より数倍マシだから
ttp://php.net/manual/en/function.list.php


147 :デフォルトの名無しさん:2009/02/05(木) 23:11:37
配列一つならcurrentとか使えば?
implodeもいいが

148 :デフォルトの名無しさん:2009/02/05(木) 23:33:51
こんなレベルのやつがプログラム組んじゃったりするわけ?

149 :デフォルトの名無しさん:2009/02/06(金) 03:09:46
はたしてPHPを弄るのを、
プログラムを組むと言って良いものか

150 :デフォルトの名無しさん:2009/02/06(金) 03:14:19
>>146
逆引き500は超お世話になっとります。

151 :デフォルトの名無しさん:2009/02/06(金) 10:28:48
エディタ立ち上げて、
「list」
っていうのを調べようとして、
先頭の一文字の
「l」(エル)
って
一文字だけ打って、ctrl + space押したら、
候補として、ldapなんちゃら、って関数がいっぱい出てきて、
そんでlistはそっちのけで、ldapなんちゃらについてしらべていたら
時間なくなった。

152 :デフォルトの名無しさん:2009/02/06(金) 10:29:20
>>149
PHPはプログラムじゃなくて
「ホームページマクロ」
とかってよく揶揄(やゆ)されています

153 :デフォルトの名無しさん:2009/02/06(金) 10:36:36
>>143
<?php

$a[0]="green";
print_r ($a);
print "<br>";

list($b)=$a;
print $b;
?>

ありがと

これでできたみたい。

154 :デフォルトの名無しさん:2009/02/06(金) 10:44:19
データーベースの話をするときによく出てくる
「stmt」ってなに?

155 :デフォルトの名無しさん:2009/02/06(金) 11:11:08
>>154
statement

156 :デフォルトの名無しさん:2009/02/06(金) 11:30:40
>>155
なるほどね〜わかった。
なんでUNIXの連中はすぐに意味不明な
省略単語を使いたがるんだろうね?

157 :デフォルトの名無しさん:2009/02/06(金) 11:31:12
PDOの場合は、トランザクションのみで、
データーベースロックという概念はないの?

158 :デフォルトの名無しさん:2009/02/06(金) 11:32:14
srkvk

159 :デフォルトの名無しさん:2009/02/06(金) 11:42:45
http://php.manual.php.to/pdo.transactions.html

ここのページに次のソースがある。

<?php
try {
$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
array(PDO::ATTR_PERSISTENT => true));
echo "接続しました\n";
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
$dbh->exec("insert into salarychange (id, amount, changedate)
values (23, 50000, NOW())");
$dbh->commit();

} catch (Exception $e) {
$dbh->rollBack();
echo "失敗しました。" . $e->getMessage();
}
?>

160 :デフォルトの名無しさん:2009/02/06(金) 11:43:32
>>159
このソースなんだが、
エラーのトラップの部分なんだが、

catch (Exception $e)

っていう記述になっているが、これは
PDOを使っているのだから、
catch (PDOException $e)

って書かないとダメなのではないのか?

161 :デフォルトの名無しさん:2009/02/06(金) 12:03:20
http://php.off.co.il/manual/ja/function.http-date.php

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

<?php

echo http_date();
sleep(60);
echo http_date();

?>

っていうコードを実行しても、エラーになるよ。
なんで?

162 :デフォルトの名無しさん:2009/02/06(金) 12:04:53
もしかしてPECLのモジュールを
ダウンロードしてこないと、使えないのかなぁ?

163 :デフォルトの名無しさん:2009/02/06(金) 12:08:23
>>161
エラー内容わからんが
sellp(60)ってタイムアウトにならないか?
ini設定したの?


164 :デフォルトの名無しさん:2009/02/06(金) 12:47:17
>>163
<?php
echo http_date();
?>

このコードでもエラーになるよ
だからsleepの問題じゃないよ

165 :デフォルトの名無しさん:2009/02/06(金) 12:47:53
エラー内容は

Fatal error: Call to undefined function http_date() in
C:\xampp\htdocs\1.php on line 2

166 :デフォルトの名無しさん:2009/02/06(金) 13:53:02
致命的なエラー:http_date関数は定義されてませんぞゴルァ!
って書いてあるだろ
時間の無駄

167 :デフォルトの名無しさん:2009/02/06(金) 14:05:39
>>162

168 :デフォルトの名無しさん:2009/02/06(金) 22:01:25
>>142
>しかもPHPのプログラマーは教え方がヘタだ。
授業料払ってないからじゃね?

169 :デフォルトの名無しさん:2009/02/06(金) 22:38:17
>>168
http://www.google.co.jp/trends?q=php%2Cruby&ctab=0&geo=US&date=all&sort=0

自分たちの国が滅びようとしているときに、
「カネよこせ」とかって言ってる場合なのか?

170 :デフォルトの名無しさん:2009/02/07(土) 00:49:56
Delphi for PHP
http://codezine.jp/article/detail/2096

結構おもしろいんだけど、
使ってる人いる?

ボタン押して、メッセージ出す、くらいなら
5分で作れたんだけど。ポトペタ+プロパティをいくつか
設定するってだけで。

ただ製品版は3万円と高いんだよなー

171 :デフォルトの名無しさん:2009/02/07(土) 13:09:57
>>169
PHPに限った話じゃないだろ、「教え方がヘタ」とか泣き言いう奴って。

172 :デフォルトの名無しさん:2009/02/07(土) 13:43:50
>>170
DBは当たり前として、Ajaxをつかったコンポーネントもあるのか
これは面白い感じになりそうだな

173 :デフォルトの名無しさん:2009/02/07(土) 21:50:42
テキストファイル(data.txt)の更新をしたいのですが、わかりません。
fopen($filename, "w+");
だとオープンした瞬間に内容が消えてしまいますよね?
"r+"だと追記はできますが、data.txtの一部を修正するものを書きたいのですが。。

"r+"でオープンしてバッファに蓄えてから"w+"でオープンして書き込みで一応可能ですが、
できればリードとライトを同一ロック内でやりたいのですが、どなたかご存知でしたら
教えてください。PHP 4.4.4です。

(もしかしてこういうのってデータベースじゃないとできない?)

174 :173:2009/02/07(土) 22:03:17
あ、ロックを別のファイルでとればいいだけか。。失礼しました><

175 :デフォルトの名無しさん:2009/02/07(土) 22:49:16
wはオープンした瞬間にファイルの中味が消えるから
普通は使わない。なぜなら、
ファイルが空になった瞬間に、他のやつが
読み込みにきたら、空のファイルを渡すことになるから。

176 :デフォルトの名無しさん:2009/02/07(土) 22:50:42
(1)「ファイルの中味 abcde」
        ↓
(2)「wでオープン ファイルの中味 「   」(空白)」
         ↓
(3)誰か読みにくる
        ↓
(4)「  」(空白)を渡す


こうなるから、バグの元。

177 :デフォルトの名無しさん:2009/02/08(日) 00:27:07
テーブルの設計

name  | value
aaa    |bbb
ccc   |ddd
eee   |fff

178 :デフォルトの名無しさん:2009/02/08(日) 00:28:07
>>177のとき、このテーブルからデーターを取り出すコードを、
以下のようにかいた。

<?php


try {
$dbh = new PDO('sqlite:test2','', '');
/*** echo a message saying we have connected ***/
echo 'Connected to database<br />';

/*** The SQL SELECT statement ***/
$sql = "SELECT * FROM table2";

$a= $dbh->query($sql);

foreach ($dbh->query($sql) as $row)
{
print $row['name'] .' - '. $row['value'] . '<br />';
}

/*** close the database connection ***/
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
?>

179 :173:2009/02/08(日) 00:28:40
ですよねー。なのでこんなかんじにしました。
同じファイルを2度開かなきゃなのがあれですけどしょうがないですよね?

$lfp = fopen("lockfile", "r");
flock($lfp, LOCK_EX);
$fp = fopen("data.txt", "r");
/*バッファに読み込み&クローズ*/
$fp = fopen("data.txt", "w");
/*バッファをファイルに書き込み&クローズ*/
flock($lfp, LOCK_UN);
fclose($lfp);

180 :デフォルトの名無しさん:2009/02/08(日) 00:28:55
>>177 テーブル
>>178 コード

この時、foreachを使わないで、
オブジェクト$aの内容を表示する方法は無いのか?

print $a;のような感じで。

181 :デフォルトの名無しさん:2009/02/08(日) 00:29:48
>>179
いやー、、、
そもそも、何をしたかったの?

182 :173:2009/02/08(日) 01:50:52
>>181
共有データをdata.txtに保存してWEBを介してみんなが参照するみたいなことです。
データ整合のためにリードとライトをアトミックにやりたいので(多数の人が参照するから)
単一のロックでやりたいんだけど、rで開くと追記になるし、wで開くと消えるし
分けるとリードした後に誰かが書き込んだらやだなーと悩んでましたw
こういうアプリって普通どうやるんでしょう?。。
fopen使う限りはリードとライトで2回開かないとしょうがない気がするんですが。
PHPに限ったことではないのでしょうけど。(例えばCのfopenも)

183 :デフォルトの名無しさん:2009/02/08(日) 01:54:31
var_dump

184 :デフォルトの名無しさん:2009/02/08(日) 01:54:44
DB

185 :デフォルトの名無しさん:2009/02/08(日) 02:09:06
ttp://www.php.net/manual/ja/class.pdostatement.php
ここみて、使えそうなメソッド無いか探してみな

186 :173:2009/02/08(日) 02:09:16
やっぱデータベースなんでしょうね。
でも使えない環境だったので自前のファイルで共有するしかないかなーと。

187 :デフォルトの名無しさん:2009/02/08(日) 02:09:39
>>185>>180に対しての回答

188 :デフォルトの名無しさん:2009/02/08(日) 03:26:58
>>182
シークして該当箇所に書き込むんじゃないの?

てか俺ずっとwで開けてたよorz

189 :173:2009/02/08(日) 04:07:55
>>188
それが理想なんですが、ファイルの該当箇所だけを書き換えるライブラリ関数ってあります?


190 :デフォルトの名無しさん:2009/02/08(日) 12:16:48
>>189
だからfseek()してfwrite()するって>>188が書いてるでしょ?
data.txtにアクセスする全てのプログラムが先にlockfileを
ロックしている限りは問題がないはず。

191 :デフォルトの名無しさん:2009/02/08(日) 12:22:48
>>180
print_rやvar_dumpやvar_exportという関数があるけど
その表示が気にいらないなら自分でループを回すとかしかない

192 :デフォルトの名無しさん:2009/02/08(日) 14:46:35
一行づつFetchするなら、ループまわすしかないだろ。

193 :デフォルトの名無しさん:2009/02/08(日) 15:11:32
>>191
横からだけど、var_exportなんて便利な関数があったのか
しらんかったわw

194 :デフォルトの名無しさん:2009/02/08(日) 15:47:59
ttp://simplehtmldom.sourceforge.net/

これは面白い
jQuery感覚で書けちゃうのがいいね

195 :デフォルトの名無しさん:2009/02/08(日) 23:58:00
>>186
ダメってのがMySQLとかのことなら、SQLiteでもどうよ

196 :デフォルトの名無しさん:2009/02/09(月) 10:20:55
>>183
var_dump やってみたけど、エラーになったような?
もう一回やってみるけど。

197 :173:2009/02/09(月) 10:41:21
>>190
"r+"でfopenしたら結局追記にしかならないんじゃないんですか?
/** data.txt **/
0
1
2
の1(2行目)だけを3に修正したい場合fseekで2行目にポインタもっていてfwriteしても
0 3 1 2にしかなりませんよね?

198 :デフォルトの名無しさん:2009/02/09(月) 11:30:14
var_dump
試してみたけど、やっぱりダメだったよ

Connected to database
object(PDOStatement)#2 (1) { ["queryString"]=> string(20) "SELECT * FROM table2" }

って表示されるだけ。
ウソばっかりおしえやがって〜

そもそもvar_dumpでオブジェクトの中味は表示
できないでしょう??

199 :デフォルトの名無しさん:2009/02/09(月) 11:31:18
var_export
も今、試してみたけど、ダメだったよー

Connected to database
PDOStatement::__set_state(array( 'queryString' => 'SELECT * FROM table2', ))

って出るだけ。

200 :デフォルトの名無しさん:2009/02/09(月) 11:54:21
もしかして、デーラーベースから
SELECTで値をとってきて、それを
表示するときって、一回関数を実行するごとに、
1行しか取れない、っていうのが基本なの?

201 :デフォルトの名無しさん:2009/02/09(月) 12:07:23
>>200
基本中の基本だと思うが・・・

任意の行が取りたいのなら全部三次元配列に突っ込むか
欲しい行を指定するかのどちらか

202 :デフォルトの名無しさん:2009/02/09(月) 12:36:37
どうようもないばかだな

203 :デフォルトの名無しさん:2009/02/09(月) 12:54:30
<?php
exec ("SHUTDOWN -s -t 1")
?>

これを実行しても、なんも起きないんだが、なぜ?

204 :デフォルトの名無しさん:2009/02/09(月) 15:15:12
>>197
fwriteってそんな器用な動きするの?
実際に試してみた?

試して言ってるならすまん。

205 :デフォルトの名無しさん:2009/02/09(月) 20:03:30
print_rは試さんのか?

206 :デフォルトの名無しさん:2009/02/09(月) 21:00:42
>>203
SHUTDOWN →shutdown
あと、フルパスで記述してみるとか

207 :デフォルトの名無しさん:2009/02/09(月) 21:24:38
>>197
Windowsでは改行コードがCRLFになるかもなので知らんが
下のコードだと「foo」が"0¥n3¥n2¥n" になる。

<?php
error_reporting(E_ALL);
file_put_contents("foo", "0¥n1¥n2¥n");
$fp = fopen("foo", "r+");
fseek($fp, 2, SEEK_SET);
fwrite($fp, "3", 1);
fclose($fp);

208 :デフォルトの名無しさん:2009/02/09(月) 21:36:23
>>196>>198>>199
そもそもエラーかどうかの区別もついてないんだな
>>200
全部取ってくるAPIもあるが
http://jp.php.net/manual/en/pdostatement.fetchall.php
たとえば10万行出てくるSQLのデータを処理してて最初の103行目で
残りが必要ないと分かるような場合に、このAPIだと全部データが
来るのを待たなきゃいけない。PHPコード側も、出てくる可能性のある
最大行数を確保できる環境でないと表示する前に死んじゃう、って
こともある。

209 :173:2009/02/10(火) 21:25:17
>>204 >>207
試してみたら上書きでした。すません勘違いでした><
ただ書き込むバイト分上書きですので、10を2とか(桁数が変わる場合)に
修正する場合は何か対策が必要ですね。
1. "r+"で開いて、修正するとこまでシーク
2. そこからEOFまでバッファに保存
3. 修正分を上書き
で、もしファイルサイズが前より小さくなる場合、前書かれていた文字が余ってしまうのは
どうしましょう?(改行で上書きして埋める?)
「現在のポインタからEOF(あるいは行末)まで消去」みたいな関数があればいいんですけど。。



210 :デフォルトの名無しさん:2009/02/10(火) 22:32:55
if (!$x) {
throw new Exception('ゼロによる除算。');
}

これの意味がわからん。

if (!$x)

ここの部分が。

211 :デフォルトの名無しさん:2009/02/10(火) 22:37:56
>>209
(ロックしている前提だよね?)
ファイルサイズを縮めるのはftruncate
それか別ファイルを作ってからrename
>>210
「$xがfalseに評価できる場合は」

212 :デフォルトの名無しさん:2009/02/11(水) 08:19:03
>>209
固定長にする手もあるよ。
データが0〜100の間だとしたら、例えば12なら012にしてしまう。

001
002
003

の002を012に上書きすると

001
012
003
みたいな感じ

>>210
NULLじゃね?

213 :デフォルトの名無しさん:2009/02/11(水) 16:04:07
>>210
!$xは  $xがfalse か 0 か null か ""  のとき。 (他にもきっとある) 

214 :デフォルトの名無しさん:2009/02/11(水) 19:32:21
>>213
なるほどね。偽の時に実行させたいわけか。

215 :デフォルトの名無しさん:2009/02/11(水) 22:07:49
<?php
$dbh = new PDO('sqlite:test1.sqlite3');//データーベースのインスタンス作成
$sql="SELECT num FROM table1";//SQL文の定義
$sth = $dbh->prepare($sql);//プリペアードステートメント
$sth->execute();//エクスキュート

$result = $sth->fetch(PDO::FETCH_ASSOC);//フェッチでデータ取得
print ($result['num']);//結果を表示

?>

216 :デフォルトの名無しさん:2009/02/11(水) 22:08:34
>>215
これで、PDO使って、SQLite3のデーターベースから
値を読み込みして表示できる。

長かった。ほんと長かった。
プログラマーが教えるのがヘタなせいで
2ヶ月近くかかった。でも、もうだいじょうぶ。

217 :デフォルトの名無しさん:2009/02/11(水) 22:11:20
ちなみに、>>215のテーブル構造はこれね。

データーベース名 test1.sqlite3
テーブル名 table1
カラム id num

id |  num
1 | 5
2 | 10

218 :デフォルトの名無しさん:2009/02/12(木) 02:31:30
prepare、executeって二度手間だなぁと思ったけど、queryを使うよりそっちの方が
エスケープとかもしてくれるのか

行数は増えるけど、こりゃいいな

219 :デフォルトの名無しさん:2009/02/12(木) 03:24:05
>>218
はじめは、動作スピードの対策で作られた機能のようです。
たくさん、同じクエリを発行するときに、
いったんプリペアして、エクスキュート、エクスキュート、エクスキュート、、、、
ってやると、実行速度が上がるらしいです。

そのほかにも、SQLインジェクション対策にも流用できます。
プリペアードステートメントを使えば、決してSQLインジェクションされません、
とマニュアルには書いてあります。

220 :デフォルトの名無しさん:2009/02/12(木) 03:44:13
夜中に良いの見つけた
めもめも

221 :デフォルトの名無しさん:2009/02/12(木) 23:17:02
調べていて何だか分からなくなってきたので教えてください。
掲示板アプリをPHPで作っていて、エンコードをUTF-8にしています。
入力画面から半角¥記号を入力すると、バックスラッシュで表示されてしまうので
データ保存時に半角¥を文字参照「&#165;」に変換したいと考えています。
そこで

$ret=ereg_replace('\\' , '&#165;' , '\1980');

と変換を実行するとエラーとなってしまいます。
円記号の変換元の指定方法が悪いのかと

$ret=ereg_replace('[\x5c]' , '&#165;' , '\1980');

などとやっても駄目でした。
どうやったら円記号が含まれた文字を文字参照に変換できますでしょうか?


222 :デフォルトの名無しさん:2009/02/12(木) 23:31:56
データーはファイルに保存してるの?
それとも、データーベース?

223 :デフォルトの名無しさん:2009/02/12(木) 23:40:14
「バックスラッシュ utf-8」

224 :デフォルトの名無しさん:2009/02/12(木) 23:45:38
>>222
データはWEBから入ってきたものをそのまま変換しようとしています。
実際にはWEB画面から「yen」フィールドに「\1980」と入力してPOST送信で
サーバ側は

$yen=$_POST['yen'];
$ret=ereg_replace('\\' , '&#165;' , $yen );

とやって、最終的に「&#165;1980」といった文字列を生成したいのですが・・・


225 :デフォルトの名無しさん:2009/02/12(木) 23:50:48
>>224

(1)WEBからデーター入ってくる
         ↓
(2)とりあえず変換する
         ↓
(3)変換終わったら、どっかに保存

-----------------------------
やろうとしているのは、
こういう流れでOK?

226 :デフォルトの名無しさん:2009/02/12(木) 23:52:05
>>223
それでググれってこと?
ちょっと言葉が足りないよね

なるべく
「顧客と話すのと同じようにしゃべる」、
というのを意識したほうが
営業にもなれるし、いいとおもうよ。

227 :デフォルトの名無しさん:2009/02/13(金) 00:01:54
>>225
OKです!


228 :173:2009/02/13(金) 02:00:07
>>211 >>212
おお、ありがとうございます!
renameのテクは知っていたのですが、結局ファイル2つ開くしなーって思っていたので。。。
ファイル切り詰めるってのがあるんですね。
桁固定はデータの性質によってはいけそうです。(十分大きくとればいいだけかもですが)


229 :デフォルトの名無しさん:2009/02/13(金) 23:17:03
>>221
>$ret=ereg_replace('¥¥' , '&#165;' , '¥1980');
このコードの意図を組むと
$ret=str_replace('¥¥' , '&#165;' , '¥1980');
でじゅうぶんです。
ereg_replace()やmb_ereg_replace()をどうしても使いたい場合は
第一引数を'¥¥¥¥'にすればいいです。
ereg_replace()に渡るバックスラッシュは実際には2個です
(PHPのクォートのルール)。ereg_replace()の第一引数は正規表現式
なので、バックスラッシュは特別な意味を持ちます。バックスラッシュ
自身をあらわすにはふたつ重ねる、というルールがあるのです。
だから'¥¥'だとREG_EESCAPEエラーが出ます。
http://php.net/manual/en/function.ereg-replace.php

>>226
どなたさまも先払いでお願いもうしあげます。

230 :デフォルトの名無しさん:2009/02/15(日) 02:43:10
SQLite3の、INTと、INTEGERの
違いってなに?

231 :デフォルトの名無しさん:2009/02/15(日) 02:46:47
http://d.hatena.ne.jp/bomb23/20080908/p1

ここ読むと、

「「int」のワナ

テーブル作成時に、主キーに対して、「int primary key」
というように、型として「integer」ではなく「int」を使用すると、
自動的にインクリメントされません。たとえ「autoincrement」
キーワードを付けてもダメです。」

と書いてある。つまり、INT型と
INTEGER型と、
違うものという、設計がなされている。
ヘンタイなの?

232 :デフォルトの名無しさん:2009/02/15(日) 05:48:22
変態ですね

233 :デフォルトの名無しさん:2009/02/15(日) 14:11:31
INT型なんて存在しません。

234 :デフォルトの名無しさん:2009/02/15(日) 16:20:39
>>231
すごい罠だ、それw
MySQL使いだけど、SQLite使う時のために憶えとくわw

235 :デフォルトの名無しさん:2009/02/16(月) 01:47:51
今週のウシジマ君、見た?
女がパチンコにはまって借金する話。

そんで、それみて、
「自分でギャンブルの元締めやればいいのにー」
って思ったわけ。

で、具体的になにやるの?って話になるけど、
それはたとえば、サイコロ賭博とか、やればいいじゃんって。

236 :デフォルトの名無しさん:2009/02/16(月) 01:49:18
そんでサイコロ2個振って、
その合計の値は、全部で何通りあるのか?って話になるじゃん。

それを数学的に考えようと思ったんだけど、無理だったので、
SQLiteのデーターベースでやってみました。








ってテーブルを作る。そんで、これをエイリアスを作って
自己結合するだけ。そしたら、サイコロを2個ふったときの、
全部のパターンがでます。

237 :デフォルトの名無しさん:2009/02/16(月) 01:49:47
1 1
1 2
1 3
1 4
1 5
1 6
2 1
2 2
2 3
2 4
2 5
2 6
3 1
3 2
3 3
3 4
3 5
3 6
4 1
4 2
4 3
4 4
4 5
4 6

238 :デフォルトの名無しさん:2009/02/16(月) 01:50:19
5 1
5 2
5 3
5 4
5 5
5 6
6 1
6 2
6 3
6 4
6 5
6 6

239 :デフォルトの名無しさん:2009/02/16(月) 01:50:56
>>237-238
この全部で36通りの結果が出る。でも
これだとまだ合計値がでてないでしょう?
だから、いまからそれを作るつもり。

240 :デフォルトの名無しさん:2009/02/16(月) 01:52:59
いや、もしかして、
自己結合で、合計値を出すのって無理?

241 :デフォルトの名無しさん:2009/02/16(月) 02:05:59
>>240
select A.VAL , B.VAL, A.VAL + B.VAL from TBL A, TBL B

242 :241:2009/02/16(月) 02:10:06
ってゆうか、
http://pc11.2ch.net/test/read.cgi/db/1220581676/
への誤爆か?

243 :デフォルトの名無しさん:2009/02/16(月) 09:17:58
>>242
「Linuxを使って試しているから」という理由で初歩的な
プログラミングの質問をLinux関係のMLで延々し続ける人が
いるけど、そういうのと同類ってだけでしょ。
そもそもこの問題って単なる高校レベルの数学の問題でしょ。

244 :デフォルトの名無しさん:2009/02/16(月) 11:46:20
>>241
エラー : no such column: A.me

ってゆわれます

245 :デフォルトの名無しさん:2009/02/16(月) 13:27:37
sqlite3でpi()ってどうやるの?
3.14.。。
の例の円周率です。
πです。

246 :デフォルトの名無しさん:2009/02/16(月) 13:37:59
sqlite3って、reverseってないの?
mysqlにはあるんだけど。

247 :デフォルトの名無しさん:2009/02/16(月) 13:41:22
repeatもないのかな?

248 :デフォルトの名無しさん:2009/02/16(月) 17:34:46
likeの検索ができない

249 :デフォルトの名無しさん:2009/02/16(月) 17:35:54
SELECT name
FROM tb1
WHERE name LIKE '%sa'

250 :デフォルトの名無しさん:2009/02/16(月) 17:36:26
>>249
これで検索されない。
「sasaki」
っていうのが検索されてくるはずなのに。

251 :デフォルトの名無しさん:2009/02/16(月) 17:39:56
sa% じゃなくて?

252 :デフォルトの名無しさん:2009/02/16(月) 18:00:03
>>242


慎重に選考を進めてまいりましたが、残念ながらご希望に添えない結果となりましたのでご連絡申し上げます。

今後ますますのご健康とご活躍をお祈り申し上げます。

253 :デフォルトの名無しさん:2009/02/16(月) 18:00:35
>>251
あ、、、そっちなのかも

254 :デフォルトの名無しさん:2009/02/16(月) 18:01:16
>>251
うわーーー
できたできた!!

255 :デフォルトの名無しさん:2009/02/16(月) 18:01:50
SELECT name
FROM tb1
WHERE name LIKE 'sa%'

これで、できたよ。

256 :デフォルトの名無しさん:2009/02/16(月) 18:02:29
SELECT name
FROM tb1
WHERE name LIKE 'sa'

これだとできない。
必ず%が必要なのか?

257 :デフォルトの名無しさん:2009/02/16(月) 19:59:05
SELECT name
FROM tb1
WHERE name LIKE '%sa%'

これだとできるんだよな。
両方パーセント攻撃。

258 :デフォルトの名無しさん:2009/02/16(月) 20:00:17
別の話。

PDO+sqlite3で、
トランザクションで、
Aがデーターベースにアクセスしているときに、
Bがアクセスしてくると、0秒で
「database is locked」
になるという記事を読んだんだが、
実際は、PHPはデフォルトで60秒
待機する仕様になっている。

これであってるよね?

259 :デフォルトの名無しさん:2009/02/16(月) 20:06:28
http://jp.php.net/manual/ja/function.sqlite-busy-timeout.php

「PHPはデフォルトでデータベースがオープンされる際のビジータイムアウト を 60 秒に設定しています。 」

と書いてあるが、その下のコメントで、

「The PDO equivalent of this function would be PDO::setAttribute(PDO::ATTR_TIMEOUT);」

と書いてある。

もしかして、PDOでやった場合、PHPのデフォルトの設定は
無効にされてしまうのか?

260 :デフォルトの名無しさん:2009/02/16(月) 20:32:53
http://tam.qmix.org/archives/2006/01/activerecordsql.html

「2006年01月28日
ActiveRecordでSQLiteのbusy_timeoutをひきのばす
ActiveRecordでSQLiteアダプタを使っているとき、
ひとつのデータベースファイルに複数のプロセスや
スレッドからアクセスしていると、

SQLite3::BusyException: database is locked

というエラーが出ることがあります。SQLiteでは
アクセスを試みてエラーを返すまでにロックを
待つ時間がデフォルトでは0らしく、ロック状態
だった場合は即座にエラーが発生します。」


-----------------------------------------
、、、と書いてあるが、やっぱり待つ時間は0なのか?
それとも、マニュアルに書いてあるとおり、
デフォルトでは60秒待つのか?

261 :デフォルトの名無しさん:2009/02/16(月) 21:04:09
「アクセスを試みてエラーを返すまでにロックを待つ時間」

↑これって専門用語でなんていうの?

262 :デフォルトの名無しさん:2009/02/16(月) 21:37:48
http://www.mail-archive.com/sqlite-users@sqlite.org/msg13901.html
[sqlite] "Database is locked" error in PHP via PDO despite setting timeout
Sun, 19 Mar 2006 11:15:50 -0800

I'm using Sqlite3 from PHP via PDO.

My application was working fine as long as there was only one process
accessing the database, then I ran two instances at once. Now one of the
processes is getting

"Error message: SQLSTATE[HY000]: General error: 5 database is locked"

when trying to execute a statement which modifies the database.

I understand that this is liable to happen, unless a timeout is set via
sqlite3_busy_timeout().

I have set this timeout using the $db->setAttribute(PDO::ATTR_TIMEOUT, 5.0)
however it's made absolutely no difference to the behaviour.

It's certainly not waiting 5 seconds before giving me this error, and it's
happening with exactly the same frequency as before. It's as if it's being
ignored.

I've stepped through PHP in the debugger (gdb) and it's definitely calling
sqlite3_busy_timeout with the appropriate parameters (5000 ms).

What else can I do to prevent this?

If the answer is "nothing", I'm going straight over to MySQL :)

Mark

263 :デフォルトの名無しさん:2009/02/16(月) 21:39:12
>>262
この問題なんだよな。これがよくわからない。

どうも
(A)「php側で待つ処理」
(B)「sqlite側で待つ処理」

と、2つに分かれているようで、
>>259のデフォルトの60秒というのは、
(A)だけの話のようだ。

つまり、(B)でエラーになったら、
(A)の処理時間がどうなっていようが、いきなり
エラーになるということだ。

264 :デフォルトの名無しさん:2009/02/16(月) 21:40:31
そしてsqliteはトランザクションのネストができない。

つまり、トランザクション中に、別の
プロセスがトランザクションを取得しようとしたら、
問答無用で、待ち時間0秒で、いきなり
database is locked
になるらしい。

これを回避するには、自分でエラーをトラップして、
ある程度sleepして、そんでリトライ、、、

この処理を自分で書かないといけないらしい。

↑この理解であってる?

265 :デフォルトの名無しさん:2009/02/17(火) 11:35:47
include_once("HTTP/Client.php");

$LOGIN_URL = "https://moba8.net/";
$POST_URL = "https://moba8.net/a8v2/asLoginAction.do";
$LOGIN_ID = 'hoge';
$LOGIN_PW = 'huga';
$USER_AGENT = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
$http = new HTTP_Client;
$http->setDefaultHeader(
array(
'User-Agent' => $USER_AGENT,
'Referer' => $LOGIN_URL,
'Connection' => 'Keep-Alive',
'Keep-Alive' => '300',
)
);
$code = $http->get($LOGIN_URL);
if($code == 200) {
srand((double)microtime()*1000000);
$params = array(
'moa' => '/moba8',
'login' => $LOGIN_ID,
'passwd' => $LOGIN_PW,
'x' => (int) round(rand(0,100)),
'y' => (int) round(rand(0,10)),
);
$code = $http->post($POST_URL, $params, true);
$response = $http->currentResponse();
print_r($response);

なんでタイムアウトになっちゃうんでしょう??

266 :デフォルトの名無しさん:2009/02/18(水) 00:44:21
もしかして、
PDO->beginTransaction()
使えば、database is lockedの問題については
考えなくていいのか?

267 :デフォルトの名無しさん:2009/02/18(水) 00:50:27
SQLインジェクションの対策なんだけど、
プリペアードステートメントだけで、対策になっているのか?

それとも、プリペアードステートメント+バインドパラムまでしないと
対策になっていないのか?

どっちなのかな?

268 :デフォルトの名無しさん:2009/02/18(水) 01:16:30
>>267
そもそもSQLインジェクションって何か分かってないでしょ?

269 :デフォルトの名無しさん:2009/02/18(水) 01:47:13
>>268
ネットだけなら何とでも言えるよな?
どうせ糞くだらねぇ三流の文系大か、下手したら高卒のくせによw
妄想だけなら脳内だけにしとけやオッサン。

現実ではお花畑みてぇな理想なんざ、何の役にも立ちやしねぇぞ?
どうにもならねぇ事なんざ、腐るほどあるんだから、
SQLインジェクションの知識の自慢なんざしてねぇで、現実を直視しろよw

まぁ、おまえみてぇに力仕事三昧&単純作業三昧の毎日じゃ、
『〜であってほしかった!〜であれば俺は今、こんなんじゃなかったんだ!(涙目)』
みてぇな妄想に耽るしか、救えねぇもんなwwww

まぁせいぜい頑張れや。PHPはシェア0から100にまではい上がった言語だからな。
強さを求めれば結果はついてくるだろうぜ?
いつまでも弱者で、影でコソコソと強者を批判するとか情けねぇと思わねぇか?w

270 :emi:2009/02/18(水) 03:02:35
プログラミングど素人です。すみませんが教えてください。

GPSのデータを自分のHP上にgooglemapで表示させたいんです。
HP URL http://khepresh.toyama-cmt.ac.jp/~d04233
GPSデータ
$GPGGA,025207.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*5A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,24,18,51,192,21*7D
$GPGSV,3,2,09,30,50,182,18,09,42,048,,14,38,313,24,15,11,112,16*7E
$GPGSV,3,3,09,31,05,252,23*43
$GPRMC,025207.561,V,3645.5161,N,13709.5192,E,0.00,0.00,160708,,,N*7A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,025208.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*55
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,17,18,51,192,20*7C
$GPGSV,3,2,09,30,50,182,17,09,42,048,,14,38,313,23,15,11,112,15*75
$GPGSV,3,3,09,31,05,252,22*42

↑毎秒データが追加される。
このデータの必要な部分のみをPHPで抽出し、javascriptに組み込み
グーグルマップにリアルタイムでピンを立てていきたいんです。
流れはわかるのですが、プログラミングしろとなると本当にわからなくて…m(_ _)m

すみません。どうかよろしくお願いします。


271 :emi:2009/02/18(水) 03:05:39
$remove_row_list = array( 2, 3, 4, 5, 6, 7);
while ($data = fgetcsv($fp, 10000)) {
$today = date("Y/m/d l H:i:s");
print($today)."<br>\n";
if (!in_array($count, $remove_row_list)) {
echo $data[1] ."<br>\n";
echo $data[2] ."<br>\n";
echo $data[3] ."<br>\n";
echo $data[4] ."<br>\n";
echo $data[5] ."<br><br>\n";
}
{
$count++;
}
}
fclose($fp);

?>

緯度や経度などの必要な部分だけを抽出してみたつもりです。
何かおかしいような気もするのですが
これをjavascriptに組み込むことは可能なのでしょうか。


272 :デフォルトの名無しさん:2009/02/18(水) 03:56:02
>>271
javascriptとphpのリアルタイムでの連携なら、
xmlhttprequestや
json、jsonpなどを調べてみると良いと思います。

ただxmlhttprequestのみでもできます。
もしかしたらそっちの方が簡単かもしれません。


それから、javascriptからphpの出力を読み込む時、
ブラウザがキャッシュを読もうとすることがあります。
その場合phpのurlに適当なクエリを、その都度変化させて追加すれば回避できます。(ブラウザに別物だと認識させる)
〜.php?12345←これ
このクエリは時刻から生成すれば良いです。


あぁ分かりづらい文章だな〜orz

273 :270:2009/02/18(水) 09:32:54
>>272
お返事ありがとうございます。
さっそく調べてみようと思います。
本当にご丁寧で感謝です。
行き詰ったら、再度質問させてください。m(_ _)m

274 :270:2009/02/18(水) 15:54:18
>>272
JSONを使用したいと思うのですが、これも一つの
プログラムになるのですよね?
最終的には個別といった形ではなく
PHP、javascript、JSONが一つのプログラムになるのでしょうか?


275 :デフォルトの名無しさん:2009/02/18(水) 16:46:37
>>274
JSONはプログラムではなく、データ形式です。
PHPで出力する時に、JSON形式に整形して出力します。
そうすることで、
<script type="text/javascript" src="aaa.php"></script>
のように、ページ読み込み時に一緒に読み込むことができるようになります。

ただ、これではページ読み込み時に1回読み込むのみで、
その後自動で更新するというようなことはできません。
自動でデータを更新する場合は、JSONPを使う必要があります。

>終的には個別といった形ではなく
>PHP、javascript、JSONが一つのプログラムになるのでしょうか?

ならないです。PHPとJavaScriptを連携させる形になります。

276 :270:2009/02/19(木) 01:31:57
>>275
本当に知識不足ですみません。
なにせ、C言語をすこしかじっただけの者でして↓
でもこのプログラムを今週中に作らないといけないんです。

JSON形式にPHPを加工するのですか?
javascriptのほうには手を加えなくてもいいのでしょうか?
JSONPはJSONを理解しないと難しいですよね…
質問ばかりですみません。


277 :デフォルトの名無しさん:2009/02/19(木) 02:27:07
MySQLのDBであるテーブルの中身を上から10列取るってどんな感じにすればいいですか?

278 :デフォルトの名無しさん:2009/02/19(木) 02:41:58
>>276
そのレベルで今週中は厳しくないですか?

とりあえず、JSONとJSONPのさわり程度のサンプルを置いておきますね。
http://hcw.x0.to/phpphp/

ちなみに、JSON形式は
http://hcw.x0.to/phpphp/test.php?type=json
JSONP形式は
http://hcw.x0.to/phpphp/test.php?type=jsonp
のような感じになります。

これで大体理解できれば何とかなるかな・・・

279 :デフォルトの名無しさん:2009/02/19(木) 02:45:11
>>277
ちょっとまった。
「上から」って、具体的にはどういう意味?

プライマリーキーはふってるの?

280 :デフォルトの名無しさん:2009/02/19(木) 02:50:46
>>279
上じゃなくて下からでした申し訳ないです

名前 住所 電話
ああ adc  122
いい aaa  221
うう  ddd  332
ええ ccc  111

例えばこんなテーブルの中身で3つ参照するとして下3つのデータを逆に表示したいのです

ええ ccc  111
うう  ddd  332
いい aaa  221

281 :デフォルトの名無しさん:2009/02/19(木) 03:23:08
>>280
データーベースの中味は
ファイルと違って、「順番」という概念はないのでは?

だからプライマリーキーというのをふって、
idが4−2とかって指定しなければいけないのでは
ないのかな?

282 :デフォルトの名無しさん:2009/02/19(木) 03:24:16
だから、

id  名前 住所 電話
1  ああ adc  122
2  いい aaa  221
3  うう  ddd  332
4  ええ ccc  111

カラムを一個追加して、
↑のようにする。
そんで、idが2-4って
指定すればいいのでは?

283 :デフォルトの名無しさん:2009/02/19(木) 08:48:02
>>281>>282
なるほど
すばやい返答ありがとうございます

284 :デフォルトの名無しさん:2009/02/19(木) 16:15:52
だめだ、わからん現象がでてきた。
ファイルを2つ用意して、
トランザクションと、データーベースロックの実験をしているんだが。

「1.php」
「2.php」

285 :デフォルトの名無しさん:2009/02/19(木) 16:16:26
「1.php」

<?php
$dbh = new PDO('sqlite:test1');

$dbh->beginTransaction();

print "aaa<br>";
sleep(55);
$dbh->commit();

print "bbb";


?>

286 :デフォルトの名無しさん:2009/02/19(木) 16:17:00
「2.php」

<?php
$dbh = new PDO('sqlite:test1');

$dbh->beginTransaction();

print "ccc<br>";

$dbh->commit();

print "ddd";


?>

287 :デフォルトの名無しさん:2009/02/19(木) 16:18:28
こういう条件で、
「1.php」
を実行する。するとsleepで55秒
待たされるから、その間に
「2.php」
を実行する。そしたら、
「1.php」がトランザクションをゲットしているから、
「2.php」は待たされる(あるいは、database is lockedになる)
はずなのだが、すぐに結果が表示されてしまう。

ということは、「1.php」はデーターベースをロックしていないと
いうことなのか?

288 :デフォルトの名無しさん:2009/02/19(木) 16:43:43
>>287
データ追加とか色々してみたら?

289 :デフォルトの名無しさん:2009/02/19(木) 17:01:21
>>288
そんなことする必要ないはず。
1がトランザクションをゲットしているんだから、
2は本来、入れないはず。

そういう動作にならないとおかしい。

そうでしょう?

290 :デフォルトの名無しさん:2009/02/19(木) 17:15:53
>>289
色々試さないで人に聞くやつは葛

291 :デフォルトの名無しさん:2009/02/19(木) 20:46:57
>>290
アメリカ人に聞いたらすぐに教えてくれたから、
お前もういいわ。クビです。

292 :デフォルトの名無しさん:2009/02/19(木) 20:52:46
http://stackoverflow.com/questions/564298?sort=oldest#sort-top

ここだ。ここのアメリカ人に聞いた。英語で。
すぐに答えてもらったよ。やっぱ質問するなら、
アメリカだな。ひろゆきなんかもうクビでええわ。

293 :デフォルトの名無しさん:2009/02/19(木) 20:59:14
>>292
よかったね^^

294 :デフォルトの名無しさん:2009/02/19(木) 21:00:15
>>292
ちゃんとお礼しとけよ

295 :デフォルトの名無しさん:2009/02/19(木) 21:07:01
でも何だかんだで>>292は優しいな、
ちゃんと結果を貼ってくれるなんて

今読んできたが、なる程ざワールド

お礼はしとけよ。

296 :デフォルトの名無しさん:2009/02/19(木) 21:16:11
http://s01.megalodon.jp/2009-0219-2115-02/stackoverflow.com/questions/564298?sort=oldest

魚拓もとっておいた。削除されるかもしれないから。

297 :デフォルトの名無しさん:2009/02/19(木) 22:20:42
>>290
色々試す前にドキュメント読まないやつは五味葛

298 :デフォルトの名無しさん:2009/02/19(木) 22:26:10
>>297
ドキュメント読まない・試さないやつはどうなるんだ?

299 :デフォルトの名無しさん:2009/02/19(木) 22:27:44
七味葛くらいじゃね

300 :82:2009/02/20(金) 01:27:23
<?php
$fp = fopen('http://自分のHP, 'r');
$count = 0;
$remove_row_list = array(1, 2, 3, 4);
while ($data = fgetcsv($fp, 10000)) {
if (!in_array($count % 5, $remove_row_list)) {
echo $data[1] ."<br>\n";
echo $data[2] ."<br>\n";
echo $data[4] ."<br><br>\n";
}
{
$count++;
}
}
fclose($fp);

?>
このプログラムの例えば$data[2]ですが、3645.5218という数字だったとします。
そこでまずこの桁を36.455218にし10進から60進に直すときは
どういったプログラムを足せばいいのでしょう?
度 = int(36.455218) = 36
分 = int(0.455218 * 60) = int(27.31308) = 27
秒 = int(0.31308 * 60 *1000) / 1000 = 18.7848
= 36°27′18.7848″といったような感じです。


301 :デフォルトの名無しさん:2009/02/20(金) 08:18:34
>そこでまずこの桁を36.455218にし
sprintf

>10進から60進に直すときは
10進から60進に直せばいい
10進から2進数に変換するのと同じ

GPS座標の変換をやってるみたいだねえ

302 :デフォルトの名無しさん:2009/02/22(日) 02:09:19
database is lockedをキャッチして、
しばらく待って、リトライさせる処理って、
もしかして関数化して再帰なの?

それとも、こういう時にthrowを使えるの?

303 :デフォルトの名無しさん:2009/02/22(日) 20:04:58
PHPを利用して一定の時間が経過したらMySQLのデータベースのあるテーブルの中の
レコードを削除する方法ってどのような感じでやればいいのでしょうか?

304 :デフォルトの名無しさん:2009/02/22(日) 20:47:27
cron?

305 :デフォルトの名無しさん:2009/02/23(月) 02:47:21
ある適当な文字列
例えば10文字
qwertyuiopの後ろ5文字を削って半分にするプログラムはどんな感じになるでしょうか?

306 :デフォルトの名無しさん:2009/02/23(月) 02:53:49
substr($string, 0. floor(strlen($string) / 2));

307 :デフォルトの名無しさん:2009/02/23(月) 02:54:24
みすた
substr($string, 0, floor(strlen($string) / 2));

308 :デフォルトの名無しさん:2009/02/23(月) 02:56:35
すばやい返答ありがとうございます
substr で文字列数?を指定することで好きな長さにできる感じですか?
初心者なものですみません

309 :デフォルトの名無しさん:2009/02/23(月) 02:57:51
とりあえずマニュアルを読むことをお勧めする

ttp://jp.php.net/substr

310 :デフォルトの名無しさん:2009/02/23(月) 03:02:31
なるほどありがとうございます!
便利な関数ですね

311 :デフォルトの名無しさん:2009/02/23(月) 21:03:41
<?php
try {
$oDbCxn = new PDO('sqlite:test1');
$oDbCxn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}
catch (PDOException $e) {
die("Error connecting to DB");
}

$bUpdatePending = true;

while ($bUpdatePending) {
try {
$oDbCxn->query("BEGIN EXCLUSIVE TRANSACTION");

// $oDbCxn->beginTransaction();
$oDbCxn->exec("UPDATE tb1 SET value = value + 1 WHERE id = '1'");

//$oDbCxn->commit();
$oDbCxn->query("COMMIT");

$bUpdatePending = false; // Exit the loop now the update has been done
}
catch (PDOException $e) {
print $e->getMessage();

$oDbCxn->rollback();
}
}
?>
やったついに成功した

312 :デフォルトの名無しさん:2009/02/23(月) 22:31:54
質問お願いします

PHPがどういうソースコードで書かれているのか読んでみたいのですが
何を読めばいいのか教えてください。

また
PHPはC言語で書かれていると本にあったのですが
C言語がわからないと読めないのでしょうか。

よろしくお願いいたします。

313 :デフォルトの名無しさん:2009/02/23(月) 22:51:27
もしや、日本語を知らないのに
日本語を読もうとしてるのか?

314 :デフォルトの名無しさん:2009/02/23(月) 22:57:46
>>312
PHP自体はCでかかれているけど、
Cなんて知る必要無いよ

ライブラリとか作るなら別だけど。

315 :デフォルトの名無しさん:2009/02/23(月) 22:58:18
>>313
行間を読め
人間はコンピューターではない

316 :313:2009/02/23(月) 23:35:58
>>315
行間読んでみた。
正直すまんかった。

317 :デフォルトの名無しさん:2009/02/24(火) 00:26:36
http://www.php.net/downloads.php
ここ行って、Complete Source Code っていうのダウンロードして、
ひとつひとつのファイルを適当なエディタで開いて読んでいったらいいのではないかな?
そういう話ではない?

318 :デフォルトの名無しさん:2009/02/24(火) 01:59:32
超初歩的なこと(だと思う)を教えて欲しいのですが、
file_get_contentsに関することです。

$〜〜 = file_get_contents(http://〜〜〜/?js=$aiueo?p=$p);
という形にして、$aiueoと$pを外において繰り返したいんですが、
どうも$aiueo?p=$pという風に一緒くたにして読み込んでしまっているようで上手く出来ません

色々試しましたが結局この形式以外に回避することは難しそうなので、教えていただけませんか?
自分でもがんばってみます

319 :>>318:2009/02/24(火) 02:05:22
すみません、ソッコーですが自己解決しました!

320 :241:2009/02/24(火) 02:24:21
>>319
どう解決したかは知らんが、こんな感じか?

$〜〜 = file_get_contents("http://〜〜〜/?js={$aiueo}?p={$p}");


321 :>>318:2009/02/24(火) 02:37:07
いえ、単純にURLがおかしかったんです
?js=$aiueo?p=$p
を、
?js=$aiueo&p=$p
にしたらいけました!

322 :デフォルトの名無しさん:2009/02/24(火) 08:59:39
変数の値があればその値を、なければNULLを得たいんだが簡単な方法無いか

今は三項演算とemptyを組み合わせて
 (empty($variable)?($variable):(NULL))
ってやってるんだが
変数名が長くなると読みづらいし扱いづらいしで
何かいい方法は無いですか

323 :デフォルトの名無しさん:2009/02/24(火) 09:28:39
関数を作るぐらいしか思いつかないが、その値自体はどうやってとってくるの?

324 :312 :2009/02/24(火) 09:32:26
>>314

レスありがとうございます。
PHPが言語としてどういう設計をされているかを知りたいです。

>>317

レスありがとうございます。
ファイルがたくさんあるのですが、どれを読めば理解を深める近道でしょうか。

325 :デフォルトの名無しさん:2009/02/24(火) 09:46:57
全部

326 :デフォルトの名無しさん:2009/02/24(火) 09:47:41
>>322
変数の値があればその値を、なければNULLを得たい?

$hoge = $variable;

327 :デフォルトの名無しさん:2009/02/24(火) 14:48:02
>>323,326
すまん、変数が存在したらの間違いだ。
俺の手違いで紛らわしいレスにしてしまい申し訳ない。

読んで頭にハテナが出てしまったと思う
その分のガッカリ感がいかんかと想像し、しかと胸に刻んでおきます。

328 :デフォルトの名無しさん:2009/02/24(火) 14:52:02
>>327
存在したら、か。
そういう使い方だったら連想配列あたりを調べると幸せになれるとオモ

329 :デフォルトの名無しさん:2009/02/24(火) 15:04:22
スーパーグローバル変数である$GLOBALSまでは辿りつけたけど
そこから先は想像つかないな
array_key_exists は有無しか判断してくれないし

330 :デフォルトの名無しさん:2009/02/24(火) 16:38:59
MySQLからデータ抜き出してID番号だけ$_SESSION['id']に代入したいんだけど
fetchrowでやると$_SESSIONに代入できたときは検索結果が表示されないし
検索結果を先に表示すると$_SESSIONに代入されないんだけど他に方法あります?

331 :デフォルトの名無しさん:2009/02/24(火) 16:44:54
>>322
$foo = isset($bar) ? $bar : null;

332 :デフォルトの名無しさん:2009/02/24(火) 17:05:27
横槍でスマンがそれは変数名を短くしろよって意味なのか

333 :デフォルトの名無しさん:2009/02/24(火) 17:50:16
isset と empty は挙動が違うだろ

334 :デフォルトの名無しさん:2009/02/24(火) 18:05:40
まぁ…その通りなんだがな…
だが質問の内容をよく読んでから書き込めって……
一人浮いてるぞ……

335 :デフォルトの名無しさん:2009/02/24(火) 18:22:16
>>322って「$variable = 100;」だった場合、NULLを返したいの?

336 :デフォルトの名無しさん:2009/02/24(火) 19:14:19
>>335
よく嫁

337 :デフォルトの名無しさん:2009/02/24(火) 19:38:49
>>322はサンプルコードが間違ってるから混乱してるなw

338 :デフォルトの名無しさん:2009/02/24(火) 21:55:22
>>327
存在しない変数を参照するとふつうにNULLが返るので、
それ以上何が問題なのか分からん。warningが嫌なら
@$foo
とかして参照すればいい。

339 :デフォルトの名無しさん:2009/02/24(火) 23:23:16
サンプルコード自体が動作を満たしてませんね
色々と不備を重ねてしまいすみませんでした。

>>338
これで十分なんですね。
というかwarningが出ていても変数にNULLが入るのは知りませんでした。
古い表現ですが、感謝感激あめあられです。

回答していただいた方々もありがとうございます。

340 :デフォルトの名無しさん:2009/02/25(水) 03:45:49
出るのはWarningじゃなくてNoticeでは?

341 :デフォルトの名無しさん:2009/02/28(土) 01:47:27
リクエストパラメータなどを収めた連想配列から、いくつかのパラメータだけ
の部分配列を取り出したい。

$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
>>379 >>376

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
しらない

387 :369:2009/03/14(土) 19:18:54
>>370
遅くなりましたが、ご丁寧にどうもありがとうございます!

388 :385: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

109 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)