【PHP】質問スレッドpart33【php】

このエントリーをはてなブックマークに追加
1nobodyさん
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
2nobodyさん:2006/02/16(木) 03:20:44 ID:xwXojaq/
前スレ
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
【PHP】質問スレッドpart31【php】
http://pc8.2ch.net/test/read.cgi/php/1133017632/
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/

関連リンク
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
3nobodyさん:2006/02/16(木) 03:22:12 ID:YjyBJiPI
関連スレ
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
[PHP]フレームワークについて語るスレ2[総合]
http://pc8.2ch.net/test/read.cgi/php/1135847024/
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
[PHP-users MLヲチ8]巣もいませんでした。
http://pc8.2ch.net/test/read.cgi/php/1132800251/
正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/(落ち)
Webでオブジェクト指向プログラミング
http://pc8.2ch.net/test/read.cgi/php/1133489897/

関連板
データベース(SQL、DBMSの話題はこちら)
http://pc8.2ch.net/db/
プログラム(CLI、アルゴリズム、インタプリタの話題はおそらくこちら)
http://pc8.2ch.net/tech/
Web制作(クライアントサイドの話題は問答無用でこちら)
http://pc8.2ch.net/hp/
4nobodyさん:2006/02/16(木) 03:22:39 ID:xwXojaq/
【FAQ】
1. ブラウザに何も表示されないんだけど・・・
 → error_reporting、display_errors、log_errors
2. include/requireに?a=b&c=dのようなパラメータつけたい
 → できません
3. $a1,$a2,$a3...はどうしたら?
 → 可変変数・・・というかむしろ配列使え
4. echo "$arr['hoge']['fuga']"; がうまくいかない
 → {おっぱい括弧}でくくれ
5. echo?print?
 → echoはコンマ区切りで書ける。printは関数。パフォーマンスは気にするな
6. 値渡し・参照渡しのパフォーマンス
 → これまた気にするな
7. csvやtsvを扱いたい
 → まずはfgetcsv
8. ファイル入出力関数(fopen等)でリモートファイル扱う際の限界
 → fsockopenでソケット通信で解決
9. 一定時間ごとに何かしたい
 → cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
 → ImageMagick
11. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
12. クッキーの情報をユーザから隠したい
 → セッション使え、ただしクッキーとセッションは仕組みが違うから同じように扱うな
5nobodyさん:2006/02/16(木) 03:23:13 ID:YjyBJiPI
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」なんて痛い質問するな。つーかカエレ。

61:2006/02/16(木) 03:27:12 ID:YjyBJiPI
あと補足は>>6-10までの間にヨロ
7nobodyさん:2006/02/16(木) 03:34:43 ID:YjyBJiPI
[PHPpedia]
PHPの質問スレ、及びPHPのクダ質問スレのFAQをまとめるサイト
http://wiki.2chx.net/php/ (育成中。まだまだこれから)
8nobodyさん:2006/02/16(木) 10:07:02 ID:???
<?
function next_comb(& $flags) {
$n = count($flags); $k = 0;
for ($i = $n - 1; $flags[$i]; $i --, $k ++) if ($i <= 0) return false;
for (; ! $flags[$i]; $i --) if ($i <= 0) return false;
$flags[$i] = false;
for ($i ++, $k ++; $k > 0; $i ++, $k --) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
return true;
}
function flags2list($flags) {
$result = array();
foreach ($flags as $i => $flag) if ($flag) $result[] = $i;
return $result;
}

$n = 5; $k = 3; $flags = array();
for ($i = 0; $i < $k; $i ++) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
echo implode(", ", flags2list($flags)), "<BR>";
while (next_comb($flags)) echo implode(", ", flags2list($flags)), "<BR>";
print_r($flags);
?>

全スレに教えて頂いた、5C3のコードなのですが、
"a","b","c","d","e"の中から5c3する場合はどのようにすればいいのでしょうか?
9nobodyさん:2006/02/16(木) 11:41:53 ID:???
>>8
echo implode(", ", flags2list($flags)), "<BR>";
while (next_comb($flags)) echo implode(", ", flags2list($flags)), "<BR>";
print_r($flags);



$array = array("a","b","c","d","e");
do {list($a,$b,$c)=flags2list($flags);
echo $array[$a].", ".$array[$b],", ".$array[$c]."<br>";
}while (next_comb($flags));

に書き換え
で、どうかな?
10nobodyさん:2006/02/16(木) 11:50:21 ID:i4nUjG/9
質問させてください。

imap_xxx関数使ってPOP3でメール受信をしようとしてるのですが
so-netのメールだけ受信できません。
imap_openでエラー(Couldn't open stream)になります。

もちろん通常のメーラではそのアカウントで受信できますし
PHPでも他に@niftyや自分で立てているメールサーバからは
受信できました。

パケットを調べたところ
CAPAコマンドを送ったあとにso-netのサーバから
「PIPELINING TOP UIDL APOP」を受信したあと
なぜかQUITを送ってしまいます。

どなたか分かるかたはいらっしゃいましたら
お願いします。
11nobodyさん:2006/02/16(木) 14:49:39 ID:???
imapはso-netが嫌いなのかな。
12nobodyさん:2006/02/16(木) 15:13:35 ID:???
so-netに尋いてみたら?
まああの会社だとまともな回答は期待でき無そうだが…。
13nobodyさん:2006/02/16(木) 15:45:08 ID:???
そもそもPHPの質問じゃない気がするんだが
14nobodyさん:2006/02/16(木) 15:54:04 ID:???
so-neとBiglobeのPOPサーバーはなんか設定が変だという噂だけどね。
PDAでも接続できないケースが報告されてるよ。
so-netのFAQにPocketPC向けのメーラー設定方法とか記載されてるけど
その辺は参考にならんのかな。
1510:2006/02/16(木) 16:30:00 ID:???
みなさんありがとうございます

他に成功しているサーバとの違いは
POP3の「CAPA」コマンドに対してso-netからの応答に
「USER」が含まれてないようです。
これが悪いことなのかは分かりませんが
そのせいでimap_openが次のコマンド(USER)を投げることを
あきらめているような気がします。

Outlookから接続した際のパケットを見ると
「CAPA」コマンドは投げずに「USER」コマンドを投げてるので
imap_openでも同じようにできれば接続できそうな気もしますが
方法が分かりません。

とりあえず暇を見て
so-netに問い合わせてみようと思います。
16nobodyさん:2006/02/16(木) 18:00:08 ID:???
>>15
so-netのPOPと思われるサーバ叩いてみたけど
CAPAコマンドに対してはUSER/PASSコマンドで認証が済んでからしか、
レスポンスを返さないようにみえるよ。

でも認証が済んでから、その後にUSER/PASSコマンドは発行しないから
本来CAPAに対してUSER capabilityが返えされるべきであっても
それが返答なくても関係なく動作は出来るんじゃないかなと思わなくもない。
厳密に動作してQUITしてるとしても責められはしないが。

ただソース見てみたけど、imap_open()での実際の処理は
完全にc-clientライブラリにお任せな感じなので、
IMAP関数を使う限り、どうにかできるものではなさそう。
PEARのメール関数を使った方が、クライアント側で対処するなら
自由度が高いと思う。
1716:2006/02/16(木) 18:30:05 ID:???
PEARにメール"関数"はないワナ。

で、PEARのMail_IMAPクラスは結局imap_open()使うので一緒だった。
18nobodyさん:2006/02/16(木) 19:36:05 ID:???
>>9さん
ありがとうございます。
お陰様で出来たのですが、いざ組み込む時にずっと考えているのですが、どうしても先に進まなくなってしまいました。
<?
function next_comb(& $flags) {
$n = count($flags); $k = 0;
for ($i = $n - 1; $flags[$i]; $i --, $k ++) if ($i <= 0) return false;
for (; ! $flags[$i]; $i --) if ($i <= 0) return false;
$flags[$i] = false;
for ($i ++, $k ++; $k > 0; $i ++, $k --) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
return true;
}
function flags2list($flags) {
$result = array();
foreach ($flags as $i => $flag) if ($flag) $result[] = $i;
return $result;
}

$n = 8; $k = 4; $flags = array();
for ($i = 0; $i < $k; $i ++) $flags[$i] = true;
for (; $i < $n; $i ++) $flags[$i] = false;
$array = array("1000","1500","1300","1200","1800","1600","1100","1400");
$x =($array[0]+$array[1]+$array[2]+$array[3]+$array[4]+$array[5]+$array[6]+$array[7])/2;

do {list($a,$b,$c,$d)=flags2list($flags);
$y = $array[$a]+$array[$b]+$array[$c]+$array[$d];
$z = $x-$y;
$z = abs($z);
echo $array[$a].", ".$array[$b].", ".$array[$c].", ".$array[$d].", ".$z."<br>";}
while (next_comb($flags));
?>
19続きです。:2006/02/16(木) 19:36:39 ID:xEsbRgL0
8つの数字を設定して、8C4で、8つの合計を2で割ったものから、8C4の4つの数字の合計を差分を出して、
その絶対値を$zとしたのですが、この$zが一番少ない組み合わせを出したいのです。(はじめに出てくるのがいいのです。)
上の場合だと、$zが50の時一番少ないのですが、組み合わせを書き出した時、上から3つ目ではじめに50と出ているので

「1000 1500 1300 1600」

という組み合わせを結果としてだしたいのです。

$zの値が入っている配列を作る事が出来れば、出来るだろうと思い、
新たな配列変数を作って、forループで毎回の$zの値を代入していこうとは思ったのですが、どうも上手く動作せず悩んでいます。
分り難い&何度も質問してしまい申し訳無いのですが宜しくお願い致します。
20nobodyさん:2006/02/16(木) 20:04:28 ID:???
php初心者です。Authモジュールに関して質問させていただきます。
本家pearの方にのっていた、最も簡単な認証スクリプトを実行してみましたが
Fatal error: Class 'DB' not found in /Applications/MAMP/bin/php5/lib/php/Auth/Container/DB.php on line 127
という表示がフォームの送信後にでてしまいます。何が原因なのでしょうか?環境は、macのpantherでMAMPを使っています。


・ちなみに以下のように実行しました(上記URLと同じです)

<?php
require_once "Auth/Auth.php";

function loginFunction()
{
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
echo "<input type=\"text\" name=\"username\">";
echo "<input type=\"password\" name=\"password\">";
echo "<input type=\"submit\">";
echo "</form>";
}

$dsn = "mysql://名前:パスワード@localhost/テーブル名";
$a = new Auth("DB",$dsn,"loginFunction");

$a->start();

if($a->getAuth()) {
echo "hello";
}
21nobodyさん:2006/02/16(木) 21:12:58 ID:???
Pearが入ってないから。
22nobodyさん:2006/02/16(木) 21:20:01 ID:???
質問ですが、phpによるファイルの作成と、ファイルの上書き、
どちらがサーバーに負担が掛かるものなのでしょうか。
23nobodyさん:2006/02/16(木) 21:33:44 ID:???
>>22
どっちも大差ない
24nobodyさん:2006/02/16(木) 21:36:37 ID:???
>>22
1000回くらい回すコード書いて、時間計ってみたら?
上書きといっても、内容全部消した場合と追記した場合で違うだろうし。
レポキボン
25nobodyさん:2006/02/16(木) 21:49:57 ID:???
>>18
そんな事は出来ない。
諦めろ
26nobodyさん:2006/02/16(木) 22:16:36 ID:VwfjUIGO
>>23
>>24
ありがとうございます。
ほとんどphpの知識がないものでレポはできなくて申し訳ないですが、
上書きに変更した途端鯖堕ちしたので、自分のせいかとあせりました。
今は問題なく稼動してるので大丈夫そうです。
27nobodyさん:2006/02/17(金) 01:54:56 ID:qKPXZPko
windowsNTで、Apache_2.0.52、PHP5、MySQL4.0.21は
問題なく動作するのでしょうか。
(レス違いでしたら誘導お願いします)
28nobodyさん:2006/02/17(金) 02:23:12 ID:???
します。
29nobodyさん:2006/02/17(金) 03:43:23 ID:eyDUdvZm
テンプレートに $aaa など変数を書いてfread()で呼び出すとエラーが発生してしまうんですが
問題なく実行させるいい方法はないでしょうか


phpのブログとかでテンプレに変数を直接書き込まれているのを見たのですが
自分がやってみるとエラーが出てしまうんです
30nobodyさん:2006/02/17(金) 03:49:47 ID:???
>>29
一体何のテンプレートなのか、
どのようなコードなのか
具体的に書いてくれないと全く見当が付きません。

ttp://php.net/manual/の言語リファレンス(10-21章)を一通り読んでください
31nobodyさん:2006/02/17(金) 04:00:48 ID:???
>>29

include
require
32nobodyさん:2006/02/17(金) 09:08:34 ID:???
>>19
宿題は自分で汁
33nobodyさん:2006/02/17(金) 10:08:44 ID:???
>>30
勝手にエスパー補足してみよう。

最終的な出力結果を
$body
かなんか、適当な変数に入れて出力している。
$body=fread('template.php');
で取り込むとして
template.phpの中身が
<html>
<head>
<title>$site_title</title>
</head>
<body>
</body>
</html>
とかだったりすると
<title>$title_title</title>
がそのまま出力されて困る。

という趣旨の質問ではないかと思う。
3418:2006/02/17(金) 12:40:07 ID:qUshKop+
>>32さん
宿題では無くて、自作のコードに必要なのですがどうしても出来なくて悩んでいたのですが
取りあえず、出力結果を別のテキストファイルに保存し、別にそのテキストファイルを読み込んで配列に格納するという
事でやっと出来ましたorz

アドバイス及び、コードを教えて下さった方々本当にありがとうございました。
35nobodyさん:2006/02/17(金) 14:55:08 ID:eyDUdvZm
>>30
以下がソースです
01.phpの中身↓
<?php
$aaa = "正常に動作しました";
include "a.txt";
?>

a.txtの中身↓
$aaa

>>31
上記のようにしてみましたがうまく行きませんでした

>>33
まさにその通りなんです。説明が下手でしみません
うまく行かないということは記述が間違っているということなんですが
どこがどう間違ってるかわからないんです
36nobodyさん:2006/02/17(金) 15:34:53 ID:???
Apacheのログをphpで整形させるプログラムを作っているのですが下記の様な処理をするに当り、
スマートな方法がなかなか思い浮かばずに悩んでいます。

/~aaaa/bbb/ccc.html
/~aaaa/ddd/e.html
/~aaaa/f.html
/~aaaa/g.jpeg

上記のような形式のログが一行ごとに並んでいまして、「/~X/」のXに該当する部分だけを取り出そうと考えています。
そこで最初の/~は正規表現でnullに置き換えましたが/以降をどう処理するかで困っています。

宜しければお知恵をお貸し下さい。
3736:2006/02/17(金) 15:41:07 ID:???
質問したついでに回答していきます;

>>35
a.txtがtxtファイルだから直に出力されてるんじゃないでしょうか?
変数として動かしたいのであれば<? ?>を書いてphpとして処理させないと変数としては取り扱ってもらえないと思います。
38nobodyさん:2006/02/17(金) 15:46:25 ID:???
>>35
a.txt
<html>


<?php echo $aaa?>


</html>
39nobodyさん:2006/02/17(金) 15:51:47 ID:???
>>36
$path = "/~aaaa/bbb/ccc.html";
preg_match("|/~([^/]+)|", $path, $match);
$user_dir = $match[1];
40nobodyさん:2006/02/17(金) 16:07:05 ID:EA7FpTYe
MacOSX10.3.9を使って自宅サーバを運営しています。
phpをやりたいのですが、

(1)
phpが始めからインストールされているそうなのですが、
どうやったら使えるようになるのでしょうか。

(2)
phpはどうやって勉強したらいいのでしょうか?
41nobodyさん:2006/02/17(金) 16:13:06 ID:???
おまいがマック板の皮先くんなら放置したいところだが・・・
1. httpd.confの設定をするだけで使える事は使える。
2. ドキュメント。サンプルを見ながらでも結構勉強できる。
4240:2006/02/17(金) 16:22:16 ID:???
>>41
ありがとうございます!!
俺様のスキルならphpの習得も早そうなので
アドバイス通りのことをやってみます。

ここはunixのスキルアップに役に立つスレなのでまた来ますね。
43nobodyさん:2006/02/17(金) 16:27:58 ID:???
>>40
ワロタww
44nobodyさん:2006/02/17(金) 17:37:59 ID:???
htmlにphpコードを入れる。
それをphpが動いていない環境でブラウザ(IE)で開くと、
<?php なんたら ?> の部分が見事コメントアウトされて、
phpコードが表示されずにいい感じに表示されるんだが、

<?php $obj->method(); ?> というコードを入れると、->の部分で終わりとみなされて、
phpが動いていない環境でブラウザで開くと、 method(); ?> が表示されてしまう。

お客さんが直接ローカルでIEでみたり、HTMLエディタで編集させようというときに困るかなぁと。
まあ、ブラウザの仕様にもよるんだろうけど、オブジェクトのメソッドは
必ず呼ぶものとして、なんかいい方法無い?
45nobodyさん:2006/02/17(金) 17:40:49 ID:???
>>44
っ テンプレートエンジン
46nobodyさん:2006/02/17(金) 17:50:01 ID:???
>>45
Smarty使ったんだけど、公開するindex.phpに結局こういうコードが入ってしまわない?

<?php
require(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('name','Ned');
$smarty->display('index.tpl');
?>

まあ、お客さんが入力するコンテンツをデータベースとかに保存すればいいんだけど、
小規模レベルのやつなので、テンプレートで、サイト全体のデザイン。
たとえば左にメニューがあって・・・とかで、
コンテンツは、index.php 自体に入れたい。つまりこういうことをしたい。

<?php
require(SMARTY_DIR.'Smarty.class.php');
$smarty = new Smarty;
$smarty->assign('name','Ned');
?>
ここにお客さんがHTMLエディタで入力
<?php
$smarty->assign('contents','〜お客さんが入力したHTMLをどうにかして変数にもってくる〜');
$smarty->display('index.tpl');
?>
47nobodyさん:2006/02/17(金) 17:56:40 ID:???
携帯でリファラを消して飛ばしたいんですが、

header("Refresh: 0; URL=".$jump);

これでドコモはいけるんだけど、AUでいけないんです。
メタで飛ばすのもAUは無理です。
AUでなんとかリファラ消して飛ばせませんか?
4836:2006/02/17(金) 17:58:44 ID:???
つLocation
49nobodyさん:2006/02/17(金) 18:00:47 ID:???
>>48
ロケだとリファラ消えないんです。
50nobodyさん:2006/02/17(金) 18:02:25 ID:???
やっべ名前欄戻ってなかったorz

ちなみに先ほどの正規表現で無事解決できました・・・dクスでした。
今度はログが大きすぎてタイムアウトして・・・もごもご・・・あ、スミマセンチラシの裏に書いときます

それにしてもログファイルて小まめに整理しないと後で酷い目にあうねorz
51nobodyさん:2006/02/17(金) 18:07:22 ID:???
>>46
なんかすごい間違った使い方してる気がするんだが…
お客さんにはindex.tplを編集してもらえばいいんでない?

***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
すっきりする希ガス

知ってると思うがテンプレートファイルから別のテンプレートをインクルード
もできるから、テンプレート使ってサイト全体のデザインと部品コンテンツ
分けて作成できるよ。
52nobodyさん:2006/02/17(金) 18:41:05 ID:???
>>51
> なんかすごい間違った使い方してる気がするんだが…
うん。自分でもそう思っている。

SEO的なところからindex.php?main 見たいにサイト全体を一つのphpで処理したくないんだよね。
(だから実際にはphpファイルでも拡張子htmlで動くようにしています。)
mod_rewriteはなんか複雑だし、レンタルサーバーによっては入ってなさそうだし。
そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?

> ***.phpにHTMLを入れておきたいんだったらSmartyは使わない方が
> すっきりする希ガス
いま一応そうしているんだけど、将来、俺はシステム面だけ作りたいし、デザイン方面は
デザイナーに任せたいし、中身はお客さんでも修正できるようにしたいし。どうしたもんかなぁ。

別にSmartyは使わないは使わないでもいいんだけど、この話は横道。
本来の解決したい問題はこっち→>>44
53nobodyさん:2006/02/17(金) 20:00:22 ID:???
>>44
<!-- <?php $obj->method(); ?> -->
5451:2006/02/17(金) 20:14:04 ID:???
>>52
>そうするとコンテンツ(ページ)ごとにtplとそれを表示する.phpができてしまってごちゃごちゃしない?
んー
なんとなく言わんとすることはわかるが…
そういうもんだと割りきってしまってるからなぁ…
そもそもテンプレートエンジンって1ページ表示の際のロジックをPHPで、
画面構成をテンプレートで、と分けるのが目的だしね。

若干苦しいが、独自でHTML中に埋め込まれる変数をトークンに対応付けておいて、
サーバに配置する際には必ずsedとかでトークン→PHP変数の置換を行う、とか…
55nobodyさん:2006/02/17(金) 21:42:19 ID:+wY6r5/H
>>53
<!-- <?php echo ' --' , '>'; $obj->method(); echo '<', '!--'; ?> -->
56nobodyさん:2006/02/17(金) 21:49:25 ID:???
編集するときだけJavaScriptで消すとかは?
57nobodyさん:2006/02/17(金) 21:53:34 ID:???
>>29>>35
ワロスw
freadどこ?
58nobodyさん:2006/02/17(金) 23:10:04 ID:???
phpでサーバにあるファイルのリネームをしようとコードを書いてます。

$dirName = $_POST['dirName'];
$lastNum = $_POST['lastNum'];
$fileName = "$dirName/$lastNum.dat.gz";

$fileName2 = d."$fileName";
$ret = copy($fileName,$fileName2);
unlink ($fileName);

今あるファイル名の先頭に「d」とつけたいのですが
上記のようなコードを書いても期待通りに動きません。
ファイル名、ディレクトリ名は外部からPOSTしています。

アドバイスをよろしくお願いします。
59nobodyさん:2006/02/17(金) 23:13:19 ID:???
>>58
rename
60nobodyさん:2006/02/17(金) 23:28:22 ID:???
>>35
01.phpの中身をこうしてみ
<?php
$aaa = "正常に動作しました";
echo preg_replace('/(\$)(\w+)/e', '$GLOBALS[$2]', file_get_contents("a.txt"));
?>
61nobodyさん:2006/02/17(金) 23:29:18 ID:???
>>58
> $fileName2 = d."$fileName";
 ↓
$fileName2 = "d$fileName";
62nobodyさん:2006/02/17(金) 23:49:42 ID:???
>>59
>>61
ありがとうございます!
うまく動作しました。
renameのほうが鯖負担は少なそうですね。
いまだにphpのストリングス結合の法則が分からん・・
63nobodyさん:2006/02/18(土) 00:38:10 ID:???
>>61
$fileName2 = "d".$fileName;
64nobodyさん:2006/02/18(土) 00:41:09 ID:???
そのくらいマニュアル読めよな・・・
65nobodyさん:2006/02/18(土) 01:03:08 ID:???
>>62
お前が分かってないのは結合じゃなくて文字列そのもの
6635:2006/02/18(土) 01:26:15 ID:4SCbmboD
>>37
>>38
>>60
うまく変換できました、ありがとうございます
とても参考になりました。
67nobodyさん:2006/02/18(土) 11:43:18 ID:???
abcdefghijkl...

3文字ずつ分割して配列にする方法を教えてください。

[0] => abc
[1] => def
[2] => ghi
[3] => jkl
68nobodyさん:2006/02/18(土) 12:04:50 ID:???
>>67
これぐらいしか思いつかん、スマン
for ($n = 0; $n < strlen ($a)/3; $n++)
$b[$n] = substr ($a, $n*3, 3);
69nobodyさん:2006/02/18(土) 12:31:35 ID:???
>>67
$a='abcdefghijklmn';
$b=preg_split('/(.{1,3})/', $a, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($b);
70nobodyさん:2006/02/18(土) 12:38:40 ID:???
>>67
php5なら
$str = "abcdefghijkl";
$arr = str_split($str, 3);
71nobodyさん:2006/02/18(土) 15:39:50 ID:???
PHP5ってまたいっぱい関数増やしてんだなー
72nobodyさん:2006/02/18(土) 17:13:25 ID:???
基本的にインタプリタだから関数で一発処理の方がいいからね
73nobodyさん:2006/02/18(土) 17:21:20 ID:???
PHPでPerlにあるqq()ってのはありますか?

$abc = qq(<A href="a">).$def.qq(</A>);

みたいなことしたいんですけど、ヒアドキュメントだと
見づらくなっちゃうので、すっきりかける方法がないかな〜と。
74nobodyさん:2006/02/18(土) 17:47:49 ID:???
>>73
俺は知らないなぁ。

"(<A href=\"a\">)$def(</A>)";
とやるか
"(<A href='a'>)$def(</A>)";
とやるな。
75nobodyさん:2006/02/18(土) 17:54:29 ID:???
>>73
つか、普通にシングルクォートで括れば?

$abc = '<a href="a">' . $def . '</a>' ; (いまさら大文字は無いだろ…)
76nobodyさん:2006/02/18(土) 18:20:45 ID:???
その辺ってPHPはPerlに比べると不便だよねー。
\"にしろ . での連結にしろ煩わしいし見づらいし間違っても気づきにくいし。
俺はヒアドキュメント使っちゃう派。
77nobodyさん:2006/02/18(土) 21:32:24 ID:???
>>68-70 ありがとうございます。
78nobodyさん:2006/02/19(日) 00:56:32 ID:???
>>76
それはお前がPerlに慣れてるからじゃないか?俺はqqとか気持ち悪いから使わないが
79nobodyさん:2006/02/19(日) 01:44:34 ID:???
はじめは慣れてないと気持ち悪いものですよ。
いやあperlほど不便なものはない。。
80nobodyさん:2006/02/19(日) 02:17:35 ID:???
perlの$_とか好きなんだけどなぁ。
81nobodyさん:2006/02/19(日) 03:04:43 ID:???
>>78
大量のエスケープ記号を挟むよりずっと美しい記法だと俺は思うがなぁ。
82nobodyさん:2006/02/19(日) 03:06:31 ID:???
そろそろスレ違いだと俺は思うがなぁ。
83nobodyさん:2006/02/19(日) 04:24:56 ID:SHjAEm2n

print"<img src="sky.jpg" width="" height="" alt="">";

↑この文章のところでエラーになってしまうんですが
なにかいい方法ないですか?
84nobodyさん:2006/02/19(日) 04:37:32 ID:???
>>83
わざと荒らしてるのか?つい直前でその話をしてるとこだろが。
85nobodyさん:2006/02/19(日) 04:46:34 ID:???
>>83
こうしろ

?>
<img src="sky.jpg" width="" height="" alt="">
<?php
86nobodyさん:2006/02/19(日) 08:48:59 ID:???
この書き方ができるのはPHPのいいとこだよな
87nobodyさん:2006/02/19(日) 14:18:30 ID:???
それはロジックと区別がつきにくいからということで、コーディング規約で禁止になってる…
88nobodyさん:2006/02/19(日) 15:06:13 ID:???
いいじゃない
釣りにマジレス
しなくても
89nobodyさん:2006/02/19(日) 15:56:15 ID:???
つphp-mode.el
90nobodyさん:2006/02/19(日) 17:05:40 ID:???
2006/02/19(Sun) 00:00:00

現在この様な形式でJSTでログに記録しています。

これをGMTで
Sun, 19 Feb 2006 00:00:00 GMT

と変換したいのですが簡単な方法ありませんでしょうか。
こんな事なら最初からunixtimeでログとっておけば簡単だったのに・・・ 
91nobodyさん:2006/02/19(日) 18:14:30 ID:???
MT質問スレからの移動です。

MovableTypeに以下のスクリプトでtrackbackを送ると
「1 送信元の URL (url) が必要です。」
と帰ってくるのですが、仕様書の記載ではこれでよいはずなのです。
どなたか原因を教えていただけませんでしょうか。

<?php
$url='www.hogehoge.com';
$fp = fsockopen($url,80,$errno, $errstr, 30);
if(!$fp){echo "$errstr($errno)";}
$ping="POST http://www.hogehoge.com/tb.cgi\r\n";
$ping .= "User-Agent:BlogTool\r\n";
$ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="title=Foo+Bar&url=http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo";

fwrite($fp,$ping);
$response = "";
while (!feof($fp)) {
$response .= fgets($fp, 4096);
}
fclose($fp);

echo $response;
?>
92nobodyさん:2006/02/19(日) 18:22:59 ID:???
仕様書って言われてもどれのことか分からんので適当に「MovableType 仕様書」でググってみた。
そうやって見つけた仕様書では、
パラメータとして title, excerpt, url, blog_nameを使う事ができ、 url だけが必須、とあった。
93nobodyさん:2006/02/19(日) 18:33:27 ID:???
>$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
なのにurlencodeされていないのは気にしなくてもいい?
9491:2006/02/19(日) 18:34:03 ID:???
>>92
お手数おかけします。
(トラックバック技術仕様書 http://lowlife.jp/yasusii/stories/8.html

$pingの最終行にurlを指定しているのですが
これが仮に送信されていないのであれば
phpの書き方に問題があるのではないかと思ったのです。
95nobodyさん:2006/02/19(日) 18:44:22 ID:???
>>87
じゃあ、これならOK?
 if(条件) {
  ?><img src="sky.jpg" width="" height="" alt=""><?php
 }
96nobodyさん:2006/02/19(日) 18:50:05 ID:???
>>91
仕様書も読まないで想像で回答しちゃうけど、
POST 〜
User-Agent: 〜
Content-type: 〜
ときて
name=value&name=value&name=value...
とくるなら、それって前者がPOSTメソッドのヘッダ送信で、後者がクエリーデータだろ。
ならヘッダとデータの間に1行の空行が必要なはず。
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="\r\n";
$ping.="title=Foo+Bar&url=http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo";
でいけねー?
97nobodyさん:2006/02/19(日) 18:52:45 ID:???
>>90
strtotime
9890:2006/02/19(日) 22:37:05 ID:???
>>97
ありがとうございました。解決できました。

2006/02/19(Sun) 00:00:00 で (Sun) とかが入っていても見事に変換できるのですね
9991:2006/02/20(月) 00:36:09 ID:???
urlencode()
空行を入れる
のいずれも駄目でした…。
思いついてUTF-8に変換してみたりもしたのですが
やはり同じ症状です。
はてさて…
100nobodyさん:2006/02/20(月) 04:23:54 ID:???
>>91
多分今回の問題とは直接は関係ないと思うが
> $ping="POST http://www.hogehoge.com/tb.cgi\r\n";
> $ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";

$ping="POST http://www.hogehoge.com/tb.cgi/1\r\n";
$ping .= "Host: http://www.hogehoge2.com/\r\n";
だと思う。
101nobodyさん:2006/02/20(月) 07:53:04 ID:???
PHPに関係ないね。
102nobodyさん:2006/02/20(月) 10:07:52 ID:???
まだどっちとも言えないと思うが
103nobodyさん:2006/02/20(月) 12:02:40 ID:???
関係のなさで言えば、
perlを実行するためのパーミッションを教えてくださいぐらい関係の無い質問だな。
遠からず近からず。
要するにこっちで質問されるとウザい。
104nobodyさん:2006/02/20(月) 17:29:29 ID:???
こういう時のためにWebProg質問スレがある訳だが。
105nobodyさん:2006/02/20(月) 18:06:35 ID:???
むしろくだ質があるよな
106nobodyさん:2006/02/20(月) 18:10:08 ID:???
PHPと関係ない質問はくだ質でもお断り
107nobodyさん:2006/02/20(月) 19:35:43 ID:???
>>103
私の手には負えません
ごめんなさいって素直に書けよw
108nobodyさん:2006/02/20(月) 20:47:28 ID:???
>>107
すまん。
俺にはお前は扱いきれなかったようだ。
構いきれずに悪かったな( ´,_ゝ`)
109nobodyさん:2006/02/21(火) 01:23:25 ID:csEvNJQp
指定された時刻・時間に現在表示されているHTMLから別なHTMLに変更させる作業を行いたいのですが
調べてみると出てきません。教えて神様
110nobodyさん:2006/02/21(火) 01:24:15 ID:???
ユーザIDが入った配列を使って、それぞれのユーザネームを返すSQLを書きたいのですが
以下のように書くしかないですか?
SQLを何回も叩くので遅くなりそうなのが心配です。

foreach ( $user_ids as $user_id ) {
$sql = "SELECT user_name FROM users WHERE user_id = ".$user_id;
$result = $DB->GetRow($sql);
}
111nobodyさん:2006/02/21(火) 01:35:12 ID:???
>>109
タイマーかけるということ?
時間判定で表示させるページ内容を変更するか、
cronを使うか。
どちらかになると思う。
112nobodyさん:2006/02/21(火) 02:29:27 ID:???
>>110
IN使っちゃどうかね
$sql = "SELECT user_id,user_name FROM users WHERE user_id IN ('".implode("','",$user_ids)."')";
11391:2006/02/21(火) 08:49:54 ID:???
発想をまるっきり変えて解決しました。
ありがとうございました。
(解決策はスレ違いといわれそうなので、このままで)
114nobodyさん:2006/02/21(火) 09:28:08 ID:???
>>112
IN使ってもいINですか?

なんつったりしてなゲハハハ
115nobodyさん:2006/02/21(火) 09:49:21 ID:???
ioncubeのエンコーダーを導入しようと思うんだけどいかがでしょうか?
暗号化と高速化ってのは魅力なんですが、
これによってバグとかが発生しちゃうのが怖いんです。
ttp://www.asial.co.jp/products/ioncube/encoder/products.php
116nobodyさん:2006/02/21(火) 10:28:55 ID:???
>>109
現在表示されてるHTMLを定期的にリフレッシュさせればいいんじゃない?

>>115
試してみて結果を教えてくれ。
117nobodyさん:2006/02/21(火) 11:15:21 ID:???
>>109
くだ質行きっぽい内容だ。
118nobodyさん:2006/02/21(火) 11:45:50 ID:???
昔から思ってるけど、あんまくだ質とこのスレの違いって無いよな。
どっちも同じぐらいのレベルの話するし。
119nobodyさん:2006/02/21(火) 13:14:03 ID:???
>>109
PHPに限定しない(というより関係ない)質問だし
120nobodyさん:2006/02/21(火) 13:35:59 ID:???
>>118
くだ質があればこのスレ要らないよな
121nobodyさん:2006/02/21(火) 13:39:56 ID:???
うん、たいていの質問はくだらん
122nobodyさん:2006/02/21(火) 14:30:37 ID:???
>>113
それは
「俺はやり方わかったけどお前らには教えてやんねーぜ、バーカ」
と近い発言になってるという事に気付いてください。

解決しても、解決策を出すのが質問スレでのマナーでしょう。
知りたい人は沢山いるわけだから。
123nobodyさん:2006/02/21(火) 17:35:39 ID:???
>>122
本当に解決したか、それ以前に本人の書き込みかすら怪しいんだから相手にしても意味がない
124nobodyさん:2006/02/21(火) 18:02:42 ID:ihX6B4Hf
htmlファイルに

<?php
print"test";
?>

ってやったら出力されます?
125nobodyさん:2006/02/21(火) 18:05:26 ID:???
>>124
サーバの設定による。
126nobodyさん:2006/02/21(火) 19:19:01 ID:???
>>124
printと"の間にはスペース入れたほうが良いと思う。
127nobodyさん:2006/02/21(火) 20:25:51 ID:???
そういや引数の最初のキーに%5Bが入ると%5Eか何かに変わるバグは
PHPのフォーラムかどこかに投稿されてるのかな?
128nobodyさん:2006/02/21(火) 21:21:49 ID:y3MPaFDb
>>124
もちろん出力される。
129nobodyさん:2006/02/21(火) 21:28:19 ID:???
もちろんとか来たよ
130nobodyさん:2006/02/21(火) 21:45:25 ID:???
何かしらは出力されるだろ
ブラウザ上で見える内容かどうかはともかく
131nobodyさん:2006/02/21(火) 21:44:20 ID:???
array_combine とかの逆ってあるの?
132nobodyさん:2006/02/21(火) 21:50:37 ID:???
>>131
array_keysとarray_values
133nobodyさん:2006/02/21(火) 23:20:12 ID:???
>>132
サンクスコ
134nobodyさん:2006/02/21(火) 23:40:53 ID:???
「出力されます?」って質問なんだから>>128も間違ってない
"ブラウザへは"出力されるんだから。
大抵のブラウザは無効なタグとして処理し、ブラウザ上には表示しないと思うが。
「phpとして処理されますか?」なら>>125だけどな。

早い話が質問内容が悪(アバウト)すぎる
135nobodyさん:2006/02/22(水) 00:44:55 ID:???
まぁ正論だけど、php質問スレッドだからなぁ・・
136nobodyさん:2006/02/22(水) 02:28:56 ID:???
「htmlファイルに」って言ってるし
137nobodyさん:2006/02/22(水) 02:37:21 ID:???
ttp://oresama.hopto.org/~sheel/directory/

このサーバをphpを使ってクラックすることは可能ですか?
phpでダメなら他の方法でも構いません。
138nobodyさん:2006/02/22(水) 03:44:19 ID:???
>>137
> phpでダメなら他の方法
スレ違い乙
139nobodyさん:2006/02/22(水) 07:39:06 ID:???
>>137
可能だから、取り合えずそのサーバのアカウントを教えてくれ。
そのくらいはハック済みなんだろ?
140nobodyさん:2006/02/22(水) 08:40:56 ID:???
PHPのWebシステムでモジュールを入れることで機能を追加させるように
したいのですがこの場合どういう風に構築すればよいのでしょうか?
141nobodyさん:2006/02/22(水) 09:16:43 ID:???
>>139
アカウントをクラックするのもクラッキングの内だろ。自分でやれ。
142nobodyさん:2006/02/22(水) 11:12:30 ID:???
最近、メ欄に無駄な空白入れてくる奴いるね。
ウザッ
143nobodyさん:2006/02/22(水) 11:29:59 ID:???
外部のファイル

http://www.sample.com/test.jpg

のファイルサイズを取得する方法を教えてください。
144nobodyさん:2006/02/22(水) 11:45:19 ID:???
>>143
ファイルを取得してstat
145nobodyさん:2006/02/22(水) 11:47:32 ID:YzTdS2nd
windows server 2003でIIS6.0を使用してます。
PHP4.4.2をインストールし、nucleusでblogを作成したところ、
「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」
とアプリケーションログに記録され、表示できなくなりました。
どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか?
また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか?
よろしくお願いします。
146nobodyさん:2006/02/22(水) 11:52:20 ID:???
file_get_contents() & getimagesize()
147nobodyさん:2006/02/22(水) 12:00:00 ID:???
>>144 >>146
ありがとうございます。
説明不足でした。

外部のファイル

http://www.sample.com/test.html
http://www.sample.com/test.jpg
http://www.sample.com/test.mpg

の容量(バイト)を取得する方法を教えてください。
148nobodyさん:2006/02/22(水) 12:04:19 ID:???
filesize
149nobodyさん:2006/02/22(水) 12:04:49 ID:???
>>147
だから>>144>>146じゃん
150nobodyさん:2006/02/22(水) 12:19:22 ID:???
>のファイルサイズを取得する方法を教えてください。
自分で答え言ってるな。

>148が答え。
満足したら帰れ。
151nobodyさん:2006/02/22(水) 12:25:27 ID:???
予知能力発動
この後、>>147
「では、外部のファイルを取得する方法を教えてください」
と書き込もうとするであろう。


ところが、この予言の書を目にして、書込みを躊躇う。
152nobodyさん:2006/02/22(水) 12:30:48 ID:???
>>151
しかし斜め上を行く147の次の書き込みは、こうであった。
「では、僕は何をどうしたらよいのでしょうか」

# HTTPヘッダもあてにならんしな<ファイルサイズ
153nobodyさん:2006/02/22(水) 12:44:11 ID:???
>>152
そこへ一言「マニュアル嫁」
で、終了
154nobodyさん:2006/02/22(水) 12:46:26 ID:???
ま、マニュアルにそのものずばりの情報があるわけだが(使えるかどうかは知らん)
つ[http_filesize]
155nobodyさん:2006/02/22(水) 13:16:54 ID:???
>>154
HEADでContent-Length拾ってるだけのようだ
156nobodyさん:2006/02/22(水) 13:54:37 ID:???
あるdirectoryに存在するファイルをリンクつきで一覧表示させたいのですが、
とりあえずopendir関数使ってここまではできました。
ttp://oresama.hopto.org/~sheel/phptest/directory.php

ソースは↓です。
<?php
//open directory
$dir=@opendir("phpdirectory") or die("failed to open the directory");
while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
}
closedir($dir);
?>

あとはこれにリンクをつけたいのですが、
<LI><A HREF="file1">file1</A>
のようにタグをつけるにはどうしたらいいのでしょうか?
157nobodyさん:2006/02/22(水) 14:01:11 ID:???
え?釣り?
158nobodyさん:2006/02/22(水) 14:14:37 ID:???
釣りだな
159156:2006/02/22(水) 14:43:38 ID:???
え? 釣りじゃありませんよ・・・orz

当方、phpを始めたのは今日が初めてで、
自宅サーバでやっとこさphpが使えるようになったのが今日なのです。
全くのphp初心者なので、超基本的なことだったらすみませんが、
教えていただくと助かります・・・orz
160156:2006/02/22(水) 14:45:22 ID:???
ちなみに>>156のソースはここです。
http://masago.kir.jp/php20041028.php
これをほとんどそのまま映しただけで、
こんなのを一から作り上げるスキルなどまだまだありません・・。
161nobodyさん:2006/02/22(水) 14:47:48 ID:???
>>156
echo $file ."<BR>";

echo '<LI><A HREF="' . $file . '">' . $file . "</A>\n";
162nobodyさん:2006/02/22(水) 14:49:45 ID:???
>>159
PHPを始めたのが今日なのか、
プログラミングの世界に触れたのが今日なのか?

どっちでもいいけど、
まずは、>>1にあるマニュアルで、一つずつ命令文を調べてご覧。
せっかく始めたんなら、聞く前にまずは自分で考えてみなよ。
163nobodyさん:2006/02/22(水) 14:49:57 ID:???
> phpを始めたのは今日が初めて
初めての日に(しかも数時間で)こんな所に来たらイカンよ。
まずは本を買うかやさしい猿でもわかる参考サイトを探して
自分でやりなさいな。
164nobodyさん:2006/02/22(水) 14:51:05 ID:???
>>161
信でイイよ
165161:2006/02/22(水) 14:51:35 ID:???
まちがえた
echo '<LI><A HREF="./phpdirectory/' . $file . '">' . $file . "</A>\n";
166156:2006/02/22(水) 14:59:15 ID:???
>>161
あ、ありがとうございます!!
さっそくやってみます。

>>162
初めてやったのがプログラミングというかスクリプティングで
shellscript(bash)です。bashに関してはまぁ初心者は脱したくらいの
レベルになりました。(bash歴一年くらい)
したがってphpもifとかforとか結構似たようなのが出てくるので
そこまで苦痛ではありませんが、ちょっとbashと較べると
わかりづらい感じはしています。
最初はSSIで無理やりディレクトリを表示させることをやってみました。
こんな感じでできるようになったのですが、↓
ttp://oresama.hopto.org/~sheel/directory/
「phpの方が簡単」
というアドバイスをいただきましたのでphpに挑戦しているところです。

>>163
そうですね。いろいろと猿でもわかるサイトを物色している最中です。
金はないので本は買えません・・・orz
167156:2006/02/22(水) 15:00:16 ID:???
>>165
ありがとうございます。やってみます。
168156:2006/02/22(水) 15:14:57 ID:???
>>165
ありがとうございますた!できますた!
本来、directory.phpと同じディレクトリに存在する
ファイルかフォルダを一覧表示させたかったのですが、
「自分と同じディレクトリ」を差すメタキャラがphpでは
わからなかったので、しょうがなくそれは後回しにして
わざわざ下位のディレクトリ「phpdirectory」をつくって
試していたのでした。
試しにbashでいうところの「.」を試してみると、なんと
phpでも「.」は「現在のディレクトリ」を差すようですね。
ついでに本当はファイルだけでなく、ディレクトリも表示されるように
if文を削除してみたら案の定正解でした。
ttp://oresama.hopto.org/~sheel/phptest/directory.php

しかし今度は新たな問題が出てきました。
bashを使った方法ではlsコマンドで「.htaccess」ファイルを
非表示にする方法があったのですが、phpではありますか?
169156:2006/02/22(水) 15:18:03 ID:???
今回学んだ最大の点といえば、
phpは<とか>とかをバックスラッシュで
エスケープする必要がないみたいなので
こういう点がweb programmingに向いてるんでしょうね。
もっと勉強してみなさんに教えられるくらいにはやくなりたいと思います。
170nobodyさん:2006/02/22(水) 15:29:47 ID:???
>>168.169
ん〜〜〜〜なにか微妙に的外れな事で妙に感動しているようだが・・・
まぁ、頑張ってくさい。
171nobodyさん:2006/02/22(水) 15:35:59 ID:???
覚えは悪くないみたいなのでPHPの基礎をきちんとやったほうが自分のため。
自分で本を探して数千円を投資するかしないかでかなり習得のスピードが違うと思う。

まあサイトでもいいだろうけど
172nobodyさん:2006/02/22(水) 15:37:47 ID:???
>>168
http://jp.php.net/manual/ja/

それとphp.iniぐらい置いとけ
/etcにphp.iniが無いとphpinfo()が言っておるぞ
173nobodyさん:2006/02/22(水) 15:40:11 ID:???
>>168
>bashを使った方法ではlsコマンドで「.htaccess」ファイルを
>非表示にする方法があったのですが、phpではありますか?
って、"."で始まるファイル名は表示しないって事じゃなくて?

ならファイル名の一文字目に"."のあるファイルは表示しないって処理を加えればいい

どっちにしろ一から勉強しないと自作は出来なさそう
phpの文法が分からないのに人のソース見ても上達するのかな・・
174156:2006/02/22(水) 15:50:00 ID:???
>>172
ああ、さっき一度php.iniは置いたのですが、
それはsafe_modeをOFFにしたかったからなんですけど、
どうもこのサーバは元もとOFFだったようで
だったら必要ないのかな、と思って削除しちゃいましたよ。
また置いときましょうかね。
デフォルトのままでいいのでしょうかね。
ま、またあとで編集すればいいのですし、とりあえず置くだけ置いときますよ。
それにしてもphpっていちいちディレクトリごとにphp.iniを置く必要があるんでしょうかね。
いやそんな記述がphp.iniにさっきみたとき書いてあったんで。

>>171
実を言うと本は読めないのですよ・・・orz
数学とか英語は偏差値90越えは普通でしたが、
国語だけは偏差値30くらいでした。池沼クラスです・・。

>>173
そうそう、「.」で始まるファイルを非表示にしたいのですが、
これは確かにbashで培ったスキルをもってすれば意外と簡単カモデスネ。
^.とかかな、とにかくphpの正規表現調べてやってみますね。

>>170
ありがとう。がんがります!
175nobodyさん:2006/02/22(水) 16:17:54 ID:???
>>174
んまぁ、bashとか全然毛色の違う物の経験則に引きずられるのなら、
いっそ、passthru()とかでls叩いて、戻り値を整形したら?

本が読めない人間に、言語の習得は非常に困難だと思ふ
ってか、文学本か何かと間違っていないか?
176156:2006/02/22(水) 16:24:13 ID:???
正規表現はここを参考にして
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
↓こんな感じにしてみましたが、ifのところがやっぱりおかしいんですかね・・。
うまくいきません。
ちなみにphpってエラーが起こると「何行目がおかしい」ってちゃんと表示するので便利ですね!

$dir=@opendir(".") or die("failed to open the directory");
while($file = readdir($dir)) {
if (($file)!="^¥..*"){
echo '<LI><A HREF="' . $file . '">' . $file . "</A>¥n";
}
}
closedir($dir);

>>175
lsを使ってdirectory表示させる方法はSSIですでに実現できています。
phpを学ぶひとつの例としてdirectory表示に挑戦しているのです。
ちなみに、言語を学ぶのには、英語と同じで、まずは実際の例文にいっぱい触れるのが
一番だと思いますよ。
文法から入っちゃうとかえって学ぶ速度が遅くなります。経験的に。
例文を読んでみて、「これってどういう意味なのかな?」って逆引的に
正書などで学ぶのが王道です。
177nobodyさん:2006/02/22(水) 16:24:56 ID:???
>>174
2ch暦何年?
いい加減ウザいよ。

空気読めてない事ぐらいは察しろよ。
それができないなら質問スレでなりふり構わずレスするな。
178156:2006/02/22(水) 16:25:04 ID:???
今から夜勤なのでそろそろ行きますね。
みなさんのおかげでphpのなんたるかの触りくらいはわかるようになってきました。
またご指導よろしくお願いします。
179156:2006/02/22(水) 16:26:52 ID:???
>>177
2ch歴は3年くらいでしょうか。
空気を読むのはおまえよりは100倍くらい上だと思いますよ。
空気を読めてないのは自分だけってのがわからないみたいだね。
2chはまだまだ177のような初心者をいちころでだませるので楽しいですね。

じゃ、こんどこそ夜勤に言ってきます。
177はくやしかったら捨てぜりふのひとことでも吐いててねw(ぷげら
180nobodyさん:2006/02/22(水) 16:33:53 ID:???
>>179」の意地の悪さが垣間見れるレスですね
181nobodyさん:2006/02/22(水) 16:37:02 ID:???
>>176
君はPHPよりPerlの方が向いてるかもしれない。
あれはsh他のコマンドラインスクリプトの発展したものだから文化が近いと思うよ。
PHPは見た目が少しPerlに似てる程度で考え方の基本はC言語に近い。
182nobodyさん:2006/02/22(水) 16:40:43 ID:stieJNuS
最近PHP使わされてるんですが、PHPって、
たとえば関数がオブジェクトをかえすときに、

function foo() {
return new Bar();
}

foo()->baz();
みたいな関数呼び出しはできないんでしょうか?
なんか文法エラーって怒られるんですが…
PHP4です
183nobodyさん:2006/02/22(水) 16:41:47 ID:???
>>179
一気に萎える('A`)

> 数学とか英語は偏差値90越えは普通でした
そいつは尋常じゃない数値だね。
英文で書かれた参考書の方が君にはあってるっぽいよ。

それと
if (($file)!="^?..*"){
の"^?..*"はマッチパターンであってereg関数なり使わないと。

ピリオドが2つ続いているのは良く分からないけどね。
184nobodyさん:2006/02/22(水) 16:43:18 ID:???
偏差値90ってそうとう母集団が偏ってた予感。
全国テストとかなら満点とっても取れないよなぁ。
185nobodyさん:2006/02/22(水) 16:44:48 ID:???
>>183
Perlなら if($file =~ /^\..*/) でいけるな。
あと、^\..* の正規表現の意味が分からないって、お前の方がやばくないか?
まぁ、後半の .* は別に要らないと思うけどさ。
186nobodyさん:2006/02/22(水) 16:52:38 ID:???
もうなにやら、突っ込みどころ満載な人間が降臨して
嵐のように書き込んで、風のように去っていったって感じですね…

>>176
>言語を学ぶのには、英語と同じで、まずは実際の例文にいっぱい触れるのが一番

間違ってはいないと思うけど、君、例文とか無視だろ。
例文どおりにやって、どうやったらそんな正規表現マッチが書けるんだか???

ネット上の例文の多くは文責の無い物が混じった玉石混交
その中から正確な情報を適切に拾い出すにも基礎知識が必要になるでしょ。
その基礎知識を身につけるのに書籍とかマニュアルがイイよ、と言われても、
本が読めないとか、言って聴く耳持たず。
終いには、悪態ついて去っていくマナーの悪さ。
>>177もバカだけど、3年も2ch見ていて、煽りにいちいち反応するなよ。
187nobodyさん:2006/02/22(水) 16:55:06 ID:???
>>182
ムリ
188182:2006/02/22(水) 16:56:43 ID:???
>>187
…なぜ?
意味解らん。

普通にプログラミング言語を設計(というかBNF)すれば、
半自動的に出来るようになりそうなもんですが…
189nobodyさん:2006/02/22(水) 16:58:33 ID:???
>>188
PHP4のオブジェクト指向は後付の設計でオブジェクト指向向きの構造になってないから
190nobodyさん:2006/02/22(水) 16:58:52 ID:???
>>185
いやいや、正規表現の意味が分からないんじゃなくて
このケースでは不要じゃないかな?と思って書いただけだよ。
191nobodyさん:2006/02/22(水) 17:01:08 ID:???
>>190
実際には意味がなくても冗長な正規表現を書いちゃうことくらいよくあることだ
192182:2006/02/22(水) 17:02:47 ID:???
orz
ボスにかけあってPHPから脱出します

ちなみに5では可能でしょうか?
193nobodyさん:2006/02/22(水) 17:03:41 ID:???
とりあえず、丸っきりの素人で書籍も読む気がない、というのであれば
くだらない質問スレ行き確定ってことでいーんじゃないか。
194nobodyさん:2006/02/22(水) 17:14:48 ID:???
>>176の後半を読んで、ゆとり教育の弊害を痛感した。
195nobodyさん:2006/02/22(水) 17:17:27 ID:???
>>191
そうだな。余計だったよ。

>>194
なるほど
196nobodyさん:2006/02/22(水) 17:18:44 ID:???
例文から入ってわからんところは全部人に聞く。
確かにはためーわくだが効率はいいかもしれんなwwww
197nobodyさん:2006/02/22(水) 17:32:59 ID:???
>>176
・・・・王道

裸の王様にならないようにね。
198nobodyさん:2006/02/22(水) 17:38:12 ID:???
/~sheel/モノは放置の方向でお願いします。
199nobodyさん:2006/02/22(水) 17:45:28 ID:???
サブドメが俺様
200nobodyさん:2006/02/22(水) 17:53:06 ID:???
>>156は夜勤明けには
http://pc8.2ch.net/test/read.cgi/php/1139746974/
へ行ってくれ。
201nobodyさん:2006/02/22(水) 18:36:19 ID:???
>>197
裸の王道か
上手い事言うなお前。
202nobodyさん:2006/02/22(水) 19:27:31 ID:???
>>192
ここが参考になると思います。
ttp://www.doyouphp.jp/php5/php5_object.shtml
203nobodyさん:2006/02/22(水) 19:30:48 ID:???
>>179
周囲の人間をもう一度よく見渡してみましょう。
空気読むのってなかなか難しいことですよ
ただし、>>177も空気読んでないように思えますが。
204nobodyさん:2006/02/22(水) 20:21:51 ID:???
空気読んで俺も>>177が空気読めてないと思う。
205nobodyさん:2006/02/22(水) 20:24:32 ID:???
空気読むのは日本人の悪い特徴ニダ
206nobodyさん:2006/02/22(水) 20:34:50 ID:???
空気嫁=ダッチワイフ
207nobodyさん:2006/02/22(水) 23:05:14 ID:???
空気婿は無いのかな?
208nobodyさん:2006/02/22(水) 23:19:25 ID:???
挿れるとバリの部分が相当痛いぞ。
中を傷つける恐れあり。
209156:2006/02/22(水) 23:38:40 ID:???
いま、>>196が(・∀・)イイ!!こと言った!
210nobodyさん:2006/02/23(木) 00:00:56 ID:???
韓国人みたいな人が帰ってきたな。
211nobodyさん:2006/02/23(木) 00:11:24 ID:???
もう春厨がわいたのか?
212nobodyさん:2006/02/23(木) 00:13:18 ID:???
>>209
空気嫁
213nobodyさん:2006/02/23(木) 01:11:56 ID:???
ADOdbを利用しています。

$DB->getRow($sql); の結果のインデックスが数値のものと文字列のものが二重で
出てくるのですが、文字列インデックスのものだけにする方法はありますか?
214nobodyさん:2006/02/23(木) 01:55:13 ID:???
>>213
文字列にキャストする。
$result = (string)$src;
もしくは関数を利用する。
strval ($src);

これ使えるか知らんけど、
settype ($src, typename);
typenameは文字列で"string"にすると文字列を返す。

一応マニュアル見てくれ。
215nobodyさん:2006/02/23(木) 02:55:24 ID:???
>>213
事前に
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
でモードを設定

>>214
何の話だそりゃ
216nobodyさん:2006/02/23(木) 03:37:31 ID:???
>>215
サンスコ!でけた!

直前だとこれでもいける
$DB->SetFetchMode(ADODB_FETCH_ASSOC);
217156:2006/02/23(木) 04:47:14 ID:???
>>183
ereg!!!
こんな表現をいちいち使わないといけないのですね。
ちょっと戸惑いを感じましたが俺様のスキルの高さのためか、
おまいらのせいかよくわからんけどなんとかやりたいことが
できるようになりましたよ!!!

<現在のディレクトリ内のファイルとディレクトリを
 まるでApacheのFancyIndexのように一覧表示する。
 ただし「.」(ピリオド)で始まるファイルorディレクトリは表示しない>

<?php
//open directory
$dir=@opendir(".") or die("failed to open the directory");
while($file = readdir($dir)) {
if ( !ereg ( "^¥.", $file)) {
echo '<LI><A HREF="' . $file . '">' . $file . "</A>¥n";
}
}
closedir($dir);
?>
218156:2006/02/23(木) 04:51:31 ID:???
>>217
の実際のphpサンプル出力がこちら。
ttp://oresama.hopto.org/~sheel/phptest/directory.php

あとはそれぞれのファイルの最終変更日と何キロバイトか、
って情報もいっしょに表示させたいね。
SSIではlsを使って↓のようなところまではできたんだけどね。
ttp://oresama.hopto.org/~sheel/index.shtml

phpではやはりファイル容量とか最終変更日とかまで表示させるのは
無理難題なのでしょうか?

とにかくおまいら役立たずにわざわざ聞く前に
とりあえず自分で調べてみますね。
219nobodyさん:2006/02/23(木) 04:56:21 ID:???
>>218
filemtime
filesize
220nobodyさん:2006/02/23(木) 05:20:28 ID:???
>>219
ありがとうございまし!
なんとかできますたね!
おれさまのスキルだよ!
ttp://oresama.hopto.org/~sheel/phptest/directory.php

PHPってのはbashと違って
・echoのあとにただ以下のように羅列していくだけでいい(下記参照)
・>とか、<とかをエスケープする必要がない
・エラーが起こるとブラウザ上で何行目がエラーか表示してくれる
っていう利点がてんこ盛りですね。
ますますphpにのめり込んでしまいそうです。

echo '<LI><A HREF="' . $file . '">' . $file . "</A> " . sprintf("%u", filesize($file)) . " " . date ("F d Y H:i:s",filemtime($file));
221nobodyさん:2006/02/23(木) 05:21:25 ID:???
ちなみに掲示板つくったよ。
ttp://oresama.hopto.org/~sheel/phptest/bbs/gazou.php

どんどん書き込んでね。
222nobodyさん:2006/02/23(木) 07:00:21 ID:???
なんだこいつ
きもいな
223nobodyさん:2006/02/23(木) 07:31:51 ID:???
>>221
それはお前が作ったんじゃないだろ
ただ設置しただけ
224nobodyさん:2006/02/23(木) 07:41:22 ID:???
単なる能無し
225nobodyさん:2006/02/23(木) 08:06:23 ID:???
156は放置の方向でってなってるじゃん。こいつ出てくると
荒れるんだって。
226nobodyさん:2006/02/23(木) 10:35:24 ID:???
>>156-160 辺りでは
謙虚な初心者だと思って幾つか回答もしたんだが、
はっきり言って、今は後悔しているorz
227nobodyさん:2006/02/23(木) 10:39:12 ID:???
久しぶりに香ばしい奴が湧いてるなw
228nobodyさん:2006/02/23(木) 10:48:49 ID:???
>>223
古式タソ思い出したよw
229nobodyさん:2006/02/23(木) 11:31:15 ID:???
俺は昔から177はやってくれる子だと思ってたよ。
230nobodyさん:2006/02/23(木) 11:32:08 ID:cRiHYjaV
指定されたファイル名が無い場合に
それを作って保存してくれる関数って無いでしょうか
231nobodyさん:2006/02/23(木) 11:34:22 ID:NhHoHXRn
PHPを使ってMySQLを操作しています

SQLのinsert文やupdate文を用いてテーブルを更新
insert into テーブル名 (名前) values ('値') //自分の例
このような場合、「値」の部分に「'」が入っていると(例:TE'ST)実行に失敗するのですが
よい回避方法はありますでしょうか?
htmlentities($name, ENT_QUOTES);で文字を変換してやってみましたが出来ませんでした
232nobodyさん:2006/02/23(木) 11:46:03 ID:???
>>230
fopen
233nobodyさん:2006/02/23(木) 11:47:54 ID:???
PHPでXML関係の処理についての質問なのですが、こちらで良いですか?
もし板違いスレ違いだったら誘導していただけると助かります。

PHP5でSimpleXMLを使ってXHTMLファイル処理したいのですが、
どうも <html> 要素に xmls="http://www..." を指定すると、xpath()でノードを取得できなくなってしまいます。
xmlns 属性をまるごと消すと、目的のノードを取得できるようになります。
なぜ xmlns を指定すると取得できなくなるのか、原因と対策をご存知でしたら回答お願いします。
-----------------------------------------------------
【src.html】(このXHTMLの <html> 要素から xmlns を削除するとちゃんと取得できます)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="ja" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>テスト</title>
</head>
<body>
<div id="nullpo">
ぬるぽ
</div>
<div id="ga">
ガッ
</div>
</body>
</html>

【test.php】
$sxml = simplexml_load_file('./src.html');
$xpath = "//div";
$res = $sxml->xpath($xpath);
var_dump($res[0]);
234nobodyさん:2006/02/23(木) 12:53:46 ID:???
>>220
どこを立て読みしたら(r
235nobodyさん:2006/02/23(木) 13:42:17 ID:???
236nobodyさん:2006/02/23(木) 13:50:14 ID:cRiHYjaV
>>232
ありがとうございます
237221:2006/02/23(木) 14:05:43 ID:???
>>223
あ、すみません。全くその通りですた・・・ooorz

ttp://oresama.hopto.org/~sheel/phptest/bbs/gazou.php

このBBSはまんま「レッツPHP」さんの秀逸なBBSを
そっくりそのままの形で設置してみましたのです。
これをわたしがつくったかのように書いてしまったのはすみませんでした。
わたしはただ、PHP例文に多く触れることにとにかく主眼を置いていますので
とりあえず設置してみただけです。
設置、とひとことで言っても、これを行うにはMacOSXの
Terminalを使用してchmodコマンドを駆使したり、
mkdirコマンドを駆使したり、割と様々なテクニックが必要であり
1年前のわたしではまったくできなかったことでした。
とにかく「今そこにあるPHPプログラム」を少なくとも
「設置」くらいはできるようになった、と感動すら覚え、
まるでこどもが親に「ほら、ボク、こんなことができたYO!」
と言っているかのような錯覚に陥っていたのも事実でした。
238nobodyさん:2006/02/23(木) 14:08:14 ID:???
ところで、PHPを使うと、
データベースの作成?流用?も楽々っぽい印象を思っています。
PHPのデータベースとの親和性を前面に打ち出して、
「署名をつのるためのPHPブログラム」
をつくってみたいと思います。
今、具体的に頭に描いているのは、

名前
所属
メールアドレス
コメント

というのをそれぞれ入力してもらい、
[投稿する]ボタンをクリックすると投稿される、というものです。
これはまんまBBSの形に似ているので、BBSを動かすPHPプログラムを
ちょちょっとせせるだけでなんとかならないかなぁと思っています。
もしなにかアドバイスがありましたらひとことだけでもよろしくお願いします。
239nobodyさん:2006/02/23(木) 14:50:33 ID:???
>>231
mysql_real_escape_stringかmysql_escape_string
どちらがいいかはマニュアル調べれ
240nobodyさん:2006/02/23(木) 15:14:06 ID:???
>>237
これからも、ここに書き込むのなら、
名前を固定にしてトリップをつけると幸せになれると思いますよ。
3年も2chに馴染まれているので、今更でしょうけど、
念のため、名前欄で「俺様#hogehoge」とかであなただけのトリップが持てますからね。
是非。
241皮先くん ◆N3i.Qu1SoY :2006/02/23(木) 15:42:12 ID:???
>>240
これでいいですか?

ではさっそく。
>>238
を実現するためには、php超ド初心者の俺としては
まず、軽いステップを踏む必要があると思い、
ここを参考にして<form>からPOSTで受け取るスキルを更新しようと
しています。
ttp://php.dori-mu.net/news.html

全くこの通りにやっているのですが、
どうにもうまくうごきません。
まず、
ttp://oresama.hopto.org/~sheel/phptest/news/newspost.php
これをやると、「hogehogeのように書き込まれました」
と表示されるはずなのですが、そうはなりません。
news.batへの書き込みがうまくいってないような感じです。
パーミッションの問題かな、と思ってnews.batは
「だれでも書き込み可」にしてみましたがダメですた・・・orz

どうしたらいいのでしょうか?
242皮先くん ◆N3i.Qu1SoY :2006/02/23(木) 15:48:29 ID:???
ちなみに、
このように
ttp://oresama.hopto.org/~sheel/phptest/news/
news.datとnewspost.phpとprintnews.phpは同じディレクトリ内に
存在しています。

あと、エディタを使ってnews.datに1234と一行書き込むと、
printnews.phpは正常に動作するようです。
ttp://oresama.hopto.org/~sheel/phptest/news/printnews.php

なぜ>>241のnewspost.phpがうまく動作しないのか、
ヒントだけでも教えていただけると助かります。
243nobodyさん:2006/02/23(木) 16:19:18 ID:???
やっとあぼーんできる
244皮先くん=241=242 ◆N3i.Qu1SoY :2006/02/23(木) 16:53:38 ID:???
やっぱりダメですね。
スキルアッププロジェクトは遅々として止まったままです。
news.batへの書き込み自体はどうもうまく行っているようです。
なぜかというと、if分岐を削除すると
ちゃんと[]のnullが書き込まれているからです。
問題の根源は、formからsubmitとcontentsを
postしてないか、postされているのに受け取れない、
のどちらかかと思われます。
apacheの設定でformからのpostを有効にする、って設定が
あったりするんですかね・・・。で、それが無効になっている、と。

ちょっとその辺をひとりで調べてみますね。
245nobodyさん:2006/02/23(木) 16:54:04 ID:???
皮先かよ!!本人か!?MacOSXだしな…
246nobodyさん:2006/02/23(木) 17:10:24 ID:???
てかID出さないやつの質問に答えるのってどうなの。
>>245とか明らかに本人だろ。
247皮先くん=241=242 ◆N3i.Qu1SoY :2006/02/23(木) 17:17:49 ID:cy2LQUXf
失礼しました。
IDを出さない行為がよくない行為だというのは初めて知りました。
これからはIDもトリップも露出して正々堂々と闘うことを誓います。

>>244
の続きの話ですが、
どうもapacheは最初からpostとかgetとかサポートしているみたいですね。
というか世の中ほとんどGETなどの世界でWWWが存在しているっていうかw
う〜む、原因がわからない。
誰も教えてくれないようなのでひとりで悩むより
次の課題に取り掛かりたいと思います。

課題を思いついたらまた書き込みますね。
誰かが課題を出してくれても大歓迎です。
PHPのスキルの更新が目的ですので。
248nobodyさん:2006/02/23(木) 17:22:49 ID:???
皮先練習スレとか立てた方がいいんじゃないのかww
249nobodyさん:2006/02/23(木) 17:36:43 ID:???
>>240 GJ!
センブラ者あぼ〜ん設定汁
250nobodyさん:2006/02/23(木) 17:47:28 ID:???
>>239さん
ありがとうございます
一応自力でどうにかする方法も見つけたのですが、こっちの方がスマートそうです
4.3以降はmysql_real_escape_string
それ以前はmysql_escape_string
を使うようです
251nobodyさん:2006/02/23(木) 17:47:51 ID:???
お前ら(>>243>>249)馬鹿じゃないの?
そんなこと言っちゃったら名無しに戻っちゃうだろ
252nobodyさん:2006/02/23(木) 17:48:47 ID:???
え・意図してIDって出せるの?
253nobodyさん:2006/02/23(木) 17:59:57 ID:???
メール欄空欄なら出るのでは
254nobodyさん:2006/02/23(木) 18:10:22 ID:QpcRsDDO
文字コードについてお伺いしたいのですが、AJAXを使うにあたり、今後
UTF-8でPHPなども組んできたいと思います。

sjisだとsubstr関数が上手くいかないなどの問題点を聞いた事はありますが、
URF-8の問題点などございましたら教えてください。
ちなみに、現在はEUCを使用しております。宜しくお願いします。
255nobodyさん:2006/02/23(木) 18:14:23 ID:cy2LQUXf
太陽と北風っていうイソップ物語で言えば、
皮先はちょうど太陽のような存在だろう。
あぽーんさせないためには普通はトリップをつけないことを
考える(=北風)が、皮先は太陽のように
自分からあぽーん設定を解除させる術に長けている。

>>251
>そんなこと言っちゃったら名無しに戻っちゃうだろ

それを敢えてせずに真っ向勝負が皮先クオリティ。
いつしか皮先のハイクオリティな書き込みを見たくて
透明アポ〜んを外したくなる、それが皮先。
256nobodyさん:2006/02/23(木) 18:28:36 ID:???
>>255
バカ!ID出てるよ!
257nobodyさん:2006/02/23(木) 18:42:06 ID:???
テンプレにsage質問には答えるなって書いとけよ。



ここの回答者全員バカじゃんwwwwwwwwww
258nobodyさん:2006/02/23(木) 18:48:56 ID:???
あぽ〜ん

259nobodyさん:2006/02/23(木) 18:56:29 ID:???
全くだ。ここのスレが荒れたのは皮先が悪いのではなく
書き込む人間が愚かだったからとしか言いようが無い。
260nobodyさん:2006/02/23(木) 20:09:16 ID:???
なんか皮被りの自演レスが目立つな
261nobodyさん:2006/02/23(木) 20:14:14 ID:???
>>254
Unicodeから他の文字セットに変換する際に
その変換テーブルが統一されてないので、
文字の一部で変換に環境による違いが発生する。
262nobodyさん:2006/02/23(木) 23:19:47 ID:???
ユーザ関数内で定義した関数を外部から呼び出すにはどうしたらよいでしょうか?

function hoge(){//本当はもっと複雑です。
$a = 'hoge';
}
echo $a;

みたいなことがやりたいのですが、出来ませんでした。
逆はglobalで出来るのですが、このパターンは分かりませんでした。
ご存じの方教えてください。
263nobodyさん:2006/02/23(木) 23:36:05 ID:???
>>262
ヒント:戻り値
264nobodyさん:2006/02/23(木) 23:51:45 ID:???
今日の10日後とかを表す簡単な方法きぼんぬ
265nobodyさん:2006/02/23(木) 23:54:03 ID:???
266nobodyさん:2006/02/24(金) 00:57:31 ID:???
おまいら、下らない質問スレ行けって
267nobodyさん:2006/02/24(金) 01:03:46 ID:???
まぁ、難しい話だよな
自分の質問が下らないかどうか分かるレベルならこのあたりの質問はしない
つまり質問者にどうこう言ってもねぇ・・
268nobodyさん:2006/02/24(金) 01:18:16 ID:???
でも「簡単な方法きぼんぬ」がくだらなくない質問だったら
世の中の質問はみんなくだらなくないと思う。
ぶっちゃけ、くだ質の中でも最低ランクの質問だと思うぞ >>264
269nobodyさん:2006/02/24(金) 01:40:17 ID:???
回答者がくだらねぇと思ったらスルーすればいいだけじゃん
270nobodyさん:2006/02/24(金) 01:49:26 ID:???
つーか質問者じゃなくくだらない質問に回答するやつがくだ質スレに逝け
271nobodyさん:2006/02/24(金) 02:33:27 ID:???
でもスルーだと誰も読んでいないのか、スルーなのか、誰も分からないのか判別付かないかも
「そんな下らない質問するな」とでも書くか?
272nobodyさん:2006/02/24(金) 04:09:55 ID:???
array(['user_id']=>'3',['user_id'] =>'7')

となっている動的に返される配列を

array('3','7')

のように変換したいのですが、どうするのがスマートですか?

foreachで展開してまた、配列を作るという頭の悪そうなアルゴリズムしか浮かばないです
orz...
273nobodyさん:2006/02/24(金) 04:24:41 ID:???
>>268-271
くだらない会話
274nobodyさん:2006/02/24(金) 05:32:32 ID:???
>>272
array_values ってこと?
275nobodyさん:2006/02/24(金) 06:29:28 ID:???
だな
>>272
ちっとはマニュアル調べろって
http://www.php.net/manual/ja/function.array-values.php
276nobodyさん:2006/02/24(金) 16:23:17 ID:???
有料共用のレンサバでHPを運用しています
PHPスクリプトは動いていますがPHPが作ったディレクトリやファイルが消去できなくなっています
FFFTPでパーミッション等の設定をいくら変えてもダメです
で原因はパーミッションでは無くディレクトリやファイルの所有者自体が違うから
まではわかりました(すべてではないが一部ある)
このレンサバの仕様は
CGI の実行権限 others権限(SuEXEじゃないサバ)
ファイルの所有者は私
PHPはCGI版ではなくapacheのモジュールとして動作
CGI を実行するユーザ名 wwwユーザー
つまりPHPが作ったディレクトリやファイルの一部が私ではなくwwwユーザーになっているものが
原因のようです(すべてではないが一部ある)。FFFTP上でも所有者名が違うことがわかります。
Googleしたところ、CGI等が作ったファイルが所有者違いのため消せないことがある
そういう場合はCGIを使って消すべしとあったのでFFFTPで直接消そうとするのではなく
rmdir()やunlink()のスクリプト経由でやってみましたがこれもダメです
今回は最悪サバ缶に消去を頼むとしても、原因を突き止めないと消せないファイルはこれからも
作られ続けるので
PHPのどこを気をつけたらこの症状が防げるか
これを消すPHPのプログラムがあったら教えていただけませんか
277nobodyさん:2006/02/24(金) 16:39:38 ID:???
>>276
鯖引越がBEST
278276:2006/02/24(金) 17:06:05 ID:NYH/iAxr
>>277
エエェェ(´д`)ェェエエ 
良ければもう少し詳しく教えていただければ助かります
このサバにいるかぎり直す方法はナイということですか?
共用だから他にも利用者がいるので文句が多数出ないように
そういう仕様にはしないような気もします
この理解は違うのでしょうか
279nobodyさん:2006/02/24(金) 17:11:58 ID:???
>>276
やり方が悪いだけだと思う
エラー表示させたら原因もわかるだろ
280nobodyさん:2006/02/24(金) 17:14:51 ID:???
そのディレクトリのオーナーならそのまま消すこともできるだろうが
ディレクトリ自体もphpで掘ったなら、ちょっとめんどうだね
281nobodyさん:2006/02/24(金) 17:27:08 ID:???
>>276
phpの問題、つうか、セキュリティ上の問題。

セーフモードで動いてるんで、そうなる。
鯖を変えたところで、セーフモードでやってる所じゃ同じ事になるね。

たぶん、phpでファイルを消すスクリプトがおかしいんだろ。
ファイル作ったときに、パーミッションを適正に設定してないとかじゃねーの?
282nobodyさん:2006/02/24(金) 17:28:24 ID:???
>>276
普通は、ディレクトリを先に作っとくもんだ。
283nobodyさん:2006/02/24(金) 17:28:26 ID:???
なぜこのスレに皮先が…orz
284276:2006/02/24(金) 17:31:58 ID:NYH/iAxr
>>>280
>ディレクトリ自体をphpが掘ったなら
こういう現象になることがあるということですか?

>>279
PHPスクリプト自体はご機嫌よく稼動しています
エラーはとくに無いみたいです
285276:2006/02/24(金) 17:46:14 ID:NYH/iAxr
>>281
セーフモードじゃないということで借りています
借りる時(試用期間中)にチェックもしました
http://php.morva.net/manual/ja/features.safe-mode.php
の真ん中のほうにあるチェックの仕方をやってみました
セーフモードじゃないと思っていたこと自体が間違いということでしょうか

>>282
とりあえずディレクトリをPHPに作らせないようにして
一度やり直してみます
どうもありがとうございました

286nobodyさん:2006/02/24(金) 19:06:51 ID:???
皮先うぜえな
287nobodyさん:2006/02/25(土) 12:21:13 ID:???
なにこのひどい過疎っぷり
288nobodyさん:2006/02/25(土) 12:31:18 ID:???
くだ質で十分だとみんな気づいちゃったんじゃない?
そもそも下らないかどうかなんて、主観というか本人のレベルに依存する話だしな。
289nobodyさん:2006/02/25(土) 13:56:44 ID:???
皮先が通ったあとはペンペン草も生えないってどこかでみたことある。
290nobodyさん:2006/02/25(土) 14:45:50 ID:Z8amSH1W
全くの素人です。
os=windows XP
HTMLコーディング=出来ます。
CGI=有り物の設定をちょこっと変更する程度。
PHPでこんなことをやろうと思っています。
-------------------------------------------------------------------
HPの右隅にカレンダーと新着を置いて、別webページより管理
カレンダー:2ヶ月表示オートで切り替わり、管理ページより指定した日にちだけ
だけ赤く表示・キャンセル機能
新着:管理ページより、新着情報入力追加・削除・コメントリンク機能
-------------------------------------------------------------------
HPで表示するだけ、別webページで管理変更をPHPで作れるのでしょうか?
PHPで出来るとしたら、構造はたぶん頑張って勉強して出来ても、HPへの引き継ぎ処理が何をどうやればいいか見当が付きません。
PHPの根本から勉強しなくては出来ない事でしょうか?
291nobodyさん:2006/02/25(土) 15:15:28 ID:???
>>290
貴方が使われてる「HP」の意味が不明瞭です。
(HomePageの略であろうことは判ります)
現在のHomePageの意味合いは、Webブラウザでアクセスできる
インターネット上のコンテンツぐらいの大雑把なものなので
CGIやPHPで作った動的なコンテンツもHomePageといえます。
292nobodyさん:2006/02/25(土) 15:39:02 ID:???
>>291
そこまで言うなら
ホームページ→ブラウザのホームボタンを押した時に表示されるページ(サイト)
293nobodyさん:2006/02/25(土) 15:41:53 ID:???
>>290
3回くらい読み返してみましたが
何を聞きたいのかさっぱりわかりません。
適当におぎなって推測しても5通りくらいに解釈できます。
質問を整理してください。
294nobodyさん:2006/02/25(土) 15:44:41 ID:Z8amSH1W
>>291
不明瞭な表現をし、失礼致しました。
トップページのカレンダーと、新着情報を管理ページからの変更で内容が変わるようにしたいと考えております。
管理用のアクセス制限ページを作り、そこで変更・追加・削除の管理したいと思っております。
295nobodyさん:2006/02/25(土) 15:51:55 ID:???
>>294
いや、具体的な機能(表示とか管理)の話以前に
「HPへの引き継ぎ処理が」というところで
その"HP"って何よ?という疑問がでるということ。
296nobodyさん:2006/02/25(土) 16:00:13 ID:Z8amSH1W
>>293
1.PHPでサイトトップページの二ヶ月表示のオートカレンダーの色変更を別ページから、更新できるようにすることが可能でしょうか?
2.PHPでサイトトップの新着情報の変更・追加・削除・を別ページから、更新できるようにすることが可能でしょうか?
3.PHPで出来たとしても、(テンプレ等探しましたが見あたらず)本を読む程度の漱石じゃ不可能そうでしょうか?
297295:2006/02/25(土) 16:00:20 ID:???
ああ、サイトのトップページのことね。
そのトップページの生成方法を
・新着情報等をincludeするSSIを利用したshtmlにする。
・新着情報等をincludeするPerlやPHPを利用したCGI他の動的なものにしてhtmlを出力する。
・トップページは静的なhtmlにして、そのhtmlを別の管理プログラムで書きかえる。
298295:2006/02/25(土) 16:03:27 ID:???
>・新着情報等をincludeするPerlやPHPを利用したCGI
これはincludeじゃなくて「取り込む」という意味で
299nobodyさん:2006/02/25(土) 16:07:13 ID:???
>>290
PHPでそういうサイトを作れるか?ということであれば、作れます。

> PHPの根本から勉強しなくては出来ない事でしょうか?
ある程度自在に操れない人の場合、自作するのはかなり困難でしょう。
残念ながら、そういう仕組みの既存のスクリプトがあるかどうかは知りません。

>>295
引継ぎ、つーか、(PHPスクリプトが処理する)変更を(HTMLで作ろうとしている)画面上に反映、ってことだべ。
HTMLにPHPを埋め込める つー悲しい誤解が導き出した悲劇だぁね。

実際には、こういう手順になる。
1. もともとhtmlファイルだったものをphpの中の人が処理できるように拡張子phpに変更する。
2. 必要に応じてphpの命令を埋め込む。
300290:2006/02/25(土) 16:13:10 ID:Z8amSH1W
>>293 >>295 
ありがとうございます。
解決の糸口が見えてきた気がします。
メモして、何とか探して勉強してみます。
301nobodyさん:2006/02/25(土) 16:14:46 ID:???
>>290
名に言ってるかさっぱりわかんね
だがIDを出している点は評価してやる。

>>295
てめえは帰れよ
302nobodyさん:2006/02/25(土) 16:14:48 ID:???
>>300
>>290>>293>>295のレスから
どうやって解決の糸口を見つけたのか…
謎は永遠に残ったままなのであった
303nobodyさん:2006/02/25(土) 16:24:17 ID:???
>>301
もっと感応能力を磨かないと、優秀なエスパーにはなれないよ
304nobodyさん:2006/02/25(土) 16:32:22 ID:???
このスレには馬鹿が多すぎる
305nobodyさん:2006/02/25(土) 16:35:37 ID:???
そんなこと言われてもねぇ
306nobodyさん:2006/02/25(土) 17:25:15 ID:cZFcTwP1
php5でrdfを解析しています
<rdf:Seq><rdf:li rdf:resource="http://www.hoge.com/test.php"/>
このようなタグや属性があった場合
getElementsByTagName("rdf:Seq")やgetAttribute("rdf:resource")ではうまくいかず
getElementsByTagName("Seq")やgetAttribute("resource")と書くとうまくいくのですが
このような事が起こってしまう原因をご存知の方はいますか?
できれば正確な名前"rdf:Seq""rdf:resource"でアクセスするようにしたいです
307nobodyさん:2006/02/25(土) 17:41:51 ID:???
>>306
getElementsByTagNameNS()
308nobodyさん:2006/02/25(土) 17:46:17 ID:???
>>288
そろそろこのスレとくだ質を統合する時期にきてるのかもね。
くだ質だけあれば十分w
309nobodyさん:2006/02/25(土) 18:23:02 ID:???
>>307
ありがとうございました
なんとかできそうです
310皮先くん ◆N3i.Qu1SoY :2006/02/25(土) 19:59:19 ID:???
SSIでbashを使って
ttp://oresama.hopto.org/~sheel/nwbachlow.shtml
このように2006年2月の各都市の最低気温の平均値を自動算出させて
使っています。重宝しているのですが、スクリプトをいちいち書き換えなければ
現状では2006年の2月しか対応できません。

そこで質問です。
formを使って○年の△月の○と△の部分をshellscriptに送る方法は
ありますか?
もしくはshellscriptではなく
phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
311nobodyさん:2006/02/25(土) 20:06:18 ID:???
>>310
> phpで2006年2月の各都市の最低気温の平均値を自動算出可能ですか?
データがあれば、スクリプト組めば算出できるんじゃね?

shellscriptはスレ違いだと思う。
312nobodyさん:2006/02/25(土) 20:08:33 ID:???
>>310
bashスクリプトがコマンドライン引数を受け取って処理できるようにしてあれば
$output = `スクリプト $引数`; って形でスクリプト呼んで出力を受け取れるよ。
313nobodyさん:2006/02/25(土) 20:32:21 ID:???
皮被りはスルーの方向で
314311:2006/02/25(土) 20:36:25 ID:???
>>313
スマソ 忘れてた
OK、了解。
315皮先くん ◆N3i.Qu1SoY :2006/02/25(土) 20:46:54 ID:F0bSXXFW
>>311
ありがとうございます。
データは気象庁のWebサイトからcurlコマンドで取得しています。
phpでは、bashみたいに
(1)curlして
(2)好きな行の好きな数値だけをgrepやsedでピックアップ
ってなところも可能ですか?
316nobodyさん:2006/02/25(土) 22:28:03 ID:???
(´-`).。oO(質問マダー?(・∀・)っ/凵 ⌒☆チンチン)
317nobodyさん:2006/02/25(土) 22:49:04 ID:???
最近、質問が少ないね…
318nobodyさん:2006/02/25(土) 23:58:42 ID:???
質問カマーンщ(´д`)
319nobodyさん:2006/02/26(日) 00:01:22 ID:???
えと・・あの・・・(もじもじ) や、やっぱりやめときま・・あ、でもこれ訊かないといけないし・・
ば、ば・・バナナはおやつにはいるんですか?
320nobodyさん:2006/02/26(日) 00:32:55 ID:???
>>285
むかーしハマったの思い出した。。
コレ使ってみ

function delDir( $dirname )
{
if ( ! file_exists( $dirname ) ) return "見つからない";
$dh = opendir( $dirname );
if ( $dh === false ) return "開けない";
while ( ( $file = readdir($dh) ) !== false ) {
if ( $file == "." || $file == ".." ) continue;
if ( ! unlink( $file ) ) {
closedir( $dh );
return "ファイルが消せない→$file";
}
}
closedir( $dh );
if ( ! rmdir( $dirname) ) return "だめでした";
return "おしまい";
}
321nobodyさん:2006/02/26(日) 00:37:20 ID:???
>>320
削除できない時に、もちっとchmodして足掻いてほしい。
322nobodyさん:2006/02/26(日) 00:49:02 ID:???
>>321
あー、こうかな
if ( ! unkink( $file ) && ( ! chmod( $file, 0666 ) || ! unlink( $file ) ) ) {
323nobodyさん:2006/02/26(日) 01:08:38 ID:???
>>322
こらこらその行の前に$file=$dir.'/'.$file入れろ
関係ないファイル消すぞ
324皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 02:26:44 ID:WcIHh0oV
>>241
>>242
の件ですが、
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php
このようになんとかうまくいくようになりました。
form.phpで書き込まれた(または選択された)値について
POSTでform.phpへ値を返すようにしています。
>>241
でつまずいていた原因がわかりました。
それはPOSTで値を受け取る方法が
$name
として受け取っていたからでした。
正しくは(PHP4.3の場合は)
$POST_name
が正しいのです。

俺様自力で何でも解決できちゃう強者なので、
そのすごさをここでおまいらにいちいち報告してやりますね。
325nobodyさん:2006/02/26(日) 02:37:38 ID:???
324が見えないな
326皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 02:42:30 ID:WcIHh0oV
まぁ焦らずともそのうち見えるようになるよ。
327nobodyさん:2006/02/26(日) 03:16:23 ID:???
なんでスレ番が飛んでるの?
328nobodyさん:2006/02/26(日) 03:18:22 ID:???
世界の七不思議の一つ
329nobodyさん:2006/02/26(日) 03:49:50 ID:tRG/7BVD
mb_send_mail関数で日本語メール送信すると日本語の部分が??になる
php.iniは間違いなく設定してある
同時にログを取るためにfwrite関数を使ってるけどこれも化けてない
考えられる原因を全て答えろ童貞うんこちんこども
330nobodyさん:2006/02/26(日) 03:59:19 ID:???
mb_language("Japanese");
mb_internal_encoding("使ってる文字コード");

これをmb_send_mailする前に呼べばうまくいったような覚えがするが
動かなかったらごめんね、小便野郎
331nobodyさん:2006/02/26(日) 04:01:30 ID:???
皮もついに名無しか...
332nobodyさん:2006/02/26(日) 04:05:05 ID:???
皮先結局nobodyかよwwwwwwwテラバロッシュwwwwww
333皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 04:16:24 ID:WcIHh0oV
九州と較べるとめずらしく今日は東京は寒いんですね。
ttp://oresama.hopto.org/~sheel/lowestbach.shtml

PHPでもこの程度のことが簡単にできるといいんだが・・・。
334nobodyさん:2006/02/26(日) 10:50:39 ID:???
質問マダー?
335nobodyさん:2006/02/26(日) 11:02:06 ID:???
皮先のせいで相当空気悪くなったからなぁ・・・
336nobodyさん:2006/02/26(日) 11:14:21 ID:???
質問マダー?
337nobodyさん:2006/02/26(日) 11:20:04 ID:???
>>177もう一回来ないかな。
338nobodyさん:2006/02/26(日) 11:55:23 ID:???
>>308
個人的にはこっちのスレ残して欲しい。くだ質は読んでないし書き込みもしてないし。
まあ本当にスレの必要がなくなれば誰も書き込まなくなって自然に落ちるのだから統合だのなんだの言うだけ無意味だが。
人がいる限りどうせ次スレ立つでしょ。
339nobodyさん:2006/02/26(日) 12:07:01 ID:???
回答する人もあんなやつの質問には答えたくないだろうな
340nobodyさん:2006/02/26(日) 12:29:18 ID:???
偏差値90とか平均点10くらいのテストで一人だけ100点とるようなことじゃないと無理
平均点10のテストなんて中学生に東大入試解かせるとかそんなんだろ
実際は数学英語国語全て偏差値30以下の池沼なんだろうけど
341nobodyさん:2006/02/26(日) 12:33:24 ID:???
高三のとき駿台模試でネタバレ使って数学満点とっても70後半だったな。
90なんてハッタリは偏差値の概念知ってたらこけないから>>174は中卒だろ。
342nobodyさん:2006/02/26(日) 12:41:01 ID:???
池沼学校で超優秀な生徒だったんだろ


池沼学校で国語偏差値30なら池沼の中の池沼だなwwwwwwww
343nobodyさん:2006/02/26(日) 12:41:10 ID:???
偏差値の計算方法を知っていれば嘘か本当かはすぐわかる
344nobodyさん:2006/02/26(日) 13:13:54 ID:???
そんなに引っ張るネタか?
また来られたらウザイしもうやめようやそのネタ
345nobodyさん:2006/02/26(日) 14:24:47 ID:???
小さなことで後からつつくのは愚かな行為だ。
ここはPHPのスレなんだから、質問以外の会話は必要ないだろう?
大人数で一人の人間を攻撃するなんて君たちは最低のクズだな
346皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 14:27:36 ID:dOqMy4uq
まぁ実際のところ>>340の言う通りで、
全国平均点が10点もないとんでもないテストがあって、
それで100点取ってみたら偏差値105くらいだったよ。数学な。
まぁ2年の最初で3年も一緒に受けるテストだったからそれくらいの平均点はしょうがないし。

それにしても>>342の言うことは正しい。
東大に行ったくらいで神扱いな底辺高校だった。
347nobodyさん:2006/02/26(日) 14:33:01 ID:???
for文の中で、一番最後にやりたい処理があるんだけど
ループ内でcontinue使いまくりで最後ってどこよ?てときに
for( $i=0; $i<100; f(),$i++ ){
$i++のとこによく関数呼び出しいれちゃうんだけど、これって
マナー的にはどうなの?
348nobodyさん:2006/02/26(日) 14:46:53 ID:???
ループするたびに関数呼び出すよりは
ループ内で条件分岐させた方がスマートだと俺は思う。
349皮先くん ◆N3i.Qu1SoY :2006/02/26(日) 14:53:45 ID:dOqMy4uq
>>324
の件なんですが、
formでPOSTされたものをphpスクリプトで受け取る方法はわかったのですが、
POSTされた値をtext.batファイルに書き込むことがいまいちわかりません。
これはどうやったらいいのでしょうか?
今は↓こんなふうにやっていて、submitするとtext.datに
書き込まれるはずなんだけどなぁと思いますがうまくいきません。
ちなみにアクセス権はよくわからないのでなにも考えなくていいように
全部777にしています。どうも「print」の部分はうまくいくのに、
「fopen」関連はちゃんと動作していない感じです。text.batに何も書き込まれないので。どこがわるいのでしょうか?

<?php
$filename = "text.dat";
if (isset($_POST['submit'])) {
print "Your name is " . $_POST['name'] . ".<br>";
print "Your sex is " . $_POST['sex'] . ".<br>";
print "Your hobby is " . $_POST['hobby'] . ".<br>";
print "Your OS is " . $_POST['OS'] . ".<br>";
print "Your opinion is " . $_POST['kansou'] . ".<br>";
$file = fopen($filename,"w");
flock($file, 2);
fwrite($file, $POST_['name']);
fwrite($file, $POST_['sex']);
fwrite($file, $POST_['hobby']);
fwrite($file, $POST_['OS']);
fwrite($file, $POST_['kansou']);
flock($file, 3);
fclose($file);
}
?>
350nobodyさん:2006/02/26(日) 15:04:02 ID:???
しかしこの固定ってホント理解力ないよな
典型的に頭悪いガリ勉タイプだと思う
351nobodyさん:2006/02/26(日) 15:55:59 ID:izomZemY
ども、たった今PHP始めたところです。
質問なのですが、
if文の条件部分に間違えて代入演算子を使ってしまったのですが
PHP、アパッチ共に怒ってくれませんでした。

if( $hoge = "hogehoge" )
{

}

で、入門書で調べたところ、
「気をつけてコーディングしてください」
とだけあったのですが、
皆さんは、自分で気をつける以外の方法をお持ちですか?
(チェックツールのようなもの?)
352nobodyさん:2006/02/26(日) 16:06:39 ID:???
;
353nobodyさん:2006/02/26(日) 16:09:31 ID:???
>>351
その間違い間違いであるがエラーではないからだれも教えてくれません。
その手のミスを防ぐ原始的な方法としては
if ( "hogehoge" == $hoge) ;
と書くようにすること。こうすれば "hogehoge" = $hoge はエラーとなるのでわかりやすい
354nobodyさん:2006/02/26(日) 16:16:39 ID:???
$x == NULL
で良く使われるヤツだな。

NULL == $xって最初は何だ?って思うんだけどね。
355nobodyさん:2006/02/26(日) 16:20:59 ID:???
>>351
ifの条件式の中で代入演算子が使えなくなったり怒られたりするようになると、手間が増えて面倒。
特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。

ミスの対処法は>>353が書いてるようにするくらいしか無いんでね?C FAQでも見かけた希ガス。
356nobodyさん:2006/02/26(日) 16:23:25 ID:???
なるほどな、そう書けばタイプミスしても代入されずに済むか
357nobodyさん:2006/02/26(日) 16:37:46 ID:YAFRqcKG
MySQLに接続失敗したときに出るメッセージを出力されないようにするにはどうすればいいんですか?
358nobodyさん:2006/02/26(日) 16:39:13 ID:izomZemY
>>353
いや、ホント助かりました。
ありがとうございます。

VB→C#とやってきてるのですが、
$hoge = 12;
$hoge = "test";
#hoge = date("Y");
とか、型宣言してないのに。。とか、驚き中です。

先ほどの質問後にIDEでもあればいいのかなと思い、
ttp://phpspot.net/php/phpeditor.html
がHITしたので、特徴にある、
「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。

>>354
あ〜、なるほど〜って感じです。
先輩。助かりましたよ。
ありがとうございます。

>>355
そうですよね、条件文内で関数使いますもんね。
>特にNULL,FALSE,なんかの値(や配列)のどれかを返す関数を使う場合、ifやwhileの条件式の中で使うとすっきりと書ける。
これ、メモっておきました。
ありがとうございます。


ちょっとした疑問追加です。
echo関数の引数に、改行コードを含めるのは慣例で、
理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
359nobodyさん:2006/02/26(日) 17:00:53 ID:???
>>358
> 「・構文チェック機能 … ボタン一発で構文エラーがないかチェックできます。」
> で、前述のif($hoge = "hoge")が怒られるかどうか確認してみます。
それを怒るIDEは存在しないと思いますよ。構文としては合ってるし、よく使うから。
if($hoge = hoge()) {
 hoge2($hoge);
}
みたいな感じで、関数の戻り値をチェックするのと同時に変数に格納しといて
ifの中でその値を利用する…みたいな書き方は普通にやります。
よく使うケースは
if($fp = fopen("file", "a")) {
 fputs($fp, $data);

}
$hoge = hoge();
if($hoge) {
 hoge2($hoge);
}
と分けてもいいんだけどかえって煩わしいので。

それにしても if("hoge" == $hoge) ってミスタイプ防止が目的だったのか…
同じ会社でこういうコーディングする人がいるから何でだろうとずっと思ってたよ。
360nobodyさん:2006/02/26(日) 17:01:29 ID:???
>>357
適切なエラー処理

根本的な接続ミスの対処
361nobodyさん:2006/02/26(日) 17:03:45 ID:???
>>357
該当部を@でエラー出力を抑制し、
自前でエラー処理をしておく。
362nobodyさん:2006/02/26(日) 17:04:43 ID:???
あちゃ。変なとこで投降しちゃった。まぁ、意味は通るからいいか。

>>358
> echo関数の引数に、改行コードを含めるのは慣例で、
そんな慣例は無いと思うけど。

> 理由はHTMLとして出力された時に読みやすくする為という事でよいですか?
出力に改行が欲しければ改行を付ける。不要なら付けない。そんだけ。
HTML中の改行は、場所によっては無視されるのでデザインに影響しないけど、
場所によっては表示に隙間ができたりする場合もあるから要不要はちゃんと考えないと。
363nobodyさん:2006/02/26(日) 17:18:49 ID:YAFRqcKG
>>361
そんなのあるの始めて知った
ありがとう
364358:2006/02/26(日) 17:22:31 ID:???
>>359
ありがとうございます。
仰るとおり、上述のIDEには怒られませんでした。

また、いただいたサンプルコードで、
理解できました。
$fpにはtrueが入っているって事ですよね。(bool型あるのか。。)

優しく教えてくれて感謝です。
お仕事などお忙しいでしょうが、
頑張ってくださいね。


>>362
よくわかりました。
>場所によっては表示に隙間ができたりする場合もあるから要不要はちゃんと考えないと。
これ、助かりました。
知らなかったら必ず一回はハマりそうです。
そこら辺も意識にいれてやっていきます。
ありがとうございます。


それでは300円で買った10日で覚えるシリーズを
今から10日分進めたいと思いますです。
皆さん、ありがとうございました。
365nobodyさん:2006/02/26(日) 17:37:35 ID:???
chmod($logfilename,0666);
というスクリプトに対してwarning! chmod() opening なんとか remitted in なんとか online 243
とか言う警告がサーバーでプログラムを動作させると出るけど何でしょうか?
ちなみに画像掲示板スクリプトですが動作は正常です。あくまで警告が気になります。
366nobodyさん:2006/02/26(日) 17:44:48 ID:???
>>365
ファイルのオーナーが違うかパーミッションの問題かサーバーで制限をかけてるかで
chmodがちゃんと働いてないんじゃないの?
特に困ってないなら @chmod() って感じで@つけて表示を抑制しちゃってもいいと思うけど。
367nobodyさん:2006/02/26(日) 18:05:12 ID:???
φ(..)メモメモ
 ==では定数を左に置くと、比較演算子と代入演算子を間違えるミスをし難くなる
・・・と
368nobodyさん:2006/02/26(日) 18:08:40 ID:???
ミスのしやすいさは変わらん。
ミスしたときに気づきやすい
369nobodyさん:2006/02/26(日) 18:08:45 ID:???
同ページ内で、携帯端末(FOMA WIN 3G HDML mova willcomeなどなど)とPCを振り分けるPHPはどうすればいいんですか?
370nobodyさん:2006/02/26(日) 18:11:09 ID:???
>>369
User Agentで振り分けかなあ
371365:2006/02/26(日) 18:14:48 ID:???
ご親切にありがとうございます。
@ってどういう効能でしょうか?//などのコメント表示とは意味合いが違いそうですが。
まずは言われたとおりにやってみます。
372nobodyさん:2006/02/26(日) 18:16:53 ID:rIz4zvid
>>370
ファイルを呼び出して、表示というのはできないのですかね?ファイルを呼び出しだと、更新が楽なのですが…
373366:2006/02/26(日) 18:19:58 ID:???
371で質問した@マーク表記については自己解決しました。
サーバー制限やオーナーなどの場合の対処ってどういうのがあるでしょうか?
質問範囲が広すぎて答え難い場合は失礼します。
374nobodyさん:2006/02/26(日) 18:38:36 ID:???
>>372
User Agentで振り分けた後、それぞれ必要なふぁいるをincludeすればOK
375nobodyさん:2006/02/26(日) 18:44:28 ID:???
PHPのインストールがうまく言ってないようです。
次の様なエラーがでてきます。
対処方法をお願いします。

Warning: mysql_connect() [function.mysql-connect]:
Access denied for user: 'root@localhost' (Using password: YES)
in c:\program files\apache group\Apache\htdocs\test.php on line 4
can not connect db
376nobodyさん:2006/02/26(日) 18:49:53 ID:???
>>375
MySQLに接続できてないだけ。
rootユーザのパスワードが間違ってるんでねーの
377nobodyさん:2006/02/26(日) 18:50:24 ID:???
>>375
もう一度エラーを読み返せ
378nobodyさん:2006/02/26(日) 19:02:21 ID:???
ASP.NETにあるような、
コードビハインド的な手法は、
PHPで確立されていますか?
379nobodyさん:2006/02/26(日) 19:12:47 ID:???
>>378
コードビハインドって何じゃ?と思ったが、ググってみるとHTML部分を外部に放り出すってことか。
「テンプレートエンジン」って言う事の方が多いかも知らんね。
幾つかあるけど、PHP開発元の推奨だと、smarty( ttp://smarty.php.net/ )かねぇ。
380nobodyさん:2006/02/26(日) 19:31:40 ID:???
>>379
とても有益な情報、ありがとうございます。
そして、とても丁寧に。。
>>379さんの書いたソースは読みやすそうです^^
リンク先、熟読してみます。

ありがとうございました。
381nobodyさん:2006/02/26(日) 20:07:32 ID:???
375です。
ありがとうございました。
解決しました。
しかし、次の壁にぶち当たりました。
次の様なものです。
よろしくお願いします。

Parse error: syntax error,
unexpected '<' in c:\program files\apache group
\Apache\htdocs\mytest1.php on line 33
382nobodyさん:2006/02/26(日) 20:11:54 ID:???
>>381
それはただの文法エラー。
どっか書き間違いしてるんでしょ。
383nobodyさん:2006/02/26(日) 20:19:53 ID:IH+ZKFPy
プルダウンメニューで選択後、submitボタンで選択した
リンクに飛ばすphp教えていただけませんか。
よろしくおねがいします。
384nobodyさん:2006/02/26(日) 20:24:39 ID:???
>>383
選択した値(なんでもいい)に応じて飛ばす先のURLを用意して
header()でLocation使って飛ばすだけ。
385nobodyさん:2006/02/26(日) 20:27:17 ID:???
>>324
>>349
がヒント。
386nobodyさん:2006/02/26(日) 20:29:43 ID:???
xml_parse()でXML読んでるんですが、パースエラーがあったときに
ドキュメントのどこらへんでエラーがあったか知るうまい方法教えてください
387nobodyさん:2006/02/26(日) 20:56:02 ID:???
>>381
英語を解読しましょう。
ただし、33行目を見渡してもエラーがない可能性もありますので、
その前後も見てみましょう。
あと、次からもう少し自分で調べる努力をしてみてください
388nobodyさん:2006/02/26(日) 20:57:36 ID:???
>>386
XMLはあまり使わないんでよくわからないけど、
xml_get_current_line_numberは違うのかい
389nobodyさん:2006/02/26(日) 21:06:58 ID:???
>>388
ありがとうございました。まさにそれです。
危うく無駄な自作メソッドつくるとこでした。
390nobodyさん:2006/02/26(日) 21:17:12 ID:???
もうコピペも面倒だからリンク貼っちゃえ
ttp://pc7.2ch.net/test/read.cgi/jisaku/1140192026/168n
391nobodyさん:2006/02/26(日) 21:58:49 ID:rIz4zvid
>>374
ありがとう。
392nobodyさん:2006/02/26(日) 22:13:25 ID:???
>>369
お前の中の認識がものすごくおかしいのが気になる。
電波伝播方式世代: 3G
世代ブランド:FOMA WIN mova
ファイル形式: HDML
会社名: willcom (willcomeじゃねぇよ)
393nobodyさん:2006/02/26(日) 23:10:21 ID:???
$_GET をもう一度URIに戻すときは PHP5なら
http_build_queryを使えばいいよね。
でも、これをもう一度FORMに戻すときは
まじめにつくらなきゃダメかね?

foreach($_GET as $k=>$v)
print("<INPUT TYPE=HIDDEN NAME='$k' VALUE='$v'>\n");

$_GET にさらに配列が入ってたのでアウトだった。
面倒くさい。なんか便利関数無い?
394nobodyさん:2006/02/26(日) 23:10:51 ID:???
炒る米
395nobodyさん:2006/02/26(日) 23:12:00 ID:???
>>393
SESSION
396nobodyさん:2006/02/26(日) 23:20:40 ID:???
>>393
そんな便利な関数あったのか、サンクスw
397nobodyさん:2006/02/26(日) 23:25:44 ID:???
>>395
おばあちゃんの遺言が 「セッションは使っちゃあなんねぇ」 だったので
それは却下っぽいです。
398nobodyさん:2006/02/26(日) 23:40:01 ID:???
>>396
なるほど。いっかい使ってくっつけてまた分解すればいいのか。

$a = http_build_query($_GET);
$b = split("&",$a);
foreach($b as $g){
list($k,$v)=split("=",$g);
print("<INPUT TYPE=HIDDEN NAME='$k' VALUE='$v'>\n");
}

で取り合えず動いたっぽい。ヒントマジありがとう。
399nobodyさん:2006/02/27(月) 00:06:34 ID:???
parse_str
400nobodyさん:2006/02/27(月) 00:21:49 ID:???
そんな複雑なフォームを再構築するくらいなら
シリアライズして1個のinputにまとめちゃった方がいいんじゃないのか
401nobodyさん:2006/02/27(月) 00:23:29 ID:???
>>398
$_GETだけだと余計なものまで混じりそうだが
402nobodyさん:2006/02/27(月) 02:08:49 ID:???
>>399
それ使うと、たとえば "hoge[0]" という文字列が取得できずに
hoge[0] という配列変数がゲットできてしまう。
<INPUT>には書けない。
403nobodyさん:2006/02/27(月) 02:10:41 ID:???
>>401
余計なものまで混じっても、どうせ余計なものは見ないから
たぶんもんだいない
404nobodyさん:2006/02/27(月) 21:01:28 ID:???
配列$hogeの値の標準偏差をパパッと出す関数ってあったっけ?
405nobodyさん:2006/02/27(月) 22:23:53 ID:u/5yiFb0
フォームデータで入力チェックするのに
ctype_alnum を使っているのですが、
例えば "123456" を入れても false が返ってきてしまいます。
strlen - 1 まで ord で表示させると、ちゃんと
"49 50 51 52 53 54" となっているのですが。
文字列の最後 $str(strlen($str)) を ord すると
"0" になります。
PHP のバージョンは 4.3.2 です。
406nobodyさん:2006/02/27(月) 22:32:48 ID:???
>>405
> ctype_alnum を使っているのですが、
> 例えば "123456" を入れても false が返ってきてしまいます。
再現しない。再現するコードを寄越せ、サイトウ。

> 文字列の最後 $str(strlen($str)) を ord すると
> "0" になります。
存在しないデータをordしたら0になるのは当然じゃないのか。ord('')でも0になるぞ。
407405:2006/02/27(月) 22:40:12 ID:u/5yiFb0
>>406
失礼しました。
たったこれだけなんですが…

$password = $_REQUEST['password'];
if (!ctype_alnum($password)) {
408nobodyさん:2006/02/27(月) 23:06:38 ID:d/u1H5JH
PHP5なのですが、
先ほどインストールを終わらせ、
Eclipse+PHPで、本についてたサンプルコードを
動かしてます。
そこで、
mb_convert_encoding()が、
Call to undefined function mb_convert_encoding() in c:\program files\apache group\Apache\htdocs\tendays\02-01\common.php on line 27
のように、未定義だと怒られています。

もちろん、以下のようにちゃんと書いています(コピペというかファイルそのままコピー)
$encoding = "EUC-JP";
$s_encoding = "SJIS";
$data[ $i ] = mb_convert_encoding( $data[ $i ], $encoding, $s_encoding);

Eclipse+PHPでも自動補完される関数ですし、
PHPマニュアルを見てもPHP5対応とあります。
何か別途参照設定しないと使えない関数なのですか?
409nobodyさん:2006/02/27(月) 23:11:26 ID:???
>>408
マルチバイト関数入ってないとかじゃないよね?
phpinfo()
でmb関係有効になってる?

というかくだ質じゃね
410nobodyさん:2006/02/27(月) 23:15:53 ID:???
>>409
くだらないですね。
すみません!

でも、優しく教えてくれてありがとうございました。
411nobodyさん:2006/02/27(月) 23:17:46 ID:???
>>407
"!"の意味分かって使ってる?
お前もくだ質池
412408:2006/02/27(月) 23:20:34 ID:???
>>411
くだ質で待ってますm(_ _)m
413皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 03:09:36 ID:0kpMwz/e
俺様の偏差値100オーバーのスキルのためか、
それともおまいらの"静観"という「最も強力なアドバイス」のためか、
とにかくとうとう成功しますた!!
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php

成功したのは、まず、form.phpからform.phpへPOSTして
(1)POST内容を表示させる
そして
(2)POST内容をtext.datに書き込ませる
というPHPで言うと中級レベルのことができるようになりますた!

一番引っかかったのはやはりPHP4になってから
従来のPOSTの値を受け取る $hogehoge が使えなくなったことに
気がつくところでしょうか。PHP4からは
$_POST['hogehoge']
に変更になっていたなんて・・・。
どうりでどれだけGoogleで検索かけてその通りにやってるのに
うまくいかないわけだよ・・・orz

またそのうちスキルが更新されたときに報告しますね。
414皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 04:01:57 ID:0kpMwz/e
あとは俺様がやりたいことをおまいらどもにわざわざ示してやると、
・text.datへ書き込むときに、以前にデータを置き換えずに追記するようにしたい
さらに、
・text.datへ書きためたデータを元にデータベースとして扱いたい
といった感じかな。
これについてはLet's PHPから会得した
ttp://oresama.hopto.org/~sheel/phptest/poll/poll.php
という技を俺様自身が解析をすることより実現できそうな悪寒が(((( ;゚Д゚)))ガクガクブルブルする。

請うご期待!
415nobodyさん:2006/02/28(火) 05:36:22 ID:???
当スレでは下らなくない質問をお待ちしております

                       スレ住人一同
416nobodyさん:2006/02/28(火) 08:37:29 ID:???
くだスレで華麗にスルーされたのできますた。

PHPでMySQLのストアドプロシージャを使うにはどうすればよいのでしょうか?
mysq_query()コマンドで行うのでしょうか・・
417nobodyさん:2006/02/28(火) 09:03:28 ID:???
>>416
>くだスレで華麗にスルーされたのできますた。
その質問自体が目に入らなかった。

ストアドとかMySQL4.1や5以降でサポートされた機能は
従来のMySQL拡張サポート(mysql_*関数群)ではなく
改良版MySQL拡張サポート(mysqli_*)を利用する必要がある。
http://jp2.php.net/mysqli
418皮先くん ◆N3i.Qu1SoY :2006/02/28(火) 09:15:26 ID:A8IEBtjw
一応、fopenコマンドで"a"オプションを指定することで
以前のデータに「書き加える」ことはできるようになりました。
また、CSVの方があとで扱いやすいのかな?と思って
下記のようにCSV形式になるようにfwriteしてみますた。
これで一応どんどん書き込まれていくのですが、
さてはてそれを今度はどうやって統計処理などのデータベース化したらいいのでしょうか・・・。
ま、俺様のスキルはすごいのでおまいらが静観するだけで
どんどんレベルアップするので静観しておいてくださいね。ぷげらw
<?php
$filename = "text.dat";
$file = fopen($filename,"a");
flock($file, 2);
fwrite($file, "name," . $_POST['name'] . "¥n");
fwrite($file, "sex," . $_POST['sex'] . "¥n");
fwrite($file, "hobby," . $_POST['hobby'] . "¥n");
fwrite($file, "OS," . $_POST['OS'] . "¥n");
fwrite($file, "kansou," . $_POST['kansou'] . "¥n");
flock($file, 3);
fclose($file);
?>
419nobodyさん:2006/02/28(火) 11:12:46 ID:???
8桁の数字を2文字ずつに分割するにはどうやるのが一番クールですか?
substrでやるのしか考えられませんですた
420nobodyさん:2006/02/28(火) 11:39:23 ID:???
>>417
おぉ、そうだったんですか。ありがとう。
421nobodyさん:2006/02/28(火) 11:44:42 ID:???
>>419
$s = "12345678";
$s1 = $s{0}.$s{1};
$s2 = $s{2}.$s{3};
$s3 = $s{4}.$s{5};
$s4 = $s{6}.$s{7};
クールかどうかはともかくこれが1番シンプルで速いんじゃ。
422nobodyさん:2006/02/28(火) 11:50:40 ID:???
>>419
str_split()
423nobodyさん:2006/02/28(火) 12:38:29 ID:???
424nobodyさん:2006/02/28(火) 12:40:53 ID:???
>>419
エレガントじゃないけど、適当にやってみた
$r1 = explode("\r\n",rtrim(chunk_split($s,2)));
preg_match('/(\d{2})(\d{2})(\d{2})/',$s, $r2);

PHP5なら、>>422のstr_split()だね。
425nobodyさん:2006/02/28(火) 13:02:39 ID:???
配列に入れろなんて書いてないからwordwrap
426424:2006/02/28(火) 13:23:53 ID:???
>>425
やってみて、それで出来ないと思った俺がいる(bool cutを指定してなかっただけ)
# あと数字6文字だと思ってた。
使える関数が色あるな>PHP
427nobodyさん:2006/02/28(火) 13:47:39 ID:???
>>424
正規表現が次に想定してた方法ですた。
PHP5ならばstr_split()がベストのようです。
wordwrapはそのまま出力する時につかえますね。

既出スマソ
>>421-426皆様ありがd
428nobodyさん:2006/02/28(火) 23:00:13 ID:C5SJRerw
くだ質で華麗にヌルーされたのでこちらでお願いします。

safemodeじゃないのにphpからフォルダが作成できないです。
ちなみにperlからも出来ない・・・orz

これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・
429nobodyさん:2006/02/28(火) 23:04:39 ID:???
>>428
親ディレクトリのパーミッションとかじゃないの
430nobodyさん:2006/02/28(火) 23:09:10 ID:???
>>428
0777のディレクトリを作ってその中にファイルやディレクトリが作れるか試してみ。
431nobodyさん:2006/02/28(火) 23:23:37 ID:???
>>429->>430
出来ました!
でもパーミッションが設定どおりには出来ませんでした。
Perlだとちゃんと設定どおりに出来ました。
mkdir ("./test/test/", 0707);
とやっても705になってしまいます。
chmodかけても変わらず。
ただ所有者がapacheなフォルダになってしまっています。
adminでファイル・フォルダ操作を自由にこなす為には
アパッチをadmin:adminで動かせば良いのでしょうか?
432nobodyさん:2006/02/28(火) 23:25:22 ID:???
てか、その状況じゃファイルすら作れんのでわ…
433nobodyさん:2006/02/28(火) 23:26:27 ID:???
っとsafe_modeじゃなかったか、スマソ
434nobodyさん:2006/03/01(水) 00:16:35 ID:???
>>431
phpをモジュールはApacheのユーザで動くのでphpで作ったディレクトリはapacheとかnobodyとかになってOK
phpやperlで処理するなら07xxや06xxで問題無いと思うけど?

adminの権限は?root権限があるならApacheをadminで動かすのはいかがかと。
ってか連鯖でしょ?変更できるのかね・・・
435nobodyさん:2006/03/01(水) 10:59:06 ID:???
>>434
ありがとうございます。
所有者が違うとFTPソフトでダウンロードが出来ない事があるんですね。

では現在の>>431は動作的にはごく普通と解釈してもよろしいのですね。

ユーザ:adminにroot権限があるのかはどのようにしたらわかりますでしょうか・・。
436nobodyさん:2006/03/01(水) 17:07:26 ID:???
function() の最期のカッコってなににつかうんですか?
437nobodyさん:2006/03/01(水) 17:19:09 ID:???
>>436

引数
438nobodyさん:2006/03/01(水) 18:29:30 ID:???
>>435
はlinuxの勉強が必要だからくだ質でも華麗にスルーされた気がする・・
439nobodyさん:2006/03/01(水) 18:39:11 ID:???
>ユーザ:adminにroot権限があるのかはどのようにしたらわかりますでしょうか・・。
手始めにPC-UNIXを勉強すると分かる。
440nobodyさん:2006/03/01(水) 19:02:10 ID:???
川崎きんもー★
441nobodyさん:2006/03/01(水) 20:02:44 ID:???
× きんもー★
〇 きんもーっ☆

慣れないことをするから……
442nobodyさん:2006/03/02(木) 11:01:03 ID:gp0qU8DL
function func1(){
$test = "『これはテストです』";
func2();
print "$test";
}


function func2(){
$test = "『func2内で新たに定義されました』";
}

//-------メイン----------
func1();



=======================================
func2 の内容が反映されないのですが
どうしたらよいでしょうか。上記がコードです。
443nobodyさん:2006/03/02(木) 11:04:38 ID:???
>>442
関数内の変数はローカル変数なので関数の外では見れません。
444nobodyさん:2006/03/02(木) 11:04:44 ID:???
globalにする
445nobodyさん:2006/03/02(木) 11:12:00 ID:???
引数で渡す
値渡しのときはreturnで戻す
446nobodyさん:2006/03/02(木) 13:25:03 ID:???
>>5の1の、「ハードウェア」はおかしくないか?
むしろソフトウェアな気が。どうでもいいけど。
447nobodyさん:2006/03/02(木) 15:19:17 ID:d8+PxLHh
>>446
そのほうがよさげだね。
むしろ
利用環境(OS、ソフト、PHPバージョンなど)
みたいなのがいいぽい?

次回テンプレに入るといいね
448nobodyさん:2006/03/02(木) 18:35:04 ID:???
これからPHPの勉強を始めようと思うのですが、
何かおすすめの書籍ってありますか?
よろしくお願いします。
449nobodyさん:2006/03/02(木) 18:49:27 ID:???
マンモス本
450nobodyさん:2006/03/02(木) 20:31:51 ID:???
大きな本屋が近くあれば実物見て自分に合うのを探したほうがいい
451nobodyさん:2006/03/02(木) 20:36:21 ID:???
>>446-447
むしろ
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条』
は補足するくらいなら
『「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰わないための八ヶ条』
に変えるべき
452nobodyさん:2006/03/02(木) 20:46:57 ID:???
>>450
そして自分に合うと思って簡単な本を探すと、大抵は内容が間違っててハマる罠
453nobodyさん:2006/03/02(木) 20:52:15 ID:gp0qU8DL
>>443
>>444
>>445
ありがとうございます。参考になりました
454nobodyさん:2006/03/02(木) 20:56:21 ID:???
>>451
全部の項目を逆の意味に変えるってこと?
455nobodyさん:2006/03/02(木) 21:00:37 ID:???
>>451
嫌味だろ?あれ。
どうせ真面目に書いたところで何の役にも立たないし。
456nobodyさん:2006/03/02(木) 21:02:01 ID:???
>>451
これまでのスレの空気嫁
457nobodyさん:2006/03/02(木) 21:19:35 ID:???
>>451
ひっこんでろ
458nobodyさん:2006/03/02(木) 21:37:26 ID:???
>>451
だっふんだぁ
459nobodyさん:2006/03/02(木) 21:39:44 ID:???
>>451
目的を履き違えてる。
エスパーきぼんぬなやつは、言ったところで改善は不可能なんだから、
それは自覚を促して丁重にお帰り願うための文面だ。

「エスパーきぼんぬのレスをもらわないための方法」など無い。
460nobodyさん:2006/03/02(木) 21:40:12 ID:???
>>451
もにかー
461nobodyさん:2006/03/02(木) 21:41:55 ID:???
てかあのテンプレ糞じゃね?
462nobodyさん:2006/03/02(木) 21:42:31 ID:???
PHPの質問&回答なんて糞に決まってる
463nobodyさん:2006/03/02(木) 21:44:19 ID:???
誰が考えたかしらないけど変な言い回ししてる所が古参っぽいな
464nobodyさん:2006/03/02(木) 21:51:25 ID:???
>>463
柳家?
465nobodyさん:2006/03/02(木) 22:28:50 ID:???
まぁ、そんなにせめてやるなよ。
>>451の案で平和になるのが理想なんだし。

・・・けど、最近皮肉とかブラックユーモアって通じにくくなってるよな・・・
ちょっとさびしい。
466nobodyさん:2006/03/02(木) 22:41:14 ID:???
>>465
皮肉とかブラックユーモアのはずの事が、リアルに起きている現実ですから…
467nobodyさん:2006/03/02(木) 23:45:40 ID:???
うんまぁ起こってもいない現実を皮肉ってもしょうがないしね。
468nobodyさん:2006/03/03(金) 00:09:48 ID:???
>>465
だからここまで積み重ねてきたスレの空気よめ
469nobodyさん:2006/03/03(金) 00:09:59 ID:???
八ヵ条の原作者は神だと思う
470nobodyさん:2006/03/03(金) 00:14:14 ID:???
>>5の内容書いたやつ厨だろ。
普通に 「質問者のルール」 って題名で箇条書きにすればいいのに
わざわざわかりにくくしてるし。
471nobodyさん:2006/03/03(金) 00:17:00 ID:???
472nobodyさん:2006/03/03(金) 00:36:24 ID:QWJoZw1q
perlからphpの翻訳機ってないですかね?
完璧は求めていないので。。

phpに移植が大変><;

誰か作ってくれないかなぁ・・・・
473nobodyさん:2006/03/03(金) 00:38:27 ID:???
>>472
逆はともかく、Perl→PHPはPerl→sedとかPerl→awkが無いのと一緒で、
できないことがあまりに多すぎて作るの無謀だと思う。
474nobodyさん:2006/03/03(金) 00:39:35 ID:???
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
475nobodyさん:2006/03/03(金) 00:44:00 ID:???
てかおれ最初はあの通りに質問すると
回答がもらえやすいと思ってずっと情報小出しにしてた
476nobodyさん:2006/03/03(金) 00:50:56 ID:???
お前ってほんっっっっっっとーに頭の悪いやつなんだな
477nobodyさん:2006/03/03(金) 05:26:03 ID:???
各ページからヘッダーファイルとフッターファイルを require()で
ひっぱってきてるんですが、
これをするとヘッダーファイルに画像の相対リンクとか貼ってある
ときに困ることになります。
(require()されるファイルの場所次第で画像のリンク先が変わってしまう)

絶対リンク使えばいいんですが、SSLを使ったりするときもあるので
これは避けたいと考えています。

画像のリンク先を変数かなにか使ってやるのがいいかと思うんですが、
上手く思いつきません、グッドアイデアお願いします
478nobodyさん:2006/03/03(金) 07:26:08 ID:???
>>472
elsif -> elseifの置換ぐらいなら問題ないけど =~ であきらめた
sub -> functionも引数の取り扱いや変数のスコープが違って自動では無理
479nobodyさん:2006/03/03(金) 07:35:07 ID:???
>>477
<?php
$imageDir = "../img/";
include "header.php";
?>

header.php

<style>
body { background-image: url("<?php echo $imageDir?>bg.gif") }
</style>
480nobodyさん:2006/03/03(金) 11:48:31 ID:???
>>468
空気よんだ上でのフォローだと気付いてやれw
481nobodyさん:2006/03/03(金) 11:51:04 ID:???
>>464
あさげ、ひるげ、ゆうげ
482nobodyさん:2006/03/03(金) 12:24:21 ID:???
>>481
赤出汁の「ひるげ」が好き
483nobodyさん:2006/03/03(金) 14:38:07 ID:WgfWnQX6
phpのlinux版ってextフォルダがなくて
php_pgsql.dll
とかがないんですが、どこから入れたらいいんでしょうか?
484nobodyさん:2006/03/03(金) 14:54:20 ID:???
>>483
環境によって違うがFedoraCoreのrpmなら
/usr/lib/php/modules

mbstring.soやgd.soが入る
485nobodyさん:2006/03/03(金) 15:10:50 ID:WgfWnQX6
>>484
あ、環境書かなくて申し訳ないです。
redhat9で、自分でPHP5をコンパイルして入れてます

-------
./configure
--with-apxs2=/usr/local/apache2/bin/apxs
--with-gd
--with-zlib
with-pgsql=/usr/local/pgsql
--enable-mbregex
--enable-mbstring
--enable-trans-sid
--enable-mcrypt
-------

で、入れてるんですけど、modulesもextもないです…。
あとから入れることってできないんでしょうか?
486nobodyさん:2006/03/03(金) 16:42:21 ID:???
>>485
ソースのextディレクトリに各モジュールのディレクトリがある
好みのディレクトリに移動して
phpize
./configure --help
./configure --enable-hoge
make
make install


/usr/local/lib/php/extensions/*****/
あたりにインストールされる
487nobodyさん:2006/03/03(金) 16:54:06 ID:???
>>485
ちなみにコンパイル時に指定したモジュールはphp.soに内蔵されるので拡張モジュールのように別ファイルにはならないよ
488nobodyさん:2006/03/03(金) 16:58:58 ID:WgfWnQX6
>>486-487
ありがとうございます!
やってみますー
489nobodyさん:2006/03/03(金) 23:29:21 ID:t7JloJn3
学習用に、Windows2000+Apache2.0.55+PHP5.1.2を導入しました。
phpinfo();は表示されます。

print date("Y/m/d");と記述し、foo.phpで保存したものを、直接127.0.0.1/foo.php
とアクセスすると動作するのですが、
var.htmlに<?php print date("Y/m/d"); ?>
を記述し127.0.0.1/var.htmlにアクセスしても表示されません。
httpd.confやphp.iniは確認したのですが、うまくいきません。
原因はどこにあるでしょうか。
490nobodyさん:2006/03/03(金) 23:58:51 ID:???
拡張子がhtmlではPHPは実行されません。
491nobodyさん:2006/03/04(土) 00:05:16 ID:???
>489
それは普通の振る舞い。apache側で設定すれば実行されないわけ
じゃないけどな。ただそれをするとapacheの負担にもなると。
492nobodyさん:2006/03/04(土) 00:20:09 ID:???
phpエディタ使ってるけどphpeclipse入れたほうがいい?
493489:2006/03/04(土) 01:45:09 ID:aZXPUvQz
そうだったのですか、すみませんでした。
サンプルソースにタグが入っていたので、perl CGIのように呼び出していると
思っていました。ありがとうございました。
494nobodyさん:2006/03/04(土) 01:46:46 ID:???
>>492
なんでそう思う?
495nobodyさん:2006/03/04(土) 02:34:26 ID:???
>>493
perlも基本的に拡張子がcgiやplじゃないと実行できないよ。
496nobodyさん:2006/03/04(土) 03:07:45 ID:???
環境 apach2.20 + php5.1.1

ftp_puts()でファイルアップロードしようとすると
あるサーバーAにはちゃんとアップロードされるのですが
別のサーバーBだと0バイトのファイルが作成され、falseが返ってきます

ftp_nb_put()やftp_pacv()なども試してみましたが状況は同じでした
他に何か試してみるべき事はありますか?
497nobodyさん:2006/03/04(土) 09:27:11 ID:???
>>496
パーミッション、ファイルのパスが合っているか、
また念のためソースの一部を書いたほうがわかりやすいと思います。
498nobodyさん:2006/03/04(土) 10:32:48 ID:???
A:MySQLサーバ
B:WEBサーバ
A、Bはそれぞれ別のネットワークにあります。
Aのデータベースに接続し、データを取得してきたり
修正したりするPHPプログラムをBに設置し、
B上の Apache のCGI(PHP)から
データの表示やまたは修正を行えるようにしています。

Apache では SSL を使用しているのですが、
この場合、MySQL側でもSSLを使用すべきでしょうか?
Aから引っ張ってくるデータは盗み見されると困る内容ですが、
上の例の場合、どこからどこまで Apache の SSL が
機能するのかよくわからなくなってきました。
499nobodyさん:2006/03/04(土) 12:53:13 ID:???
>>496>>498は違う人だよな?
サーバA、サーバBなんて同じ表現するから紛らわしいだろ。
500nobodyさん:2006/03/04(土) 14:04:48 ID:???
>>497
パーミッションやパスが違ってたら0バイトのファイルすら作れない気がする…
501nobodyさん:2006/03/04(土) 14:09:57 ID:???
>>498
AとBっってのはグローバルIPを介してHTTPプロトコルでDBデータをやりとりすんのかよ
502nobodyさん:2006/03/04(土) 14:39:20 ID:???
$t_string = eregi_replace("(.*)<title([^>]*)>","",$t_string);
$t_string = eregi_replace("</title>(.*)","",$t_string);

htmlソースからタイトル部分だけ取り出したいのですが、
上記のように二段つかっているのを1つにまとめるにはどうすればいいでしょうか。
503nobodyさん:2006/03/04(土) 14:40:31 ID:???
>>498
サーバAにはSSLなApacheは入ってないんだろ?
なら当然Webブラウザ-サーバB間のHTTPSに対してのみSSL。
504nobodyさん:2006/03/04(土) 14:49:18 ID:???
preg_match('/<title>(.*)<\/title>/i', $t_string, $t_match);
505498:2006/03/04(土) 14:53:39 ID:???
>>501
グローバルIPを介しますが、
PHPのmysql_connect() を使用する場合HTTPプロトコルでの
データのやりとりになるのでしょうか?
506nobodyさん:2006/03/04(土) 14:57:35 ID:???
MySQLはMySQLプロトコルだろ。
ただ、それは暗号化されていない平文。
だから、途中でsnoopされたりするのが心配だってことだな。

MySQLプロトコルを暗号化するのは聞いたことがない。
どちらにしても、鯖側にも何かモジュール入れないと無理そうだけどな。
507498:2006/03/04(土) 15:09:05 ID:???
[ブラウザ]---[Apache]---[MySQL]
ブラウザとApacheの間はSSLで暗号化されるのでいいとして、
問題はApacheとMySQLの間ですよね。

>>506
この場合、
ttp://itpro.nikkeibp.co.jp/members/ITPro/oss/20050819/166553/
のようにMySQLでSSLを使用するのと、PHPからMySQLへ接続することは
別問題なのでしょうか?
508nobodyさん:2006/03/04(土) 15:50:49 ID:???
>>507
なんか色んなところでマルチしてないか?

>別問題なのでしょうか?
いや同じ話だよ。ただPHPのmysql関数ではSSLを使う仕組みが
デフォでは無いので、拡張版のmysqli関数を使ってSSLの設定をする。
あとPHPのコンパイルでSSLも要るな。
509496:2006/03/04(土) 17:58:12 ID:???
>>499
紛らわしいので以下のように表現を変えます
サーバーA → サーバー1
サーバーB → サーバー2

>>497>>500
こんな感じでやっています

//HTML部
<form method="post" action="script.php" enctype="multipart/form-data">
<input type="file" name="up"><br>
<input type="submit" value="upload">
</form>

//PHP部
$name = "./".$_FILES["up"]["name"];
if ( !($ftp = @ftp_connect($host)) ){echo "connect error";}
if ( !@ftp_login($ftp,$user_id,$user_pass) ){echo "connect error";}
ftp_pasv($ftp,false);

if( @ftp_put($ftp,$name,$_FILES["up"]["tmp_name"],FTP_BINARY) ){
echo "<br>success";
}
else {
echo "<br>error";
}

ftp_close($ftp)
サーバー1、2ともパーミッションは755で、パスはユーザーのルートディレクトリです
あと最初に書き忘れましたが、FFFTPなどを使った場合はどちらも普通に操作できます
510nobodyさん:2006/03/04(土) 18:20:02 ID:WPEf+PS6
include
require
require_once

の使い分けはどういう時に有効ですか?
511nobodyさん:2006/03/04(土) 18:30:25 ID:???
全て*_onceを使うのがPEAR標準。

includeとrequireは、
どんな条件下でも必ず評価されるものにはrequire
ある条件下で評価されない可能性がある(if文など)場合はinclude

理由はマニュアル嫁。
512nobodyさん:2006/03/04(土) 18:33:47 ID:???
>>509
そのアップロードによって生成されているテンポラリファイルは確認してみた?
move_uploaded_fileして、一旦どこかに保存してやってみるとか。
513nobodyさん:2006/03/04(土) 18:37:49 ID:???
514510:2006/03/04(土) 18:48:08 ID:WPEf+PS6
ヘルプなんか読んだ上で質問してるわ。
具体的にどう使い分けるの?
分からないなら答えなくていいよ。
どうせ分かってないでrequire_once使ってんだろ。
515nobodyさん:2006/03/04(土) 18:53:29 ID:???
>>514
君、向いてないから止めた方がいいと思うよ
516nobodyさん:2006/03/04(土) 18:55:50 ID:SB9snESx
PHPのバージョンは4.3.11ですが、統計処理用の関数はどこにあるのでしょうか?
標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
517nobodyさん:2006/03/04(土) 18:56:32 ID:SB9snESx
PHPのバージョンは4.3.11ですが、統計処理用の関数はどこにあるのでしょうか?
標準偏差や相関係数をJAVAではなくphpでやりたいのですが。
518nobodyさん:2006/03/04(土) 19:00:12 ID:???
>>514
正直俺もイマイチわからんので、わかったら教えてください

>>515
そういう無駄なことはいわなくていい。回答する気がないならスルー汁
519nobodyさん:2006/03/04(土) 19:12:16 ID:???
>>514
俺も良く分からないまま使ってる

>>515
君の方が向いてないから止めた方がいいと思うよ

>>514は良く分からないまま使ってることが嫌で質問してるんだよ
これこそ向いてるでしょ

520nobodyさん:2006/03/04(土) 19:30:31 ID:???
あのマニュアルを読んで判らない奴に何をどう説明しろと?
521nobodyさん:2006/03/04(土) 20:03:21 ID:???
>>511じゃ不満なのか?
まさに511の言う通りだと思うのだが。
522nobodyさん:2006/03/04(土) 20:26:32 ID:???
>>510,514,518,519
>>511が良回答。たぶんおまいらがこれ以上居座ると空気悪くなるのでくだらない発言は控えてもらえると助かる。

http://www.php.net/manual/ja/function.include.php
http://pear.php.net/manual/ja/standards.including.php

この2箇所読んでも不満や疑問があるならまた来ればいい。
とは言ってもpear標準は絶対必須というわけではないので、エラーの扱いについて正しく理解した上で明確な理由があるなら別の使い分けをしてもかまわない。
523496:2006/03/04(土) 20:31:16 ID:???
一応解決(?)したので報告を

スクリプトを他のサーバー3に置いて実行してみたところ、サーバー2にもアップロードできました
(サーバー1からスクリプトを実行しなかったのはFTP関数の使用が規制されているため)

どうもサーバー2からは自分自身にアップロードできないようです

スクリプトの不備ではなくサーバーの設定関係の問題のようなので
今後は自力でそっちの方を当たってみます

ありがとうございました
524nobodyさん:2006/03/04(土) 20:32:43 ID:???
>>516
peclでこんなのあるけど。
http://www.php.net/manual/ja/ref.stats.php
525nobodyさん:2006/03/04(土) 20:48:34 ID:aGprecBm
定数を文字列に直接埋め込むにはどうすればいいんでしょうか?

define('hoge', 'string');

echo "hoge is {hoge}";
echo "hoge is {'hoge'}";

↑どっちもダメでした。

526nobodyさん:2006/03/04(土) 20:52:07 ID:???
掲示板スクリプトをPHP+MySQLで作っています。
投稿用テーブルkakikoにuser_idがあるのですが、ユーザ名が格納されているのは
ユーザテーブルusersの中のuser_nameです。

書き込み表示の時にユーザ名を表示させたいのですが、一旦kakikoからuser_idを取ってきて
その後にuser_idがある分だけusersからuser_id -> user_nameのSELECT文を発行しないと
いけないのでしょうか…
何かすごくマヌケなことをしている気がするのですが、これしか思いつかないもので…

user_id -> user_nameの関数を用意しても結局同じ数のSQLを発行しますよね

みなさんはどうやっていますか?
527526:2006/03/04(土) 20:53:09 ID:???
>>525
echo "hoge is ".hoge;

普通大文字にすると思うけど。
echo "hoge is ".HOGE;
528nobodyさん:2006/03/04(土) 20:53:45 ID:???
>>525
残念ながらPHPだと文字列リテラルに定数いれられないんです。
echo 'hoge is ', hoge; でがまんして。
529nobodyさん:2006/03/04(土) 20:59:35 ID:???
>>526
ユーザが比較的少ないなら、不要なものも入るけど
一括して最初に全部取ってきたら?
530nobodyさん:2006/03/04(土) 20:59:47 ID:???
>>526
sqlの話なのでスレ違いだけど
select * from kakiko, users where kakiko.user_id = users.user_id and なんちゃらかんちゃら
531nobodyさん:2006/03/04(土) 21:00:39 ID:aGprecBm
>>526
ヒアドキュメントの中で使いたいのですが
それだとソースがぐちゃぐちゃになっちゃいそう

>>527
無理ですか…

532525:2006/03/04(土) 21:01:26 ID:???
>>531 名前入れ忘れました
533nobodyさん:2006/03/04(土) 21:09:50 ID:???
>>531
$hoge = HOGE;

$heredocument = "$hoge";
じゃダメ?

>>530
まだ理解できていないですけど、ちょっとやってみます。
534nobodyさん:2006/03/04(土) 21:14:07 ID:SB9snESx
>>524
>peclでこんなのあるけど。
>http://www.php.net/manual/ja/ref.stats.php
php5.1以上ではphp_stats.dllをダウンロードして使えるようだが
それ以前ではだめみたいだね。実際php_stats.dll(5.12)を
試したが拒否された。



535nobodyさん:2006/03/04(土) 21:20:38 ID:???
>>525
変数のパース
http://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing
定数≠変数。定数がパースされないのは無難な仕様だと思うけど。
536nobodyさん:2006/03/04(土) 21:36:26 ID:???
>>531
あとヒアドキュメントでも
http://www.php.net/manual/ja/language.types.string.php#60971
この手がいけるかと思う。でも
>それだとソースがぐちゃぐちゃになっちゃいそう
が気になるなら、早々に何らかのテンプレートシステムを導入。
537nobodyさん:2006/03/04(土) 21:39:43 ID:???
>>530
やってみたらできました。
ありがとうございましたー。
538nobodyさん:2006/03/05(日) 03:26:56 ID:???
>>514
俺は同じプログラムでrequire_onceとrequireとincludeは使い分けてるけど
include_onceだけまだ使ったことないや。そういえば。
539nobodyさん:2006/03/05(日) 11:55:08 ID:???
俺はrequireとinclude_onceしか使わなかったりする
include_onceでPHP5のラッパー関数を定義しといて
PHP4の環境でも同じソースで済むようにしてる
540nobodyさん:2006/03/05(日) 14:06:29 ID:???
Vineにて録画サーバを構築、2G超えのファイルをダウンロードすべく
自分でスクリプト書いてみたが、どうもうまく動かない・・
filesizeの取得がマニュアルによると「sprintf("%u", filesize($file))で2G越え
てもいけるぜ」と書いてあるけど、エラーで取得できず。
おまけにfopenでファイルも開けずエラー。
どうしたらよかとですか。
教えて、エロイ人。
541nobodyさん:2006/03/05(日) 14:25:52 ID:???
>>540
「うまく動かない」→どう動かないんだ?
「エラー」連呼→エラー文はコピペしろ。

上記を踏まえて・・・ダウンロード、filesizeとか言ってる辺りから推測すると、
まさか、その1ファイルを全部PHPのメモリ上に乗せてから出力させてんのか?
それならロジックを変えるか、実装メモリを増やしてPHPのメモリ設定変更。

・・・どう考えても後者は実用的じゃないがな。
542nobodyさん:2006/03/05(日) 15:05:43 ID:???
>>540
2Gのデータが一括で扱えるようにPHPのメモリーリミットを
設定してないからではないか?
543nobodyさん:2006/03/05(日) 16:36:09 ID:???
>>541
エラー内容はファイルサイズ取得で
「filesize() [function.filesize]: stat failed for ***」とでます。
fopenも同じエラーです。

メモリに一気に乗せるロジックではなく、freadでループさせて
吐き出そうとしてますが、それ以前の問題なんでつorz

>>542
PHP.iniのリミットのことですか。
ファイルサイズ取得、ファイルオープンと関係あるんでしょうか。
544nobodyさん:2006/03/05(日) 18:11:30 ID:???
何でぼかすかな
>>5行きか?
545nobodyさん:2006/03/05(日) 18:55:22 ID:???
>>544
***のところはファイル名です(録画済ファイル)
具体的には
「filesize() [function.filesize]: stat failed for /video/1003_20060303220000_20060303225400.nuv」
のような感じです。
書くと、長くなるためとファイルの扱いに関係がないと思われたため記述を控えました。
546nobodyさん:2006/03/05(日) 19:12:45 ID:???
>>545
ext\standard\filestat.cの中だけど
if (!IS_EXISTS_CHECK(type) || (errno != ENOENT && errno != ENOTDIR)) { /* fileexists() test must print no error */
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Lstat failed for %s (errno=%d - %s)", BG(CurrentStatFile), errno, strerror(errno));
}
なので、'/video/1003_20060303220000_20060303225400.nuv’がfilestatusを取るのに
相応しくないだけっぽいな。
実際にそのファイルはあるの?(これは他のエラーになる筈だから違うか)
絶対パス指定ではどう?パスを短くしてみたらどうなる。

>>543
いや、エラーの詳細が判ったので今のところ関係ないと思われる<リソースリミット
547546:2006/03/05(日) 19:18:13 ID:???
ごめん、全然違うものみてた。
548nobodyさん:2006/03/05(日) 19:25:31 ID:???
>>546
ファイルは実際存在し、ファイルサイズの小さなもの(60M程度)を
ダウンロードしてみるとダウンロードはできます(データも問題なし)。
パーミッション、オーナーともにダウンロードできるファイル
と同一のため問題なく思われます。
パス指定は現在絶対パスで行っています。
値はGETで取得、これも問題なく取得できています。

書き忘れましたが、apacheのバージョンが1.3.33、PHPのバージョンが5.1.2
です。
ああ、どうしたらよいものやら・・orz
549nobodyさん:2006/03/05(日) 19:32:50 ID:???
1.3.34にしてみなさい
550nobodyさん:2006/03/05(日) 19:37:53 ID:???
2.0.55にしてみなさい
551546:2006/03/05(日) 19:39:21 ID:???
PHP5.1.2の貼っとくよ。
#define IS_EXISTS_CHECK(__t) ((__t) == FS_EXISTS || (__t) == FS_IS_W || (__t) == FS_IS_R || (__t) == FS_IS_X || (__t) == FS_IS_FILE || (__t) == FS_IS_DIR || (__t) == FS_IS_LINK)

if (php_stream_stat_path_ex((char *)filename, flags, &ssb, NULL)) {
/* Error Occured */
if (!IS_EXISTS_CHECK(type)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%sstat failed for %s", IS_LINK_OPERATION(type) ? "L" : "", filename);
}
RETURN_FALSE;
}

メッセージに変更はあるけど、別にチェックは余り変わってないな。
552nobodyさん:2006/03/05(日) 20:13:54 ID:???
ちら読みしたけどわかんね。http://bugs.php.net/bug.php?id=27792 かもね。
でもエラーは「filesize() [function.filesize]: stat failed for /video/1003_20060303220000_20060303225400.nuv」なんでしょ?
553nobodyさん:2006/03/05(日) 23:08:03 ID:???
もりこもりこー
554nobodyさん:2006/03/06(月) 10:35:47 ID:???
実はPHPはstat64を呼んでなかったりして。>>552のバグレポート読んだ感じからして。
勘だけど、statした結果のファイルサイズ(st_size)が2GB以上だと符号付で見なしたときに負の値になって、PHPがどっかでエラーチェックのつもりで0と比較してエラーフラグ立ててるとか、どうせその手のアフォな話だと思うね。

>>540
というわけで、現時点ではPHPで2GB以上のファイルは扱えない、といったところか。

そもそもPHPのintはCのintそのままだからそこらのプラットフォームでは0x80000000以上の数値扱うこと自体に無理があるんだよな。
PHP6では多倍長整数がサポートされることを祈ろう。
555nobodyさん:2006/03/06(月) 11:31:40 ID:???
>>554
マニュアルにあえてsprintf("%u")での対処方法が書いてあったところを見ると、
元々はstatの戻りをstringによる数字で扱ってて、うまく動いてたんだろうな。
ところがそれを忘れて改良してしまった部分があって今は動かなくなってしまった、
という可能性が高そうだな。PHPじゃよくある話だし。
556nobodyさん:2006/03/06(月) 16:14:07 ID:???
>>554
intといったらshortの場合もあるし、longと言った方が適切では。
557nobodyさん:2006/03/06(月) 17:28:12 ID:???
>>556
あーphpのintはcのlongだった。訂正。
intはcの標準上よろしくない罠。
558nobodyさん:2006/03/06(月) 17:34:37 ID:zhIGepD3
ひとつ疑問に思ったのですが
fopenでファイル開いた後 fclose で閉じなかったら
どんな悪影響がでるんですか?
559nobodyさん:2006/03/06(月) 17:37:15 ID:???
同じプログラム内で大量にfopenしてたらリソース使い切って致命的エラーになるかも。
あと、書き込みしたままfcloseしてなかったらプログラム終了までフラッシュされずに
ファイルが破損する確率が上がるかも。
flockしっぱなしで放置するとプログラム終了まで他のプログラムがアクセスできなくなるかも。

そんなもんか?
560nobodyさん:2006/03/06(月) 17:48:22 ID:???
>>558
まあ基本的にはOSが閉じ忘れを面倒見てくれる(もしくはPHPもやってくれるかな?)から大したことはないってのもある。
人によってはfopenしたのにfcloseしていないプログラムに気持ち悪さすら覚えるらしいことも頭に入れておくべし。
561nobodyさん:2006/03/06(月) 19:45:27 ID:???
あるプログラムで
Web経由で起動しとったらURIを、コマンドラインから起動しとったら
コマンドラインを標準出力に吐き出したいんだが
ちからづくでならなんとかなったんだけど
格好良く書くナイス方法は無いかな
562nobodyさん:2006/03/06(月) 19:56:51 ID:???
>>561
日本語で書け
563nobodyさん:2006/03/06(月) 20:08:13 ID:???
>>561
$msg = @ $_SERVER['REQUEST_URI'] or $msg = @ implode(' ', $argv) or $msg = 'おてあげ';
echo $msg;
てこと?
564nobodyさん:2006/03/06(月) 20:42:24 ID:???
>>562
ワロタ
565561:2006/03/06(月) 21:13:35 ID:???
>>563
ヒントありがとう
それそのままだと1とか出ちゃったから
それヒントに姉ちゃんがんばるわ
566nobodyさん:2006/03/06(月) 23:11:58 ID:6wJc3dTK
sakura.html の中に
<?include("print.php");?>
と書かれているとします。
この時print.php側で「sakura.html」のURLもしくはパスを取得し表示する方法はありますか?

$url = getenv('REQUEST_URI');
print $url;

とやってみた所
「print.php」が表示されてしまいます。
567nobodyさん:2006/03/06(月) 23:27:25 ID:???
$_SERVER['PHP_SELF']
$_SERVER['REQUEST_URI']
568nobodyさん:2006/03/06(月) 23:35:52 ID:???
>>566
sakura.htmlってのはPHPじゃないよね。
PHPのincludeはあくまでも、その場所にPHPのコードを
挿入するのと同じ動作だから。
|「print.php」が表示されてしまいます
とはならない。
569nobodyさん:2006/03/06(月) 23:42:05 ID:???
>>567-568
すいません。includeの中身を
include ("http://***.com/print.php");
とURLで指定してました。
相対パスに変更した所、うまく動作しました。
570nobodyさん:2006/03/07(火) 08:25:04 ID:???
>>569
付け加えるとincludeファイルは
webで見えない場所の方がセキュリティ的に良いと思う
571皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 09:35:07 ID:W7VIXknd
【福島】逮捕された産婦人科医師を救え4
ttp://society3.2ch.net/test/read.cgi/hosp/1141605385/
不当にタイーホされた産婦人科医をなんとか救い出そうと思います。
同じ医師としてこのような不当タイーホは絶対に許せません。
参考
ttp://www.kaog.jp/20060306top.htm

そこで、PHPを使って署名をつのりたいのですが、
これをたたき台にして可能でしょうか?
ttp://oresama.hopto.org/~sheel/phptest/formtest/form.php
問題は、これで署名されたあとにどのようにして
整形されたhtmlをたたき出すか、という点です。
それと可能なら現在までに集まった署名の数をリアルタイムで
表示させたいのですがどうしたら可能でしょうか?
572nobodyさん:2006/03/07(火) 12:38:46 ID:???
ぷぎゃー
573nobodyさん:2006/03/07(火) 12:40:35 ID:???
「整形されたhtmlをたたき出す」がわかりません。
もっと具体的に。
574nobodyさん:2006/03/07(火) 13:49:50 ID:???
575皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 13:56:43 ID:HRxo4IHm
>>573
返答ありがとうございます。

署名文の入力は
http://oresama.hopto.org/~sheel/phptest/formtest/form.php
こちらで完了し、submitボタンをクリックすることで
text.batにどんどん追記されていく仕組みまではつくりました。
問題は、追記されていくtext.batをどのようにデータベースとして
取り扱うか、という点です。
CSV形式で追記していけばあとでいろいろと使えますか?

最終的にはたまった署名文を福島県警に郵送する予定です。
576nobodyさん:2006/03/07(火) 14:30:48 ID:???
名簿業者から名簿買って転送すりゃいいよ。
577nobodyさん:2006/03/07(火) 17:25:02 ID:???
関数で、変数の参照を返すことって出来ますか?
578nobodyさん:2006/03/07(火) 17:39:31 ID:???
できるよ。
579nobodyさん:2006/03/07(火) 17:42:05 ID:???
どうやるんでしょうか?
580nobodyさん:2006/03/07(火) 17:46:11 ID:???
すみません、自己解決しました。
ttp://www.mt312.com/php/var.reference.html
581nobodyさん:2006/03/07(火) 17:50:06 ID:???
次の質問なんですが。

関数から返された変数の参照をそのままempty()の引数にしたいのですが、出来ないのでしょうか?
empty(getVal())のようにすると、こういうエラーになります。
Fatal error: Can't use function return value in write context in...
582nobodyさん:2006/03/07(火) 18:06:26 ID:???
リファレンスをデリファレンスしないでemptyでチェックするってどういうことよ
583nobodyさん:2006/03/07(火) 18:12:03 ID:???
>>581
質問する前に、まずはマニュアル嫁
http://jp.php.net/manual/ja/function.empty.php
|変数が空であるかどうかを検査する
584nobodyさん:2006/03/07(火) 18:17:32 ID:???
>>581
その通りです
585nobodyさん:2006/03/07(火) 18:40:51 ID:???
ありがとうございました
どうにかして出来ないかと思ったんですが、あきらめます

>>583
読んだんですけど、参照ならどうかなと思った次第です

>>584
了解しました
586nobodyさん:2006/03/07(火) 19:25:33 ID:jtyBl1lp
php上で、telnet接続での-s src_addrオプション(接続の送信元 IP アドレスを、 src_addr に設定)に
該当する設定を付加してサーバーに接続したいのですが、
fsocksopenなどでは該当のオプションが見当たりません。
system系関数を使う以外にエレガントな方法を教えてください。
587nobodyさん:2006/03/07(火) 19:52:48 ID:???
>>585
>参照ならどうか
<?php
$a = 'TEST';
$b =& $a;
var_dump(empty($b));
?>
参照かどうかってことじゃなくて
|つまり、次の例は動作しません: empty(trim($name))
ってことだよ。
588nobodyさん:2006/03/07(火) 20:05:27 ID:???
皮先うぜえ
589nobodyさん:2006/03/07(火) 20:13:54 ID:psJP3on1
PEAR:XMLを使おうと
[ThinkIT] Part5:PHP5のXMLサポート(3) (1/2)
http://www.thinkit.co.jp/free/marugoto/1/5/3/1.html
をみながらセットアップしてるんですが、
libxml2を入れてみても、

# phpize
# ./configure --with-xsl

のところで最後に
configure: error:
You've configured extension xml, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.

とエラーがでて、makeすることができません。
どうすればちゃんとlibxmlを認識してくれるのでしょうか?

OS:redhat9
php:5.1.12

です。よろしくお願いします
590nobodyさん:2006/03/07(火) 20:14:10 ID:???
>>587
trimって参照を返してるわけじゃないですよね?
変数への参照を返す関数なら、emptyが変数と同じように処理してくれないかと期待したわけです。
591nobodyさん:2006/03/07(火) 20:28:44 ID:???
名前欄に皮先って入れろ
592皮先:2006/03/07(火) 20:37:47 ID:???
入れました
593nobodyさん:2006/03/07(火) 20:54:41 ID:???
質問です
手元のPHP本はmysql_escape_stringを使ってあるのですが、これはすべてmysql_real_escape_stringにした方がよいのでしょうか?
594nobodyさん:2006/03/07(火) 21:04:26 ID:???
>>581
PHPはパース時にずいぶん式の再帰性を捨ててるから、仕方ないんだな。
俺は参照を返す関数ならempty等に渡せて意図したとおりの結果を返すような仕様だった方が意味論的には好みだけどね。
その辺はあきらめるしかない。
595nobodyさん:2006/03/07(火) 21:06:38 ID:???
>>590
もっと悪い状態になってる。それは;;
そもそもなんでemptyでのチェックにこだわってるの?
if(getVal())
で同じ結果にならないか?
わざわざ「変数用の言語構造(注:これは関数ではない)」を使って
変数以外のものをチェックしようとする意図が分からん。
596nobodyさん:2006/03/07(火) 21:13:27 ID:???
>>594
関数の戻り値をemptyでチェックしたかっただけで、
参照とかはどうでもいい話らしいぞ
597nobodyさん:2006/03/07(火) 21:18:36 ID:???
if(!function())
でいいんジャン?
598nobodyさん:2006/03/07(火) 21:19:05 ID:???
>>595
理由は、、、
既存ソースの改良で、変数をget〜に変えようとしてました。
で、emptyなどで行き詰ったわけです。
そこも含めて変えれば済む話ですが、出来るだけ手を抜こうとしてました。
無理と分かりあきらめが付きました。
ありがとうございました。

変なことしようとしてすみません。
599皮先くん ◆N3i.Qu1SoY :2006/03/07(火) 21:50:28 ID:agmd1D8V
>>575
が完全に無視されている件について。
600nobodyさん:2006/03/07(火) 21:51:58 ID:???
>>598
またおいで。
601nobodyさん:2006/03/07(火) 22:27:42 ID:???
名前空間に対応したPHPは
いつでるのじゃーーー
602nobodyさん:2006/03/07(火) 22:44:12 ID:???
関数内での名前空間対応のPHPならすでに。
603nobodyさん:2006/03/07(火) 22:50:50 ID:???
名前空間とかネームスペースとかよくわからん
604589:2006/03/07(火) 23:20:34 ID:psJP3on1
誰か〜
605nobodyさん:2006/03/08(水) 00:13:23 ID:???
>>589
よーわからんけどphpをconfigureし直してみたらどう?
libxmlとかいうやつくっつけて。
606nobodyさん:2006/03/08(水) 07:09:48 ID:???
>>589
その前に
cd ***/php-****/ext/libxml
phpize
./configure *******

はどうだろうか
607age:2006/03/08(水) 10:58:48 ID:s67YcGnH
全角ひらがなで「ぁ」「あ」とかに変換する関数ってありますかね?
アルファベットの大小変換はあるんですが・・・。
608nobodyさん:2006/03/08(水) 11:04:19 ID:???
>>607
何を「ぁ」「あ」に変換するんだ
609nobodyさん:2006/03/08(水) 11:05:31 ID:???
>>607
そんなに種類多くないからmb_ereg_replaceかstr_replaceで置換すればいいんじゃないかな
610609:2006/03/08(水) 11:07:18 ID:???
ぁをあに変換する意味で書いたけど違うのかな
611nobodyさん:2006/03/08(水) 11:22:11 ID:???
PHPでのソケット通信のテストをしていますが
forkした親プロセスと子プロセス間でのディスクリプタパッシング
はできるのでしょうか?
親プロセスで開いたクライアントとのソケットがresouce型になってしまうので
子プロセスに渡すことが難しいです。

よろしくお願いします。
612nobodyさん:2006/03/08(水) 11:22:33 ID:s67YcGnH
>>609
置き換えでもよいのですが、文字列は「ぁ」とは限らないために
パターンがありすぎて・・。

VBでいうところのstrconv()みたいなものですかね。
613nobodyさん:2006/03/08(水) 11:33:22 ID:???
>>612
変換ルールがさぱーり分からないので何を回答すればいいのか分からんのだけど。
とりあえずmb_convert_kana()のマニュアルでも読んで、それで不足してるなら
もーちっと具体的な質問してください。
614nobodyさん:2006/03/08(水) 11:35:18 ID:???
>>612
ひらがなとアルファベットじゃ意味が違うだろ。
aとAはほぼ同じだが
っとつじゃ全然違う。
したがってそんな変なことをする関数はない。

パターンなんて全部網羅しても100もないんだから
関数つくればいいよ
615nobodyさん:2006/03/08(水) 11:55:10 ID:???
>>611
PHPのリソース型は異なるプロセス空間へは一切渡せないんじゃないかな。
616nobodyさん:2006/03/08(水) 12:15:38 ID:???
>>607
つまり、そんな関数は無い、ってことです。
617nobodyさん:2006/03/08(水) 12:29:22 ID:???
>>612
パターンって「ぁぃぅぇぉゃゅょっゎ」だけじゃないの
何がやりたいんだ
618nobodyさん:2006/03/08(水) 13:11:58 ID:???
>>607>>608に答えろ。じゃないと進まん。
619nobodyさん:2006/03/08(水) 13:32:43 ID:YAPHuj+m
>>602
その情報はどこに?
URLなどもっと詳しく

ググってすぐ見つかるようなキーワードを教えて
620nobodyさん:2006/03/08(水) 13:34:04 ID:???
strconvでググったらこれがトップだった
ttp://www.microsoft.com/japan/msdn/library/ja/vblr7/html/vafctstrconv.asp
MSDNはオンラインで見るにはちょっと重いかな・・・

>VbStrConv.None 変換は行われません。
>VbStrConv.LinguisticCasing 大文字と小文字については、ファイル システム (既定) ではなく言語の規則に従います。UpperCase および LowerCase と組み合わせる場合にだけ有効です。
>VbStrConv.UpperCase 文字列を大文字に変換します。
>VbStrConv.LowerCase 文字列を小文字に変換します。
>VbStrConv.ProperCase 文字列の各単語の先頭の文字を大文字に変換します。
>VbStrConv.Wide* 文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。
>VbStrConv.Narrow* 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。
>VbStrConv.Katakana** 文字列内のひらがなをカタカナに変換します。
>VbStrConv.Hiragana** 文字列内のカタカナをひらがなに変換します。
で、この中のどれかだと思うが、どれにでも当てはまりそうな質問内容だな。

(´-`).。oO(まず最初に607は説明力をつけるべきだと思った・・・)
621nobodyさん:2006/03/08(水) 13:40:46 ID:???
ヵっぉ ぉゃっょ
622nobodyさん:2006/03/08(水) 13:54:26 ID:???
ぅゎ ょぅι゙ょ っぉぃ
623nobodyさん:2006/03/08(水) 13:56:47 ID:???
>>607はエスパー伊藤の降臨を待っている
ちなみにエスパー伊藤はコイツ
ttp://pukasec.sakura.ne.jp/ren/img-box/1141658595524.wmv
624nobodyさん:2006/03/08(水) 14:36:20 ID:???
PHPで認証サイトを作る場合
ページ毎のログイン情報の受け渡しって
SESSIONやDBでやるのが普通?

より簡潔にできないかと思って
クラス内で配列を保持して受け渡すってのをやってみたんだけど
あまり上手くいかない・・・
625nobodyさん:2006/03/08(水) 14:57:50 ID:Khyvdh2z
>>624
> クラス内で配列を保持して受け渡すってのをやってみたんだけど

クラス内でとかはあんまり関係なく、どうやって渡したのか?が問題
626nobodyさん:2006/03/08(水) 15:11:14 ID:???
>>624
SESSION"を"DBでやってます。
SESSIONIDはクライアントのCOOKIEに持たせてるけどね。
627nobodyさん:2006/03/08(水) 15:30:25 ID:???
>>626
というのは具体的にどういう形?
628nobodyさん:2006/03/08(水) 16:24:49 ID:???
sessionIDつきのデータをDBに放り込むんだろうな。
一意性はsessionIDに頼る。
cookieが生きている限りなんとかなるのと
大きなデータの保持には適しているかな。

と、以上、まったくの推測。
629nobodyさん:2006/03/08(水) 16:49:15 ID:???
指定したファイルがあるかないか調べる方法ってないでしょうか?
630nobodyさん:2006/03/08(水) 16:50:29 ID:???
>>629
ありますよ
631nobodyさん:2006/03/08(水) 16:52:20 ID:???
>>630
どうすればいいですか?
632nobodyさん:2006/03/08(水) 16:54:37 ID:???
マニュアルくらい読んだら?
633nobodyさん:2006/03/08(水) 16:55:15 ID:???
>>631
関数
file_exists
634629:2006/03/08(水) 17:07:17 ID:???
>>633
ありがとうございますm(_ _)m
635nobodyさん:2006/03/08(水) 17:11:17 ID:???
>>631
初めからそう質問しとけばよかったんだよ。
ありませんか?→Yes / No
どうしたらいいんでしょうか?→解決法
636nobodyさん:2006/03/08(水) 19:31:10 ID:???
phpの関数ってどこに保存されてるの?
ハードコーディング?
637nobodyさん:2006/03/08(水) 19:46:28 ID:???
>>629
>>1くらい読めよ。読めないのか、ゴメン
638nobodyさん:2006/03/08(水) 20:00:57 ID:???
>>636
日本語でOK

つかユーザ関数の話かい?
639nobodyさん:2006/03/08(水) 20:12:55 ID:???
>>635
その論法もう古臭いから普通の質問スレで持ち出さなくていいよ。
揚げ足取り以上の意味持たないし面白くもない。
640nobodyさん:2006/03/08(水) 20:35:31 ID:???
>>638
ユーザ関数をハードコーディングってどういうことよw
641nobodyさん:2006/03/08(水) 20:44:08 ID:???
つまり一種の予知?
642nobodyさん:2006/03/08(水) 20:55:11 ID:???
トーニャ ハードコーディング
643nobodyさん:2006/03/08(水) 21:13:44 ID:???
>>642
靴紐でも切れたのかね?
644nobodyさん:2006/03/08(水) 21:20:02 ID:???
標準の関数がどこにあるかってことじゃまいか?
645nobodyさん:2006/03/08(水) 21:49:35 ID:???
libphp*.soの中にバイナリ化されているんじゃないの?詳しくは知らないけど。
646nobodyさん:2006/03/08(水) 21:59:32 ID:???
>>636
普通にソース中のどこにあるかって話ならext/standardに入ってるけど
647638:2006/03/08(水) 22:17:14 ID:???
>>640
いや、2行目は無視をした。というより1行目も本当に訊きたいことが良く判らん
「標準や拡張の関数がハードコーディング」だって意味が判る?
648nobodyさん:2006/03/08(水) 23:12:06 ID:???
俺はわかったぞい。
649nobodyさん:2006/03/08(水) 23:37:26 ID:???
穴狙いで、>>648の篠沢教授に50点。
650nobodyさん:2006/03/08(水) 23:53:23 ID:???
>>647
いや,君の書き込みは全部無視をした。
651nobodyさん:2006/03/08(水) 23:55:20 ID:???
>>646
うちのPHPフォルダにそんなフォルダはないぞ
652nobodyさん:2006/03/09(木) 00:00:31 ID:???
653nobodyさん:2006/03/09(木) 00:43:58 ID:???
>>651
お兄さんのphpはphp本体がインタープリタかとw
654nobodyさん:2006/03/09(木) 00:48:32 ID:???
モジュール版が使えるレンサバであえてCGIとしてPHPを使う意味ってどんなん?
655nobodyさん:2006/03/09(木) 00:59:38 ID:???
>>654
ユーザ権限で実行、forkの動作が保障されてる etc
656nobodyさん:2006/03/09(木) 08:47:28 ID:???
>>654
CGIのみセーフモードoffなんじゃないの
657nobodyさん:2006/03/09(木) 10:27:03 ID:???
>>639
面白い面白くないじゃなくて、質問者の礼儀だろ。
オレは質問になってない文章にはそのように返すがな
658nobodyさん:2006/03/09(木) 11:44:36 ID:???
質問スレで面白い回答を期待するほうが間違ってる
659nobodyさん:2006/03/09(木) 12:41:04 ID:???
気持ちはわからんでも無いが
スルーせずにいちいちアゲアシ取っていくなんてメンドクサイことよくやるね
660nobodyさん:2006/03/09(木) 12:46:20 ID:???
スルーして誰かが親切に答えるとまた同じことやるからね
661nobodyさん:2006/03/09(木) 14:20:49 ID:???
>>629-634で止めときゃまだほほえましかったのに>>635みたいな余計なこといちいち書くから荒れるんだよな。
662nobodyさん:2006/03/09(木) 14:41:42 ID:???
おまえらもそれをわかってるならスルーしたらいいだけなんだがな
663nobodyさん:2006/03/09(木) 15:12:50 ID:???
それ言うと無限ループになりますね。

>>662
goto >>662
664nobodyさん:2006/03/09(木) 19:48:25 ID:???
>>657
質問になってない質問ならわざわざ回答する必要ないじゃん
おまえ馬鹿か。
665nobodyさん:2006/03/09(木) 19:58:42 ID:???
そして糞真面目に回答しちゃう馬鹿が出てムカつくわけだな
666nobodyさん:2006/03/09(木) 21:04:59 ID:???
くだらねえ
667nobodyさん:2006/03/09(木) 21:23:30 ID:???
m9(^Д^)プギャー
668nobodyさん:2006/03/09(木) 21:51:36 ID:???
なにこれ
皮先ウザいんだけど
669nobodyさん:2006/03/09(木) 21:52:43 ID:???
超回答者がここにも
670nobodyさん:2006/03/09(木) 21:54:09 ID:???
>>668
スルー汁。ホントにそう思ってるならコテハン名なんか書いたら余計に
よろこばすだけ
671nobodyさん:2006/03/09(木) 23:13:16 ID:SHZr9acF
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-gd --with-zlib
--enable-mbregex --enable-mbstring --enable-trans-sid --with-xsl
--with-pgsql=/usr/local/pgsql --with-gd --with-jpeg --with-jpeg-dir=/usr/local/lib

で、phpコンパイルしてるんですが、

[09- 3-2006 23:09:46] PHP Fatal error: Call to undefined function ImageCreateFromJPEG()
in /hogehoge/hoge.php on line 15

のようなエラーがでてしまいます。どうすれば解決できるでしょうか?
環境はRedHat9とphp5.1.2です
672nobodyさん:2006/03/10(金) 00:03:00 ID:???
アバウトな質問で申し訳ありません。
C言語であれば以下のようなコードで変数の値を入れ替える関数が作れます。
void swap ( int *x , int *y )
{
int t = *y;
*y = *x;
*x = t;
}

ポインタがないPHPでは同じような関数は実現できないのでしょうか?
入れ替えた2つの変数を返すのに
戻り値を配列にするといった方法しかないのでしょうか?
673nobodyさん:2006/03/10(金) 00:09:18 ID:???
Perl同様リファレンスというものがある
674nobodyさん:2006/03/10(金) 00:46:33 ID:???
>>672
そんな関数を使わなくても
list($x, $y) = array($y, $x);
で普通に変数スワップできるけどね。

ま、ポインタの代わりにリファレンスを使うのももちろんアリだけど。
675nobodyさん:2006/03/10(金) 01:14:59 ID:???
<?php
$userid = "abc";
$password = "def";
?>

このプログラムをサーバーにアップロードして、
HTTP(SSLなし)でアクセスすると abc と def は
平文でネットを流れることになるのでしょうか?
それともサーバー側でのみ処理されることになるのでしょうか?
676nobodyさん:2006/03/10(金) 01:40:21 ID:???
>>675
まずスレを実行するとクライアント側で何が表示されるのか考えてみ
明らかにくだ質っぽいが
677nobodyさん:2006/03/10(金) 01:41:25 ID:???
>>676
スレじゃない・・
"それ"ね・・
678nobodyさん:2006/03/10(金) 03:09:37 ID:???
>>675
サーバ側でのみ処理される(ネットを流れない)ケースが多いと思われる。
ファイル名が.txtや.htmlだったらどうなるか考えてみ。
また.phpでもそのまま表示される可能性はある。
679nobodyさん:2006/03/10(金) 03:25:34 ID:???
Webサーバで解釈してHTMLを返すんだから、そのスクリプトじゃ何も返ってこない
680nobodyさん:2006/03/10(金) 10:44:28 ID:???
PHPはサーバーサイドスクリプトなんですか?クライアントサイドスクリプトなんですか?
って意味の質問じゃないのか、それ。
681nobodyさん:2006/03/10(金) 15:45:28 ID:???
>>671
たぶんlibgd自体がjpegサポートしてないんだよ。
682nobodyさん:2006/03/10(金) 15:58:10 ID:???
>>671
>>681の言うとおりじゃないかな。
libgdのconfig.log 調べてごらん。
jpegのライブラリは、make install-lib したかな
683nobodyさん:2006/03/10(金) 16:07:52 ID:???
掲示板にトリップ機能を付け加えたいのですが
どうやればよいかご存知の方いますか?
684nobodyさん:2006/03/10(金) 17:04:23 ID:???
トリップ計算して結果を表示する。
685nobodyさん:2006/03/10(金) 17:39:41 ID:???
そりゃ居るでしょう
686nobodyさん:2006/03/10(金) 18:29:52 ID:???
>>683
敢えて言おう、ぐぐれ
687nobodyさん:2006/03/10(金) 20:40:48 ID:bPBa/0oN
教えてください
C言語の構造体のようなイメージで使いたくて

  $a->s1 = "aaa";
  $a->s2 = "bbb";
  $a->b->n1 = 123;
  $a->b->n2 = 456;

みたいな使い方をしてるのですが
この書き方って問題ないのでしょうか?
マニュアルを見てもこの書き方が正しいと
思える内容が見つからなくて気になってます。
別に正しい書き方とか使い方とかあるのでしょうか?

自分の認識としては、上の例でいうと
「a」と「b」がstdClassのオブジェクトとして自動的に作られて
そのメンバ変数として「s1」「s2」「n1」「n2」が追加される
と考えてますが、間違ってます?
688nobodyさん:2006/03/10(金) 21:05:57 ID:???
>>687
E_STRICTを気にしないならいいけど、標準的には
$a = new stdClass;
と書くべき。
689nobodyさん:2006/03/10(金) 21:20:20 ID:???
ってゆうか、横着しないでクラス定義しろよ。
690nobodyさん:2006/03/10(金) 21:22:21 ID:???
こういうのは配列でやるのがPHP流。
691nobodyさん:2006/03/10(金) 21:27:13 ID:???
>>687
>C言語の構造体のようなイメージで使いたくて
どこがCの構造体やねん
692nobodyさん:2006/03/10(金) 22:18:59 ID:???
>>691
俺は何となくしたい事は分かったが。
693671:2006/03/10(金) 22:48:17 ID:8gj1xhR9
>>681-682
レスありがとうございました。
調べてみます!
694687:2006/03/11(土) 08:33:19 ID:???
>>688-692
みなさんありがとうございました
なんとなく安心しました

他の方は配列でやってるのでしょうか?
それともクラス定義?
最初はクラスで定義してたのですが
変数の宣言を忘れても間違ってても
エラーにならないのでやめてしまいました。
(もしかしてエラーのレベルのせい?)
もう1度いろいろ試してみます。

>>691
配列でやると構造をあらわしにくいと思います
695nobodyさん:2006/03/11(土) 08:46:23 ID:???
漏れはもっぱら配列
気がつくと5次元6次元配列とかできてたりして

この辺は個人の作り易さとかあるだろうな
696nobodyさん:2006/03/11(土) 08:47:02 ID:???
漏れはもっぱら配列
気がつくと5次元6次元配列とかできてたりして

この辺は個人の作り易さとかあるだろうな
697nobodyさん:2006/03/11(土) 08:50:36 ID:???
>>694
いちおうPHPの配列はリスト、スタック、キュー、マップ(ハッシュ)、木構造などだいたい表現できるけど。
stdClassは使い捨てスクリプトとかテストスクリプトみたいな一時的なものに使う以外にはあんまり使い道ないよ。
全部配列で代替できるから。
構造の「定義」をしたいならクラスを使うべき。
698972:2006/03/11(土) 11:53:34 ID:???
>>974
できました。
亀レスですがありがとうございました。

>>973
リファレンスで検索しても基本的な関数の一覧しかヒットしませんでした。
その様な関数はあるのでしょうか?

更に質問なのですが、
関数内で引数として渡された値実体を
直接変えることはできますか?
伝わりにくいかもしれませんが、
やはりCでのポインタを用いたswapのイメージでお願いします。
699nobodyさん:2006/03/11(土) 11:56:35 ID:???
>>698
未来からやってきた
700nobodyさん:2006/03/11(土) 12:00:18 ID:???
>>698
お前が>>672なら
function hoge(&$var) {
$var++;
}
$val = 1;
hoge($val);
echo $val;
701698:2006/03/11(土) 12:01:00 ID:???
>>699
アンカー全て600番台に
脳内置換お願いしますorz
702nobodyさん:2006/03/11(土) 12:10:19 ID:???
>>698
function swap(& $a, & $b) {
 $t = $a; $a = $b; $b = $t;
}
この&をつけて変数を渡すことをPHPではリファレンスっていうのです。C++の参照の構文に似せてあるね。
http://php.net/references
703672:2006/03/11(土) 12:27:06 ID:???
>>700
調べてみました。
参照変数なんてあったんですね。

ポインタと比べて変数のアドレスは操作できないが、
アドレスの指す変数を操作していると解釈していいのでしょうか?
704nobodyさん:2006/03/11(土) 12:34:58 ID:???
お願いだから、マニュアル熟読してよ
705nobodyさん:2006/03/11(土) 13:20:09 ID:???
>>695
お前最悪だな
糞なおまえの糞スパゲティコードなんかメンテしたくねえや。

クラスくらい作って『集約(Aggregation)』くらいしやがれや
706nobodyさん:2006/03/11(土) 13:22:48 ID:???
>>703
>調べてみました
何を調べたんだ
707nobodyさん:2006/03/11(土) 15:43:24 ID:???
>>697
配列で代替できるけどわかりにくくね?

687みたいなのを配列にしようとすると
変数わけるしかなくない?
708nobodyさん:2006/03/11(土) 15:53:32 ID:???
5次元とかの方が書いてるときはさくさくかける。


おかげでアホな外注が作ったワケ分からんスパゲッティーコードを
元請様がデバッグする羽目になる。
709nobodyさん:2006/03/11(土) 17:03:22 ID:???
>>707
っ[連想配列]

クラスも連想配列に似た実装になってるわけだが>phpのばあい
710nobodyさん:2006/03/11(土) 17:08:56 ID:???
>>709
$a['s1'] = "aaa";
$a['s2'] = "bbb";
$a['b']['n1'] = 123;
$a['b']['n2'] = 456;

こんな感じ?
なんか気持ち悪いのはおれだけ?
711nobodyさん:2006/03/11(土) 17:22:05 ID:???
>>710
慣れ慣れw
712nobodyさん:2006/03/11(土) 17:37:45 ID:???
>>710
気持ち悪いというか、おれはそういうのは訳解らなくなる。
713nobodyさん:2006/03/11(土) 17:44:10 ID:???
>>712
まークラスにしても
PHPには型宣言もないし
宣言してない変数でも使えてしまうし
いっしょな気もする・・・

変数名で型とかがわかるようにするとしても
連想配列もクラス変数も一緒だしね
714nobodyさん:2006/03/11(土) 17:48:15 ID:???
perlでよく使うけど引数を連想配列で渡すのは順番気にしなくていいかもね
PHPもプロトタイプレスだし
715nobodyさん:2006/03/11(土) 18:53:19 ID:???
クラスの代入で質問です

$hoge1 = new Hoge();
$hoge1->num = 100;
$hoge2 = $hoge1;
$hoge2->num = 200;
echo $hoge1->num;

とした場合、
PHP4.3.10では 100 が
PHP5.1.2 では 200 が返されました。

PHP5で仕様が変わったのでしょうか?
マニュアルのどこかに記載がありましたら教えてください。
716nobodyさん:2006/03/11(土) 18:56:25 ID:???
糞にくそみそに言われたorz
717nobodyさん:2006/03/11(土) 19:07:03 ID:???
>>715
PHP5ではオブジェクトはデフォルトで参照渡し、
PHP4では値渡し(コピー)。
718nobodyさん:2006/03/11(土) 19:07:44 ID:???
>>715
代入演算子の扱いが変わってる
cloneで調べろ
719nobodyさん:2006/03/11(土) 19:53:28 ID:???
>>708
他人のスパゲッティーコードは困るな。
まあ、ロジック読むとこまでは訓練でなんとかなる。がんばれ
720nobodyさん:2006/03/11(土) 20:39:49 ID:???
>>710
それくらいならまだまし
Javaでも二次元キーのハッシュはよく作るから。
List key = new ArrayList<String>();
key.add("book");
key.add("sound");
Map map = new HashMap<List, Integer>();
map.put(key,123);

key = new ArrayList<String>();
key.add("paper");
key.add("light");
map.put(key,456);

こんな感じで。


これで5次元のキーでもまあ、どうにかなるだろう。

しかしこれが5次元の配列となるとまた別。
最悪。5次元のキーを持つハッシュではなく配列ってのは読みにくくて超ウザイ。
そんなコードを書いて渡した奴に鉄拳制裁したくなる(できれば経済制裁したい)。
721nobodyさん:2006/03/11(土) 21:01:41 ID:???
2次元で十分だなぁ
3次元画像はいらん
722nobodyさん:2006/03/11(土) 21:17:29 ID:???
4次元ポケットがほしい
723nobodyさん:2006/03/11(土) 21:35:40 ID:???
そこで次元大介ですよ
724nobodyさん:2006/03/11(土) 21:43:45 ID:???
高次元理論を証明する公式はPHPで書けますか?
725nobodyさん:2006/03/11(土) 21:48:49 ID:???
>>724
( ゚Д゚)ポカーン
726715:2006/03/11(土) 23:46:02 ID:???
>>717-718
ありゃー
デフォルトの動作が変わってたんですね
ありがとうございました
727nobodyさん:2006/03/12(日) 00:09:02 ID:yHHsI6Ak
echo '高次元原理を証明する公式';
728nobodyさん:2006/03/12(日) 00:24:10 ID:d4WSeAj/
strip_tagsで、複数のタグを取り除きたい場合、どのように指定すればいいですか?
例(1つ)->strip_tags($str,'<Font>');
例(2つ)->strip_tags($str,'<Font><b>');?
729nobodyさん:2006/03/12(日) 00:26:02 ID:???
strip_tagsはあまり使わないほうがええよ
730nobodyさん:2006/03/12(日) 00:36:59 ID:???
>>728
自分で回答してんじゃん。何故、1度でも試してから質問しない?
>>729
なんで?
731nobodyさん:2006/03/12(日) 01:04:24 ID:???
>>729
への?
732nobodyさん:2006/03/12(日) 11:19:33 ID:???
error_reportingのE_STRICTって
error_reporting関数では設定できないの?
E_ALLまでは指定できるけどE_STRICTだけ有効にならない
733nobodyさん:2006/03/12(日) 11:43:11 ID:???
>>732
環境くらい書けと。
error_reporting(E_ALL | E_STRICT);
ちなみにE_STRICTはPHP5.0から
734nobodyさん:2006/03/12(日) 11:54:05 ID:???
>>733
すんません、できるはずなんですね。
PHP5.1.2なんですが、
error_reporting(E_ALL | E_STRICT);
としても
error_reporting(4095);
としても有効にならないっす
httpd.confかphp.iniならできるんだけど・・・
735nobodyさん:2006/03/12(日) 13:20:13 ID:???
>>734
一応確認するが、どうやって有効になったかしらべてるの?
736732:2006/03/12(日) 17:42:38 ID:???
>>735
class Hoge {
var aaa;
}

って書いてるけど・・・
737nobodyさん:2006/03/12(日) 22:33:58 ID:???
メンテ前提なら、phpとかperlの仕様で発注しちゃ駄目だよ。
CとかJavaで発注かけないと。

phpとかperlは仕様書見て作り直しが基本。
738732:2006/03/13(月) 00:30:59 ID:???
E_STRICTは実行前のコンパイルのときに報告されるので
コンパイル後に
error_reporting(xx)
でE_STRICTを有効にしても
時すでに遅しってことのようですね。
失礼しました
739nobodyさん:2006/03/13(月) 06:00:06 ID:???
$moji = "おはようございます。さいきん暖かくなりましたね";


変数の最初の10文字だけ取得したいのですが
適切な関数はないでしょうか?
740nobodyさん:2006/03/13(月) 06:16:49 ID:???
>>739
くだ質行き。

mb_strcutかmb_substr、場合によってはmb_strimwidthも便利。
741nobodyさん:2006/03/13(月) 07:29:03 ID:???
マニュアルも読まない野郎が多すぎ
742nobodyさん:2006/03/13(月) 07:58:53 ID:???
●マルチバイト文字列関数
 http://www.php.net/manual/ja/ref.mbstring.php

●日付・時刻関数
 http://www.php.net/manual/ja/ref.datetime.php

●配列関数
 http://www.php.net/manual/ja/ref.array.php

●正規表現関数
 http://www.php.net/manual/ja/ref.pcre.php

これくらいは読めヽ(`Д´)ノ ウワァァァン
743nobodyさん:2006/03/13(月) 13:10:52 ID:???
比較的使用頻度の低いカテゴリの関数はまぁしょーがないかなと思うけど、
どう考えても1度は目を通しとかないとPHPプログラマとしてまずかろう、って
レベルの基本の内容すら目を通してない連中がごろごろいるってのがなぁ…
744nobodyさん:2006/03/13(月) 13:43:15 ID:???
> どう考えても1度は目を通しとかないとPHPプログラマとしてまずかろう

って誰が判断するんだろう。
745nobodyさん:2006/03/13(月) 13:50:28 ID:???
いきなり書き始めても、困ったらそこを読む代わりに
このスレに書く、ということですな。
746nobodyさん:2006/03/13(月) 14:47:15 ID:???
>>744
そんなん自分だろ。
その自分が目を通すか通さないかの敷居を低くしていくと、
全体的なレベルが下がるから困るとも言いたいんじゃないか?
747nobodyさん:2006/03/13(月) 19:00:58 ID:???
fopen()などでURLを引数に使うためにはallow_url_fopenを使いますが、こういったアクセスで
タイムアウトを設定することはできますか?

いつまでもページ全体が表示しないのはまずいので、つながらないときはエラーでもいいから
早めに諦めてほしいのです。
748nobodyさん:2006/03/13(月) 19:02:04 ID:???
あ、しまった。マニュアル読んだつもりだったけど見落としてた
「ファイルシステム関数」にモロに書いてました・・・
749nobodyさん:2006/03/13(月) 19:44:33 ID:???
php検定試験ぐらい有志が行って、スキルを保証すべきじゃねえの?
なんか
php出来ます=低スキル、低単価、案件失敗確実
って風評が広まってる悪寒。
750nobodyさん:2006/03/13(月) 19:46:15 ID:???
PHPできるよりCやC++、Javaができる方が重宝されるっしょ。
仕方ない事だと思うよ。
751nobodyさん:2006/03/13(月) 20:04:43 ID:???
>>749
ま、あまり間違って無いしな、それ
752nobodyさん:2006/03/13(月) 20:09:07 ID:???
>>749
事実だし
753nobodyさん:2006/03/13(月) 20:37:44 ID:???
C,C++,Javaに限らず、他の言語で普通にプログラムが出来る奴は
phpの文法、ロジックなんか簡単にマスター出来るでしょ。
http的な事でとまどう事は有るだろうけど。
むしろphpしか出来ないエンジニアなんて皆無に近いんじゃマイか
754nobodyさん:2006/03/13(月) 20:44:21 ID:???
結構いるぞ >PHPしかできないやつ
755nobodyさん:2006/03/13(月) 20:44:28 ID:???
PHPしかできない奴はウザイがな
確かに。Perlしかできないやつのほうがマシ
756nobodyさん:2006/03/13(月) 20:45:30 ID:???
PHPしかできないって、webデザイナ上がりの厨房だろ。
PHPだけでなんでもかんでも作ろうとする原理主義者に
はなってもらいたくはないな。辞めて欲しいんだが。
757nobodyさん:2006/03/13(月) 20:52:57 ID:???
酷いとこじゃ事務上がりに無理やり作らせてるよな >商用Webサイト
758nobodyさん:2006/03/13(月) 21:20:14 ID:???
それだけ優れた言語とも言えるな
大規模開発だけがプログラムじゃないし

っていうかここなんてスレ?
759nobodyさん:2006/03/13(月) 21:27:13 ID:???
ちょっとしたのならいいが、
大規模化するとやばいぞ。
それでプログラミングなんて
馬鹿でもできるなんて迷信が広まったら最悪だ。
ただでさい東証システム事件でやばいことになって
本気でIT=虚業だとほざく馬鹿やマスコミまで出てきているというのに。
情報処理学会がそれを危惧して
こんな発言をしているぞ。

2005年後半から2006年初頭にかけての事件と情報教育の関連に関するコメント
http://www.ipsj.or.jp/12kyoiku/statement2006.html
「情報システムの理解不足は、国に重大な影響を及ぼす」、情報処理学会が見解表明:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20060307/231860/
760nobodyさん:2006/03/13(月) 22:05:53 ID:???
えー・・・phpしか出来ない奴なんていないだろ、と書いた後で
皆さんのレスを見ていてphpしか出来ない自称PGの起こした事件を思い出しました。

DTP上がりのphp房が集客系のシステムで客に一番初期のXServe台、
シグマリオン1台、開発用のPB一台買わせたあげくに開発失敗してトンヅラしたとかだっけ・・・
アレたしかphpで<a href="">のhrefの中身が全部ハードコーディングしてあって
びびった事が有ったの思いだした。。。
テスト環境から本番環境に移行するのにどうやったんだろうなぁ。
エディタで書き換えたんだろうか。sedなんか使えるとは思えないし。

で、被害者から相談されてそのPGに設計書か仕様書を出せ、と言ったら
「webシステムには設計書というものは通常出さないものだ」
とか言ってた・・・
着手前に要件定義書を出さない・出せない人はやばいよねぇ。ていうか有り得ないんだけど。

いや、もうホントスレチガイも甚だしいですね。スマン子
761nobodyさん:2006/03/13(月) 22:15:42 ID:qnB47IGO
みんな2ちゃんねる素人だから知らないと思うけど
こういうねたはプログラマ板ってところでやるんだよ。
762nobodyさん:2006/03/13(月) 22:16:48 ID:???
>>760
いやなこった。
そんなPHP厨がこの業界に繁殖するなんてな。
プログラマの価値が下がる。
ちゃんとソフトウェア工学も理解できない奴が
偉そうにするんじゃねえよっていいたい。
763nobodyさん:2006/03/13(月) 22:59:48 ID:???
>>760
なにPHPしか出来ない俺に言ってんの?
誰だって最初は一個しか書けないんじゃないのかよっ!

>>762
は>760のどこに反論してるのか分かりません。 ><
っていうかソフトウェア工学ってなに?必須?
764nobodyさん:2006/03/13(月) 23:10:39 ID:???
どの言語が出来ても所詮プログラマ
765nobodyさん:2006/03/14(火) 00:39:01 ID:???
おらPHPしか出来ない趣味グラマ
766nobodyさん:2006/03/14(火) 03:24:27 ID:PRYzuNfa
ファンの希望をかなえてくれる女の子が真のアイドルなんだよ
767nobodyさん:2006/03/14(火) 03:48:19 ID:???
php できます♥とかいうアイドルはいないものか。
768nobodyさん:2006/03/14(火) 04:37:37 ID:???
なんで質問スレがマ板になってるの?
769nobody:2006/03/14(火) 05:21:47 ID:l+upm9sf
PHPを学び始めたばかりです。「独習PHP」という本を使って勉強しています。自宅サーバでapacheを使っています。

ちょっと つまづいてしまって先に進めない状態です。
file1.php
<html>
<head>
<title>スーパーグローバル変数
</title>
</head>
<body>
<form method="POST" action="file2.php" enctype="multipart/form-data">
ファイルのパス:
<input type="file" mame="upload" size="50" />
<input type="submit" value="アップロード"/>
</form>
</body>
</html>

file2.php
<?php
move_uploaded_file($_FILES['uploaded']['temp_name'],
'./doc/'.$_FILES['uploaded']['name']);
print('アップロードに成功しました');
print ($_FILES['file']['error']);
?>

という2つのプログラムを実行すると、「アップロードに成功しました」と表記はされるのですが、実際に/samples/chap2/docにアップロードされているかどうかよくわかりません。chap2の下にdocというファイルができるのでしょうか?
また、print ($_FILE['file']['error']); を記述いているのに返答がありません。なにかまちがっているんでしょうか?
どなたか 教えてください。


770nobodyさん:2006/03/14(火) 05:48:46 ID:???
>>769
あなたが書いたのは、HTMLか、XHTMLか、どっちだ?

話はそこからだ。
771nobodyさん:2006/03/14(火) 06:04:05 ID:???
ということにしたいのですね?:)
772nobodyさん:2006/03/14(火) 06:38:42 ID:???
>>769
質問する前に、自分の書いたスクリプトに本当に間違いがないかちゃんと確認した?
HTMLの文法はそれで本当に間違いはないの?
スペルミスはない?

ここまで言っても相変わらず「どこがまちがってるのか分からない」って言っているようじゃ
申し訳ないけどWebプログラミングの素質は全くないよ。
あるいは、いつまで経ってもこういうスレの存在がなければまともに一仕事できない
赤ん坊のままだね。

もうちょっと自分自身の力だけで頑張ってみなよ。
773nobodyさん:2006/03/14(火) 07:15:01 ID:???
>>769
自宅サーバなら簡単に確認できるだろ
774nobodyさん:2006/03/14(火) 07:21:36 ID:???
>>769
そのスクリプトに間違いがあるかどうかには関知しないが、
PHPのHTTP POSTによるファイルアップロードの処理は
マニュアルの以下にまとまっている。
http://www.php.net/manual/ja/features.file-upload.php

テンポラリにアップロードされてから、任意の場所に移動
という手順を踏むことや、注意すべきポイントが解説されているので
解説本だけで済まそうと思わないで、マニュアルも併読すること。
775nobodyさん:2006/03/14(火) 07:25:45 ID:???
解説本やマニュアルだけで済まそうと思わないで、php エンジンのソースコードも
併読すること。
776774:2006/03/14(火) 07:36:40 ID:???
UserNotes読んでたんだが、
アップロードのファイルを監視して進行状況を提供する改変パッチ
http://www.modphp.org/viewtopic.php?p=325
これ結構面白いな。
777nobodyさん:2006/03/14(火) 07:41:26 ID:???
>>775
マニュアルは一応"仕様"と見なしていいから、
PHP(ZE)のソースの併読はいらんよ。
必要があった時に読めばいい。バグリストもな。
778nobodyさん:2006/03/14(火) 08:35:18 ID:???
>>777
んなこと言ってっから成長せんのだよ
779nobodyさん:2006/03/14(火) 08:40:59 ID:???
>>778
んな余計な事やってるから仕事が鈍いんだよ
780nobodyさん:2006/03/14(火) 08:45:43 ID:???
おお。きたきた。
781nobodyさん:2006/03/14(火) 08:53:09 ID:???
仕事なんて、適当にスパゲッティの山を仕上げればええやん。
782nobodyさん:2006/03/14(火) 09:23:55 ID:???
仕事であのコードはまずいだろう・・
783nobodyさん:2006/03/14(火) 10:58:08 ID:???
>>769
「アップロードに成功しました」って…
成功したかどうか判別もしないで必ずそう表示するように作ってるんじゃん。
それって自分で作ったのか?それともサンプル?
もしもそれがサンプル通りならその本捨てれ。参考書になってない。
784nobodyさん:2006/03/14(火) 10:58:35 ID:???
>>769
mame="upload"
まめ・・・
785nobodyさん:2006/03/14(火) 11:15:07 ID:???
>>769
'doc'はファイル名じゃなくディレクトリだろ。事前に作っておかないと動かねーし。
786nobodyさん:2006/03/14(火) 11:55:03 ID:???
> 仕事であのコードはまずいだろう・・

仕事ってもいろいろあるんじゃない?w
787nobodyさん:2006/03/14(火) 14:08:10 ID:1kXYSwK7
>>784が既に指摘している通り
<input type="file" mame="upload" size="50" />
mame→nameが正しい

だがここを直したところで

move_uploaded_file($_FILES['uploaded']['temp_name'],
'./doc/'.$_FILES['uploaded']['name']);
HTML内ではuploadだったのに、ココに来て'uploaded'となってはそんな変数ありませんだ。

更にだ。
$_FILESに'temp_name'なんて配列の要素抱えてない。
正しくは'tmp_name'な。
docディレクトリは自分でまず作って置いてパーミッションは777にするように。
788nobody:2006/03/14(火) 16:46:49 ID:l+upm9sf
769です。

みなさん返事書き込みありがとうございました。

おかげで動きました。あと、いろいろアドバイスありがとうございます。
プログラムが動いたことがとってもうれしいです。
789nobodyさん:2006/03/14(火) 16:54:25 ID:???
PHP+SQLの質問です。
SQLのレコードにある特定の文字を消去するためPHP側より
select trim(leading '文字' from フィールド)from テーブル
というSQL文を発行して特定の文字を消すのですが、
消去した後のフィールドを配列として格納したいのですが、うまくいきません。
教えて頂けないでしょうか。
当方はmysql_fetch_arrayで試しているのですが間違いですか?
790nobodyさん:2006/03/14(火) 18:38:57 ID:???
> うまくいきません。
うまくいかないのは分かったが、エラーは出てないのか?
MySQL側。
791nobodyさん:2006/03/14(火) 20:07:46 ID:???
>>789
そんな質問じゃ誰も答えられん。
何がどう上手くいかないのか具体的に書かないと。
792nobodyさん:2006/03/14(火) 21:43:36 ID:???
>>5
793nobodyさん:2006/03/14(火) 22:52:59 ID:???
>>789
試しにやってみたけど普通にmysql_fetch_arrayでもmysql_fetch_assocでも配列に取得できたよ
ただ、arrayを数値indexで取得するんではなく、assocで取得してるんだとしたら、
キー文字列は「trim(leading '文字' from フィールド)」というそのまんまになって、
元のフィールド名では取得できないです。念のため。
794nobodyさん:2006/03/15(水) 00:00:56 ID:???
>>769
親切に教えてもらって、プログラムが期待通りに動いてよかったですねー。
ただ、一言だけいわせてもらうと、

このスレを通じて「あなた自身」は何を得たんですか?

プログラムが動いた、だけで終わったのであれば、それは非常に残念なことです・・・。
795nobodyさん:2006/03/15(水) 00:05:13 ID:???
>>769が何を言いたいかというと、どこをどうやったら動いたのかくと他の人にも参考になるから書いてねって事。
質問者としてのマナーだね、オラも賛成
796795:2006/03/15(水) 00:07:59 ID:???
あぁ、>>794はそういう事言ってんじゃないのかな・・。
まぁ、とにかくどこが悪かったか書く事で、次何を気をつけるべきか分かるから書け。
797nobodyさん:2006/03/15(水) 00:13:19 ID:???
>>796
>794はこのスレを通じて人生を学べって言いたいんだよ。
798nobodyさん:2006/03/15(水) 02:01:59 ID:???
俺は綾波よりアスカ派なんだよ!!!!!
コアの話はいいから早く集計するんだ。

>>762
うp
799798:2006/03/15(水) 02:03:01 ID:???
誤爆です。気にしないでください。
800nobodyさん:2006/03/15(水) 02:03:22 ID:???
僕の大好きなあるぇ〜♪
801nobodyさん:2006/03/15(水) 02:04:15 ID:???
誤爆にボケかました俺はどうすれば。
802nobodyさん:2006/03/15(水) 02:11:38 ID:???
>>798
このツンデレ好きがっ!!
803nobodyさん:2006/03/15(水) 02:38:55 ID:???
アスカはツンデレじゃなくてただのツン
804nobodyさん:2006/03/15(水) 02:51:35 ID:???
女を分かってねぇなぁ・・
805nobodyさん:2006/03/15(水) 02:54:43 ID:???
うるせぇボケここはPHPのスレだぞあんたばかぁ  ('A`)
806nobodyさん:2006/03/15(水) 03:15:04 ID:???
>>794-の流れどうにかしてくれ。




腹がよじれるwww
807nobodyさん:2006/03/15(水) 15:30:04 ID:???
茶吹いて部下にかかっちまったwwww
808innoDB限定:2006/03/15(水) 20:57:26 ID:???
おまいらはDBに書き込むとき
commitしてるのか?

autocommitでいいんじゃないかと・・・
809nobodyさん:2006/03/15(水) 21:30:21 ID:???
コミットさ〜〜〜〜ん
810nobodyさん:2006/03/15(水) 22:18:04 ID:???
>>808
個人で作る分にはautocommitで十分
811nobodyさん:2006/03/15(水) 22:28:40 ID:???
アーシェたん(´д`)
812nobodyさん:2006/03/15(水) 22:30:54 ID:???
すみません
セミプロの場合はどちらでしょうか
アクセスはけっこうあります
813nobodyさん:2006/03/15(水) 23:12:31 ID:???
アクセス量の問題でなく、安全性や障害時の対応方法などを検討した上で
ロールバックのタイミングを制御したかったら任意にcommitしろ、って感じじゃね?
814nobodyさん:2006/03/15(水) 23:13:33 ID:???
>>812
お金を取るなら、ちゃんとしとき。
815nobodyさん:2006/03/16(木) 00:33:14 ID:???
コミットされる前のデータが消えてもいいかどうかでしょ。
消えちゃダメなら、パフォーマンス堕ちてもコミットすべき。

アニヲタキモい。

php案件は特にゴミなスキルの香具師が多い。
PG落ちと、喰えないデザの掃き溜め。
816nobodyさん:2006/03/16(木) 00:54:33 ID:???
SOAPについて質問
serializeしたオブジェクトをSOAPサーバに送って
戻すと、unserializeできないデータになってる

回避方法ある?
817nobodyさん:2006/03/16(木) 07:07:14 ID:???
>>815
永遠の雇われ人、乙wwwwwwwwwwww
818nobodyさん:2006/03/16(木) 09:15:21 ID:???
>>815
自分の事か?

普通はトランザクションを考えて選択だろ。
819789:2006/03/16(木) 09:19:37 ID:pVLzTb9p
いろいろと指摘をいただきましてありがとうございます。
それと質問をしておきながら、来れなくてすみません。
SQLエラーが出るわけではなく、配列に格納できてないみたいです。

$rst = mysql_query("select trim(leading '文字' from フィールド)from テーブル",$db);

while($log = mysql_fetch_array($rst)){

という具合に特定の文字を消去したフィールドを$logに配列としていれようとしているの
ですが、ためしに$logを出力すると全て空白になっています。
ここで失敗をしているのかと・・
820nobodyさん:2006/03/16(木) 09:24:02 ID:???
SQLレベルでselect trim(leading '文字' from フィールド)from テーブルするとどんなデータが出てくるの?
821789:2006/03/16(木) 09:28:50 ID:???
特定の文字が消去されたフィールドが一覧で出ますので、問題は無さそうです。
822789:2006/03/16(木) 09:42:25 ID:???
$log[0]
に全部のデータがありました・・
823nobodyさん:2006/03/16(木) 11:03:00 ID:Fw1s0gZF
PHP初めて3日の雑兵です。
本をみながらPHPを組んでいたのですが、ページ遷移の仕方が良く分かりません。
画面構成は

テキスト
消えるテキスト
消えるボタン

と、ある画面で、ボタンを押すと、

テキスト
新しいテキスト

となるようにしたいのです。
824823:2006/03/16(木) 11:03:57 ID:Fw1s0gZF
<?php

echo "<html>";
echo "<head>";
echo "<title>テストファイル名 t.php</title>";
echo "</head>";
echo "<body>";
echo "<center>";
echo "文字列 ここにはタイトル ここは残したい";
echo "<br>";
if (!(isset($PageingProcess)))
{
echo "<form action='t.php' method='post'>";
$PageingProcess=True;
echo "☆ テキスト<br>";
echo "<input type='hidden' name='PageingProcess' value='{$PageingProcess}'>";
echo "<input type='submit' value='☆ ボタン'><br>";
echo "</form>";
}
if ($_POST['PageingProcess'])
{
echo "ボタンを押したら☆ テキストと☆ ボタンが消えてかわりにこれが表示されてほしい";
}
echo "</body>";
echo "</html>";

?>

汚いソースですが、よろしくお願いします。
825824:2006/03/16(木) 11:46:00 ID:Fw1s0gZF
大事なことを書き忘れていました。
バージョンはPHP5.1.2 Apache2.0.55 環境はLocalhostです。
826nobodyさん:2006/03/16(木) 12:07:06 ID:???
>>824
>if (!(isset($PageingProcess)))とif ($_POST['PageingProcess'])が
整合性が取れてない 。$_POST[]で合わせる。

>$PageingProcess=True;
>echo "<input type='hidden' name='PageingProcess' value='{$PageingProcess}'>";
boolから文字型への変換が掛かり{$PageingProcess}は1という文字になるよ。
問題はないけど一応留意。
827824:2006/03/16(木) 12:22:00 ID:Fw1s0gZF
>>826
指摘の点、修正してみましたところ期待通りに動作になりました。
このサンプルをフィードバックしてメインのPHPに実装します。
ありがとうございました!
828789:2006/03/16(木) 13:58:08 ID:???
自己完結できました
配列には既に格納されていたらしく、sqlにアップする際の問題でした
お騒がせして済みませぬ
829nobodyさん:2006/03/16(木) 15:18:39 ID:???
>>828
>>819 > ためしに$logを出力すると全て空白になっています。
ってのが根本的に勘違いだったようだが、どうやって出力してたんだ。
820の「$log[0]にあった」ってのも、逆に聞きたいんだが、
selectでカラムを1個しか指定してないのに[0]以外のどこに入るというのかと。
830nobodyさん:2006/03/16(木) 17:44:24 ID:???
ひとまずデバッグプリントは
print_r か var_dump でやろうな。
831nobodyさん:2006/03/16(木) 18:51:04 ID:???
var_export も
832nobodyさん:2006/03/16(木) 20:06:24 ID:???
フィールドが一覧で出ますので、問題は無さそうってのが間違い。
その出て来たデータの文字コード上の問題は無いのかを調べ無いと。
配列に入れて変換すると消える文字コードも有るだろうが、禿。
833nobodyさん:2006/03/17(金) 02:00:12 ID:???
普通に記述したHTMLを標準出力だけじゃなくて、ファイル書き出しも
できるようにしたいんですが、どうしたらいいんでしょうか?
バージョンは4です。
834nobodyさん:2006/03/17(金) 02:23:00 ID:???
835nobodyさん:2006/03/17(金) 11:21:25 ID:???
フォームからファイルをアップロードする際に、アップロード中にファイルが現在何メガまでアップロードされたかを取得する方法はありませんか?
836nobodyさん:2006/03/17(金) 11:25:53 ID:???
英数字以外の文字を取り除く関数はありませんか?

aあbcい12う3え.

abc123.
837nobodyさん:2006/03/17(金) 11:55:36 ID:???
そのピリオドは英数字なのね。
ereg_replace("[^A-Za-z0-9\.]", "", "aあbcい12う3え.");
838nobodyさん:2006/03/17(金) 11:57:45 ID:???
\\. だった
839nobodyさん:2006/03/17(金) 12:20:40 ID:???
>>837-838 サンクス。
840nobodyさん:2006/03/17(金) 12:29:51 ID:???
>>837
<?php
$str = "123"; //Shift JIS全角数字
echo ereg_replace("[^A-Za-z0-9\.]", "", $str); //PQR
?>
841nobodyさん:2006/03/17(金) 12:55:05 ID:???
SJIS禁止
842nobodyさん:2006/03/17(金) 13:46:13 ID:???
まあSJISつうか、全角気にするならmbつけるっしょ
843nobodyさん:2006/03/17(金) 13:47:47 ID:???
記号を含むならともかく英数字だけなら問題ねーべ
844nobodyさん:2006/03/17(金) 13:49:50 ID:???
SJISはメールにする時に嵌るよ。最初からJISで扱うように作るべき。
845nobodyさん:2006/03/17(金) 13:52:34 ID:???
文字コードを気にしたくないならアメリカに移住しろ
846nobodyさん:2006/03/17(金) 13:59:05 ID:???
>>844
こないだHTMLをJISで出力してるサイトを見たが
あれはお前の作ったものか!?
IEが自動判別できなくて表示バケまくり…
847nobodyさん:2006/03/17(金) 17:11:21 ID:???
>>835 タイミングがいいな、偶然かなww

アップロードの進捗を表示しつつアップロードするサンプル
http://phpspot.org/blog/archives/2006/03/post_50.html
848nobodyさん:2006/03/17(金) 17:24:24 ID:???
>>847
へ〜。面白いな。ajaxで保存の進行状況を把握するのか…
849nobodyさん:2006/03/17(金) 22:14:42 ID:duB6JjQA
PHP4.4.2 Windowsです。

preg_replace('/((?:s?https?|ftp):\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/i', '$1$1', '<a href="http://example.com/">');

としてやると、どうやらhttp://example.com/">までマッチしてしまっているようです。
Perl5.8.7ではhttp://example.com/までのマッチと、正常動作しているのですが、PHPで正常動作させることは出来ないのでしょうか。
850nobodyさん:2006/03/17(金) 22:20:14 ID:???
>>849
4.4.2 for Winで実行してみたが「http://example.com/」部分しかマッチしない。
print preg_replace('/((?:s?https?|ftp):\/\/[-_.!~*\'()a-zA-Z0-9;\/?:@&=+$,%#]+)/i', '[$1][$1]', '<a href="http://example.com/">');
で実行結果が
<a href="[http://example.com/][http://example.com/]">
になったよ。
851nobodyさん:2006/03/17(金) 22:25:10 ID:???
>>849
Windows98?
852nobodyさん:2006/03/17(金) 22:29:54 ID:???
え。Win98のPHPって挙動違うのか?初耳だぞ
853nobodyさん:2006/03/17(金) 22:32:28 ID:???
漏れが実装してる鯖ではhttpヘッダで charset=ISO-2022-JPって返してるよ。
おまいの実装ではhttpヘッダで何も返さないからcharset=ISO-8859-1が指定された事に成ってる。
HTTPのRFCぐらい嫁。

ajax切ってある(w
854849:2006/03/17(金) 22:34:46 ID:???
>>850-851
直前でhtmlspecialcharsをかけていたのが原因でした。
ENT_NOQUOTESを掛けたつもりでいたのですが、ENT_QUOTESになっていました。

ご迷惑おかけしました。すみません。
855nobodyさん:2006/03/17(金) 22:35:03 ID:???
アンカーくらい付けれ
856nobodyさん:2006/03/17(金) 22:38:08 ID:???
PHPで
857nobodyさん:2006/03/17(金) 23:02:44 ID:???
をやりたいのですが、うまくいきません。ご教授ください。
858nobodyさん:2006/03/17(金) 23:50:06 ID:???





とすればうまくいきます。試してみて下さい。
859nobodyさん:2006/03/18(土) 02:20:05 ID:???



が私からのお礼です。
どうかお納めください。
860nobodyさん:2006/03/18(土) 11:51:29 ID:???
裸の王様?
861nobodyさん:2006/03/18(土) 14:47:56 ID:???
Yahooやlivedoorなどのような大規模サイトでのユーザ認証は、どのようにされている
か想像で良いので教えて頂けませんか?

LDAP,Radiusのようなものを使っているのか、DBの中で管理しているのか…
862nobodyさん:2006/03/18(土) 15:07:47 ID:???
userアカウントを作って認証してんじゃないのかなぁ。
そんな気がする。
863nobodyさん:2006/03/18(土) 15:47:55 ID:???
>>862
*nix系の標準のユーザアカウントですかね。
それだと沢山のWebサーバやDBやサービスが出てきた時に一元管理できなくなるような
気がして…
PHPから*nix系アカウントを利用している実装って見たことないんですけど、
ご存知であれば教えてもらいたいです。
864nobodyさん:2006/03/18(土) 15:52:56 ID:???
信じるなよ
865nobodyさん:2006/03/18(土) 16:01:33 ID:???
>>861
PEARのAuth_HTMLって知らない?
それを調べて使ってみれば大雑把なイメージはできると思う。
もちろん、大規模サイトでは独自のロジックを使用しているとは思うけれど。
866nobodyさん:2006/03/18(土) 16:02:19 ID:???
このあいだ、とあるISPのユーザ管理システムのWebインターフェイスを作ったけど、
データベースはLDAPだったよ。まぁ、ユーザ数はYahooの足下にも及ばないけどね。
なんでもISPではLDAPを使うところが結構あるらしいよ。

ただ、LDAPはそもそもは単なるディレクトリデータベースだから、
ユーザーごとのいろんな情報を分類して入れとくのに便利ってだけで、
認証とは直接関係ないけどね。
867865:2006/03/18(土) 16:09:23 ID:???
要するに、DBのはず。
868nobodyさん:2006/03/18(土) 16:14:28 ID:???
>>865
> PEARのAuth_HTMLって知らない?
名前だけは知ってましたけど、そういう目的に利用できるものなんですね…
PEAR::Auth で Auth_LDAPとかもあるみたいですね。
ドキュメントは少なそう…PEAR本買うかな…

>>866
LDAPは認証関係ないんですか。認証ログとかの取り扱いもしてないんですかね。
Radiusもちょい調べてみたら、php-radiusとかあるんですね。

869nobodyさん:2006/03/19(日) 03:03:07 ID:???
echo に 下記のcolor属性を追加するとうまく動作しなくなります。
echoを使う際のhtmlの書き方は下記のもので合ってるんですかね? 

echo "<table color="#EFEFEF">\n";
870訂正:2006/03/19(日) 03:04:20 ID:BDJY4Umc
echo "<table bgcolor="#EFEFEF">\n";
871nobodyさん:2006/03/19(日) 03:13:48 ID:???
echo '<table bgcolor="#EFEFEF">';
872869:2006/03/19(日) 03:14:02 ID:BDJY4Umc
試しにダブルクオーテーションをはずしたら上手くいきましたorz
意味ワカンネ。。
echo文の中ではダブルクオーテーション使っちゃいかんの?;
873nobodyさん:2006/03/19(日) 03:15:39 ID:???
>>871
トンクスです
874nobodyさん:2006/03/19(日) 03:19:02 ID:???
> echo "<table bgcolor="#EFEFEF">\n";

PHPの中の人
1. echoキター 文字列キボンヌ
2. " をハケーン。文字列の開始キター
3. <table bgcolor= ここまで読んだ
4. " キター。文字j列終了sage
5. # !? 何コレキタ?
6. ワケワカンネ(;´Д`)
7. エラーage
875nobodyさん:2006/03/19(日) 03:24:49 ID:???
わきゃりやすい。
876nobodyさん:2006/03/19(日) 04:21:44 ID:???
>>872
echo関係なくて、"〜"の中で"を使うときは\"って書かなきゃダメすよ
877nobodyさん:2006/03/19(日) 08:38:28 ID:???
>>874
ワロタ。
878nobodyさん:2006/03/19(日) 16:18:03 ID:???
>>869
PHP以前にCかJavaやったほうがいいよ。
879nobodyさん:2006/03/19(日) 16:25:19 ID:???
>>878
なにいってんの
880nobodyさん:2006/03/19(日) 16:43:07 ID:???
>>879
CやJavaやった方がいいよって言ってるの
881nobodyさん:2006/03/19(日) 17:04:27 ID:???
結局エスケープで躓くんだから一緒じゃないの?
882nobodyさん:2006/03/19(日) 17:14:17 ID:???
>>861
認証は、DBを使ってます。LDAPは使ってません。
ユーザ名とパスワードをデータベースに入れておき、ログイン時に確認しているだけ。なんの難しいこともやってません。

LDAPは簡単なデータ検索のためのプロトコルです。それが認証という用途でよく使われるだけであり、認証のためのプロトコルではありません。
認証以外では例えば郵便場号を入力すると住所が返ってくるようなLDAPサーバを作ることもできます。

またLDAPはクライアントサーバ型のアプリケーションでは便利ですが、Webアプリではあまり使われません。というか、わざわざLDAPを使う理由がありません。

クライアントサーバでは、ユーザ情報(名前とパスワード)はクライアント側ではなくサーバ側にあるため、認証が必要ならサーバに問い合わせる必要があります。そのときのプロトコルとしてLDAPが使われます。
つまり認証を必要とするアプリと、認証に必要な情報をもっているサーバが別であるため、LDAPのようなプロトコルが必要になります。
例えばメールソフトがメールサーバに接続するときにLDAPをつかって認証を行うという場合がこれにあてはまります。

Webアプリケーションでもユーザ情報がサーバ側にあるのは同じですが、認証を必要とするアプリ自体もサーバ側にあるため、すべてがサーバ側で完結しています。
そのため、わざわざLDAPのようなプロトコルを使って通信をする必要がありません。
ただし、アプリケーションごとにサーバが分かれており、かつユーザ情報を一元管理している場合は、アプリケーションサーバが認証サーバに問い合わせるような形態にすることはあります。
そのときにLDAPを使う可能性はありますが、通常は単なるDBサーバへの通信を使うことが多いです。

Radiusは、通信経路を確立するときに認証を必要とするプロトコルです。
Webアプリでは通信経路はすでにHTTPで確立されているため、Radiusはまったくつかえません。そもそもの用途が違います。
883nobodyさん:2006/03/19(日) 17:34:28 ID:???
>>881
つまりエスケープで躓いても、CやJavaのがカバーが手厚い。
間違えた部分を自分で直す為の道が整ってる。
884nobodyさん:2006/03/19(日) 18:40:47 ID:???
>>874
たしか#の後はコメントになるはずだから、コレはセミコロン抜けでエラーだろ。
885nobodyさん:2006/03/19(日) 18:51:07 ID:???
>>884
だぁね。
<?php echo "<table bgcolor="#EFEFEF">\n"; ?>
ってので試してみると、<table bgcolor= だけ表示されて正常終了する。
886nobodyさん:2006/03/19(日) 19:45:00 ID:???
ldap, radiusはレプリケーションが楽ってのが有る。
認証鯖が堕ちたらサービス中断するからね。
DBだとボラクルRACになって金がかかる。

認証をどう使うかは実装次第。
ldapをPPPoEとかの認証に使う実装も有り。ただ重いので、sslもしないでradius認証が一般的。


中の人の声キター!
ハゲワロス。
これスクリプト化して配布すると実用性有るよ。
にちゃんねらのためのPHP入門に収録決定。

ldapがISPで採用されるのは、PPPoEの認証じゃなくて、鯖との認証系。
どこかのradius鯖がladap互換機能も持ってたかも知れないけど。

*nix系の認証はwebminあたりを参考にするといい。
887nobodyさん:2006/03/19(日) 20:08:58 ID:???
PHPでも
print qq|<a href="$hoge">hoge</a>|;
が使えたらどんなに楽なことか…
888nobodyさん:2006/03/19(日) 20:25:38 ID:???
ユーザーエージェントで振り分けて、includeで、htmlファイルを読み込んで表示させてるのですが、auのWINから複数回アクセスするとタグが裸で出てきます。どうすればいいのでしょうか?
889nobodyさん:2006/03/19(日) 20:29:22 ID:???
>>887
ヒアドキュメントという手ぐらいしかないもんなぁ…
print <<<QQ
<a href="$hoge">hoge</a>
QQ;
890nobodyさん:2006/03/19(日) 20:30:27 ID:???
>>888
ソースを張るか長ければうpしてみてくれ。
891nobodyさん:2006/03/19(日) 20:42:53 ID:4ZTFbIAr
>>890
<?php

$agent=$_SERVER['HTTP_USER_AGENT'];

if(preg_match〜〜

elseif(preg_match("/KDDI\-/",$agent)) {
include ("相対パス");
}

?>
としています。
さきほど言ったように、読み込んでいるファイルは、.htmlです。
892nobodyさん:2006/03/19(日) 21:09:52 ID:???
>>889
ヒアドキュメントはインデントが崩れるのがやだなぁ
893nobodyさん:2006/03/19(日) 21:22:53 ID:???
>>888
>複数回アクセスすると
ってどういうこと?
894nobodyさん:2006/03/19(日) 21:26:38 ID:N7Rtukyk
>>888
キャッシュは無効にしてある?
895894:2006/03/19(日) 21:27:45 ID:???
ageてしまいました。
ごめんなさい。
896nobodyさん:2006/03/19(日) 21:38:15 ID:???
>>887
本当にそうだよなぁ。
897nobodyさん:2006/03/19(日) 21:49:35 ID:V+xlGNgJ
strip_tagsで複数指定する場合
strip_tags($unko, '<b><s><p>');

これで合ってますか?
898nobodyさん:2006/03/19(日) 22:06:08 ID:???
print qq|<a href="$hoge">hoge</a>|;
できるようにソースを弄れば?
再配布したら主流に成るかもよ。
899nobodyさん:2006/03/19(日) 22:08:56 ID:4ZTFbIAr
>>893
アクセスしたあと、携帯の戻るをして、再びアクセスを繰り返すってことです。

>>894
htmlファイルにメタで無効にしてますが
900nobodyさん:2006/03/20(月) 00:40:31 ID:???
シングルクオーテーションじゃだめなんかい?>qqとやら
901nobodyさん:2006/03/20(月) 00:41:01 ID:???
ああ、変数の展開したいのね
902nobodyさん:2006/03/20(月) 06:35:42 ID:???
903nobodyさん:2006/03/20(月) 06:42:32 ID:???
auは普通のブラウザとは全然レベルの違うしつこいブラウザキャッシュを行うんで
その辺でプログラムがどっか誤動作してる気がするなー。
PCやDocomoでは絶対にキャッシュしないだろうパターンでもauでは大抵はキャッシュするよ。
1度戻って再アクセス、という場合だと、まず再アクセス時にはプログラムには実際にはアクセスが入ってない。
auのゲートウェイサーバー上に残ってるキャッシュを再表示してるだけだと思う。

そういう挙動をされた場合にどこがどう誤動作するかは一連のプログラム全体を見ないと正直分からん。
タグがそのまんま表示されてしまう… どっかが抜けたことでヘッダーがtext/plainで認識されてしまうか
どこかで<pre>タグが閉じてない状態になってるのか?
904nobodyさん:2006/03/20(月) 07:57:57 ID:???

話し変わってもうすぐ1000だけど
テンプレどうするよ。以前わかりにくいって議論になってたけど
905nobodyさん:2006/03/20(月) 10:38:28 ID:???
とりあえず>>1を短く書き直した。(勝手だけど誰かしらやらないと何も変わらないので・・・)

--------------ココカラ--------------
PHP全般の質問スレです。>>2-10も参照。

【基本ルール】
・新規質問の方はageてください。

・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)

・Googleやマニュアルで調べてから質問してください。
(マニュアル:http://www.php.net/manual/ja/

・解決しなくても答えてもらったら礼を。

・煽り・荒らしは放置。
--------------ココマデ--------------

>>2は過去スレのみで十分かも。
>>3はいらないと思う。誰も見ない上に毎回新スレを立てる時に更新が面倒くさそう。
>>4のFAQは内容はいいけど、妙に分かりづらい印象なのでこれから要再考。
>>5は個人的には記念に残って欲しいけど、スレ立てる人の好きにしてください。

思いっきり独断で書いたので、何か思いついたことがあったら言ってください。
906nobodyさん:2006/03/20(月) 10:52:10 ID:???
>>2の過去スレは3〜4個くらいで十分かも。
それ以上古いのはどうせ落ちてるだろうから他のミラーサイトとかで探すでしょ。

--------------ココカラ--------------
<前スレ>
【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

<過去スレ>
【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
【PHP】質問スレッドpart31【php】
http://pc8.2ch.net/test/read.cgi/php/1133017632/
【PHP】質問スレッドpart30【php】
http://pc8.2ch.net/test/read.cgi/php/1130190606/
【php】part29【php】
http://pc8.2ch.net/test/read.cgi/php/1120611474/
【PHP】質問スレッドpart28【php】
http://pc8.2ch.net/test/read.cgi/php/1115281031/
--------------ココマデ--------------
907nobodyさん:2006/03/20(月) 11:00:32 ID:???
じゃあ俺も。提案は以下
----------------------------------------------------
PHP全般の質問スレです。>>2-10も参照。

【基本ルール】
○新規質問の方は必ずIDを表示させてください。
  書き込む場合はメール欄に何も記述しないでください。

○2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)

○質問の前にGoogleやマニュアルで調べてください。
  (マニュアル:http://www.php.net/manual/ja/

○解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く)
-------------------------------------------------

>>2はそのまま残したほうがいいと思う。
>>3は全部いらない。
>>4は確かにわかりにくいけど役に立つからそのまま。
>>5は以下
--------------------------------------------------
質問する場合の注意
1. 自分のIDを表示させること。
2. ハードウェア、OSのバージョン等を記述すること。
3. 己の行った操作、変更などを詳しく記述すること。
4. エラーメッセージはそのまま表記すること。
5. 質問者としても態度をわきまえること。

以上を満たしていない質問の場合、
回答は期待しないでください。
908nobodyさん:2006/03/20(月) 11:03:54 ID:???
>>905
マニュアルの次ぐらいに

PHPの質問スレ、及びPHPのクダ質問スレのFAQをまとめるサイト
http://wiki.2chx.net/php/ (育成中。まだまだこれから)

入れるてのはどう?
909nobodyさん:2006/03/20(月) 11:48:55 ID:???
>>2のリンクにはそろそろZend Frameworkも入れる頃か?

------------------------------
<関連リンク>
■PHP本家(英語) http://www.php.net/
■日本 PHP ユーザ会(日本語) http://www.php.gr.jp/
■メーリングリスト(日本語) http://ns1.php.gr.jp/mailman/listinfo/
■PEAR(英語) http://pear.php.net/
■Smarty(英語) http://smarty.php.net/
■Zend本家(英語) http://www.zend.com/
■Zend Framework(英語) http://framework.zend.com/
■php | architect(英語) http://www.phparch.com/

■本家マニュアル(日本語) http://www.php.net/manual/ja/
■PEARマニュアル(日本語) http://pear.php.net/manual/ja/
■Smartyマニュアル(英語) http://smarty.php.net/manual/en/
■ZFマニュアル(英語) http://framework.zend.com/manual/en/

まだ英語しかないマニュアルも後々/manual/en/を/manual/ja/に変えてみたら日本語があるかもしれません。
------------------------------
910909:2006/03/20(月) 11:52:53 ID:???
PECL忘れてた。
■PECL本家(英語) http://pecl.php.net/
911nobodyさん:2006/03/20(月) 12:02:00 ID:???
リンク集なんかは>>908のところに追加してったらいいんじゃないの?
いちいちテンプレ化しなくても。
912nobodyさん:2006/03/20(月) 12:06:17 ID:???
>>911
Wikiさあ、管理人がもっと勢力的に更新しないと誰もついてこないよ。
つーかテンプレにリンク集はほしい。
自分自身はPHPのは使わないけど、例えば新しい言語とか始めるときそのスレにリンク集あるとたどること多いから。
913912:2006/03/20(月) 12:07:53 ID:???
勢力的って何だ・・・orz
精力的のまちがい。
914nobodyさん:2006/03/20(月) 13:14:36 ID:???
>>913
勢力的ってあれだろ。
群集がワー!!っていう
915nobodyさん:2006/03/20(月) 14:02:53 ID:???
>>907
・ が ○ になったのはなぜ?w
俺的には ♥ がいいんだが
916nobodyさん:2006/03/20(月) 14:29:56 ID:???
「変態!!変態!!変態!!変態!!」

ってやつなんだけど一度見てみたいんだよねー
なんていうかあの1コマ見ただけでゾクゾクしてくるよ!!
いや俺は別にMじゃないんだけどあの表情はわすれられんwwwwwwwwwww
917916:2006/03/20(月) 14:30:39 ID:???
間違えましたすいません
918nobodyさん:2006/03/20(月) 14:51:55 ID:???
>>916
変態!!変態!!変態!!変態!!
919nobodyさん:2006/03/20(月) 15:05:13 ID:???
AAか何かか
920nobodyさん:2006/03/20(月) 15:39:15 ID:???
>>916
今テンプレの結構重要な話ししてたんだよ。
別に漫画好きが悪いとはいわないけどさすがにこれは無いわ。
本気で悪いと思ってるなら普通うpまでするのが筋だろ。
921nobodyさん:2006/03/20(月) 16:17:25 ID:???
FAQちょっと修正+追加してみた。慣れないことをして疲れますた。

【FAQ】
1. ブラウザに何も表示されないんだけど・・・
 → error_reporting()や、php.iniのdisplay_errors、log_errorsを確認
2. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → できません
3. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
4. echo "$arr['hoge']['fuga']"; がうまくいかない
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
5. echo?print?
 → echoはコンマ区切りで書けるけど関数ではない。printは関数。パフォーマンスは気にするな
6. 値渡しと参照渡し(「&」を使う)のパフォーマンス
 → この二つはパフォーマンス目的で使いわけたらダメ。よく知らずに参照渡しにすると遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
7. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()
8. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
9. 一定時間ごとに何かしたい
 → cron、タスクスケジューラ
10. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
922921:2006/03/20(月) 16:17:58 ID:???
11. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
12. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
13. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている
14. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならうまくPHPにうまく関連させて質問する
15. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
16. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
17. strip_tags()で複数のタグを削除したい
 → strip_tags($html, '<script><style><a><p>'); // htmlspecialchars()も検討すべし
18. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり

あと他に最近よく見かけるのが、ヒアドキュメント系とAU系なんだけど、どう書いていいかよくわからなかったので保留。
つーかケイタイサイト扱ったことないからAUだとどうだとかよくわからん。
ちょっと前にimap系の質問もいくつかあった気がするけどけっこう回答が出てないこともあったかも。
俺もよくわからない。
923921:2006/03/20(月) 16:25:41 ID:???
やべ、strip_tags勘違いしてた orz
訂正です

17. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
924nobodyさん:2006/03/20(月) 16:38:30 ID:???
auの質問が多くてもFAQにできるほど定型の回答は無いと思う。
925nobodyさん:2006/03/20(月) 17:08:41 ID:???
>>921
これ後半の項目がコア過ぎないか?
926nobodyさん:2006/03/20(月) 17:10:40 ID:???
>17. strip_tags()で複数のタグを削除したい
 → strip_tags($html, '<script><style><a><p>'); // htmlspecialchars()も検討すべし

間違ってね?
927nobodyさん:2006/03/20(月) 17:37:13 ID:aQx/7UBc
今まで一人しかユーザーが居なくて一人ですべてを管理していたアプリがあるのですが、
管理責任者はすべてのデータを管理し、ほかの管理者はユーザーIDによって担当の
DBを拾い出して管理するという仕組みに変更することになりました。
(ログインするときのユーザー名が管理するDBのIDと同じになると言う設計です)
今までは、ログインすると管理題目一覧が出て、管理題目を選択すると、管理題目詳細に
飛ぶ仕組みでした。
今度は管理責任者は従来どおりなのですが、管理者はログインした時点で管理題目一覧を
飛ばして、管理題目詳細へ飛ぶようにしたいと思っています。
しかし、管理責任者は選択するとき、管理題目をクリックするので、linkラベルを使って飛ばせ
ますが、管理者はログインしたら何もクリック等せずに管理画面詳細に飛ばさなくてはならない
ので、記述の方法で行き詰っています。
if($_POST['kanrisikaku']!='yes'){
//userid.phpに遷移する<この処理の書き方が分からない。
}
useridにあたる部分の生成方法は分かるのですが、分かっているPHPファイルを読ませる方法が
分かりません。
どなたか御教授ください。 お願いします。
928921:2006/03/20(月) 17:41:43 ID:???
コメントありがと

>>924
そうなのか・・・

>>925
コア過ぎるかな?

>>926
スマソ。>>923で訂正しました。
929nobodyさん:2006/03/20(月) 17:50:28 ID:???
>>927
・include 'userid.php'; で読み込む http://php.net/include
・header("Location: $url"); でリダイレクトする http://php.net/header
お好きな方で。
930926:2006/03/20(月) 17:50:57 ID:???
>>928
スマソ。>>923まったく見てなかったわ。
931nobodyさん:2006/03/20(月) 18:38:39 ID:???
一昨日辺りからphpを勉強し始めた者で、計算プログラムを作っているのですが、
(350+x)/100 の様な ()で計算の順番を区切るにはどのようにすればいいでしょうか?
普通にやると当然の如く 350 + (x /100)←の順番で計算されてしまいます。
932nobodyさん:2006/03/20(月) 18:40:33 ID:???
なんか文章おかしいですね...
933nobodyさん:2006/03/20(月) 19:02:16 ID:???
>>931
まずはうまくいかないコードと結果を書いてみ
934nobodyさん:2006/03/20(月) 19:18:00 ID:???
<html>
<head>
</head>
<body>
計算プログラム<br>
<form action="test.php">
テストA:<input type="text" name="testa"><br>
テストB:<input type="text" name="testb"><br>
テストC:<input type="text" name="testc"><br>
<input type="submit" name="bottun1" value="入力">
<input type="reset" name="bottun2" value="リセット">
</form>
<?php
$a = $testa;
$b = $testb;
$c = $testc;
$x = 5;
$z = 100;
print("<br>");
print("計算結果:".( $a * $x + $b / $z * $c )."<br>");
?>
</body>
</html>

ちょっと新しく作っていたら今度は表示されなく・・・。
この同じページに計算結果を表示したいんですけどうまくいきませんな・・・。
print("計算結果:".( $a * $x + $b / $z * $c )."<br>");
の部分を実際の検索方法は ( $a * $x + $b )/ $z * $c こんな感じにしたいんですよ・・・。
935nobodyさん:2006/03/20(月) 19:49:02 ID:???
>>934
まずは $testa がきちんと取得出来ているかprintでもしてみなされ
936nobodyさん:2006/03/20(月) 19:51:53 ID:???
>>934
>>935が指摘している通り、まずは$aを表示してみる。
それが出来ればあとは簡単。自分で答え書いてるじゃない
937nobodyさん:2006/03/20(月) 20:43:08 ID:???
>>934
> print("計算結果:".( $a * $x + $b / $z * $c )."<br>");
> の部分を実際の検索方法は ( $a * $x + $b )/ $z * $c こんな感じにしたいんですよ・・・。
ならそのまんま
> print("計算結果:".( ($a * $x + $b) / $z * $c )."<br>");
って書けばいいじゃない。
938nobodyさん:2006/03/20(月) 20:50:51 ID:???
学校の宿題もいいけど、自分で考えて試してから聞いて欲しいと思う今日この頃
939nobodyさん:2006/03/20(月) 21:12:23 ID:???
春の風物詩
940nobodyさん:2006/03/20(月) 21:15:47 ID:???
テンプレFAQに
19.学校の宿題を教えてください
 →くだらない質問スレで歓迎します
って入れとくか。
941nobodyさん:2006/03/20(月) 21:24:23 ID:???
くだ質でもイラネ
942nobodyさん:2006/03/20(月) 21:30:58 ID:???
>>921
一時期多かった質問に
「PHPからPOSTリクエストしたい」ってのがあったね
A:fsockでコネクション張るかPEAR使う


で良いんだっけ?
943nobodyさん:2006/03/20(月) 23:17:05 ID:???
何で学校の宿題を他人に丸投げするか不思議でしょうがない。

お前これやっとけよ、と恐喝してるのと結果を見たら変わりが無い。
944nobodyさん:2006/03/20(月) 23:46:50 ID:???
>>942
あとcURL。まあ環境によっては使えなかったりするので
fsock、もしくは内部的にそれを利用したPEARのHTTP_REQUESTクラスでOK
945nobodyさん:2006/03/21(火) 00:04:26 ID:???
wikiなら管理人任せにしないで弄ればいいんじゃね?

宿題スレと分離汁!
946nobodyさん:2006/03/21(火) 01:14:46 ID:???
宿題はこちら
http://pc8.2ch.net/test/read.cgi/php/1139746974/

ってことでどうかね。
947nobodyさん:2006/03/21(火) 03:49:46 ID:???
>>942
そういやそうだったかも。回答としては8.と内容かぶるから、

PHPから外部にPOSTリクエストしたい
→ 8.を参照

でいいかも。
948nobodyさん:2006/03/21(火) 04:05:43 ID:???
>>945
べつに管理人任せなわけじゃなくて、そもそも現状ではwiki欲しいと思わないからね。
管理人かその同志たちで盛り上げて内容を充実させれば人も寄り付き始めるんじゃないの?
949nobodyさん:2006/03/21(火) 04:22:52 ID:???
あのwikiって情報量少ないんだよ。
回答も一行くらいしかないし、わざわざwiki化してる意味がない
950nobodyさん:2006/03/21(火) 05:00:28 ID:???
>>922
日本語がおかしい

>14. SQLの質問はどこで?
> → データベース板に誘導されるのが嫌ならうまくPHPにうまく関連させて質問する
951nobodyさん:2006/03/21(火) 09:37:08 ID:???
盛り上げて内容を充実させるのは、その情報量少ないと感じるおまいらなんだが。
普通のHTMLだとそこらが管理者任せに成って、困るからおまいらが好きなように弄れると簡単に充実させられるねってのがwiki化してる最大の意味。
おまいらが弄らないなら、わざわざ荒らされやすいwikiにしてる意味ないじゃん。

常に正解を求めるという短絡的な教育政策の成果ですか?
952nobodyさん:2006/03/21(火) 09:51:35 ID:???
>>951
だーかーらー、そもそもwikiなんていらないの。
盛り上がらないなら盛り上がらないで全然構わない。

ただ、いまだに執拗に宣伝しにくる人(人たち?)がいるから、wiki推奨派がもうちょっと盛り上げる努力をすればいいのに、ってだけの話。
俺はさびれてるwikiで一人で黙々と貢献するほどお人好しじゃないし、ほかの奴らもだいたい同じだと思ってる。
(現にwikiが全く更新されないのが何よりの証拠)

だから管理人が盛り上げれば?って結論ですよ。
953nobodyさん:2006/03/21(火) 09:58:46 ID:???
>>951
なにその他力本願みたいな意見
954nobodyさん:2006/03/21(火) 10:02:37 ID:???
オープンソースプロジェクトだって一緒。
作者がいいものを作るためにひたむきに努力しているのが周囲に伝われば自然と人が集まってくる。
他力本願でオープンソースプロジェクトを立ち上げたって誰も手伝わない。
まあある程度の完成度に達しさえすれば途中で作者がやる気をなくしても別の人が引き継ぐってケースはあるけどね。(Mojaviがいい例)
それでも、wikiを「作りさえすれば自動的に誰かがどんどん更新してくれるシステム」だと思って立ち上げたなら大間違い。
955nobodyさん:2006/03/21(火) 10:24:58 ID:???
次スレ立てました
http://pc8.2ch.net/test/read.cgi/php/1142903954/

テンプレに関しては出来るだけ各氏を記述を盛り込んで
簡潔にわかりやすくまとめたつもりです。
誤植などあれば訂正してくださると幸いです
956Wiki編集するお(^ω^):2006/03/21(火) 10:42:14 ID:???
Wiki編集したいけど今の仕切り方が嫌いだお
957nobodyさん:2006/03/21(火) 11:20:06 ID:???
>>956
どうせ今はあってないようなものなんだし、好きにやっちゃったら。
むしろやって下さい(><)
俺もいじりたいけど、あんなに何もないとやる気がしない・・・。
958(^ω^):2006/03/21(火) 11:31:39 ID:8j/dzNuV
やるからには派手に消すお
YukiWikiしか使ったことがないから失敗したときのために、誰かバックアップしておいてくださいお
時間があく2時くらいから始めるお(^ω^)
959nobodyさん:2006/03/21(火) 11:32:47 ID:???
sage忘れスマソ(^ω^;)
960nobodyさん:2006/03/21(火) 11:47:39 ID:???
958に期待
961nobodyさん:2006/03/21(火) 11:48:34 ID:???
>>958
バックアップなんかいらんよ。丸ごと書きかえれ。
962(^ω^):2006/03/21(火) 12:09:50 ID:???
その前に、テンプレにあるけどprintって関数じゃないよね?
おいらの間違い?(^ω^;)
ttp://jp2.php.net/manual/ja/function.print.php
963nobodyさん:2006/03/21(火) 14:10:09 ID:???
>>962
値を返す点で関数のように振舞うってことじゃね?
でもマニュアルには「関数ではない」ってはっきり書いてあるからFAQはまずいね。
964nobodyさん:2006/03/21(火) 15:31:05 ID:???
どうでもいいけどPHPpediaよりPHPediaの方がよくね?
965nobodyさん:2006/03/21(火) 15:50:59 ID:???
ほんとどうでもいいな
966nobodyさん:2006/03/21(火) 17:39:29 ID:???
ピーエイチッッペディアでいいと思われ
967nobodyさん:2006/03/21(火) 17:46:58 ID:???
>>964
そっちのほうがいい
968nobodyさん:2006/03/21(火) 19:44:30 ID:???
>>962
printって後から適当に追加(PHP3からだっけ?)した命令なので
役割としても動作(関数ではないのに関数的動作)も中途半端だよね。
なんで関数にしてないんだろ。
969nobodyさん:2006/03/21(火) 20:40:11 ID:???
Perlに合わせようとしたから
970(^ω^):2006/03/22(水) 01:08:34 ID:???
ちょっとやりすぎかお?(^ω^;)
971nobodyさん:2006/03/22(水) 01:47:56 ID:???
>>(^ω^)
おつ〜いい感じじゃまいか
972nobodyさん:2006/03/22(水) 02:04:40 ID:???
perlは嫌いです
荒れさせて埋めようなんて思っていません
973nobodyさん:2006/03/22(水) 02:13:37 ID:???
言語としては好きでインタプリタだけ嫌いなんて酔狂な御仁だ
974nobodyさん:2006/03/22(水) 02:31:39 ID:???
インタプリタは重いからunkoです
975nobodyさん:2006/03/22(水) 07:16:18 ID:???
>>969
Perlのprint関数って値返すんだっけ?長い事Perlやってないからもう判らん。
似てると言えば,で複数パラメータ与えられるechoの方がPerlに近い感じがする。
printがechoのエイリアスで駄目だった理由はなんだろう。
976nobodyさん:2006/03/22(水) 07:22:19 ID:???
977nobodyさん:2006/03/22(水) 07:41:02 ID:???
あと、(^ω^)がwikiに書いてたけど、

func() or print "失敗したよ";

って書けるようにするってのが主目的な希ガス。
978nobodyさん:2006/03/22(水) 09:46:53 ID:???
>>977
その例なら普段はdieで済ましているからそうなのかな・・・と思ったら、
マニュアルのexitの項目に

$file = fopen ($filename, 'r')
or exit("unable to open file ($filename)");

という例があるな。もちろんexitは
>注意: この関数は実際には関数ではなく言語構造です。
979nobodyさん:2006/03/22(水) 15:23:31 ID:???
いや、orの後に書けるかどうかってのは、関数かどうかではなく値を返すかどうかだよ。
980nobodyさん:2006/03/22(水) 15:24:13 ID:???
そもそもwikiは無視してHTML書いてうpすればいいじゃん。
でそいつが責任もって管理する。

誰も管理しようとしないのに、wikiがどうのってケチ付けても前には進まないよ。
wiki弄るか、HTML書け。
981nobodyさん:2006/03/22(水) 15:32:06 ID:???
>>980
突然何の話?HTML書くって何を書くの?
982nobodyさん:2006/03/22(水) 15:40:40 ID:???
>>975
Perlのprintは単なる文字出力じゃなく、ファイルハンドル与えるfputs相当だから。
当然のように成功・失敗を値で返すわけですよ。
983nobodyさん:2006/03/22(水) 16:21:48 ID:???
>>981
ソースにきまってるだろうがああああああ!!!!
ブルドックブルドックブルドックブルドックウウウウ!!!!!!!!!
984nobodyさん:2006/03/22(水) 16:41:41 ID:???
>>980
ヒント 言い出しっぺの法則
985(^ω^):2006/03/22(水) 17:00:42 ID:???
>>979の注釈を追加したお
エラーメッセージをよまなったのはおいらのほうだったお(^ω^;)すまんこ
986nobodyさん:2006/03/22(水) 17:30:20 ID:???
おれ今から(^ω^)のことブルって呼ぶわ。
987nobodyさん:2006/03/22(水) 17:53:54 ID:???
  ∧  ∧
(*^ω^ *)
988nobodyさん:2006/03/22(水) 17:55:50 ID:ir0obJBH
wikiに過去スレうpしときました。

http://wiki.2chx.net/php/index.php?%B2%E1%B5%EE%A5%B9%A5%EC%A5%EA%A5%B9%A5%C8

全部あるかとおもったら、本スレpart27だけはなかった・・・ orz
誰か持ってる人いない?
989nobodyさん:2006/03/22(水) 18:10:45 ID:???
990nobodyさん:2006/03/22(水) 18:17:41 ID:???
>>989
thx!いただきます
991989:2006/03/22(水) 19:14:23 ID:???
>>990
去年のゴールデンウィーク中に落ちちゃったので977までしか保存できてません(連休中まで2ちゃんは見てないので)
他に専用ブラウザのdatが残っている人がいたらよろしくです
992nobodyさん:2006/03/22(水) 19:43:44 ID:???
次スレ誘導までオナニーでもしててください
993nobodyさん:2006/03/22(水) 20:58:27 ID:???
(;´Д`)ハァハァ
994nobodyさん:2006/03/22(水) 20:58:38 ID:???
(;´Д`)ハァハァ
995nobodyさん:2006/03/22(水) 20:58:44 ID:???
(;´Д`)ハァハァ
996nobodyさん:2006/03/22(水) 20:58:48 ID:???
(;´Д`)ハァハァ
997nobodyさん:2006/03/22(水) 20:59:06 ID:???
(;´Д`)ウッ
998nobodyさん:2006/03/22(水) 20:59:24 ID:???
(;´Д`)ハァー後はまかせた
999(^ω^):2006/03/22(水) 21:03:55 ID:???
(^ω^)
1000nobodyさん:2006/03/22(水) 21:05:11 ID:H3I7tLWs
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。