【PHP】下らねぇ質問はここに書き込みやがれ 22

このエントリーをはてなブックマークに追加
584nobodyさん
htmlに埋め込むアクセス解析を作りたいのですが、
どうすればよいのでしょうか?

htmlにincludeは無理ですよね
585nobodyさん:2006/06/18(日) 22:54:53 ID:???
サッカー見ろよ非国民
586nobodyさん:2006/06/18(日) 23:22:11 ID:???
>>584
imgタグでアクセス解析をしつつ画像を返すPHPスクリプトに飛ばすとか、
フレーム使うとか。
587581:2006/06/18(日) 23:54:08 ID:???
>>582
質問がくだらなすぎた・・ごめん
そしてありがとう!
588nobodyさん:2006/06/19(月) 00:08:41 ID:???
>>584
鯖の設定次第じゃなかったっけ?
*.htmlでもPHPとしてちゃんと認識してくれるような設定になってるとこも
あったと思う。
589nobodyさん:2006/06/19(月) 00:14:28 ID:???
php://outputストリームの明示的なcloseはどうやって行うのでしょうか?
<html>

</html>
<?php
fclose(output);
sleep(5); // 重い処理
?>
的なことがしたいのですが。
590nobodyさん:2006/06/19(月) 00:18:43 ID:???
>>588
まじで?
ソースみたいお
591nobodyさん:2006/06/19(月) 00:30:50 ID:???
>>590
ソースっても...山ほどあるからぐぐれw
少なくてもApacheとIISには拡張子で
振り分ける機能が普通にある。
592nobodyさん:2006/06/19(月) 00:39:34 ID:???
>>590
<?php ?>が含まれてない.phpファイルがあってもいいように
単に.htmlをphpパーサに渡すだけじゃん。
ソースとかの問題じゃないよ。
593nobodyさん:2006/06/19(月) 00:48:00 ID:???
>>590
拡張子がphpやcgiだとCGIとばれるからアタックを受けやすい
だからセキュリティに厳しいとこはよくやってる

ソース欲しいならApacheの設定ファイル(httpd.conf)でも見て来い
UNIXは拡張子でOSが勝手に実行アプリを判断することなんてないからな
594nobodyさん:2006/06/19(月) 00:53:02 ID:???
Yahoo!がそういうことしてるっぽいかなーとかふと思った。
htmlファイルなのにアクセスするたびにソースが変わったりしてたような。
595nobodyさん:2006/06/19(月) 00:56:48 ID:???
>>583
> RSSフィードを作るのに FeedCreator.class.php 以外に良いものってありますか?

これスレ違いでしたかね…
みんな自分で書いているのでしょうか
596nobodyさん:2006/06/19(月) 01:02:44 ID:???
>>595
>>557
1日2日放置されたくらいで泣かないの。
597nobodyさん:2006/06/19(月) 01:05:06 ID:???
デジカメで撮ったファイルって「DSC00124.jpg」見たいな感じで
英数字が混ざったファイル名が多いじゃないですか
これを上手く表示させるために

$common = DSC00
$open = 001
$close = 124

のようにして、DSC00001〜DSC00124のファイルをHTMLで表示しようと思って

for($a=$open ; $a<=$close ; $a++){
print("<img scr=\"{$a}\"><br>")
}

っていうことを考えたんですけど、$a = $open が 001 となっていて、以降1ずつ加算していくと
002ではなく普通に 2 という値が入ってしまいます。
これはどのように回避すればよいでしょうか?
598nobodyさん:2006/06/19(月) 01:38:00 ID:???
>>597
Stringでキャストしてみたら?
599nobodyさん:2006/06/19(月) 02:14:33 ID:???
>>597
sprintf()でフォーマットを整形すれば良いんだけど、

http://jp2.php.net/manual/ja/function.sprintf.php

どうせやるならreaddir()でファイル名の一覧を取った方がよろしいかと。

http://jp2.php.net/manual/ja/function.readdir.php
600nobodyさん:2006/06/19(月) 04:36:38 ID:???
0<>1<>2<>3<>\n
1<>2<>3<>0<>\n
2<>3<>0<>1<>\n
3<>0<>1<>2<>\n

このように<>区切りで情報が書かれているテキストで、
任意の列を基準にソートするには、どうすれば良いのでしょうか。
601nobodyさん:2006/06/19(月) 10:00:33 ID:Pg3y549I
>>600
usortを使えばできなくはない
602nobodyさん:2006/06/19(月) 10:09:13 ID:???
>>600
データがさほど多くないのならfileで全部読んで
explodeを使って目的の列のデータで配列を作ってその配列をasortかarsortして
そのキーの並び順通りにファイルに書き出すなり使うなりすればいい

多いのならデータベースを使うべき
603nobodyさん:2006/06/19(月) 10:21:16 ID:ywXHAQss
変数の初期化って具体的に言うとどういうことですか?
僕の買った本にはPHPは変数を初期化しなくても使えるから気にするなみたいに書いてあるのですが、一説には初期化しないとセキュリティ的にダメとか...。
くだらないですが、宜しくお願いします。
604nobodyさん:2006/06/19(月) 10:31:31 ID:???
セキュリティ的に駄目ということはないと思う

ただ、使い捨てのコードならともかく、長く利用するコードなら
その変数が初期化忘れてでたまたまうごいているのか、
意味があって未定義にしているかが、わからないと
数ヵ月後に、もう一度そのソースを見たときに苦労することになる
605nobodyさん:2006/06/19(月) 10:58:17 ID:???
php5 smarty apacheを使って認証アレコレを勉強しているんですが、

認証okならセッションにログイン情報を格納して、"logout.php"へのリンクを踏むと
ログアウト処理してトップ画面を表示

ということがしたいのですが、ブラウザのURL入力欄に"〜sample/logout.php"と出てしまいます。
これを"〜sample/"と表示させるにはどうしたらいんでしょうか?

logout.php内で ログアウト処理の後にheader("index.php") 記述しても
ログアウト処理を踏まずindex.phpへ飛んでいるようです

参考になるHPなどあればご指南お願いしますm(_)m
606nobodyさん:2006/06/19(月) 11:03:37 ID:ywXHAQss
>604
ありがとうございます。
セキュリティ的には問題ではないのですね。
逆に、未定義にする意味というか、未定義にしておく必要がある状況というのはどんなときですか?
607600:2006/06/19(月) 11:20:24 ID:???
>>601
ありがとうございます。usort関数についてはよく知らないので、
この後調べてみることにします。

>>602
ありがとうございます。確かにそれだと、うまくいきそうです!



>>601さんと>>602が教えてくださった方法で速度を比べて、
速そうなほうを使ってみたいと思います。ありがとうございました!
608nobodyさん:2006/06/19(月) 11:32:52 ID:ywXHAQss
例えば<input type="text" name="username">をサブミットして
extract($_POST)とやるのと、
$username = $_POST['username']とやるのはどこがどう違うのですか?
どちらも$usernameとして使えるようになりますが、前者は御法度ということになっていますよね?

609nobodyさん:2006/06/19(月) 11:36:14 ID:???
610nobodyさん:2006/06/19(月) 11:45:18 ID:???
>>597
文字列"DSC00001"をインクリメントしてみ
611nobodyさん:2006/06/19(月) 11:56:20 ID:???
データーを呼出して、header関数のlocationを使ってサイト移動したいとき
データーのURLには特殊文字が含まれていていいもの?
それとも変換しておいたほうがいいの?
612nobodyさん:2006/06/19(月) 11:56:59 ID:???
>>606
0とfalseとnullに違いを持たせるとき
C言語のほとんどの環境ではそれらはすべて0と同じ意味だけど
PHPなどはそれぞれ意味が違う
そのため

if (!$foo)
というコードを書いたときに $foo は0、false、null全てを許すのか
それとも

if ($foo === 0)
を簡略して書いたかを明確にしていないと、バグの原因になったりする

$foo = 0;
この初期化を通らないと
if ($foo === 0)
は警告が出る。これは、$foo にfalseやnullではなく数値の0が
入ってくることを期待する処理となる
613nobodyさん:2006/06/19(月) 11:57:44 ID:???
>>611
基本的にurlエンコードが必要
614nobodyさん:2006/06/19(月) 12:03:49 ID:ywXHAQss
>612
すごく分かり易いです。ありがとうございます!
615nobodyさん:2006/06/19(月) 12:10:27 ID:???
だから変数は使用前に、

$name = "";  // 名前格納用
$age = 0;    // 年齢格納用

とか宣言してから使うようにするといいってことだね><
616608:2006/06/19(月) 12:56:16 ID:ywXHAQss
>609
>4を読んで試したのですが、いまいちピンと来ないです。
extract($_GET)の場合だと、パラメータに付けた任意の値が代入されてしまいますが、extract($_POST)変数が上書きされることはないような気がします。
>4を読んで_GET[hoge]=fugefugaという値を送ってみたのですが、確かにextractによって$_GET[hoge]=fugafugaが成立(?)してしまいますが、例えばフォームに_POST[hoge]=fugafugaと入れてサブミットしても、extractで展開されて上書きという風にはならないです。
なんだか混乱していますが、extractが致命的な例を知りたいです。宜しくお願いします。
617nobodyさん:2006/06/19(月) 12:57:29 ID:ywXHAQss
× extract($_POST)変数が
○ extract($_POST)の場合、変数が
618nobodyさん:2006/06/19(月) 13:09:54 ID:???
くだらない質問はいいが、くだらないまたは間違った解答をするやつは消えろ
619nobodyさん:2006/06/19(月) 13:19:10 ID:???
>>618
それじゃ、駄目だよ
ちゃんとどれが間違っているか指摘しないと
620nobodyさん:2006/06/19(月) 13:28:32 ID:???
>>616
試してないけど、こういうのってヤバくね?
つか、ヤバいですか?

<form action="http://>>616のサーバ/該当のスクリプト.php" method="post">
  <input type="text" name="_SESSION[hoge]" value="fuga">
  <input type="sumit" value="送信">
</form>

自分が知ってるのは「送信フォームが必ずサーバ上のHTMLから実行されるわけじゃないから気をつけろ」ということだけ。
個人のPC上にフォームをコピってきて、改変して実行される可能性もあるって教わったです。
つか、extractなんて初めて知った
621nobodyさん:2006/06/19(月) 13:55:15 ID:???
>>620
んなことしなくてもHTTPしゃべれればいくらでも好きなようにPOST出来るわな。
622nobodyさん:2006/06/19(月) 14:19:06 ID:???
>>621
はいはい知識自慢厨は黙ってな
623nobodyさん:2006/06/19(月) 14:19:12 ID:???
質問です。
PHPとPostgresqlでツールを作ろうと考えています。

たとえば住所録で都道府県をセレクトボックスで入力する際に
001 北海道
002 青森
・・・
といった選択肢を

1.テーブルを作っておくか、配列をファイルに書いておいてrequireするか
2.北海道なら"北海道"で持ってていいのか、001を持っておいて表示する際は$pref[ 001 ]みたいにするのか

ex.そもそもPostgres系のスレでするべき質問か


どうするのがベターなのでしょうか
624nobodyさん:2006/06/19(月) 14:24:45 ID:???
>>621が自慢に思えるって・・(笑
625nobodyさん:2006/06/19(月) 14:25:44 ID:ywXHAQss
>620
レスありがとうございます。
確かにそれは見ただけでヤバそうですね。面倒だけど、
$hoge = $_POST['hoge'];
$fuga = $_POST['fuga'];
(以下項目数ぶん続く)
とやるのが一番安全確実なんですかね?

でもやっぱなりextractが御法度のがわからんですorz
registar_globals = OnはPOSTも変数上書きできたのでダメなのは分かったのですが...。
626nobodyさん:2006/06/19(月) 14:29:56 ID:???
>>624
この状況で、別に言う必要もないことを敢えて言ってるからな
627nobodyさん:2006/06/19(月) 14:50:56 ID:???
>>623
都道府県名が変更されることを考慮するか、
変更されたときに変更以前に選択された結果へ伝播するようにするか、
入力されたデータの使い道はなんなのか
など様々な条件によって異なってくるよ。

>ex.そもそもPostgres系のスレでするべき質問か
システム設計について基礎から学ぶのが正解
628nobodyさん:2006/06/19(月) 15:16:41 ID:???
>>623
(1) 都道府県なんてほぼ変更ないだろうということで、別ファイルで配列作りインクルード
$pref[001] = '北海道';
$pref[002] = '青森県';
$pref[048] = '沖縄県';

(2) またはDBで別テーブルにしてJOIN


(1)は管理などが楽で直感的、PHP側が(2)と比べると冗長になる可能性はある。
DB側はPrimaryKeyで数値にして、SQL文も単純になりDB容量もすこーーし小さくなる。

ループ処理で "<td>$row[$i]</td>" とかしたいなら(2)かな
検索フォームも作りDBから抽出したりするなら(2)のほうが楽
629nobodyさん:2006/06/19(月) 15:35:15 ID:???
>>628
"<td>".$pref[$row[$i]]."</td>"
(1)でもこうやればいいだけだから、これは(2)の利点として挙げるのは変だよ
630nobodyさん:2006/06/19(月) 16:16:24 ID:???
まぁ道州制が導入されても10年後とかそんな感じだろうしね
631nobodyさん:2006/06/19(月) 17:10:13 ID:???
>>625
>>4を読んでも分からんのならもう分からないままで良いんじゃない?
誰もextract()が絶対ダメとか言ってないわけでさ、
別に問題ないケースもあるわけだから。
多分君のスクリプトでは問題は起こらないんだよ。
632nobodyさん:2006/06/19(月) 17:13:46 ID:???
>>623
そんなの作る人の趣味で決めて良いと思う。
俺なら$_POST['location'] = "北海道"で済ますなあ。
633623:2006/06/19(月) 17:23:57 ID:???
>>627-628
ありがとうございます。
設計段階での考え方を学んできます。
634nobodyさん:2006/06/19(月) 17:24:22 ID:???
>>629 MySQLで悪いけど、こういう時とかかな

while ( $row = mysql_fetch_array($res) )
{
echo "<tr>";
foreach ($row as $cell) { echo "<td>$cell</td>"; }
echo "</tr>";
}
635nobodyさん:2006/06/19(月) 18:42:40 ID:???
extract($_GET);
if ( hogehoge ) {
$file = "hoge.php";
}
if ($file) {
include($file);
}
こんな馬鹿なコードを書かないようにね!!
636nobodyさん:2006/06/19(月) 21:41:13 ID:???
PHP+Eclipse+CVSで、お奨めの本ありませんか?

 「オープンソース徹底活用
  EclipseによるPHPスクリプト開発」

という本があって良さそうなのだけど、古い本のもよう。
今時の新しい良い書籍が在れば教えてください。
637nobodyさん:2006/06/19(月) 21:50:00 ID:???
質問です。

10件ごとにページ移動で表示させたいのですが、
全てのデータを10件ごとに表示はできるのですが、
検索結果を10件ごとに表示するやり方がうまく思いつきません。
どなたか教えてください。
638nobodyさん:2006/06/19(月) 21:55:30 ID:???
>>637
日本語でおk
639nobodyさん:2006/06/19(月) 21:56:21 ID:???
>>637
状況が良くわからない
「全てのデータ」配列があって、そこから「検索結果」配列ができているんだろ
すでに10件ずつ表示できるのなら、そのまま表示できるだろう?

データベースを利用した場合は、PHPの問題じゃなくてSQLの問題だ
データベースによって仕様が違うのでなんともいえないが、
普通、limit やら、top やらを使って、10件ずつとか取得してくる
こいつらが使えない場合は、あきらめて全件取得してくるしかない
640nobodyさん:2006/06/19(月) 21:57:38 ID:???
いや、一度全部のデータを読み込んで
一度検索結果のみを配列に格納したほうがいいのかな?
641nobodyさん:2006/06/19(月) 22:03:47 ID:???
よくないだろ。
全件文の行数が知りたいなら、1 count 2 必要分だけデータ取得 の2クエリ
642nobodyさん:2006/06/19(月) 22:06:15 ID:???
>>641
つまり、一行ずつ読み込んで
検索が一致したらその数を数えるということですか?
643nobodyさん:2006/06/19(月) 22:10:25 ID:???
>>642
状況をもっと詳しく説明しろ
その検索もとは何だ?
データベースか?CSVファイルか?それ以外の何かか?
644nobodyさん:2006/06/19(月) 22:11:26 ID:???
$data = "データの場所";
$file = file($data);
$count = count($file);

for($i=0;$i<$count;$i++){
   行[$i]を読み込む
   if(検索で一致){
      $search++;
   }
   if($search>=10){
      break;
   }
}

こうですかわかりません><;
645nobodyさん:2006/06/19(月) 22:11:58 ID:???
>>643
普通のxxxx.cgiとかです
646nobodyさん:2006/06/19(月) 22:20:36 ID:???
>>645
ボクちゃん。
まずは、もっと基本的なことを勉強してこようね。
647nobodyさん:2006/06/19(月) 22:22:40 ID:???
>>646
ヒント:スレタイ
648nobodyさん:2006/06/19(月) 22:26:35 ID:???
>>645
( ゚д゚) …普通のxxxx.cgi? 

(つд⊂)ゴシゴシ
 
(;゚д゚) ….cgi?
 
(つд⊂)ゴシゴシゴシ
  _, ._
(;゚ Д゚) …!?


まあ>>639の上段が全てだと思う。
全てのデータを10件ずつ表示できるのなら
検索にヒットするデータをそれと差し替えれば良いだけのこと。
問題はこれがPHPの質問なのかどうかってことだ。
649nobodyさん:2006/06/19(月) 22:29:40 ID:???
>>648
xxxx.datだったら直リンで中身見れるから・・・。
CSV??

つまり、検索にヒットしたデータを配列に格納すればよいのでしょうか?
650nobodyさん:2006/06/19(月) 22:45:22 ID:???
>>649
だからまずコッチの質問に答えろよ!
651nobodyさん:2006/06/19(月) 22:46:56 ID:???
>>650
ごめん、どの質問?
652nobodyさん:2006/06/19(月) 22:48:10 ID:???
>>649
ああ、そういうことか。おk、把握した。


仮に$linesという配列に全データを入れたとしよう。
で、その各要素から検索ワードにヒットしたものを$hittedという配列に入れるとしよう。

そしたら、全てのデータを表示する時は$linesを10件ずつ表示(1)して、
ヒットした物を表示したい時は

$lines = $hitted;

としてから$linesを10件ずつ表示(2)すればいいってわけだ。
お分かりかな?
653nobodyさん:2006/06/19(月) 22:50:12 ID:???
テキストファイルだったら、fileで全件配列に入れちゃって
表示する範囲だけforで回しておけばいいよ。
どうせたいした量でもないんだろ。
654nobodyさん:2006/06/19(月) 22:50:16 ID:???
いくらくだすれでもこれは^^
655nobodyさん:2006/06/19(月) 22:51:21 ID:???
>>653
横からすまん。俺いつもそうやってるんですが、多い場合ってどうするのがいいんですか?
テキストファイルでやるとしたら・・。
656nobodyさん:2006/06/19(月) 22:51:53 ID:???
ページャー付いてるスクリプトを見て理解するのが一番早いんじゃまいか?
657nobodyさん:2006/06/19(月) 22:56:11 ID:???
>>655
多い場合はそもそもテキストファイルよりDB使うだろ。
どうしてもテキストファイルにしたいなら、何度も表示するようなものは
予めヒット数とかキャッシュしておいてfopen、fget()で最後のヒット行までしか読み込まないとか工夫すれば良いんじゃない?
条件がころころ変わるような検索は全件読み込まないと無理だけど、それでも一気にメモリを食うfile()は使わない方が良い。
658nobodyさん:2006/06/19(月) 22:57:13 ID:???
>>655
テキストを読み込むバッファと、最終的に利用する配列を分ける
まずはバッファに読み込んで、必要なものだけ配列へコピーする
これを件数分たまるまで繰り返す
659nobodyさん:2006/06/19(月) 22:58:31 ID:???
あ、ちなみに>>657のは[1][2]...とかページ数分のページャが付いてる場合ね。
prev nextしかないなら、表示数+1読めば次のページがあるかないか分かる。
660nobodyさん:2006/06/19(月) 22:59:43 ID:???
と思ったが、そうでもいないな・・・。
最後の+1分が最後の行だったら結局最後まで読む事になるか。
661nobodyさん:2006/06/19(月) 23:04:26 ID:???
件数が少なければこんな感じでいいんじゃないかい

$page = 2;  // 表示したいページ数 1-n
$disp_count = 10;  // 表示したい行数

$start_pos = ($page - 1) * $disp_count;
$end_pos = $start_pos + $disp_count;
if ($end_pos > $count)  $end_pos = $count;  // 10件に満たないときはどうするとかいろいろは
                        // $start_pos,$end_posをどうにかする
$arr = array();
for($i=0;$i<$count;$i++){
   行[$i]を読み込む
   if(検索で一致){
      $search++;
      if ($end_pos < $i)  break;
      if ($start_pos >= $i) { // 条件に合致しているとき$arrに溜める
        $arr[] = $file[$i];
      }
   }
}
// $arrに目的のレコードが入ってるはず
foreach ($arr as $rec) {
  echo $rec["....."].なんちゃら表示;
}
// 違ってたらスマ、誰か直して下さい。
662nobodyさん:2006/06/19(月) 23:07:49 ID:???
くだスレらしくなってきた。
663nobodyさん:2006/06/20(火) 00:59:53 ID:???
Basic認証とDigest認証なのですが
664nobodyさん:2006/06/20(火) 02:51:40 ID:???
hittedはやばいよ
665nobodyさん:2006/06/20(火) 03:03:08 ID:???
ツボったwwww
666nobodyさん:2006/06/20(火) 03:45:35 ID:???
これってどう思う?
PHPを使った「パスワード共有システム」だそうだが、なんだか香ばしい気が・・・
 ↓
http://www.bf-web.net/~dmcsoftware/cgi-bin/dlmanager/index.php?mode=details&id=pawosys_server
667nobodyさん:2006/06/20(火) 07:39:43 ID:Js32egMI
data.txtにあるテキストデータの中で
aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
とある内の
fffを含むものを見つけて消すには
どうしたらいいですか?
668nobodyさん:2006/06/20(火) 08:00:56 ID:???
すれ違いだったらゴメソ。
<form method=post action=hoge.php>
<input type=text name=これこれ>
<input type=text name=あれあれ>
<input type=submit value=こっちのばやい>
<input type=submit value=あっちのばやい>
</form>
で、”これこれ”や”あれあれ”の中身を
こっちのばやいに送るときと
あっちのばやいに送りたいときが同じform上にあるときは
”input type=submit”や”form”にnameを付けたりして区別させるんですか
669668:2006/06/20(火) 08:16:25 ID:???
自己解決ですsumaso
670nobodyさん:2006/06/20(火) 09:06:47 ID:???
画像アップする掲示板を作成してますが、
アップされたファイル名をユニークにしたいと思っています。

たとえば、
アップ前ファイル名 中田.jpg
アップ後ファイル名 imge1DOf7.jpg
こんな風にリネームする関数ありましたでしょうか。
671nobodyさん:2006/06/20(火) 09:25:36 ID:???
>>670  time使えばいいんじゃね?
672nobodyさん:2006/06/20(火) 10:17:51 ID:???
>>670
俺ならデータが同じであるかを考慮してデータからハッシュ取るよ。
そういうのが必要なければ>>671の時刻(ミリ秒)で良いんじゃないの。
あとuniqid()
673nobodyさん:2006/06/20(火) 11:25:31 ID:???
>>667
file()でデータ取得して
正規表現でfff探して
見つかったらunlinkで消す
674nobodyさん:2006/06/20(火) 11:56:26 ID:???
>>673
行を消したいのかもね。

file()でデータ取得して
正規表現でfff探して
見つからなかった行をスタックして
最後にスタックした行があるのならファイルを書き直す
って感じか。
675nobodyさん:2006/06/20(火) 13:31:10 ID:???
質問
仕事でPHPやるときってPHP4と5どっちが多い?
676nobodyさん:2006/06/20(火) 14:05:43 ID:???
例えば以下のようなソースが$dateに入力されているとします。

<a href="http://yahoo.co.jp"><img src="logo.jpg" width="100" height="50"></a>
<strong>アクセスはこちらまで!!</strong>


このソースから画像表示(<img>タグ)だけを取り出してechoで表示させることは
出来ますでしょうか?
677nobodyさん:2006/06/20(火) 14:08:44 ID:???
>>667 673 674
preg_grep を使えば見たが目スマートに解決できる。


678nobodyさん:2006/06/20(火) 14:09:59 ID:???
>>676
できる
679nobodyさん:2006/06/20(火) 14:13:01 ID:???
>>667
preg_grep と書いたが、ファイルから読み出して特定行を消して書き直すのであれば、

fopen( +r) からの処理で、
1行づつ読み出し、 strpos にて、fffがあるかをチェックして、
ないなら、書き出しようの配列に追加、
全行チェックの後,
ftruncate
fseek
fput
fclose
の手順が、ファイルロックの観点からいうと最適だとおもふ。
なお、fffのチェックにstrposを使うのは、正規表現を使うより動作が速いため、
特にパターンパッチを行う必要がない特定文字列ならば、これが推奨される。
680nobodyさん:2006/06/20(火) 15:38:25 ID:???
.$n.みたいな記述がありますがこの変数の前後の.(dot)は何を意味してるんでしょうか。
これまで学んだ何冊かの本でもいつも華麗にスルーされていて
いまだにピンときません。。。
「.」で探しても文字列連結のときの.(dot)しか出てこないしで。
あほすぎな質問ですがお願いします
681nobodyさん:2006/06/20(火) 16:18:41 ID:???
.$a = "foo";
みたいなこと?
エラーなると思うが。
682nobodyさん:2006/06/20(火) 16:19:07 ID:???
構文エラー
683nobodyさん:2006/06/20(火) 16:38:52 ID:???
>>680
どこでそんなの見たのかソースキボン
684nobodyさん:2006/06/20(火) 16:40:46 ID:???
>>680
文字列連結の . の気がするんだが違うのか?
685nobodyさん:2006/06/20(火) 16:46:01 ID:???
>>680
$n = 'bb';
$hoge = 'aa'.$n.'cc';
echo $hoge;

---> aabbcc

とかじゃなくて?
686680:2006/06/20(火) 16:49:55 ID:???
皆さんすみません。PHP独得の構文なのかと思って脈絡もなく質問してしまいました。
↓は今手もとの書籍からの引用でそういう記述がある1行のみ部分です。
$strPathには取得したファイル名が入っています。その前後にdotが。

print("<li><a href='record.php?doc=".$strPath."'>".$strPath."</a></li>");

1行だけでわかりますでしょうか?
687nobodyさん:2006/06/20(火) 16:50:55 ID:???
単なる連結だ
688nobodyさん:2006/06/20(火) 16:54:13 ID:???
どう見ても文字の連結じゃん^^
689680:2006/06/20(火) 16:54:44 ID:???
うわあ〜やばい・・・今初めて気づいたけどやっぱ普通に文字列連結ですね、これ。
やっぱアホ杉だです。すいませんm(_ _)m
690nobodyさん:2006/06/20(火) 16:54:54 ID:???
>>686
>>685のとおり
間を開けると良く判る。

print(  "<li><a href='record.php?doc="  .  $strPath  .  "'>"  .  $strPath  .  "</a></li>"  );
691680:2006/06/20(火) 17:01:38 ID:???
皆さん、ありがとうございます。重複しました。
>>865ですでに指摘されてたんですね。すみません。
ほんとうに・・・俺って奴は・・・orz
692680:2006/06/20(火) 17:05:04 ID:???
× 865
○ >>685

うう・・・
693nobodyさん:2006/06/20(火) 17:17:50 ID:e7ISWcMQ
質問です

htmlspecialcharsはHTML出力時とDB格納時のどちらにかけるのが正しいのですか?両方すかね?
694nobodyさん:2006/06/20(火) 17:21:19 ID:84KpNS9w
気にするな。みんな適当だから。
695nobodyさん:2006/06/20(火) 17:29:42 ID:???
>>693
HTML出力時
DB格納時はpg_convertとかその辺のを使う
696nobodyさん:2006/06/20(火) 17:51:10 ID:???
>>693
DB格納前。
なぜならヴぁ、HTML出力時であれば、HTML出力するたびに htmlspe〜を通さないとならない。
DB格納前に行えば、その一回だけですむ。
697nobodyさん:2006/06/20(火) 17:53:26 ID:???
>>693
タグを含めた文字を検索とかするわけじゃなければ、DBに入れる前に変換してもいいんじゃない。
でも、公式かどっかにhtmlspecialcharsはHTML出力する直前にやるべきだ。みたいな事が書いてあった気がするけど。
出力前までhtmlspecialcharsしないのは、メール/HTML等に対応する為だとか。
まぁ、でも別にどっちでもいいと思うよ。
698nobodyさん:2006/06/20(火) 17:59:39 ID:e7ISWcMQ
>694,695,696
トンクスっす。
やっぱみんな適当なんですかね。適当を卒業したいのですが...。
XSSとかの本を読んでると、なんかキリ無い気がして萎えます。
プロの現場というか、それで喰ってる人たちはどの程度対策してるんでしょうか?

>695
pg_convertは初めてみました。便利そうですね。

>696
へんなjavascriptが表示されて...とか言う具合にはならないですかね?
699nobodyさん:2006/06/20(火) 18:04:18 ID:???
おいおい、基本的な部分が分かってないと見た。
700nobodyさん:2006/06/20(火) 18:24:23 ID:???
701nobodyさん:2006/06/20(火) 18:25:48 ID:e7ISWcMQ
>699
おっしゃるとおりです。完全に独学してるので怪しいです。
色々本も買ったのですが、結構著者によってまちまちというか、
htmlspesialcharsさえやっときゃ殆ど大丈夫みたいな書き方されてたり...。

フォーム入力から→DB登録→一覧表示みたいな流れで最低限これだけはやっとけみたいのありますか?
702nobodyさん:2006/06/20(火) 18:35:35 ID:???
>>693
html出力時にするのが一般的

DBに投入前に行うと、そのデータを編集するときにエスケープする前の状態に戻してから
編集して、再度htmlspecialchars()を使う必要があるから
そんなことをするくらいなら、出力する前にやるほうが楽
703nobodyさん:2006/06/20(火) 19:00:00 ID:mpIQquvJ
フォームで、未入力の項目がある場合、条件式はどうするのが良いでしょうか?
私が考えたのは:

1. if (isset ($_POST['name'])) { ...処理... } // POST がTRUE なら処理
2. if ($_POST['name'] === '') { ...処理...} // POST の値が空なら処理

皆さんなら?
704nobodyさん:2006/06/20(火) 19:03:13 ID:???
>>703
2 か if (strcmp($_POST['name'], '') {
705nobodyさん:2006/06/20(火) 19:03:58 ID:???
>>703
(strlen($_POST['name']) > 0) and (strlen($_POST['name']) <= $MaxNameLen)
706nobodyさん:2006/06/20(火) 20:57:12 ID:???
>>703
if (!isset($_POST['name']) || $_POST['name'] == '') { ...処理... }
707nobodyさん:2006/06/20(火) 20:59:43 ID:???
if (!$_POST['name']) {...処理...}
708nobodyさん:2006/06/20(火) 21:09:57 ID:e7ISWcMQ
if(strlen($_POST['name']) == 0) {...処理...}
709nobodyさん:2006/06/20(火) 21:32:39 ID:mpIQquvJ
>>704-707
おまいらありがとう(・∀・)
参考にするよ♪
710nobodyさん:2006/06/20(火) 22:04:01 ID:???
>>707
それはまずい
数値の0がきたときと空が来たときの判別ができない
711nobodyさん:2006/06/20(火) 22:22:23 ID:???
CSVというのはなんですか?
712711:2006/06/20(火) 22:32:37 ID:???
データをCSVで保存するとカンマ区切りでExcelでは読みやすくなるのですね。
713nobodyさん:2006/06/20(火) 22:33:21 ID:???
>>711
Googleって知ってる?
714nobodyさん:2006/06/20(火) 22:37:19 ID:???
Excelというのはなんですか?
715nobodyさん:2006/06/20(火) 22:40:47 ID:???
716nobodyさん:2006/06/20(火) 23:05:51 ID:???
>>714 = array(
717nobodyさん:2006/06/20(火) 23:29:36 ID:???
くだらん釣りはスルーヨロ
718676:2006/06/20(火) 23:31:39 ID:???
タイミング悪くてだいぶレスが流れてしまったのですが、、
678さんが「できる」と回答していますが、どうやってやるんでしょうか?
自分ではどの関数を使ってどうやってやればいいかの
ソースの組立の予測が付きません・・。

ヒントか何か教えていただければと思います。
719nobodyさん:2006/06/20(火) 23:32:48 ID:???
かなりスレ違いと思いますがお願いします。

ページA→ページBと移動する際に
パスを引き継ぎたいのですが
getではパスがばれるので×
postだとアンカーで引き継げない
となるとsessionidがベストなのでしょうか?

720nobodyさん:2006/06/20(火) 23:34:25 ID:Vcobe6Xy
>>719
ヒント:暗号化
721nobodyさん:2006/06/20(火) 23:37:45 ID:???
>>718
一番手っ取り早いのは正規表現で取得してくる
722nobodyさん:2006/06/20(火) 23:51:40 ID:???
>>719
セッションがベスト
セッションのことをsessionidと言ってるならもうちょっと勉強ヨロシク
723nobodyさん:2006/06/20(火) 23:52:15 ID:???
セッションのテストをしているのですが、
http://hogehoge.com/index.php でアクセスした時にはクッキーに保存されるのですが
http://hogehoge.com/ でアクセスするとセッションファイルは作成されるもののクッキーが発行されません。
なぜか原因が分かる方いますか?
ちなみに、session.cookie_pathは変更していなくて、/のままになっています。
724723:2006/06/21(水) 00:02:45 ID:???
独自ドメインのサーバーでテストしたところ、同じスクリプトで/で終わっていても正常に動作しました。
Xreaのサブドメインの方でテストすると出来ないっぽいです。
session.cookie_domainを設定して試してみましたが、やはいダメでした。
という事はサーバーの設定の関係でしょうか。
725nobodyさん:2006/06/21(水) 00:06:05 ID:???
>>723-724
全てやりつくして自分ではどうにもならないって状況になってから質問しなおせ。
で、次質問するときは、phpinfoで出るセッション関連設定晒せ。
あと、例で用いるドメインはexample.comな。
726nobodyさん:2006/06/21(水) 00:07:47 ID:???
>>723
おちつけ
なにが保存されないんだ
セッションとクッキーの違いは分かってるか?
クッキーの確認方法はなんだ?
ブラウザを閉じたら内容がクリアされるようなクッキーはファイルには保存されないのを知ってるな?
727nobodyさん:2006/06/21(水) 00:09:38 ID:???
>>725
これ以上はもう無理そうです。

>>726
デフォルトで言うところのPHPSESSIDクッキーが保存されません。
クッキーはブラウザのクッキー表示機能で確認してます。
728nobodyさん:2006/06/21(水) 00:12:15 ID:???
セッションの設定は
session.bug_compat_42OffOff
session.bug_compat_warnOnOn
session.gc_probability11
session.hash_bits_per_character55
session.gc_divisor10001000
これ以外はデフォルトのようです。
729nobodyさん:2006/06/21(水) 00:15:03 ID:???
>>725
なんでexample.comじゃなきゃいけねーの?
730nobodyさん:2006/06/21(水) 00:15:05 ID:???
ブラウザ=Firefoxです。
731729:2006/06/21(水) 00:17:24 ID:???
ごめん。俺が悪かった
732nobodyさん:2006/06/21(水) 00:27:46 ID:???
すみませんお願いします。
数値を全角から半角に直したいのですが

$com1 = i18n_ja_jp_hantozen($_POST["com1".$i],"n");

と記述したところ、
Fatal error: Call to undefined function: i18n_ja_jp_hantozen()
というエラーが返ってきました。
PHP4ではまだ対応されていないのでしょうか?
733nobodyさん:2006/06/21(水) 00:33:10 ID:???
>>732
こりゃまた古い関数を引っ張り出してきたもんだねぇ。
ttp://www.php.net/manual/ja/aliases.php
734nobodyさん:2006/06/21(水) 00:36:10 ID:???
>>733
変更されていたのですね^^;
mb_convert_kana()で試したところも同じエラーになりました。
「mb」を使うには何か設定が必要なのでしょうか?
735nobodyさん:2006/06/21(水) 00:42:18 ID:Ap/VWjSS
セッションに配列を入れて出力する仕組みを書いています。
以下のようなソースになるのですが、出力結果はArrayとなって
うまくできません。おかしい箇所を訂正・指摘していただけないでしょうか?

//送信ボタンが押された場合
if(isset($ok)){
//セッション『id』に値がある場合
if(isset($_SESSION["id"])){
array_push($_SESSION["id"],$id);
for($i=0;$i<count($_SESSION["id"]);$i++){
print "$_SESSION[id][$i]"."<br>";

}
//セッション『id』に値が無い場合
}else{
$_SESSION["id"] = array($id);
print $_SESSION["id"];
}
}
736nobodyさん:2006/06/21(水) 00:42:46 ID:???
>>734
マルチバイト関数はインストール時に指定が必要
その鯖の環境では使えるのかい?
737nobodyさん:2006/06/21(水) 00:43:29 ID:???
>>736
ローカルです。


extension=php_mbstring.dll
にしてあるのですが使えないのです。
738nobodyさん:2006/06/21(水) 00:48:17 ID:???
>>735
最初にelseの方にいくよな?
そしてarrayを代入してそれをprintしてればarrayが表示されて当たり前だろ?

>>737
オマイが設定したと言っても本当に正しく設定してあるか分からんだろ?
phpinfo()を出したまい
739nobodyさん:2006/06/21(水) 00:53:02 ID:???
>>738
出しました。
「mbstring」らしき文が見当たりません
740735:2006/06/21(水) 00:59:26 ID:???
>>738
それでは最初のelseではprintをせずに2回目の送信を行ったところ
forで出力してもやっぱり、Arrayっと表示されます。
※$idが最初は10次は20入れた場合

10
Array
741nobodyさん:2006/06/21(水) 01:01:42 ID:???
>>739
phpinfoの
Configuration File (php.ini) Path
のphp.iniにあるextension=php_mbstring.dllの前に;が無いか
phpinfoの
extension_dirのディレクトリにphp_mbstring.dllファイルがあるか確認
742nobodyさん:2006/06/21(水) 01:03:26 ID:???
>>739
じゃぁ使えないな

>>740
× $_SESSION[id]
○ $_SESSION['id']
743nobodyさん:2006/06/21(水) 01:04:37 ID:???
>>741
extension=php_mbstring.dll
;はありません。

extension_dirは ./ ./ となっています
744nobodyさん:2006/06/21(水) 01:09:37 ID:???
>>743
php_mbstring.dllのありかを探してそのディレクトリを
php.iniのextension_dirに指定してみれ
php.iniはphpinfoで表示された場所のファイルを修正
745735:2006/06/21(水) 01:09:38 ID:???
>>742
7行目のprintの箇所ですよね?
以下のようにしたのですが、状況は変わらずです・・。
print $_SESSION['id'][$i]."<br>";
746nobodyさん:2006/06/21(水) 01:11:09 ID:???
>>745
742じゃないが、最後の行に
print_r($_SESSION);
で中身がどうなってるか確認してみれ
747nobodyさん:2006/06/21(水) 01:15:53 ID:A9H5bJA/
extension_dirにphp_mbstring.dllの場所を設定したら解決しました。
ありがとうございます。


mb_convert_kana($_POST["com".$i],"n");
としたら、出力が「?P?P?P」になっちゃったよ;;
748735:2006/06/21(水) 01:16:01 ID:???
>>746
最初に10を、2回目に20をテキストボックスに入れて送信した結果です。
Array ( [id] => Array ( [0] => 10 [1] => Array ( [0] => 10 ) ) ) Array ( [id] => Array ( [0] => 10 [1] => Array ( [0] => 10 ) ) )

なんかかなり変な感じですね・・。しかも配列にArrayが入っているし・・。
全く原因が掴めません。。array_pushが悪い訳じゃないだろうし。。
749nobodyさん:2006/06/21(水) 01:18:46 ID:???
>>747
mb_convert_kana($_POST["com".$i],"n","sjis");
でやってみれ
750nobodyさん:2006/06/21(水) 01:18:51 ID:???
//送信ボタンが押された場合
if(isset($ok)){
//セッション『id』に値がある場合
if(isset($_SESSION["id"])){
array_push($_SESSION["id"],$id);// (3)
for($i=0;$i<count($_SESSION["id"]);$i++){
print "$_SESSION["id"][$i]"."<br>"; // (4)
}
//セッション『id』に値が無い場合
}else{
$_SESSION["id"] = array($id); // (1)
print $_SESSION["id"]; // (2)
}
}

最初はelse以降に逝くが、$idが10なら
(1)の$_SESSION["id"]はarray(10)になる。
当然(2)はArrayと表示される。
次はセッションが既にあるから上段に行って、
$idが20なら(3)で$_SESSION["id"]はarray(10, 20)になる。
当然(4)では
10
20
と表示されるはずだ、と。
この20がArrayとなっているという事は(3)の$idがArrayになってるって事だから、
この処理以前の$idの取り方に問題があるような気がする。
751nobodyさん:2006/06/21(水) 01:20:14 ID:???
>>749
ありり!できました
752nobodyさん:2006/06/21(水) 01:20:38 ID:???
>>748
$idがarrayぢゃないのんか?
753735:2006/06/21(水) 01:23:00 ID:???
>>750,752
どうも解説ありがとうございます。私もどこがおかしいのか全くわからなくて・・。

ちなみに、$idを受け取る送信ページは以下のソースです。普通のHTMLです。
<form action="session.php" method="post">
<input type="text" name="id">
<br>
<input type="submit" name="ok" value="送信">
</form>
754nobodyさん:2006/06/21(水) 01:28:26 ID:???
>>753
print_r($_POST);
print_r($id);
で中身をみてみちゃどうかね。
755nobodyさん:2006/06/21(水) 01:30:56 ID:???
多分

$id = $_POST["id"];

とすべきところを

$id = array($_POST["id"]);

とでもしている予感。
756735:2006/06/21(水) 01:33:54 ID:???
>>754
■1回目の10を入れた場合
Array ( [id] => 10 [ok] => 送信 )
10

■2回目の20を入れた場合
10
Array
Array ( [id] => 20 [ok] => 送信 )
Array ( [0] => 10 [1] => Array ( [0] => 10 ) )
757nobodyさん:2006/06/21(水) 01:34:13 ID:???
質問です。
現在実行しているスクリプト名
http://localhost/test.php)だったら「test.php」
を出力したいのですが、どうすればよいのでしょうか?
758757:2006/06/21(水) 01:39:01 ID:???
$_SERVER['PHP_SELF'];で解決しました。
759nobodyさん:2006/06/21(水) 01:39:38 ID:???
>>754
$id = てな感じで$idを代入しているとこ書いてみてくり
760nobodyさん:2006/06/21(水) 01:40:07 ID:???
そういえば、csvだと直リンで中身見られることはないの?
761nobodyさん:2006/06/21(水) 01:43:47 ID:???
>>760
見ることもできるし、見られなくすることもできる
いろいろな設定次第
762735:2006/06/21(水) 01:47:32 ID:???
>>759
特に代入してないです。>>735で書いたとおりです。
別に$idはそのまま出力される(値が入る)かと思いますが。。
763nobodyさん:2006/06/21(水) 02:01:38 ID:B7JejGVK
>>762
展開してるのね。了解。

■2回目の20を入れた場合
10
Array
Array ( [id] => 20 [ok] => 送信 )
Array ( [0] => 10 [1] => Array ( [0] => 10 ) )
↑ここで最後の$_SESSION[1]が配列になっているし、中身が10のまま

なんか、セッションがあろうがなかろうが関係ないんじゃないか?

$_SESSION["id"][] = $id;
for($i=0;$i<count($_SESSION["id"]);$i++){
print $_SESSION["id"][$i]."<br>";
}
764735:2006/06/21(水) 02:24:29 ID:???
>>763
ご説明ありがとうございます。
//セッション『id』がある場合

} //最後から二つ目の}

をコメントアウトしました。そして763さんのコードを追加してみたのですが、
2回目の20を入れた処理で
10
Array
Array ( [id] => 20 [ok] => 送信 )
Array ( [0] => 10 [1] => Array ( [0] => 10 [1] => Array *RECURSION* ) )

このようになります。あまり変わりないような気がします・・。
765735:2006/06/21(水) 02:27:43 ID:???
テストをWindowsXPのローカル上で行っていまして、
PHPが5.1.4なのですが、あまり関係ないですよね・・。
session_start();もしているからセッションが有効になっているはずだし・・。
766nobodyさん:2006/06/21(水) 02:28:34 ID:???
>>764
いや、735をいっそのことこうしたらどうかと。
//送信ボタンが押された場合
if(isset($ok)){

$_SESSION["id"][] = $id;
for($i=0;$i<count($_SESSION["id"]);$i++){
print $_SESSION["id"][$i]."<br>";
}

}
$_SESSION["id"]があるかどうかで
何か処理が変わるの?735だと単純に$idを追加すればいいだけのような気がするんだけど。
767735:2006/06/21(水) 02:49:46 ID:???
>>766
変わり無しです・・。766さんのコードに変更したのですが、

10
Array

というエラーが出ます。環境による問題ですかね。。
768nobodyさん:2006/06/21(水) 02:53:28 ID:???
>>767
よっしゃ。とりあえずそのファイルどっかに上げてみてみないか?
もしくはそんなに長くないコードならここに貼り付けるか
769735:2006/06/21(水) 02:55:19 ID:???
【送信前・index.html】

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>セッションテスト</title>
</head>

<body>
<form action="session.php" method="post">
<input type="text" name="id">
<br>
<input type="submit" name="ok" value="送信">
</form>
</body>
</html>
770735:2006/06/21(水) 02:57:18 ID:???
【送信後・session.php】

<?php
session_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>セッション受け取り</title>
</head>

<body>
<?php
//送信ボタンが押された場合
if(isset($ok)){
$_SESSION["id"][] = $id;
for($i=0;$i<count($_SESSION["id"]);$i++){
print $_SESSION["id"][$i]."<br>";
}
}
?>
<input type="button" onClick="history.back()" value="前に戻る">
</body>
</html>

何度もお手数おかけします。。よろしくお願いします。
771nobodyさん:2006/06/21(水) 03:10:26 ID:???
>>770
WInXP,Apache1.3,php5.0.3
結果
10
20

2回目の$_SESSIONの中身
Array
(
[id] => Array
(
[0] => 10
[1] => 20
)

)
ただし、register_globals Offのため
$id=$_POST["id"];
$ok=$_POST["ok"];
を追加した

うまくいってるけど?
772nobodyさん:2006/06/21(水) 03:11:30 ID:???
あれ?
$_SESSION["id"][] = $id;
    ~~~~~~~~~~~
こういう書き方ってありだっけ?
773nobodyさん:2006/06/21(水) 03:14:06 ID:???
>>772
[]のことなら、全然あり。最後に追加される
http://jp.php.net/manual/ja/language.types.array.php
774735:2006/06/21(水) 03:23:08 ID:???
>>771
テストしていただいてありがとうございます。
うちはApache2.0.52とPHP5.1.4ですが、やはりなりません。
Linux+PHP4系のレンタルサーバにファイルをアップしても
同様に、
10
Array

という表示です。どうなっているのか・・。
775735:2006/06/21(水) 03:26:12 ID:???
わかりました!!

$_SESSION["id"][] = $id;

$_SESSION["id"][] = $_POST["id"];

とすることで、771さんと同じ結果になりました!
ちょっと理由がわからないのですが、変数を$_POSTにしないといけないみたいですね。。

長い間、お付き合いいただき、ありがとうございます。
また勉強します。
776nobodyさん:2006/06/21(水) 03:27:47 ID:???
>>774
恐らく$idがおかしそうなので、最初に
<?php
session_start();
$id=$_POST["id"];
$ok=$_POST["ok"];
?>
ってやてみたらどうかな
777nobodyさん:2006/06/21(水) 03:30:24 ID:???
>>775
了解、乙
778nobodyさん:2006/06/21(水) 03:45:25 ID:???
>>775
もう見て無いかもしれないが、よく考えたら
register_globalsがOnなため、$_POSTと$_SESSIONの両方の["id"]が
$idに展開されて変になっていたのではないかと
$_SESSION["id"]を$_SESSION["xid"]にするとうまくいくべ
779nobodyさん:2006/06/21(水) 05:43:39 ID:r7tfflxK
既に何かデータが存在するファイルに上書きをする時は、w+でいいんですか?
780nobodyさん:2006/06/21(水) 06:20:11 ID:???
w+でもいいけど既にあるんだったらwでいいんじゃない?
781nobodyさん:2006/06/21(水) 06:24:08 ID:???
書くけど書いたのをファイルを開いたまま読みたいときw+
書くだけw
782nobodyさん:2006/06/21(水) 06:27:43 ID:r7tfflxK
wでやってるんですが、上書きできないんですよね
何故でしょう? こんな感じです。

if (is_writable($file)) {
if (!$handle = fopen($file, 'w')) {
print "Cannot open file ($file)";
exit;
}
for($i; $i <= $count-1; $i++){
$files_rows = preg_split("/,/", $files[$i]);
$serial = $files_rows[0];

if($files_rows[16] == $_POST['original']){
$mod_file .= $add_data."\n";
}
else{
$mod_file .= $files[$i]."\n";
}
}
flock($handle,LOCK_EX);

if (!fwrite($handle, $mod_file)) {
print "Cannot write to file ($file)";
exit;
}
fclose($handle);
}
783nobodyさん:2006/06/21(水) 06:45:56 ID:r7tfflxK
ポインタ指定してないのが原因でしょうか?
784nobodyさん:2006/06/21(水) 07:00:19 ID:???
if (!$handle = fopen($file, 'w')) {
for($i; $i <= $count-1; $i++){

ぱっと見
この2つの行になんだか違和感。

普通はこうかな
if (!($handle = fopen($file, 'w'))) {
for($i=0; $i < $count; $i++){
785nobodyさん:2006/06/21(水) 07:01:47 ID:???
jpeg画像を表示ではなく、ダウンロードさせるにはどのようにすればよいのでしょうか?
786nobodyさん:2006/06/21(水) 07:03:34 ID:???
>>782
段階を追って確認してみれば?
まず
if (is_writable($file)) {
はちゃんと通過できてるの?
あとぶっちゃけ
$handle = fopen($file, 'w');
の1行だけ実行したら中身空っぽの0バイトファイルになるはずだけどどうよ?
これで0バイトになったら上書き自体はできてるってことだ。
こういうのはシンプルなコードで順次確認が基本だよ。
787nobodyさん:2006/06/21(水) 07:05:18 ID:???
>>785
画像データの標準出力への出力前にheader()を使って別のファイルタイプとして認識させる。
788nobodyさん:2006/06/21(水) 07:47:46 ID:???
Parse error: parse error, unexpected '{', expecting '(' って何ですか?
789nobodyさん:2006/06/21(水) 07:48:51 ID:???
>>788
文法エラー。カッコの数が合ってない。
790nobodyさん:2006/06/21(水) 08:02:39 ID:???
構文解析エラー: '('が来ると思ってたのになんか'{'がキタこれナニこれ
791nobodyさん:2006/06/21(水) 08:12:35 ID:???
phpではmethod=getのデータは$_GET['']で受け取るんかいな?
792nobodyさん:2006/06/21(水) 08:13:39 ID:???
>>791
他にも方法はあるけど基本はソレ
793nobodyさん:2006/06/21(水) 08:13:59 ID:???
その通り。つかマニュアル嫁
794nobodyさん:2006/06/21(水) 08:32:08 ID:???
配列の使い方の関係で、どうしても定義してないキーが出ちゃう場合があって
noticeエラーが頻発しちゃうんだけど、これって無視しても特に問題ないよね?

notice出ないように修正することも出来なくはないけど、
すごく無駄なコードが増えちゃうしスパゲティ化するから、
かえって修正しないほうがいい気がしてる。
795nobodyさん:2006/06/21(水) 08:36:47 ID:???
noticeエラーは開発時のデバッグお助け機能くらいで考えとけばいいんじゃねーかと俺は考えてる。
全部潰せばより堅牢にはなると思うが、正直なとこ過剰としか思えん。
ちゃんとデバッグできない低脳な人は片っ端から潰した方がいいかもしれんけどな。
796nobodyさん:2006/06/21(水) 08:39:03 ID:???
ポリシーをどうするかは本人の自由だと思うので好きに決めていいと思うけど、
> すごく無駄なコードが増えちゃうしスパゲティ化する
ってのが気になるな。
そんなにあちこちで定義されていないキーを使うってのは、スクリプトの構造自体に問題があるんじゃないかなぁと。
797nobodyさん:2006/06/21(水) 09:04:22 ID:???
>>794
$value = @$cache[$key];

マニュアル嫁ボケ
http://www.php.net/manual/ja/language.operators.errorcontrol.php
798nobodyさん:2006/06/21(水) 10:14:05 ID:???
>>795 親切といえば親切だし、過剰といえば過剰だよね。

>>796 あちこち・・・ってほどでもないんだけど、ある一つの処理に関する配列において、
   要素の数が場合によって0〜9個まで、まちまちになるのよ。で、それをHTMLテンプレに埋め込んだ変数(配列)に
   展開するときに、noticeが出ちゃう。

>>797 エラーの抑制方法はもちろん知ってるわけで・・・ 質問の意図が分からなかったんかな?
799nobodyさん:2006/06/21(水) 10:47:55 ID:???
>>798
じゃぁ無視するとエラーログがとんでもないことになる。
どこまで保存するかの設定にもよるが。
800nobodyさん:2006/06/21(水) 11:06:35 ID:???
>>798
>>796も書いてるが、存在しないキーでエラーが出たり、
それを修正するためにスパゲティコードになる時点で根本的に設計がおかしい
まあ、好きにすれば?としか答えようがないな
801nobodyさん:2006/06/21(水) 11:08:28 ID:???
配列を初期化すればいいんじゃないの。
802nobodyさん:2006/06/21(水) 11:20:48 ID:???
任意の項目名で自由にHTMLテンプレ上に表示させたいとかゆー類っぽいな
803nobodyさん:2006/06/21(水) 11:32:54 ID:???
素直に @をつけるか、 Noticeメッセージを表示しないように設定するかのどっちかだな。
804nobodyさん:2006/06/21(水) 11:44:35 ID:NAuR8t7O
PRINTかECHOで複数行を簡潔に記述したいのですがどう書けばいいのでしょうか?
以下のようにしても動きませんでした。一行ずつ関数書くのは省きたいです。


PRINT"
あかさたな
テスト
りんご
";
805nobodyさん:2006/06/21(水) 11:54:39 ID:???
>>840

?>
あかさたな
テスト
りんご
<?php
806nobodyさん:2006/06/21(水) 12:00:42 ID:???
>>804
ttp://jp.php.net/manual/ja/function.echo.php
マヌアルは読んだか?
807nobodyさん:2006/06/21(水) 12:36:15 ID:???
808nobodyさん:2006/06/21(水) 12:48:19 ID:???
print <<< HTML
りんご
だいすき
ぱいなっぷるも
すき
HTML;
809nobodyさん:2006/06/21(水) 13:00:52 ID:???
sendmailを使いたい場合は何か設定をしなくてはいけないのでしょうか?
810nobodyさん:2006/06/21(水) 13:16:50 ID:???
めいらーでーもん
811nobodyさん:2006/06/21(水) 13:17:36 ID:???
>>809
ttp://coronado.s8.xrea.com/php/ref.mail.php
マニュアルをどうぞ。
812nobodyさん:2006/06/21(水) 13:31:22 ID:???
>>804
ひょっとして
PRINT"
あかさたな<br>
テスト<br>
りんご<br>
";
813nobodyさん:2006/06/21(水) 13:44:42 ID:???
>>804
echo "あかさたな<BR>テスト<BR>りんご";
814nobodyさん:2006/06/21(水) 13:50:37 ID:???
print("
あかさたな\n
テスト\n
りんご\n
");

こういうこと?
815nobodyさん:2006/06/21(水) 14:13:29 ID:???
おまえら単純な質問に協力しるなんてなんていいやつらなんだ
(つд`)
おじさんは感動して涙がとまらないよ。
816nobodyさん:2006/06/21(水) 14:43:04 ID:???
はたまたこういうこと?

print nl2br("
あかさたな
テスト
りんご
");

ttp://coronado.s8.xrea.com/php/function.nl2br.php
817nobodyさん:2006/06/21(水) 15:01:58 ID:???
>>815
多分暇なだけだよ
インデントを使いたいなら、

  echo "あいうえお"
      ."かきくけこ"
      ."さしすせそ"
      ."たちつてと";
818nobodyさん:2006/06/21(水) 17:43:17 ID:r7tfflxK
1150672920,aaa,bbb,ccc
1150671220,ddd,eee,fff
1150672450,iii,jjj,kkk
のファイルは、0行目がタイムスタンプになっています。
mktime関数を使っています。
このタイムスタンプで日付が現在に近い順に並べ替えしたいのですが
どうすればいいですか。
819nobodyさん:2006/06/21(水) 17:51:45 ID:???
>>818
rsort
820nobodyさん:2006/06/21(水) 17:52:04 ID:???
>>818
先頭がタイムスタンプなら、そのまま行ごとソートでいいのでは?
821nobodyさん:2006/06/21(水) 17:52:27 ID:???
>>818
それは3つのファイルの0行目の例か?
それとも行頭がタイムスタンプになっている1つのファイルの各行を並べ替えたいという事か?
822nobodyさん:2006/06/21(水) 18:19:34 ID:???
何にせよ日付が先頭なら、配列に入れてソートすればいいだけじゃ?
823nobodyさん:2006/06/21(水) 18:36:55 ID:???
ただし、日付が何年も前のものが入る可能性があるなら、単純にソートはだめだな。
824nobodyさん:2006/06/21(水) 18:45:41 ID:???
すまん。何年も前のが入ってるとどうして単純なソートじゃ駄目なのか分からん。
825nobodyさん:2006/06/21(水) 18:47:29 ID:???
>>824
>>823ではないが、「何年も先のが」って言いたかったンじゃまいか?
命題が「現在に近い順」だから
826nobodyさん:2006/06/21(水) 18:48:34 ID:???
ま、タイムスタンプって言ってるから未来の数値は入らないとは思うけど
827nobodyさん:2006/06/21(水) 18:56:09 ID:???
スイッチ構文($AAA)
ケース1 0;
ユーザー関数A
ケース2 1;
ユーザー関数B
ブレイク
HTMLの表示

以上の文で質問です。
ブレイク文の処理で、SUBMITボタン押して$AAAの値を変え、ケース1の処理を動かしたいのですがうまくいかませんでした。
考えられるヒントをどうか与えてください。
はしおった書き方ですいません。
828nobodyさん:2006/06/21(水) 19:01:40 ID:???
jpgやgif、pngについて
アップロードしたいのですが
どうすればできますか?
829nobodyさん:2006/06/21(水) 19:09:07 ID:???
>>827
つまりこうか。

switch ($AAA) {
case 0:
user_func_A(); // 直後にbreak;が無い
case 1:
user_func_B();
break;
}

これだとcase0の時にはuser_func_A()とuser_func_B()を
両方実行する事になるがそれは良いのかな?
あとはフォームデータが上手く$AAAに入っていないとか。


>>828
つ【http://www.php.net/manual/ja/features.file-upload.php
830nobodyさん:2006/06/21(水) 19:15:02 ID:???
hoge.php?foo=bar

extract も $foo = $_GET['foo'] もやってないのに
$foo = "bar" となってしまうのはどの設定でしょうか?
831nobodyさん:2006/06/21(水) 19:26:27 ID:???
832nobodyさん:2006/06/21(水) 19:59:46 ID:???
d
register_globals でした。
833nobodyさん:2006/06/21(水) 21:29:59 ID:???
なんか普通にプログラム組んでリャありえないような質問ばっかりだな。
834nobodyさん:2006/06/21(水) 21:46:55 ID:???
スレタイ
835nobodyさん:2006/06/21(水) 22:34:31 ID:???
不覚にもつっこみにワロタ



さらに>>834が初心者なら余計にワロエタ
836nobodyさん:2006/06/21(水) 22:38:02 ID:???
837nobodyさん:2006/06/21(水) 22:39:39 ID:???
>>669
どう解決したの?説明お願い
838nobodyさん:2006/06/21(水) 23:00:36 ID:???
下らん質問でスマンがAjax+PHP使って例えば、
図なんかに噴出し等で文字を入れることをするとします。
掲示板みたいな感じで誰でも挿入できるとします。

その文字をファイルベースでサーバにログや噴出しの位置情報を保存したとしたら、
部分更新がAjaxのメリットなはずだけど、結局更新は全体的に読み込みなおしですよね?
839nobodyさん:2006/06/21(水) 23:10:07 ID:???
>>837
669じゃないが、
<input type="submit" name="a" value="OK_a">
<input type="submit" name="b" value="OK_b">
見たいにして、

if (isset($_POST['a']) {
// TO DO a
} else if (isset($_POST['b']) {
// TO DO b
}
で処理を分岐させこともできるし、javascript の onClick を
使う方法もある
840nobodyさん:2006/06/21(水) 23:16:55 ID:???
>>838
状況がいまいち理解できないが、
ユーザーが入力した値をサーバに保存すして
次回更新時のその保存した値で画面を再生成ってこと?
841nobodyさん:2006/06/21(水) 23:28:28 ID:???
>>838
質問の意味がいまいちイメージし難いんだが。。。
ファイルベースで噴出しの位置情報を保存っていうのはテキストにX=30,Y=50って言う値を
保存するって感じか?
で、噴出し内のコメントも保存しないといけないよな?

@最初にPHPファイルにアクセスした場合、まずPHPが背景画像を表示する。
Aそしてテキストを読んで位置情報を取得する

・・・書いててよく分からんなって北。
そもそも@の段階で表示しなくても言い訳だもんな。Aまで進んで位置情報から
それなりのCSSファイルを作ってやればいい訳だし。
別にajaxを使わなくても出来そうだな。まぁ、普通のJavaScriptは必要だろうけど
842nobodyさん:2006/06/21(水) 23:31:56 ID:???
>>838
全体を読み込み直ししちゃったらAjaxの意味ないじゃん。
そこをJavaScript使って部分更新するからAjaxなんだろ?
843nobodyさん:2006/06/21(水) 23:33:24 ID:???
>>841
そんな感じです。
つまり、そのあと噴出しをドラッグで動かせるようにした場合なんかだと、
結局ログファイル全体を配列かなんかで読み込み→PHPの関数で配列を編集→ファイル全体を書き込み→ファイル全体を再読み込み
とまあこんな感じになるんでしょうか。
844nobodyさん:2006/06/21(水) 23:34:59 ID:???
>>842
JavaScriptだけでサーバのログは書き換えられるの?
部分的な読み込み直しはできると思うんだけど。
845nobodyさん:2006/06/21(水) 23:39:51 ID:???
>>843
結局位置情報はどのタイミングで保存したいんだ?
保存ボタンを作って、ボタンを押して位置情報をDBなりテキストなりに
保存するっていうんならajaxは必要ないよ。
噴出しを動かす部分はただのJavaScriptで実現できる。
846nobodyさん:2006/06/21(水) 23:41:14 ID:???
>>843
ふきだしを移動させるだけなら、別に再読み込みはいらないだろう
847nobodyさん:2006/06/21(水) 23:41:52 ID:???
JAVAScriptを切ってるおれにはなんのことだかさっぱりわからん。完成させて時代を開いてくれ
848nobodyさん:2006/06/21(水) 23:48:00 ID:???
>>845
リアルタイムでの更新をイメージしてた。ドラッグして動かして、移動が終わった時点で更新、と。

>>846
移動させただけなら、そうか、書き込み処理だけで再読み込みいらないか。ごめん。
849nobodyさん:2006/06/22(木) 00:03:00 ID:???
>>844
動かすたびにサーバー側データも同期を取りたい→それには送信+ページ丸ごと再読み込みってこと?
もしもサーバーへのデータ送信がページ丸ごと再読み込みでしかできなかったら
検索エンジンで使ってるような非同期検索なAjaxは動いて無いじゃない。
バックグラウンドでサーバーに送信→更新→情報取得→ページ部分更新まで問題なくできるよ。それがAjax。
850nobodyさん:2006/06/22(木) 00:04:07 ID:???
>>847
時代が開かれても君には一生無縁の話だから気にする必要はない。
851nobodyさん:2006/06/22(木) 01:09:27 ID:???
           _, -'"``'ー-、_
             ||``'ー-、_   ``'ー-、_
             ||   l   ``'ー-、_   ``'ー-、_
``'ー-、_       ||   .l         ``'ー-、_ _, -'"l
             ||   l             ||   l
        ``'ー-、||, -'"``'ー-、_          ||.   l
             ``'ー-、_    ``'ー-、_ .   ||   l
                  ``'ー-、_    ``'ー||     l
  (   )ノ               ``'ー(д゚;)_ -'"
 </13/                   <| 1|ヾ'ー-、_ 
 ノ  >○                                    
                                  ``'ー-、_
852nobodyさん:2006/06/22(木) 04:11:27 ID:4vrB1Nlw
<form action="" method="post" enctype="multipart/form-data">
<p>Pictures:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Send" />
</p>
</form>

<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
}
}
?>

の15行目 move_uploaded_file関数が必ずエラーになってしまうのですが
何故でしょうか?
853nobodyさん:2006/06/22(木) 04:23:37 ID:???
エラー文ぐらい書け
854nobodyさん:2006/06/22(木) 05:24:50 ID:???
○○ as ■■ っていう文をよく見るんですけど、これどんな意味なんですか?
今見てるのは
foreach(○○ as ■■ => △△) {〜〜〜;}という文です。
辞書にも載って無かったです。
855nobodyさん:2006/06/22(木) 05:48:05 ID:4vrB1Nlw
>853
自己解決しました!
書き込み用のファイルをうpしてませんでした
856nobodyさん:2006/06/22(木) 05:48:16 ID:???
辞書って何だよ。ちゃんとPHPのマニュアル嫁
857nobodyさん:2006/06/22(木) 05:50:13 ID:???
>>854
そのマニュアル、古くない?
foreach文はPHP4以降で追加された構文だろ。
858nobodyさん:2006/06/22(木) 05:57:06 ID:???
>>854
辞書には書いてないかもしれないが、マニュアルには書いてある
http://jp.php.net/manual/ja/control-structures.foreach.php
859nobodyさん:2006/06/22(木) 06:04:20 ID:4vrB1Nlw
またまたエラーなのですが
Warning: file(/data.cgi): failed to open stream: No such file or directory in /home/example/

Warning: rsort() expects parameter 1 to be array, string given in /home/example/

の意味を教えていただけませんか?
860nobodyさん:2006/06/22(木) 06:12:34 ID:???
>>859
つ英和辞典
861nobodyさん:2006/06/22(木) 07:42:18 ID:???
>>859
2番目のエラーは1番目のエラーに伴うもの
862nobodyさん:2006/06/22(木) 07:57:50 ID:???
>>851
ヤナーギサーワ!!!
863859:2006/06/22(木) 08:14:17 ID:4vrB1Nlw
ありがとうございました!
864nobodyさん:2006/06/22(木) 09:09:18 ID:???
>>824
最近のタイムスタンプは、先頭が繰り上がって、1・・・・になっているが、
何年か前までは、一つ桁が少ない、9・・・・だったからだ。
行ごとそのままソートすると文字列比較になって、以前のタイムである,
9・・の方が昇順で後ろに来てしまう。
865864:2006/06/22(木) 09:16:34 ID:???
echo mktime(10, 46, 40, 9, 9, 2001);
echo mktime(0, 0, 0, 1, 1, 2000);

これをやってみるといい。
866nobodyさん:2006/06/22(木) 09:40:11 ID:XjfBJY0m
複数の画像を重ね合わせて1枚の画像として出力したいのですがどうすればよいですか?
867nobodyさん:2006/06/22(木) 09:47:23 ID:???
>>886
image_combin($image[0], $image[1], IMG_LANDSCAPE | IMG_PORTRATE);
868nobodyさん:2006/06/22(木) 10:28:45 ID:XjfBJY0m
>>867
すみません、ググってもなかったのですが、何か参照サイトとかありませんかね
869nobodyさん:2006/06/22(木) 10:56:01 ID:???
10.10.10.10/24 などの様にCIDR表記された物をPHPで扱う場合の方法はありませんでしょうか

PEARでの参考例
http://www.google.com/search?q=ThinkPlus+USB+Keyboard

PEARを使わずに扱いたいです。よろしくお願いします
870867:2006/06/22(木) 11:04:22 ID:???
>>868
上記のような関数を自作すれば便利かなと。
871nobodyさん:2006/06/22(木) 11:06:03 ID:???
>>870
はあ?
872nobodyさん:2006/06/22(木) 11:08:07 ID:???
>>871
ttp://jp.php.net/manual/ja/ref.image.php
ここは読んだのか?
873nobodyさん:2006/06/22(木) 11:15:22 ID:???
>>869
扱うってただの文字列だろ?それを一体どうしたいんだ?
グーグル検索のURL貼ってるが、それも意味わからんし。
まさか、検索の一覧から意図を読み取れ、とか言うんじゃねーだろーな?
ま、単純に整数値に変換してシフトでもすれば?
874nobodyさん:2006/06/22(木) 11:15:58 ID:???
リンク違ってた

PEARでの参考例
http://ns1.php.gr.jp/pipermail/php-users/2005-March/025478.html
875871!=866:2006/06/22(木) 11:18:43 ID:???
>>872
何故俺に言うw
なんだその回答は!?って意味の「はあ?」だよ
876nobodyさん:2006/06/22(木) 12:17:38 ID:???
>>869
PEAR内の関数を自分用のファイルにコピペでいいんじゃね
877nobodyさん:2006/06/22(木) 12:30:24 ID:???
>>869
こんなのが欲しかったわけか?
function ipInNetwork($target_ip, $netmask) {
$target_ip = ip2long($target_ip);
list($network_ip, $network_bits) = explode('/', $netmask);
$network_ip = ip2long($network_ip);
$host_mask = bindec(str_repeat('1', 32 - $network_bits));
return ($target_ip ^ ($network_ip | $host_mask)) <= $host_mask;
}

CIDR表記とか知ってるなら、これくらいさくっと作ろうぜ・・・
878nobodyさん:2006/06/22(木) 12:58:19 ID:???
文字コードをEUCで統一しているんですが、なぜか文字化けします
METAでもEUCを指定しています
この場合、文字化けする原因て何が考えられますか?
879nobodyさん:2006/06/22(木) 13:23:29 ID:???
実際の文字エンコードは何なのよ?
880nobodyさん:2006/06/22(木) 13:46:29 ID:???
SJISかJISです。
881nobodyさん:2006/06/22(木) 13:47:41 ID:???
またはUTF-8です。
882nobodyさん:2006/06/22(木) 13:59:04 ID:???
どっちだよw
883nobodyさん:2006/06/22(木) 14:00:09 ID:???
>>878
原因:878の頭がよわいから
884nobodyさん:2006/06/22(木) 14:54:01 ID:oCUi25wn
PHPで例えば
function test()
っていうユーザー関数をkansuu.phpってファイルに書いてるとして
index.phpでtest()関数をコールするにはどうしたら良いですか?
885nobodyさん:2006/06/22(木) 14:57:12 ID:???
>>884
require('./kansuu.php');

もしくは

require_once('./kansuu.php');



test();

http://jp.php.net/manual/ja/function.require.php

include()でも良し。
886nobodyさん:2006/06/22(木) 15:17:01 ID:oCUi25wn
>>885
ありがとうございます。include()を呼び出すとfatalエラーが出ます。
include 'index.php';と記述しています。
index.phpのなかにもtest()があってkansuu.phpにもtest()と言う関数が記述されています。
その内容は全く違うのですが。kansuu.phpの中でindex.phpのtest()を呼び出すことはできますか?
面倒な質問してすみません。
887nobodyさん:2006/06/22(木) 15:19:10 ID:???
エラーの内容は?
888nobodyさん:2006/06/22(木) 15:20:05 ID:???
include 'index.php'; というのはなんかおかしい
889nobodyさん:2006/06/22(木) 15:22:05 ID:???
こういうことか?

index.phpの内容
<?php
function test() { }
?>

kansuu.phpの内容
<?php
function test(){ }
?>
890nobodyさん:2006/06/22(木) 15:46:13 ID:???
>>878

ShiftJISとかいろいろとメタタグで宣言してみれ。それで文字化けがないならApacheの設定とPHPの設定の問題。
891nobodyさん:2006/06/22(木) 15:47:36 ID:oCUi25wn
index.phpの内容
<?php
function test() {中略}
?>

kansuu.phpの内容
<?php
include 'index.php';
function test(){中略}
$s=test(); //kansuu.php内の方
$p=test(); //index.php内の方
echo "<html><BODY>$s,$p</BODY></html>"
?>
見たいな感じ。
892nobodyさん:2006/06/22(木) 15:48:49 ID:???
なるべく同じ関数名はつけないほうがいいとおもうが…
893nobodyさん:2006/06/22(木) 15:54:02 ID:???
>>891

変数に置き換える手法いいね。でも変数に入れるなら、最初から関数名はどーでもよくなるわな。
894nobodyさん:2006/06/22(木) 15:58:11 ID:oCUi25wn
違うファイルに関数名変えて同じの書けば良いことなのでしょうけど
たまたま、index.phpに書いてるコードがそのまま使えそうだったので楽しよとしただけです。
関数名変えます。
895nobodyさん:2006/06/22(木) 15:58:24 ID:???
普通は違う関数名を付けて万事解決なわけだが、
そこを敢えて同じ名前で区別する方法は無いかというのが質問の趣旨だよな。

OK、俺には分からんッ!
896884:2006/06/22(木) 16:00:16 ID:oCUi25wn
みなさまご協力ありがとうございました。
897884:2006/06/22(木) 16:02:03 ID:oCUi25wn
あと携帯サイトを作ってるのですがこのスレの携帯サイト版見たいなのってありますか?
一応検索しても出てこないので。スレ違いな質問ですみません。
898nobodyさん:2006/06/22(木) 16:06:09 ID:???
>>897
聞いている意味がよく分からんが、このスレは普通に携帯からでも読めるぞ。
p2使えばスレ内検索とかもできる。
899nobodyさん:2006/06/22(木) 16:17:17 ID:???
>>897
携帯サイトに特化したPHPスレってことかな?
そんなスレは無いだろうね。目的と手段の違いだから。
携帯サイトだったら

携帯端末用のWeb制作10
http://pc8.2ch.net/test/read.cgi/hp/1150381091/

とか、

【モバイル】携帯電話向け開発について語るスレ
http://pc8.2ch.net/test/read.cgi/php/1144504375/

あたりへ行ってごらん。
900nobodyさん:2006/06/22(木) 16:17:57 ID:z1rfr09/
$logfilename=1.htm;
$fp = fopen($logfilename, "w");
こういうソースがあるとして1.htmが上層フォルダの場合どうしたら良い?
$logfilename=../1.htmにしたらダメだった。相対パスで指定したいんだけど。
お願いします。
901nobodyさん:2006/06/22(木) 16:20:16 ID:???
$logfilename= "../1.htm";
902nobodyさん:2006/06/22(木) 16:20:47 ID:???
$logfilename = "../1htm";

じゃ駄目なのかなぁ。
903nobodyさん:2006/06/22(木) 16:20:54 ID:???
それとパーミッション[666]は当然やってるんだろうね。
904nobodyさん:2006/06/22(木) 16:25:10 ID:z1rfr09/
ありがとうございました。
$logfile="../".PHP_NAME;
で解決しました。
905878:2006/06/22(木) 16:27:31 ID:???
>>881-882


全ファイル、エディッターでEUCに統一
METAも全ページ(HTMLページ)
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
で統一しているんですがなぜかバグります
906nobodyさん:2006/06/22(木) 16:30:42 ID:???
mbstring.http_output
907nobodyさん:2006/06/22(木) 16:31:33 ID:???
908nobodyさん:2006/06/22(木) 16:35:19 ID:???
mb_string がはいっているなら、
内部エンコードがEUC、outputがsjisになっている可能性が高い。
metaを書くなら sjisにするか、
どうしてもEUCでブラウザに表示させたいなら、
スクリプト先頭あたりで

mb_http_output('EUC');
ob_start('mb_output_handler');
909nobodyさん:2006/06/22(木) 17:16:10 ID:4vrB1Nlw
ソートがうまくいきません。
少し教えてくださいませんか。

<?php
$file = "test_data.cgi";
$data = "110220327";

// 今までのデータがあるファイルを呼び出す
$file = "test_data.cgi";
$files = file($file);
$count = count($files);

// 既にあるファイルを $old_files に格納
for($i = 0; $i <= $count; $i++){
$old_files .= $files[$i];
}
// 現在のデータを足す
$old_files .= $add_data."\n";

// そのままでソート
$filename = "$file";
$somecontent = $old_files;

$old_files = preg_split("/\n/",$old_files);
ksort($old_files, SORT_NUMERIC);
for($i = 0; $i <= $count; $i++){
print "old_files[$i] = <!---->$old_files[$i]<!----><br><br>";
}
?>
910909:2006/06/22(木) 17:19:14 ID:4vrB1Nlw
test_data.cgiの内容です

110220330,aaa,adoifja,
110220333,adf,agtargg,
110220335,hwr,adfgads,
110220313,gar,argvtta,
110220342,arg,drfgsrg,
110220329,jtr,fjhtsfg,
110220343,tfe,gthrlff,
911nobodyさん:2006/06/22(木) 17:35:22 ID:???
>>909
ナニがしたいのかわからん
それとforループの回数が1回多い
$old_files .= $files[$i];は文字連結だがソートしたいなら$old_files[$i] = $files[$i];じゃないのか?
912nobodyさん:2006/06/22(木) 17:45:56 ID:z1rfr09/
他のPHPファイルを実行させるってできる?
index.php
<?
printf "テスト";
更新.php //index.phpないでこのPHPファイルを実行させるみたいなの
?>
読込みではなくて実行ってのが可能なのかどうか?
わかりにくい説明ですみません。
913nobodyさん:2006/06/22(木) 17:51:34 ID:???
include | require
914nobodyさん:2006/06/22(木) 17:54:59 ID:???
>>913
だからそれ(読み込み)じゃないって言ってるじゃん。
915nobodyさん:2006/06/22(木) 18:06:38 ID:z1rfr09/
大量にユーザー関数を定義しておいて
それをincludeしたりするのって実行スピードに置いてはどうなの?
916nobodyさん:2006/06/22(木) 18:07:41 ID:???
>>914
a.phpからb.phpを実行する例。
遠慮無く1000回ほど試すといいぞ。

a.php:
<?php
require('b.php');
?>

b.php:
<?php
for ($i=1;$i<1000;$i++) {
print "このヴォケが";
}
?>

求めているのがこれでないとしたらget付きURLにLocationで飛ばす、かな。
917nobodyさん:2006/06/22(木) 18:09:56 ID:???
>>915
何と比較して聞いているのかが理解不能だが、
用のないユーザ関数を大量に読み込ませたりすれば
そりゃ実行スピードは落ちるだろうね。
918nobodyさん:2006/06/22(木) 18:19:43 ID:ylHLo5v5
strstr($mail,array("!","#","%","&","(",")","@",",","/"))

この書き方ってできなかったっけ?
919nobodyさん:2006/06/22(木) 18:24:11 ID:???
920nobodyさん:2006/06/22(木) 18:30:59 ID:???
バイナリセーフって何ですか?
921nobodyさん:2006/06/22(木) 18:33:47 ID:???
>>915
聞く前に試せよ
922nobodyさん:2006/06/22(木) 18:34:56 ID:???
>>909
>ksort($old_files, SORT_NUMERIC);

使う関数が間違ってる
923nobodyさん:2006/06/22(木) 18:36:09 ID:z1rfr09/
>>917
よく使いそうな関数をファイルにまとめるとして、
よく使うが使わない関数も当然読み込まれてしまうと思う。
それで実行速度が遅くなるならそのファイルから使う関数だけを読み込んだりしたい。
そんなやり方ありますか?
924nobodyさん:2006/06/22(木) 18:41:54 ID:???
>>923
関数群をカテゴリ分けするしかない。
というか、そんなに遅くならない。
925nobodyさん:2006/06/22(木) 18:46:24 ID:???
require や include を速くしたいなら
無料になった Zend Optimizer 3 を入れたら?
926nobodyさん:2006/06/22(木) 18:52:29 ID:???
PHP5+Sqliteで勉強させてもらっています
なぜかわからないのですがDB(ファイル)が存在しませんといわれてしまいます

実行している手順は
/home/hotta/に移動し sqlite testでtestというDBを作成し
テーブルを作成し、データを入れ
ls -l /home/hotta/test でファイルの存在を確認した後 


<?php
define('DB', '/home/hotta/test');
if (!file_exists(DB)) {
die(DB ." が見つかりません \n");
}
?>
を実行してみると

必ず/home/hotta/testが見つかりませんといわれてしまいます
ファイルはあるはずなのですが(パーミッションかと思い777にしてみたのですがだめでした)
なぜかわかる方おられましたら教えていただけないでしょうか?
927nobodyさん:2006/06/22(木) 19:20:54 ID:???
ディレクトリのパーミッションは?
それとdefineせずにやってみたらどうなる?
というかSQLiteはわからん
928nobodyさん:2006/06/22(木) 19:41:42 ID:???
$this->get('hoge')
-> この矢印みたいなヤツ意味がわからないです

ググルにも -> はキーワードにならないし
929nobodyさん:2006/06/22(木) 20:01:18 ID:???
930nobodyさん:2006/06/22(木) 20:11:03 ID:???
今はPHP4なんですが、PHP5にしたほうがいいですかね?
931nobodyさん:2006/06/22(木) 20:29:10 ID:???
>>912
echo '<iframe src="kousin.php" height=0 width=0></iframe>';
こういうことか?
932nobodyさん:2006/06/22(木) 20:31:43 ID:???
>929
ありがとう! もやもやが吹っ切れた
933nobodyさん:2006/06/22(木) 21:18:13 ID:???
>>927
ありがとうとございます ディレクトリのパーミッションが問題だったようです
/home オーナーroot 700→777
/hotta オーナーhotta 700→777
に変更したら
home/hotta/testが見つかりません といわれなくなりました
file_exists(DB)関数でファイルを読み出すときはapacheのユーザで検索してるのでしょうか?
934nobodyさん:2006/06/22(木) 21:20:26 ID:???
>>933
違う。
httpdデーモンがPHPのスクリプトを読み込んで実行しているから
apacheユーザーになっているからであって、
file_exists() だけがapacheユーザーで動くわけではない
935nobodyさん:2006/06/22(木) 21:22:25 ID:???
$_GETした$KEYWORDが全角かどうかをチェックしています。
正常に動いてるんですが、時々長さが一致せずエラーになります。
サーバの負荷?mbstringのバグ?と悩んでいます。

$data = stripslashes($keyword);
if (strlen($data) != mb_strlen($data) * 2) {
die("引数エラー!".strlen($data).":".mb_strlen($data) * 2);
}
936nobodyさん:2006/06/22(木) 21:23:37 ID:???
>>934
有難うございます
ということは
何かを参照する関数とかは
すべてhttpd.confに記載されているUser欄のユーザーによって実行されるので
パーミッションはUserにあわせる必要があるということですね
937934:2006/06/22(木) 21:48:19 ID:???
自己解決しました。
938nobodyさん:2006/06/23(金) 00:23:26 ID:???
>>950
次スレよろしく
939909:2006/06/23(金) 00:40:32 ID:lPdqGX0Z
したい事を書いてませんでした。

各行の[0](先頭行)は、mktime関数によって取得したタイムスタンプとして
この先頭行をソートして時間が現在に近い順(数字が小さい順?)→つまり昇順に並べ替えたいのです

よろしくお願いします。

>>911
下の方のforループが余計なのでしょうか?
私にはなぜ余計なのかがよく分かりません 簡単でいいので教えていただけませんか?

>>922
どの関数に直せばよろしかったでしょうか?
natsort関数でしょうか?
それともsoat関数でしょうか?

soat関数で試したところ
old_files[0] =
old_files[1] =
old_files[2] = 110220313,gar,argvtta,
old_files[3] = 110220329,jtr,fjhtsfg,
old_files[4] = 110220330,aaa,adoifja,
old_files[5] = 110220333,adf,agtargg,
old_files[6] = 110220335,hwr,adfgads,
old_files[7] = 110220342,arg,drfgsrg,
となり、一部が消えてしまいます。
これは、何故なのでしょうか?
940909:2006/06/23(金) 00:43:09 ID:lPdqGX0Z
natsort関数でも同様に消えてしまう部分があります。
old_files[0] = 110220330,aaa,adoifja,
old_files[1] = 110220333,adf,agtargg,
old_files[2] = 110220335,hwr,adfgads,
old_files[3] = 110220313,gar,argvtta,
old_files[4] = 110220342,arg,drfgsrg,
old_files[5] = 110220329,jtr,fjhtsfg,
old_files[6] = 110220343,tfe,gthrlff,
old_files[7] =

消える理由が分かりません。
少し手を貸していただけたら幸いです。
よろしくお願いします。
941nobodyさん:2006/06/23(金) 00:47:17 ID:???
つかforeach使えよ
942nobodyさん:2006/06/23(金) 00:59:03 ID:???
>>939
バグとか以前に作り方が意味不明すぎるんだけど、
なんでわざわざ配列を1行に連結した挙句にまた配列に分解してるの?

で、消える理由だけど、データに空行が入ってて空っぽのデータがあるだけ。
それがソートされた際に先頭に出てきたり末尾に出てきたりする。
また、実際にデータが消えているわけじゃなく、本当は8件でなく9件あるのに
頭8件しか表示してないせいで後ろがちょんぎれてるだけ。
最後の表示部分は
for($i = 0; $i <= $count; $i++){
print "old_files[$i] = <!---->$old_files[$i]<!----><br><br>";
}
となってて$countの数だけ表示してるけど、この$countって
$files = file($file);
$count = count($files);
この段階で取得しちゃってて、その後ろの
// 現在のデータを足す
$old_files .= $add_data."\n";
ってのを含んでいないから。
943nobodyさん:2006/06/23(金) 01:01:04 ID:???
いやぁコーディングセンス抜群だわ。
頼むから俺の職場には来ないでね^^
944nobodyさん:2006/06/23(金) 01:04:05 ID:???
>>912
passthru("/usr/local/bin/php index.php");
945909:2006/06/23(金) 01:21:39 ID:lPdqGX0Z
>>942
>なんでわざわざ配列を1行に連結した挙句にまた配列に分解してるの?

こんなことしなくても、ソート処理ができるんですか!
そこを教えてもらえませんかぁ>_<
946nobodyさん:2006/06/23(金) 01:32:32 ID:???
お前、もうプログラミングやめた方がいいんじゃ・・・
947909:2006/06/23(金) 01:38:45 ID:lPdqGX0Z
自分で判りやすい画面になるように少し変えてみました。
見て欲しいです。一応正しく表示が出来てるようです!
<?php
$file = "test_data.cgi";
$add_data = "110220327,sdt,adafgafg,";

// 今までのデータがあるファイルを呼び出す
$file = "test_data.cgi";
$files = file($file);
$count = count($files);

// 既にあるファイルを $old_files に格納
print "<h2>ソート前のファイルデータ</h2><hr>";
for($i = 0; $i < $count; $i++){
$old_files[$i] .= $files[$i];
print "old_files[$i] = $old_files[$i]<hr>";
}

/*-----------------------------------------------------*/
// 中間線
print "<br><hr>中間線<hr><br>";
/*-----------------------------------------------------*/

948nobodyさん:2006/06/23(金) 01:39:19 ID:???
>>946
まぁそういうなって

>>945
for($i = 0; $i <= $count; $i++){
これでforが何回まわる?最初がゼロからってのが味噌
$count=1の場合、0,1が実行される。多くないか?
正解はどこかに書いてあった気がするけどfor($i = 0; $i <$count; $i++){

参考にしてみ。タイムスタンプの桁数に注意
<?php
$file = "test.cgi";
$data = "110220327";
$files = file($file);
$files[] = $data."\n";
sort($files);
foreach ($files as $i => $v) print "files[".$i."] = ".$v;
?>

結果
files[0] = 110220313,gar,argvtta,
files[1] = 110220327
files[2] = 110220329,jtr,fjhtsfg,
files[3] = 110220330,aaa,adoifja,
files[4] = 110220333,adf,agtargg,
files[5] = 110220335,hwr,adfgads,
files[6] = 110220342,arg,drfgsrg,
files[7] = 110220343,tfe,gthrlff,
949909:2006/06/23(金) 01:40:44 ID:lPdqGX0Z
>>947の続きです

// 現在のデータを足す
$old_files[$i+1] = $add_data."\n";

// そのままでソート
$filename = "$file";
$somecontent = $old_files;

print "<h2>ソート後のファイルデータ</h2><hr>";
//$old_files = preg_split("/\n/", $old_files);
array_multisort($old_files, SORT_ASC);

for($i = 0; $i <= $count; $i++){
print "old_files[$i] = $old_files[$i]<hr>";
}
?>
950909:2006/06/23(金) 01:48:50 ID:lPdqGX0Z
>>948
す、すごい

勉強になりました。
すごく簡潔に書かれていて、それでいてちょっと$vが可愛いですね//▽//
ありがとうございます!
951nobodyさん:2006/06/23(金) 01:49:26 ID:???
5,6行で済むのに
952nobodyさん:2006/06/23(金) 01:50:41 ID:???
なんでmultisortなんだw
953nobodyさん:2006/06/23(金) 01:51:26 ID:???
たぶんプログラミングとか初めてなんだろう。暖かく見守ろうぜ。
954909:2006/06/23(金) 01:56:14 ID:lPdqGX0Z
950取ったので
新しいスレを立てようと思うのですが
私でも立てられるんですか?

ちょっといって見て来ます。
955nobodyさん:2006/06/23(金) 01:57:20 ID:???
>>954
は〜い(^-^)
956nobodyさん:2006/06/23(金) 01:59:30 ID:???
あー。次スレはテンプレの再検討をするんじゃなかったっけ。
事情を分かってるやつがやった方がいくね?
957909:2006/06/23(金) 02:00:26 ID:lPdqGX0Z
新しいスレ作ました!
定型文?を書くのでもう少しお待ち下さい。
958909:2006/06/23(金) 02:02:00 ID:lPdqGX0Z
>>956
え;

もう作っちゃいました。
けど、>>2以降はまだ書いてません。
事情の分かる方にパスした方が良いですか?
959nobodyさん:2006/06/23(金) 02:03:03 ID:8iUOatGT
テンプレ作る前に、質問の嵐でスレッドが埋まる予感。質問はforの永遠ループみたいな終わりのない処理だからな。
960909:2006/06/23(金) 02:04:25 ID:lPdqGX0Z
一応新しいスレのアドレスを書いておきますね。
http://pc8.2ch.net/test/read.cgi/php/1150995543/
961909:2006/06/23(金) 02:05:27 ID:lPdqGX0Z
よく見たら、スレのアドレスの一番最後の部分って
タイムスタンプじゃないですか?
962nobodyさん:2006/06/23(金) 02:19:04 ID:???
phpってたまーにさぁ

なんで実行結果がおかしいんだろ〜。
エラーも起きないし。一体全体どうして〜〜〜〜〜〜〜ってとき

if文で$a=1 とかなってんの!!!wwww

比較は$a==1だっつうの!!=2つは他の言語やりまくってると
たまーにやるよね、うん。
963nobodyさん:2006/06/23(金) 02:21:16 ID:???
>>961
>よく見たら、スレのアドレスの一番最後の部分って
>タイムスタンプじゃないですか?
そうですね〜(^-^)
964909:2006/06/23(金) 02:36:35 ID:lPdqGX0Z
2 :nobodyさん :2006/06/23(金) 02:15:16 ID:???
 本 ス レ は も う 無 く な り ま し た


って書き込まれてましたT_T
965909:2006/06/23(金) 02:43:16 ID:lPdqGX0Z
ちなみに、>>948さんの構文で、元のファイルに今ソートしたばっかりの
データを上書きするときって、どこでfopenするべきですか?
foreachの前でfopenとflockをして、{}の中にあるprintの部分を書き込みに変えるような方法ですか?
966nobodyさん:2006/06/23(金) 02:52:39 ID:???
>>965
それがいいね。あとスレ立て乙。
967nobodyさん:2006/06/23(金) 03:07:29 ID:???
>>965
スレ立て乙でつ。

2の本スレはPHP質問スレのこと。くだ質と同じレベルだということで
くだ質に一本化したという経緯
968909:2006/06/23(金) 03:16:14 ID:lPdqGX0Z
>>966>>967
初めてスレ立てしました!
緊張しました;

>>967
じゃぁ、イタズラじゃないってことですよね
よかったぁ。

新しいスレのテンプレとかは事情というものを知らないので
知ってある方にお任せしたいのですが、誰かいらっしゃいますか?
969nobodyさん:2006/06/23(金) 03:17:03 ID:???
>>968
今やってくれてる人がいらっしゃいますよ(^o^)♪
970nobodyさん:2006/06/23(金) 03:22:38 ID:???
IDにPerlが出たら神!PHPが出たらシメジ
とか言われてますけど
PHPってどうしてバカにされてるんですか?

PHPが他の言語に劣っている部分を教えてください。
971nobodyさん:2006/06/23(金) 03:24:41 ID:???
>>970
PHP使ってる人にバカが多すぎる
972909:2006/06/23(金) 05:09:38 ID:lPdqGX0Z
寝ちゃってました;
また明日も来たいです。よろしくおねがいします!

>>969
親切に教えてくれてありがとうございましたぁ
973nobodyさん:2006/06/23(金) 08:27:11 ID:???
梅るか、それとも残り30弱を有効に使うか・・・それが問題だ
974nobodyさん:2006/06/23(金) 09:33:29 ID:???
990辺りまでいったら埋めた方が質問者のためにもなるが
それまではちゃんと使ってやるのが質問スレの流儀ってもんだ。
975nobodyさん:2006/06/23(金) 09:43:51 ID:???
>>974
サンクスコ。
ファイルのアップロードの質問が出てたけど、ファイルを消す関数はあるん?
976nobodyさん:2006/06/23(金) 10:08:10 ID:???
unlink
977nobodyさん:2006/06/23(金) 10:09:27 ID:???
サーバローカルのファイルならunlinkで消せる
クライアントローカルのファイルを消せるなら大問題だ
978nobodyさん:2006/06/23(金) 12:32:13 ID:???
昔書いた自分のコード見て無駄な処理やってるなーと思うことがある
>>909ほどではないが
979nobodyさん:2006/06/23(金) 13:27:30 ID:CXSPEY04
phpの内部コードがEUCのサーバでUTF8のフォームスクリプトを動かしたいです。
直接php.iniにはさわれませんし、htaccessを使うと500エラーになります。
スクリプトに直接
mb_internal_encoding("utf-8");
mb_http_input("utf-8");
mb_http_output("utf-8");
などと書いたのですが、状況は変わりません。
ini_setというのも使ってみたのですが、ダメっぽいです。
どなたか解決方法をご存じないでしょうか?
サーバはラピッドサイトというところです。
スクリプトをeucに変えるというのは無しの方向でお願いします。
980nobodyさん:2006/06/23(金) 13:50:44 ID:???
エラーの内容は?
981nobodyさん:2006/06/23(金) 14:09:21 ID:CXSPEY04
>980
レスありがとうございます。エラーはメッセージは何も出ないようです。
mb_internal_encoding("utf-8"); と書いて、
その後echo mb_intnal_enercoding("utf-8"); とすると、
UTF-8と出力されますが、文字は全て???????になります。

単純にtextのinputを一行かいて、submitしてecho $_POST['hoge'];で表示させてみたのですが、ラピッドサイトでは化けますが、ロリポでは化けません。

phpinfoを比較すると、ロリポップはhttp_inputとoutputがpassとなっています。
mbinternal_encodingはno valueです。(でもecho mb_internal_encodingするとEUCです)
mbstring.encoding_trancelationというのだけ、ロリポはoff、ラピッドはonです。
982nobodyさん:2006/06/23(金) 14:17:28 ID:???
サーバの方がUTF-8に対応してないのかもね
ラピッドの人に聞いてみたら?
mb_convert_encodingも失敗するようなら諦めるしか
983nobodyさん:2006/06/23(金) 14:30:13 ID:CXSPEY04
>982
レスどうもです。
そうですね。サーバ自体が対応しないっていうこともあり得るとしたら、そうかもしれないです。
ラピッドのサポートにはさっきメールしました。
ありがとうございました。
984979:2006/06/23(金) 15:46:40 ID:CXSPEY04
やっちゃいました.......。ラピッドのhtdocsより上の階層にユーザーが変更出来るphp.iniがありました。スクリプトに書いたものはそれで上書きされてたぽいですorz。
板汚しスマソ。逝ってきます。
985nobodyさん:2006/06/23(金) 16:16:49 ID:???
sessionをDBで管理する利点ってなんですか?
986nobodyさん:2006/06/23(金) 16:21:37 ID:???
俺はDBを使ってるんだぞ。どうだ、高等だろ?

と威張れる利点
987nobodyさん:2006/06/23(金) 16:25:38 ID:???
なるほど。勉強してみよう
988nobodyさん:2006/06/23(金) 16:59:45 ID:???
>>985
cockieが使えない環境でも使える
989nobodyさん:2006/06/23(金) 17:37:41 ID:???
>>988
sessionidを持ちまわしでって事ですか?
990nobodyさん:2006/06/23(金) 17:55:06 ID:???
>>985
webサーバを分散していて、それらのセッションを共有したい時
ネットワークファイルシステム等を使うより管理が楽で、安心感がある。
(NFSで問題が出るってわけでもないが)
991nobodyさん:2006/06/23(金) 18:33:06 ID:???
みんなスクリプト書いてるときはな〜んも見ないで書いてんの?
それとも仕様書しこしこ作ってから書き出すの?

規模にもよるだろうけど、webアプリぐらい頭ん中で粗方作って
勢いで書いちゃえーって人のが多そうな希ガス
992nobodyさん:2006/06/23(金) 18:42:49 ID:???
俺の場合仕事とかの時は
もちろん仕様書とかは書く
それ以外の場合は覚書みたいなメモ作ってから作る
仕事以外の時でも簡単に書いておかないと
どんどん仕様変更しちゃって完成できない俺orz
993nobodyさん:2006/06/23(金) 18:46:52 ID:???
掲示板とかなら何も見ずに書く
994nobodyさん:2006/06/23(金) 18:54:12 ID:???
簡単な画面仕様と入力仕様は書く、
もしくは書いてもらう
995nobodyさん:2006/06/23(金) 19:08:19 ID:???
そりゃまあ掲示板くらいのものならねぇwww
けどそんなんばっかじゃないしね

さらに質問、どんなふうな仕様書を書いてんの
最近仕様書かくのとかもろもろイヤで辞めたい病
996nobodyさん:2006/06/23(金) 19:47:56 ID:???
http://www.intersystems.co.jp/support/csp/rbas/rbas_fatn.html

この関数はPHPではないのでしょうか?
997996:2006/06/23(金) 19:52:40 ID:???
ちなみにこの計算をしたいのです
(ソース参照お願いします。)
http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/okinawa703.htm
998nobodyさん:2006/06/23(金) 19:54:21 ID:???
>>996
この関数はPHPでは(存在し)ないのでしょうか? ってコトでOK?
この関数はPHPではない、つまりC言語とかJAVAなのでしょうか? っていう風にもとれるから念のため。

ちなみに三角関数系の関数は一式揃ってるよ。
使い方はマニュアル参照。
999nobodyさん:2006/06/23(金) 20:02:45 ID:???
\                        /
  \                     /
             / ̄ ̄ ヽ,
            /        ',      /    _/\/\/\/|_
    \    ノ//, {0}  /¨`ヽ {0} ,ミヽ    /     \          /
     \ / く l   ヽ._.ノ   ', ゝ \       <   バーカ!  >
     / /⌒ リ   `ー'′   ' ⌒\ \    /          \
     (   ̄ ̄⌒          ⌒ ̄ _)    ̄|/\/\/\/ ̄
      ` ̄ ̄`ヽ           /´ ̄
           |            |  
  −−− ‐   ノ           |
          /            ノ        −−−−
         /           ∠_
  −−   |    f\      ノ     ̄`丶.
        |    |  ヽ__ノー─-- 、_   )    − _
.        |  |            /  /
         | |          ,'  /
    /  /  ノ           |   ,'    \
      /   /             |  /      \
   /_ノ /              ,ノ 〈           \
    (  〈              ヽ.__ \        \
     ヽ._>              \__)
1000nobodyさん:2006/06/23(金) 20:03:15 ID:???
良かったら教えてください
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。