【PHP】くだらねぇ質問はここに書き込みやがれpart8
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2005/08/08(月) 01:18:55ID:54u1h4+Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
0002nobodyさん
2005/08/08(月) 01:21:35ID:???0003nobodyさん
2005/08/08(月) 01:25:02ID:???基本構文のところに書いてある。
ただPHPの文法についての記述は全体に弱いね。
リファレンスだからだと思うけど
0004951
2005/08/08(月) 01:29:12ID:???$で始まらない変数ってあるんすか?
http://www.php.net/manual/ja/language.variables.php
0005nobodyさん
2005/08/08(月) 01:41:56ID:???libcurl.so.2
ってどこでDLできますか?
またはrpmのパッケージ名を教えて下さい
ついでにもひとつ、rpmfind.netで「libcurl.so.2」でサーチした時に
希望のディストリが表示されなかった場合、例えばRed Hat Enterprise ES2.1用が欲しいのに
RH9とか8とか7とか近そうなものがあった場合、代替えって効くもんなのでしょうか?
0006前スレ994
2005/08/08(月) 02:30:42ID:???そんなところに書いてたのか。索引で&調べたらでてこなかった('A`)
ありがとー
他の言語の経験はあるんだけど、どこまで同じで、どこから違うのか
イマイチ感覚がつかめないっす
0007nobodyさん
2005/08/08(月) 05:29:57ID:???そのディストリのcurlのパッケージにあるでしょ。
devel(はないか)とか別に分けてある可能性はないわけでもないが。
libcurl.so.1とかlibcurl.so.3とかかもね。
>代替えって効くもん
Win3.1のソフトが全部Win95/98/Meで動いたか?
Win95のソフトが全部WinXPで動いたか?
答え:ものによる
0008nobodyさん
2005/08/08(月) 09:42:49ID:???といように宣言と同時に初期化ってできないですか?
また大規模なサイトを作るときはglobal変数は使っては
あまりよろしくないとどこかのサイトで言ってたけどreally?
0009nobodyさん
2005/08/08(月) 09:50:38ID:???紹介して下さると助かりますです
0010nobodyさん
2005/08/08(月) 10:19:48ID:???00119
2005/08/08(月) 10:33:27ID:???http://phpspot.net/php/pgSimpleXML.html
等は見つけていて試しているのですが真っ白なページしか表示されません。
----------------------------------------
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
print_r($xml); // 配列を出力してみる。
foreach ($xml->item as $item) {
$rss_title = $item->title; // item/title
$rss_item = $item->link; // item/link
$rss_desc = $item->description;// item/description
}
print $rss_title;
----------------------------------------
としてみたんですが間違っている箇所を指摘下さると助かります。
0012nobodyさん
2005/08/08(月) 10:47:27ID:???コードは間違ってないよ。PHP5.0.4で実際に動かしてみたけど大丈夫。
先頭に以下を入れて実行してみて何かエラーメッセージは表示されない?
ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting(E_ALL);
0013nobodyさん
2005/08/08(月) 11:09:29ID:???ini_set('display_errors', true);
ini_set('display_startup_errors', true);
error_reporting(E_ALL);
上記コードを加えてみましたが、相変わらず真っ白です。
PHP5ではエラー表示が標準では出ないのでしょうか。
コンパイルオプションの問題かな・・。
ちなみに
http://phpspot.net/php/pg%8AO%95%94%82q%82r%82r%82%F0%93%C7%82%DD%8D%9E%82%DD.html
のコードでは問題なく動きました。
しかし自分でいじるならsimpleXMLのほうがコードが短くなりそうですし、習得したいのですが・・。
0015nobodyさん
2005/08/08(月) 12:05:40ID:uL829/sh<FORM method='post' action='{$_SERVER["PHP_SELF"]}?proc=result'>
というフォームを作ってsubmitボタンから飛ぶと期待通りファイル名に?proc=resultがつくのに
<FORM method='get' action='{$_SERVER["PHP_SELF"]}?proc=result'>
とすると?proc=resultがつかない・・・。
postをgetにするだけで渡されるURLが変わってしまうのはなぜでしょう?
0016nobodyさん
2005/08/08(月) 12:25:54ID:???print や echo を使って出力する時の話だよね?
getの時は、<form 〜action='自分自身のファイル名'> だけが出力されるってこと?
んな筈ないんだけどなぁ。もう一回確認してみ。
001715
2005/08/08(月) 12:32:23ID:???それが、出力されたソースを見てみると両方とも確かにURL?proc=resultとなってるんですよ。
なんだけど、postの場合はproc=resultを渡された処理が行われているのに
getだと元のフォームがそのまま表示されてしまうんです。
URLを見てみるとproc=resultがなく、入力した変数と値のみがパラメータとしてついている状態です。
なんでだろ?
0018nobodyさん
2005/08/08(月) 12:34:55ID:???print_rで確認しる
0019nobodyさん
2005/08/08(月) 12:35:13ID:nwBW+BrYブラウザに聞けや
0020nobodyさん
2005/08/08(月) 12:39:09ID:???postで?proc=resultを付けている時点でアイタタなソースなんだが。
以下でやって味噌。
<FORM method='get' action='{$_SERVER["PHP_SELF"]}'>
<INPUT TYPE='hidden' NAME='proc' VALUE='result'>
<INPUT TYPE='submit' VALUE='送信'>
</FORM>
002116
2005/08/08(月) 12:51:09ID:???これを試してみ。procの分岐条件に問題があると思われ。
<?php
print_r($_GET);
print("<BR>");
print_r($_POST);
echo "<FORM method='post' action='{$_SERVER["PHP_SELF"]}?get_var=get_var'>"
?>
<input type="hidden" name="post_var" value="post_var">
<INPUT TYPE='submit' VALUE='送信'>
</FORM>
URLにひっつけた分は$_GETに入り、hiddenの方は$_POSTに入る。
0022nobodyさん
2005/08/08(月) 13:08:08ID:???$_GET[hoge]もしくは$_REQUEST[hoge]
002315
2005/08/08(月) 13:10:03ID:???もともとGETで作るつもりで?proc=resultを付けていたのですが、
うまくいかないので試しにPOSTでもやってみたということです。
<INPUT type='hidden' name='proc' value='result'>でうまくいくことも確認済みです。
FORMでactionを指定する際にGETだとパラメータをつけられないのかが気になっているだけなので・・・。
入力フォームにprint_r($_GET)を書いたところ、submitを押した後に$_GETの内容が表示されましたorz。
action='ファイル名?proc=result'でもダメって・・・ナンダソリャ。
>>21を試してみたところ$_GETにはget_var、$_POSTにはpost_varがちゃんと入ってます。
で、次に>>21をmethod='get'にして試したところ、$_GETには[post_var] => post_varのみが表示されました。
・・・もしかしてmethod='get'のときはフォーム内で指定した変数・値だけしか渡されない?
actionでURLにつけたパラメータは$_GETには格納されなかったりするのでしょうか?
00249
2005/08/08(月) 13:11:37ID:???最終的には
+++++++++++++++++++++++
<?php
ini_set('display_errors', true);ini_set('display_startup_errors', true);
error_reporting(E_ALL);
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
foreach ($xml->item as $item) {
$rss_title = $item->title; // item/title
$rss_item = $item->link; // item/link
$rss_desc = $item->description;// item/description
print $rss_title;
}
?>
++++++++++++++++++++++++
としてみましたが相変わらず真っ白です・・
このスクリプトのあったページに移動して質問してみます
ありがとうございました
0025nobodyさん
2005/08/08(月) 13:18:12ID:???あなたの日本語良くわからないけど
form だったら hidden で
a href だったら クエリーストリングで
って、ちゃんとやった方がいいんじゃないの?
パラメータ組み立てる関数とか作っとけば、
別に値追加しようが削除しようが手間にならないし。
0026nobodyさん
2005/08/08(月) 13:20:17ID:???0027nobodyさん
2005/08/08(月) 15:07:50ID:???0028nobodyさん
2005/08/08(月) 15:11:11ID:???0029nobodyさん
2005/08/08(月) 15:15:22ID:???シンプルな方法ありませんか?
0030nobodyさん
2005/08/08(月) 15:17:56ID:???$path_parts = pathinfo('aaa.jpg');
$path_parts['basename']の中身はaaa
0032nobodyさん
2005/08/08(月) 15:20:27ID:???0033nobodyさん
2005/08/08(月) 15:46:32ID:???$path_parts = pathinfo('aaa.jpg');
$path_parts['basename']の中身はaaa.jpg
0035nobodyさん
2005/08/08(月) 15:58:22ID:???1.hoge.php内でhoge2.phpをインクルードした後の処理も中断されますか?
2.hoge2.phpの処理が中断されるだけで、hoge.phpの続きの処理は実行されますか?
0036nobodyさん
2005/08/08(月) 16:11:01ID:???質問内容の 1 と 2 は同じ事を言っているんではないか?
--- hoge1.php ---
<?php
echo 'hoge1 start<br>';
include('hoge2.php');
echo 'やってみたら判るだろ<br>';
?>
--- hoge2.php ---
<?php
echo 'hoge2 start<br>';
echo 'hoge2 exit<br>';
exit;
?>
00379
2005/08/08(月) 16:15:08ID:???//------------------------------------
<?php
$xml = simplexml_load_file("http://www3.asahi.com/rss/index.rdf");
print_r($xml); // 配列を出力してみる。
print "<br><br>";
$rss = $xml->item[0]->title;
print $rss;
?>
//------------------------------------
で個別の値を取り出すことは出来ました。
foreachの使い方が適切じゃないような気がする・・
でも他の人は動いてるみたいだし・・
003835
2005/08/08(月) 16:38:15ID:???挿入されると考えればいいようですね。
どうもありがとうございました。
0039nobodyさん
2005/08/08(月) 21:46:26ID:yiUBO5QJ0040nobodyさん
2005/08/08(月) 21:47:28ID:???0041nobodyさん
2005/08/08(月) 21:54:40ID:???無理。やりたければ、参照渡しされた引数に値を入れるか配列を返すかぐらいかな。
function sub1(&$result1, &$result2) {
$result1 = 1;
$result2 = 2;
}
function sub2() {
$array['result1'] = 1;
$array['result2'] = 2;
return ($array);
}
sub1($result1, $result2);
echo 'sub1 result<br>';
echo $result1.'<br>';
echo $result2.'<br>';
$array = sub2();
echo 'sub2 result<br>';
echo $array['result1'].'<br>';
echo $array['result2'].'<br>';
0043nobodyさん
2005/08/09(火) 02:34:15ID:ZFB/xAI3といように宣言と同時に初期化ってできないですか?
また大規模なサイトを作るときはglobal変数は使っては
あまりよろしくないとどこかのサイトで言ってたけどreally?
0044nobodyさん
2005/08/09(火) 04:21:50ID:+MEETmeS004543
2005/08/09(火) 05:25:36ID:???メインファイルからユーザー名など書かれた設定を呼び出そうと
していました。その時にglobalで定義すれば楽なのかなーと
思っていてました・・・
defineで設定するか、関数を用意してそれを呼び出すのが
よいとですかね?
0046nobodyさん
2005/08/09(火) 06:00:03ID:???0047nobodyさん
2005/08/09(火) 10:28:30ID:???定数はスカラーデータしか定義できないから、
設定ファイルで連想配列とか使った方がわかりやすい場合は
global ってのもありだと思うんだけど、識者の方どうですか?
004843
2005/08/09(火) 10:47:50ID:???情報をphpファイルに渡すとき、情報を渡されたphpファイルに
DBにコネクトしに行くユーザー名、DB接続関数などを書いておくのが
効率がいいのか、
もしくはDB関連の関数を格納したphpファイル、ユーザー名など
書かれた設定ファイルを用意して、それを呼んできてやるほうが
効率がいいんでしょうか?
0049nobodyさん
2005/08/09(火) 11:08:07ID:???この辺全部インスタンスをいちいち引数で参照私するのもわずらわしいので、グローバルな変数として
CもしくはMのクラスメソッド内で使っているのだが、globalにせん方がいいのだろうか?
0050nobodyさん
2005/08/09(火) 11:08:20ID:???厳密に言うと別ファイルをincludeする必要がない分、前者の方が実行効率は良い。
微々たるものだろうけど。
でも普通は後者。理由は考えて味噌。
ところで今回の質問も含めて、質問のレベルと
>また大規模なサイトを作るときは...
の一文が激しくマッチしないんだが。。。
バカにしているんぢゃなくてオジさんは心配だよ。
0051nobodyさん
2005/08/09(火) 11:15:49ID:???>>41は難しく書いてあるけど、これでいいからね。
function sub() {
$a = 1;
$b = 2;
return array($a,$b);
}
0052nobodyさん
2005/08/09(火) 11:31:44ID:???$array['result1'] = 1;
$array['result2'] = 2;
return ($array);
}
と
function sub() {
$a = 1;
$b = 2;
return array($a,$b);
}
では、まったく同じ処理ではないだろうに。
後者で充分な場合もあるし、前者のようにキーがあったほうが使いやすい場合もあるし。
>>51が「これでいいからね。」と断定する理由はなんぢゃろな。
0054nobodyさん
2005/08/09(火) 11:52:38ID:???$a[1] = "2,けこさ,1";
$a[2] = "3,かきく,2";
とある時、カンマで分けてからそれによって配列をソートしたいんだけどどうしたらいいでしょう?
実行結果
・カンマ1個目まででソート
$a[0] = "1,あいう,3";
$a[1] = "2,けこさ,1";
$a[2] = "3,かきく,2";
・カンマ1個目〜2個目まででソート
$a[0] = "1,あいう,3";
$a[1] = "3,かきく,2";
$a[2] = "2,けこさ,1";
・カンマ2個目〜3個目まででソート
$a[0] = "2,けこさ,1";
$a[1] = "3,かきく,2";
$a[2] = "1,あいう,3";
こんな説明で意味わかりますかね?ヒントか、こうしたらいい、みたいのだけでもいいのでお願いします。
0056nobodyさん
2005/08/09(火) 12:51:36ID:???「カンマ2個目〜3個目まででソート」という表現が理解しづらいのだが。
求める結果を見る限り、カンマで区切られたフィールドの1〜3番目のどれかでソートしたい、でいい?
であれば、usort を使って、自前の比較関数内で
explode で分解、指定のフィールド番号の値を取得、取得した値を比較
すればいいのでは。
取得するフィールド番号はグローバル変数にでも入れるしかないかな。
0057nobodyさん
2005/08/09(火) 13:17:08ID:???0058nobodyさん
2005/08/09(火) 13:53:25ID:???print '<?php print \"PHP\"; ?>';
?>
『<?php print "PHP"; ?>』を表示させたいのですがうまくいきません。
どうすればいいですか?
0059nobodyさん
2005/08/09(火) 13:58:06ID:???0062nobodyさん
2005/08/09(火) 14:36:18ID:???0064nobodyさん
2005/08/09(火) 16:56:32ID:???switch($mode){
case '$data->Name': //一応仮に書いてますがこれじゃダメでした
$data->Name();
break;
default:
break;
}
//ここは別のユーザー関数
while($data = mysql_fetch_object($GLOBALS["dbexe"])) {
print " <TR>\n";
print " <TD><a href=\"$script?mode=$data->Name\">$data->Name</a></TD>\n";
print " <TD>$data->date</TD>\n";
print " <TD>$data->time</TD>\n";
print " </TR>\n";
}
function $data->Name () {
〜〜〜〜〜〜
}
こんな感じの
while文で取ってきた$data->Nameを元にリンクを作ってそこに飛ぶと$data->Nameで取ってきた名前だけの物を表示させようとしてるのですが、
while文で回してるためリンクは作れても$data->Nameが変わっていくのでちゃんと変数を渡せません。
$data->Nameは100種類くらいあってスイッチ文に100個ズラズラ名前を並べるのもさすがにメンド臭いのですが、どうやったら解決できますかね?
006554
2005/08/09(火) 17:01:23ID:???レスありがとうございます。言いたいことは>>57のとおりです。
やっぱり>>57みたいな方法しかないですよね。なんかスマートにできないかなーと思ったもので。ありがとうござます。
0068nobodyさん
2005/08/09(火) 17:10:27ID:???やりたい事はこういうことかな
function hyouji($mode) {
echo $mode;
}
if (!empty($_GET['mode'])) hyouji($_GET['mode']);
006954
2005/08/09(火) 17:36:54ID:???0070nobodyさん
2005/08/09(火) 17:38:17ID:???もうちょっときれいに書いてもらいたいね。
0071nobodyさん
2005/08/09(火) 21:39:57ID:KNgHkL21http://nadsat.net/music/
このサイトのようにiTMSとの連携はどのようにすればよいのでしょうか?
http://phobos.apple.com/WebObjects/MZSearch.woa/wa/MRSS/rssGeneratorInput
でRSSを作っておいてそれを使ったものらしいのですが・・・
0072nobodyさん
2005/08/09(火) 21:41:46ID:???http://pc8.2ch.net/test/read.cgi/hp/1122350593/
897 Name_Not_Found sage 2005/08/09(火) 21:32:38 ID:???
>>895
phpを使ってるみたいだね
899 Name_Not_Found sage 2005/08/09(火) 21:35:26 ID:???
>>897
ありがとうございます。
PHPのスレイッテキマ。
900 Name_Not_Found sage 2005/08/09(火) 21:40:22 ID:???
>>899 迷惑くるな!!
0073nobodyさん
2005/08/09(火) 21:43:30ID:KNgHkL21質問スレじゃないの?
0074nobodyさん
2005/08/09(火) 22:18:54ID:???0075nobodyさん
2005/08/09(火) 22:52:24ID:KNgHkL21詳しく。
0076nobodyさん
2005/08/09(火) 23:00:13ID:???自分でやれや
007777
2005/08/10(水) 00:18:04ID:Yaj8EMvt1週間分のシフト表を追加するスクリプトを作っているのですが、
すでにMySQLのテーブルは用意してあり、サンプルデータも入れてあります。
そのデータから指定日(曜日)のシフト表を画像で出力する.phpも作成済みで、動作も問題ないようです。
あとは新規登録用の.phpを用意するだけなのですが、
入力する情報としては「時間」「作業種類」「場所」の3種類で1日10〜30件ほどで、
1週間分の情報を1度にブラウザで入力させるとなるとかなり長いページになってしまいそうなのですが、
以下どちらのやり方を選択すべきでしょうか?
1. いろいろとラクだから1度に全部入力させてもいい
2. やはり1日ずつ入力させたほうがよい
007877続き
2005/08/10(水) 00:22:52ID:Yaj8EMvt(途中で入力をやめたときにそれまでに入力した分も反映されないようにしたい)、
複数ページに分けて入力した情報をまとめてDBへ登録する処理をするとき、
以下のどちらを選択すべきでしょうか?
2a. セッション変数に格納してDB登録時にセッション変数から削除する
2b. DBに仮登録用テーブルを作っておいて、最後にまとめてそのテーブルから本命のテーブルに登録する
セッション変数を利用するほうがお作法的にはいいような気がするのですが、
途中で入力をやめたときにそれまでにセッション変数に格納された分を削除できないため
無駄が生じるのではないかが心配です。
また、確認用の画像生成もすでに作成した画像生成用.phpを再利用できるのでラクなのもあります。
このままでは2bを選択しそうな勢いなのですが、セッション変数を利用すべき、
あるいは他のやり方を選択すべき理由がありましたら教えてください。
よろしくお願いします。
0079nobodyさん
2005/08/10(水) 00:29:47ID:???asort($fruits);のあとにreset($fruits);を実行しているのですが、
reset()はどういう効果があるのかが説明文を見てもよくわかりません。
ためしにasort()の説明にあるスクリプトからreset()を除いて実行しても同じ結果がでてくるようなのですが、
reset()は何のために必要なのでしょうか?
0080nobodyさん
2005/08/10(水) 00:33:46ID:???一日分ずつ入れて、途中でやめてもそれまでの入力を反映させたいっていうのであれば
その都度insertするのと変わらないんじゃ・・・
0081nobodyさん
2005/08/10(水) 00:37:27ID:???それまでの入力は反映させ「ない」ですね。
セッション使えるならセッション使った方がいいかと。
仮登録用のテーブルをどうしても使わないといけない理由
(バカ上司からの注文とか、よくありますね)が無ければ
プログラム側でカバー出来るのだから、無駄なテーブルは
作るべきではないと思う。
008264
2005/08/10(水) 07:46:52ID:???<a href=\"$script?mode=hoge&name=$data->Name\">$data->Name</a>
にしてスイッチ文にhogeだったらを追加したらいけました。
ありがとうございました。
0083nobodyさん
2005/08/10(水) 09:51:01ID:aRxpvYvh前にどこかで見たんですが、検索ワード忘れて見つけられません。
0084nobodyさん
2005/08/10(水) 09:54:46ID:???携帯だと画像出力しても.phpだとだめとかあるんで。
0086nobodyさん
2005/08/10(水) 10:03:38ID:???web鯖が何か書いてないけど、適当にapache2あたりで。
phpのマニュアルのインストールのページを見てみる。
どうやら、AddType application/x-httpd-php .php つーのをhttpd.confに付ければphpの関連付けができるらしい。
apacheのマニュアルを見てみる。addtypeの項目を探す。
AddType MIME-type extension [extension] ... となっているので、一行で複数の拡張子を設定できるようだ。
「コンテキスト(どこで設定できるか)」には、サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess とあるので、
ほとんどどこでも設定できるらしい。
「上書き」にFileInfoとあるので、htaccessを使う時にはそれを許可しておく必要があるようだ。
008884
2005/08/10(水) 10:19:43ID:???0089nobodyさん
2005/08/10(水) 10:35:20ID:???できますでしょうか?
require_once "Timer.php";//クラスのロード
$timer = new Benchmark_Timer;
$timer->start();
for($i=0;$i<20;){
$i++;
print "{$i}回目 計測中...<br>";
}
$timer->stop();
$profile = $timer->getProfiling();
echo "<h1>処理時間 {$profile[1][diff]}秒</h1>"; //結果表示
0090nobodyさん
2005/08/10(水) 10:53:01ID:???ページの内容をechoやprintで出力していると、一番最後に実行する処理時間の表示が必然的に一番下になってしまう。
それを一番最初に表示できるようにしたいってことかな?
いくつか方法があると思うけど、
・ページの内容を変数に保持していって、最後に出力する。
・ob_*を使ってバッファに溜め込んでおき、最後に出力する。
・テンプレートエンジンを使って、viewを独立させる。
0092nobodyさん
2005/08/10(水) 11:41:29ID:???0094nobodyさん
2005/08/10(水) 12:55:32ID:GX2p4p8d整数をそのまま負数にする関数ってありますでしょうか?
例えば、1を-1に。2を-2という風にです。調べたんですが、言葉が
悪いのか見つけることが出来ません。どうかお願い致します。
0096nobodyさん
2005/08/10(水) 13:07:32ID:pwCfG7c40098nobodyさん
2005/08/10(水) 13:29:00ID:???多少、print_rと形式が異なっても良ければ$output = var_export(対象変数, true);って方法もある。
0100nobodyさん
2005/08/10(水) 14:53:06ID:???質問者が曖昧だからなんとも言えんが、
それだと負の整数の場合、負数が取れないと思う。
でも考え方はそれだよな。
010194
2005/08/10(水) 15:03:46ID:???なりますね。助かりました。こんなことも気付かないなんて・・・
本当にありがとうございました。
0103nobodyさん
2005/08/10(水) 15:30:29ID:???0105nobodyさん
2005/08/10(水) 16:23:55ID:???$buf = _sendcmd("USER $user");
アンダスコアは何を意味しているのでしょうか?
0106105
2005/08/10(水) 16:38:52ID:???すんませんでした。
0109nobodyさん
2005/08/10(水) 18:05:04ID:ZswK9ZtxレッツPHPのメールチェッカーだな。
ttp://php.s3.to/net/pop.phps
0110nobodyさん
2005/08/10(水) 18:46:13ID:???0111nobodyさん
2005/08/10(水) 19:52:19ID:???意外と元コボラーが綺麗なソースを書く。
0112コボちゃん
2005/08/10(水) 19:55:25ID:???0113nobodyさん
2005/08/10(水) 19:59:13ID:???0114nobodyさん
2005/08/10(水) 20:36:36ID:Qi8Z/vaG送ったメールはどうなる?鯖の設定によって違うのかな…?
0115nobodyさん
2005/08/10(水) 20:49:10ID:???通常、何日間か再送を試みて規定の日数を過ぎても送信できなければ送信者にエラーメールが返る。
規定の日数が何日かは自分とこのSMTPサーバーの設定次第。
ちなみに相手のPOP3サーバー→相手のSMTPサーバーの間違い。
0116114
2005/08/10(水) 20:53:02ID:???>送信者にエラーメールが返る。
Form:あてにエラーメールが送られるって事ですか?
0117nobodyさん
2005/08/10(水) 21:04:08ID:???PHPに関係無い事にそろそろ気づいてくれないかな。
0118nobodyさん
2005/08/10(水) 22:35:04ID:???ファイルアップの際、重複しないファイル名をサーバで生成したいですが
いい方法はありますでしょうか。
0119nobodyさん
2005/08/10(水) 23:23:45ID:???time() で良くない?
0120nobodyさん
2005/08/10(水) 23:24:19ID:???・ mkdir で 200508 ディレクトリを作って、 chmod で(ry
→ セーフモードだと GID とやらが(ry
・ 200508.php を作って(ry
→ よくわからんが鯖だと生成できず
なーんか良い方法ない?
ちなみに XHTML1.1 吐きたいんだが。
0121nobodyさん
2005/08/10(水) 23:46:58ID:???0122nobodyさん
2005/08/10(水) 23:47:35ID:Rk78NnxSimg79GiKz.jpg
こんな感じで英字を交えてネーミングしたいです。
0124119
2005/08/11(木) 00:25:06ID:???あとから条件出すなバカ。
uniqid('img') . '.jpg';
0126nobodyさん
2005/08/11(木) 00:52:45ID:???PHP1.php
PHP2.php
Frame.html(PHP1.phpとPHP2.phpが含まれているフレーム)
というファイルがあり、Login.htmlに記述してあるリンクからFrameにジャンプするのですが、
Login.htmlからデータを渡す場合にFrame.htmlにはデータを渡せても、PHP1.phpやPHP2.phpにはデータを渡せません。
どうすればデータを渡せるのでしょうか?
0130nobodyさん
2005/08/11(木) 00:58:14ID:???frame.php
>127
ハゲド
0131120
2005/08/11(木) 01:00:51ID:???うは、スマソ。
・ mkdir で 200508 ってディレクトリ作って、 chmod で 11.dat を作る。
・ 200508.php を作って、 chmod で 11.dat を作る。
こんな感じ。
ってか、他に思い浮かばない。クオリティヒクス。
0132126
2005/08/11(木) 01:13:29ID:???Frame.htmlにジャンプした時にPHP2.phpにデータを渡したいです(たとえばフレーム内のPHP2.phpにログイン名を表示するとか)。
PHP2.php側では$_GET[]などでデータを取得したいと考えているのですがどうすればいいのでしょうか。
>>130さんの言っているとおり、Frame.htmlをFrame.phpに変えて何か記述すればデータを渡すことができるのでしょうか?
0133nobodyさん
2005/08/11(木) 01:20:27ID:???---Frame.php---
<?php
$data = $_GET['data'];
echo <<<EOD
。。。略
<frame src="PHP1.php">
<frame src="PHP2.php?data=${data}">
EOD;
?>
0134nobodyさん
2005/08/11(木) 01:40:21ID:???つーか、どうやってchmodでファイルを作るのか教わりたい。
fopenじゃないのか。その部分のスクリプト晒してみ?
0135120
2005/08/11(木) 01:55:47ID:???えーと、関数にしてる。
ってか、 act.st の汎用ライブラリを借りた。
// ファイル作成
function create_file( $File ){
if( file_exists( $File ) ){
return FALSE;
} else {
touch( $File );
chmod( $File , 0606 );
}
}
ローカルだとこれで出来ちまうんだが・・・。
0136nobodyさん
2005/08/11(木) 02:01:19ID:???0137120
2005/08/11(木) 02:08:57ID:???な、なんだってー(AA略
吊ってくる。
ディレクトリ・ファイルが作成出来ないのはセーフモードとか関係ない気がしてきた。
・・・鯖の設定とか?全くわからん。寝る。
答えてくれたヤシdクス。
0138134
2005/08/11(木) 02:10:46ID:???半分寝てるっていうか寝るわ。がんばれ。
// ファイル作成
function create_file( $File )
{
$crf = fopen($File, "a+");
if(!$crf) {
return FALSE;
}
return TRUE;
}
0139nobodyさん
2005/08/11(木) 03:11:54ID:???初歩的な質問で申し訳ないんですけど、
includeとクラスのインスタンス作って使うのとどう違うんでしょうか?
0140nobodyさん
2005/08/11(木) 03:16:19ID:???0141nobodyさん
2005/08/11(木) 03:23:37ID:???作りたい場所のルートディレクトリはパーミッション777にしてるんだよな?
もしくは、所有者がPHP実行者になってるのかどうか。
例えば、
/var/www/html/blog/200508/11.dat なら、
/var/www/html/blog ディレクトリが777か、
もしくは、PHPを実行するユーザーによって作成されたディレクトリである必要があるぞ。
0144nobodyさん
2005/08/11(木) 07:33:29ID:???それは違わなくなくなくなくないのだよ。
0145nobodyさん
2005/08/11(木) 08:17:49ID:V306QgIe0146nobodyさん
2005/08/11(木) 08:20:30ID:V306QgIe>>139
日本語とoopをもう少し勉強してきて下さいな。
0147nobodyさん
2005/08/11(木) 09:21:15ID:???質問が意味を成してないからなぁ。何が聞きたいのか全くわからない。
エスパー的回答をするとすれば…
include を用いるのと クラス を用いるのの違いは、
変数&関数のスコープが違う。
クラスファイルだってincludeして使うんですけど・・・
# requireでもいいけどさぁ
0148139
2005/08/11(木) 10:10:10ID:???スマソ
>>147
エスパーさん、ありがとう。なんとなくわかったかも。
Javaのimportとは役割が違うんですね
includeは呼び出し元ファイルに直接くっつけるイメージなのかな
0149nobodyさん
2005/08/11(木) 10:22:10ID:???0150nobodyさん
2005/08/11(木) 10:26:23ID:???include文のところにincludeしたファイルの内容が展開されると考えていいと思われ。
他の言語知ってるなら、まずマニュアル参照。
PHPのマニュアル程読みやすいマニュアルはあんまりないと思うよ。
0151nobodyさん
2005/08/11(木) 10:30:20ID:???まあいいや。本人納得したようだし。
0152nobodyさん
2005/08/11(木) 10:36:40ID:???include=内部エラーおきてもスキップして動き続ける
require=内部エラーおきたら警告出してとまる
くらいで
0153nobodyさん
2005/08/11(木) 10:40:33ID:???Newを宣言して呼び起こさないといけない。
includeは150のいうとおり、ソースファイルがくっつくって感じ。
使う上での違いをいえば、
インスタンスはNew宣言文が必要で
includeは不要。
0155nobodyさん
2005/08/11(木) 15:08:34ID:???を参考に下記のようにしたのですが、PHP 4.2.3では取得してprint_r($values);すると日本語が文字化けしてしまいます。
回避することは可能でしょうか?
// 外部RSSを簡単に読み込んで出力するルーチン
$RSSURL = "http://www3.asahi.com/rss/index.rdf";
$buff = "";$fp = fopen($RSSURL,"r");while ( !feof($fp) ) { $buff .= fgets($fp,4096);
}
fclose($fp);
// パーサ作成$parser = xml_parser_create();
// パーサオプションを指定
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
// パース実行、連想配列にパース結果代入
xml_parse_into_struct($parser,$buff,$values,$idx); // パーサ開放xml_parser_free($parser);
print_r($values); // 配列を出力してみる。
0156nobodyさん
2005/08/11(木) 15:26:26ID:???そのRSSがUTFみたいなので、とりあえずprint_r($values)の前に下記を入れてみてはどうだろう。
echo '<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8"></HEAD>';
0157モンモ
2005/08/11(木) 15:51:55ID:nF0gNBis編集することが出来ません。波形も、1分10秒までしか表示されていないのです。
どうすればいいのでしょうか?
0158nobodyさん
2005/08/11(木) 16:00:08ID:???0160nobodyさん
2005/08/11(木) 17:19:33ID:???ブラウザのエンコーディングを変えれば化けないで表示されるよね?
IEだったら
表示 → エンコード → 適当に色々と
上の方法で正常に表示されるのならば、
php.ini か httpd.conf か <META> か charset を適切に指定すればOK。
0161nobodyさん
2005/08/11(木) 18:40:18ID:???<font size=-1 color=#999999>total <?echo $total;?><br>
昨 <?echo $yesterday;?> 今 <?echo $today;?><br><br>
<? include("dcount.php"); ?>
<font size=-1 color=#999999>total <?echo $total;?><br>
昨 <?echo $yesterday;?> 今 <?echo $today;?><br>
--------------
のように同じものを2つ続けて書くとエラーになるのはなぜなんでしょうか?
0162nobodyさん
2005/08/11(木) 18:48:58ID:???0164161
2005/08/11(木) 19:13:31ID:???ttp://php.s3.to/counter/#dcount
ここのdcount.phpというアクセスカウンタを使っているのですが、
携帯とPCで別のカウントを取りたいと思い
dcount.php dcount_pc.php のように2つのphpを用意して
<? includeさせようとしたところ、
上段のphpは上手く表示されるのですが、下段が「Fatal error」というようなエラーが
サーバ内のパスと共に表示され、動作しません。
データファイルのパスなどの間違いはありません。
php内の$total $yesterday $today などの変数を書き替えれば良いのかと思いましたが、
やはり駄目でした。
同系統のphpを同一ページ内にincludeさせて表示させる事は不可能なのでしょうか?
0165nobodyさん
2005/08/11(木) 19:21:27ID:???0166nobodyさん
2005/08/11(木) 20:25:24ID:???>同系統のphpを同一ページ内にincludeさせて表示させる事は不可能なのでしょうか?
必ずしも不可能ではなくてincludeするファイルの内容次第。
dcount.phpの中でouthtmlという関数が定義されているんで、2回includeすると
この関数が2重定義になってしまうためエラーになっていると思われ。
これを修正すれば。。。という話の前に今回の場合、2回includeする必要はないのでは?
2つ目のincludeを削除して希望通りに動作するはず。
0168nobodyさん
2005/08/11(木) 23:32:36ID:???以下のHTMLが利きません。
<input type="file" name="image">
(iモード、EZWEBともに)
このタグのように携帯電話内の画像を選択するような
ソースはないのでしょうか?
0169nobodyさん
2005/08/12(金) 00:20:43ID:???ここの「MINIりすと」みたいなPHPスクリプト探してるんですがありますか?
0170nobodyさん
2005/08/12(金) 00:21:21ID:???フォームの内容が直前の入力がすべて残っているようにするにはどうすればよいのでしょうか?
今まで<INPUT type='button' onclick='history.back()>のボタンで戻ったときは
直前の入力内容を覚えているものと思っていたのですが、
入力項目が多数あるページを作ってみたところsubmit直後に戻った際に
入力した内容が表示されない項目があったりするのに気づきました。
(初期値valueはしていません。)
必ず直前の入力内容を戻ったときに復元させるにはセッション変数などに格納し、
それを初期値として設定しておく等の処置が必要なのでしょうか?
0173nobodyさん
2005/08/12(金) 09:04:25ID:x1qvDSzz0174nobodyさん
2005/08/12(金) 09:13:03ID:???phpの関数には無いけど、pear( ttp://pear.php.net )のHTML_Table,やHTML_Table_Matrixでできるよ
0175nobodyさん
2005/08/12(金) 09:17:24ID:???そういう動きをしたいなら普通はsubmitされた先でセッション登録だと思う。
history.back() じゃないならhiddenでもいいよね。
#個人的にはhistory.back()を仕様になんかしない方がいいと思うけど
ちなみに、ブラウザバックで戻ったときに入力値を覚えてるのは、
ブラウザがそういうおせっかいをしているだけだと思う。
0178nobodyさん
2005/08/12(金) 11:05:18ID:h+1D0YJb>ちなみに、ブラウザバックで戻ったときに入力値を覚えてるのは、
>ブラウザがそういうおせっかいをしているだけだと思う。
これって昔から不思議に思ってた。どういう仕様なんだろう?
postした値がブラウザのキャッシュに残るのかな?
部分的に消えてたりするし。
話それてスマソ
0179155
2005/08/12(金) 13:46:38ID:???いえIEとfirefoxで日本語で使われそうなEUC,sJIS,JIS,utf-8,ISO-2022-jp,等を試しましたが文字化けしています。
0180170
2005/08/12(金) 16:24:28ID:???レスありがとうございます。
セッション変数を使う方向でいろいろ試してみます。
ところでhistory.back()を多用するのは問題があるのでしょうか?
0181nobodyさん
2005/08/12(金) 16:42:10ID:???よく考えると、history.back()したときは、
サーバーに処理がこないんじゃないか?
セッションにデータを埋め込もうがなにしようが。
あれ?セッション使うとhistory.back()効かなくならなかったっけ?
0182軟式PHP
2005/08/12(金) 17:24:33ID:???0183nobodyさん
2005/08/12(金) 17:26:22ID:???0184nobodyさん
2005/08/12(金) 17:43:29ID:???こんなんでどう?
$Month=8;
$Year=2005;
$Ts = mktime(0,0,0,$Month,1,$Year,-1);
$getsumatsu = date("t",$Ts);
0186170
2005/08/12(金) 20:14:21ID:???そういえばそうかも・・・。
history.back()ではなくlocation.href='input.php'でボタンを設置する必要があるようですね。
ブラウザの戻るボタンを使われたときは・・・シラネorz。
session_cache_limiterはprivate, must-revalidateに設定してるんですが、
正直session_cache_limiterの動作をあまり理解していないのでよくわかりません。
(POSTでデータを受け渡しするページで「戻る」ときの有効期限エラーを消すための方法としてどこかで見つけただけなので・・・。)
リファレンス本とか買えば細かく説明があるのかな・・・?
0187nobodyさん
2005/08/12(金) 21:09:25ID:???ググって見たですのがちょっと見つかりません。
例
http://www.stackasterisk.jp/tech/php/searchAction.do?cid=28#86
グレーのソースのコラムの部分
// 現在ログインしているユーザがアドミンかどうかを調べる。
$sql = "select is_admin from user_table where id=$sUID";
$is_admin = $db->getOneValue($sql);<<<ここに出てきてます
「->」とはどういう意味なんでしょうか?
0188nobodyさん
2005/08/12(金) 21:33:50ID:???マニュアルにあるはずだが・・・矢印演算子とか言ったかな
0189nobodyさん
2005/08/12(金) 21:55:21ID:???http://php.s3.to/man/language.oop5.static.html
この辺でしょうか?
なんだか、いきなり難し過ぎて全く理解不能です。
オブジェクト、クラス、インスタンス、その辺はいつになっても踏み込めないんですよ。
0190nobodyさん
2005/08/12(金) 22:08:47ID:???その辺詳しく説明してるHPとかないものだろうか。
0191nobodyさん
2005/08/12(金) 22:21:21ID:???ttp://www.php.net/manual/ja/language.oop.php
phpでオブジェクトを使った説明をしているサイトはあんまり無いんじゃないかなぁ。
「php オブジェクト」でググって地道に探すか、
phpから一旦離れて(言語に関係無く)純粋にオブジェクト指向を勉強するか、
pearあたりにゴロゴロ転がってるクラスで書かれたソースを見て見回るか。。
0192nobodyさん
2005/08/12(金) 22:30:09ID:???よく、タイ焼きの型とタイ焼きに例えて説明されることがあるけど判ったような気がする、
ぐらいで終わると思う。
こんな感じで自分でサンプルを書いて動かしながら勉強していくのがてっとり早いんぢゃないかな。
(ちなみにこのサンプルはあまりよろしくないんだけど)
PHP5でマシになったとはいえ、PHPのクラス機能は貧弱なので、あまりクラスのメリットは
実感としてわかないかもしれないけどね。
class MyClass {
var$MyName;
function SetName($name) {
$this->MyName = $name;
}
}
$instance1 = new MyClass;
$instance2 = new MyClass;
$instance1->SetName('インスタンス1');
$instance2->SetName('インスタンス2');
echo $instance1->MyName . '<br>';
echo $instance2->MyName . '<br>';
0193nobodyさん
2005/08/12(金) 22:56:03ID:???0194nobodyさん
2005/08/12(金) 23:21:14ID:???↓
色々調べる
↓
なんとなくわかったかも
↓
てきとーに使ってみるが、普通の関数とどう違う?
↓
もうちょい調べてみる
↓
なるほど便利じゃねーか!
↓
多重継承できないことを知る
↓
オブジェクト指向って結局面倒じゃね? ←今ここ
0196194
2005/08/12(金) 23:45:28ID:???オブジェクト指向とはなんぞやと、必死に理解しようとしてるんだよ
継承するメリットすら、あるのか判らなくなってきた
つまり、まだまだ理解できていないんだ、と思うのだ
0197nobodyさん
2005/08/12(金) 23:55:18ID:???PHPにおいて「0」と「--」って等しいことになってるんでしょうか?
ただハイフン2個並べたつもりがマイナスとマイナスってことになってんのかな?
if (0 == "--") print "kita-------------";
これでkita----が出力されるって・・・orz。
0198nobodyさん
2005/08/12(金) 23:56:21ID:???調べても画像に関してはGDというライブラリでの作画ばかりで
調べ方が悪いのでしょうか?
既存のpngファイルを表示したいだけなのですが・・・
0200nobodyさん
2005/08/12(金) 23:59:36ID:Dcm/2S4D一言で言うと「設計思想」。
コーディングは2次的なものだろ。
オブジェクト指向はスピードやメモリとトレードオフで保守の簡便さ、再利用性の向上を与える。
保守も再利用もする必要のない書き捨てコードをオブジェクト指向化するのは趣味の領域。
あ、PHPならまだそのレベルに達してないから無理すんなw
0201nobodyさん
2005/08/13(土) 00:06:57ID:???コーディングスピードが向上することもある
0204198
2005/08/13(土) 00:20:03ID:???画像扱ったことなくて
どうやってPHPでひょうじすんだべ、と。
それでまず画像だけ表示するのを作ろうと思ったんだが、
いきなり詰まってるのです。
0206nobodyさん
2005/08/13(土) 00:23:55ID:H8OS7Q3n変数を初期化するとすると、
↓のうち、どちらが良いでしょうか?
$var = NULL;
$var = "";
その他にいい初期化方法などあったら教えてください
0210198
2005/08/13(土) 00:46:40ID:???やっぱり直接出力しかない?
0211nobodyさん
2005/08/13(土) 00:50:23ID:???条件に応じてファイル名を変えたいとかだったら単純に
<img src="{$hoge}.png">
でいいような。
何がしたいんだ?
0212nobodyさん
2005/08/13(土) 00:51:51ID:???どういう事をやりたいのかよく分かんないけど、
1. htmlを動的にphpで出力 -> <img src="<?= $filename; ?>">
2. 静的htmlからphpで画像を出力 -> html <img src="image.php?file=〜">
image.phpの中で header('Content-type: image/png"); readfile($filename);
readfile部分は他のファイル関数でも可。
0214198
2005/08/13(土) 00:55:55ID:???読んで出力までする関数があるんですか
phpってすげえと思った
0216nobodyさん
2005/08/13(土) 01:57:59ID:???別にphpでなくても表示するだけならこんだけでできるぞ。
#!/bin/sh
echo "Content-Type: image/png"
echo
cat "/path/to/image.png"
まぁ、phpでも表示だけなら特別な関数を使わなくってもいいってこと。
0217nobodyさん
2005/08/13(土) 02:43:42ID:???0218nobodyさん
2005/08/13(土) 08:59:08ID:???不正なアクセスを防ぐべく、パスワードを一定回数以上間違えたら
そのIPアドレスからの接続を一定時間拒絶するような処理は可能でしょうか?
あるいはログインページの時点でセッションを開始しておき、
セッション変数に間違えた回数をカウントさせて、
上限を超えたらログインできなくさせる、というやり方でもできそうな気がするんですが、
ブラウザを終了させるだけでまたトライできるってのがどうも不安が・・・。
何かいい方法はないものでしょうか。
0219218
2005/08/13(土) 09:14:59ID:???1. ユーザー名・パスワードを入力フォームに入力
2. DBに照合し1件ヒットしたらログイン処理・それ以外ならログイン画面にリダイレクト
3. セッション開始・セッション変数にユーザー名を格納・トップページにリダイレクト
こんな感じです。
よろしくお願いします。
0220nobodyさん
2005/08/13(土) 09:28:36ID:???0221nobodyさん
2005/08/13(土) 09:29:08ID:???セッションはクライアント依存だから、信用できないクライアントが
前提ならそういう目的に使うべきじゃない。
サーバー側で bad list に期限付きのエントリを保存するとかしないと。
認証失敗のたびにIPアドレスを bad list に追加し、bad list に一定回数以上
出現するIPアドレスならばログイン拒否とか。
0222nobodyさん
2005/08/13(土) 11:19:58ID:???PHPってなんでこんなに速いの?
perlが遅くてとりあえずphp化したら同じ物を4つ動かしても(仕事で使う集計もの)それ以上に速い気がする
0224nobodyさん
2005/08/13(土) 13:37:45ID:???phpのバージョンをアップデートする時に
rpm -Fvh [filename]
のような記述をみかけましたがこの[filename]の箇所は既存の.rpmをかくのでしょうか?
それとも目的の新しいバージョンの.rpmでしょうか?
0226nobodyさん
2005/08/13(土) 13:48:02ID:???後者。質問する前にman rpmしような。
っていうかパッケージは入手済みなのか?
ともかくスレ違いだよ。
0227nobodyさん
2005/08/13(土) 15:06:43ID:???レスありがとうございました、rpmはこれからrpmfind.netでもいってこうかと。
スレちがいかなーと思いつつもphpのインスコネタだったんで…。誘導先は自宅鯖あたりですか?
0228nobodyさん
2005/08/13(土) 16:43:42ID:???ところが、もろもろの事情から先方の指定(先方がftpに入れちゃうとこ)で運用する事になった。
このままだと、結果的にphpのソースそのまま渡すのと同じことになっちまうんですが、こんなとき皆さんはどうしてますか?
もっとも、漏れのスパゲッティなソースなど誰が見てもわかるわけない、というか解る気も無くすけどなw
プログラムのコアの部分だけ、別ファイルにして、別の鯖に置いちゃうとかあり?
0229nobodyさん
2005/08/13(土) 17:01:37ID:???ソースを暗号化したいんですが、できますか?
仕事なので冷やかしの回答は遠慮願います。
って感じに質問しないと。
0232nobodyさん
2005/08/13(土) 17:30:26ID:???いや、そういう仕事してるわけじゃないから知らないけど、
パッケージのソフト買ってソースがついてきたことってないし。
0233nobodyさん
2005/08/13(土) 17:34:16ID:H8OS7Q3n0234nobodyさん
2005/08/13(土) 17:41:42ID:???0235nobodyさん
2005/08/13(土) 17:44:56ID:???製品とソースは別物だよ。
だから予め契約時にはソース納品ありかどうかをきちんと決めておく。
当然ソース納品の場合は見積もり金額が大きく変わってくる。
今回の>>228の場合はその辺の契約をきちんと交わしていなかったんだとすれば
泥沼化する可能性もあるね。担当者しだいだけど。
>>233
スパゲッティソースはトマトベースだろ
0236nobodyさん
2005/08/13(土) 17:49:18ID:???プログラムそのものを別鯖におく
先方のサーバのサイトから、リダイレクトして、自鯖のプログラムが
動作するようにする
Urlアドレスが変わるから、先方が嫌がるかもしれないけど
0237nobodyさん
2005/08/13(土) 17:58:28ID:js/pUsHiとあったとして、$stringの上位1ビットを削除したいんですけど、
どすれば良いんでしょう。
0238nobodyさん
2005/08/13(土) 18:06:13ID:???>>231
まぁ、その会社のために作ったには違いないけど、後々の修正やメンテ含め、今後の儲けにするハラもあったんで。
例えば、その会社と喧嘩した場合、うちと取引がなくなってもそのシステムは動き続けちゃうでしょ?
それは面白くない訳です。それで、よその会社が、システム運用を引き継いだりした日にゃ・・・もっとも、漏れの最強スパゲッティーソースが読めればの話。
>>235
先方も、別にそんなに深い考え(ソースを自分の手元に押さえたい)で、こういう事を言いだしたわけではないんですよ。
万一、プログラムに関する部分は、他の人が一文字でも手を入れたら一切サポートしないですよ。
>>236
自分の管理下の鯖に、システム置いて、客の鯖で、サブドメインつけて、それを自分のとこに飛ばしてもらうのもありかな。
でも最初に書いた「自分の管理下の鯖にコアの部分のphpを置いて、それを客鯖からinclude」ってのがよさそう。
0239nobodyさん
2005/08/13(土) 18:06:52ID:???0240nobodyさん
2005/08/13(土) 18:20:16ID:???5.12 → 0.12
18.3 → 0.3
0241nobodyさん
2005/08/13(土) 18:30:04ID:???客がだまされたと感じなければ別にいいと思うけど、
そういう客にトクにならない皮算用してると自分の知らないところで悪い噂が立ったりするよ。
前の開発会社が気に食わないからとかでシステム運用を引き継いだりすると、
たいていすっごい保守性が悪いコードなのはなぜだろうとよく考える。
保守コストがかさむとかの問題だろうか。
まぁ汚い方が再開発のいいきっかけになるから文句は言いません。
一回失敗しているところの方が何かとスムーズに話が出来るしね。
>>240
$a = 5.12;
echo $a - (int) $a;
とかでは?。べつに小数点以下を切り捨てる関数を使ってもいいけれど。
0242nobodyさん
2005/08/13(土) 22:14:23ID:UF4ziiZ+普通に切り捨てた数を引けばいいだろ。
くだらなすぎ。そういうスレかorz
0243nobodyさん
2005/08/14(日) 01:17:45ID:???サーバへアップする前に、ローカル環境にて開発・テストを行っています。
ローカル環境はWindowsにApache2を入れ、PHP・MySQLを入れています。
複数のPHPのバージョンを切り替えたいのですが、簡単な方法は無いでしょうか?
PHPのDLLやINIをWindowsディレクトリやシステムディレクトリに入れる事無く、
起動することが出来れば(たとえば環境変数の切り替えるだけとか)、いいなと思っているのですが、
何か良い方法ってありませんか?
0244nobodyさん
2005/08/14(日) 01:48:18ID:???XAMPPで5と4の切り替えが出来るけど
0245nobodyさん
2005/08/14(日) 02:20:17ID:???coLinuxやVMware/VirtualPC上にLAMP環境作るのが一番簡単じゃない?
0246237
2005/08/14(日) 02:39:25ID:???ありがとうございました。substr($res,1)でいけました!
何度も質問ばかりで恐縮なんですが、特定の文字列があり
任意の文字移行切り捨てたい場合、どすればいいんでしょうか?
例えば、HIJ移行を切り捨てたい場合
$string="abcdefgHIJklmn";
を、
$string="abcdefg";
としたいんです・・・。昨日から本読んでるですがどうしてもわから
ないです。
0247nobodyさん
2005/08/14(日) 03:11:27ID:???.*HIJ?
ちなみにphpのマニュアルは読んだ事ありますか?
http://www.php.net/manual/ja/
0248nobodyさん
2005/08/14(日) 03:33:48ID:???// 方法1 (今回みたいな単純なものはこれがお勧め)
$pos = strpos($string, 'HIJ');
if ($pos !== false) $string = substr($string, 0, $pos);
// 方法2
if (preg_match('/(.*?)HIJ/', $string, $matches)) $string = $matches[1];
// 方法3
$string = preg_replace('/HIJ.*/', '', $string);
まだまだイパーイあるよ
0249nobodyさん
2005/08/14(日) 08:57:06ID:???Zendとかその他の暗号化ツールを買って使うのが一般的な方法でないの?
価格は結構するけど。暗号化サービスだけ提供もされてる。ただこれも高価。
色々調べてみたら? 他のサーバからincludeは薦められん。
0251nobodyさん
2005/08/14(日) 10:31:53ID:???CGIでよければ
ttp://cubic9.com/Devel/PHP/%A5%D0%A1%BC%A5%B8%A5%E7%A5%F3%A4%CE%B0%E3%A4%A6PHP%A4%C7%A4%CE%C6%B0%BA%EE%B3%CE%C7%A7%A4%F2%B4%CA%C3%B1%A4%CB/
試してないけど。
0252nobodyさん
2005/08/14(日) 12:24:05ID:???参考になるかどうか判らないけど、漏れがやっている方法。ちょっと長くなるけど。
切り替えているのは PHP4.3.10 と PHP4.4.0 ね。
1)4.3.10 と 4.4.0 を別ディレクトリにインストール。
2)4.3.10 と 4.4.0 用の httpd.conf をそれぞれ httpd-4.3.10.conf と httpd-4.4.0.conf として作成して
LoadModule 行の php4apache2.dll のディレクトリを変更。
3) コマンドプロンプトを開いて Apache のサービスを2つ登録。
<Apacheディレクトリ>\bin\apache -k install -n "Apache2-PHP4.3.10" -f <Apacheディレクトリ>\conf\httpd-php4.3.10.conf
<Apacheディレクトリ>\bin\apache -k install -n "Apache2-PHP4.4.0" -f <Apacheディレクトリ>\conf\httpd-php4.4.0.conf
4) php.in と php4ts.dll を Windowsディレクトリにコピー。コピー時にそれぞれのバージョン用に名前を変更しておく。
php.ini → C:\Windows\php-4.3.10.ini、C:\Windows\php-4.4.0.ini
php4ts.dll → C:\Windows\System32\php4ts-4.3.10.dll、C:\Windows\System32\php4ts-4.4.0.dll
5) それぞれの起動用バッチファイルを作成。
--- apache2-php4.3.10.bat ---
net stop apache2-php4.3.10
net stop apache2-php4.4.0
copy /y c:\windows\php-4.3.10.ini c:\windows\php.ini
copy /y c:\windows\system32\php4ts-4.3.10.dll c:\windows\system32\php4ts.dll
net start apache2-php4.3.10
--- apache2-php4.4.0.bat ---
net stop apache2-php4.3.10
net stop apache2-php4.4.0
copy /y c:\windows\php-4.4.0.ini c:\windows\php.ini
copy /y c:\windows\system32\php4ts-4.4.0.dll c:\windows\system32\php4ts.dll
net start apache2-php4.4.0
apache2-php4.3.10.bat を実行すれば PHP4.3.10 で、apache2-php4.4.0.bat を実行すれば PHP4.4.0 で起動する。
0253nobodyさん
2005/08/14(日) 12:29:42ID:???俺も複数バージョンの切り替えって興味あるんだけど、
PHPのdllsやExtensionとかのDLLはクラスパスで通せば認識してくれるから、
問題はphp.iniとphp4apache2.dllの場所をどこかで指定して、
それを読み込ませればいいんだよな・・・
頭でわかっていても解決方法はわからん。
0254nobodyさん
2005/08/14(日) 12:41:42ID:???基本はポート番号でphpのバージョンを切り替える。
使いやすいように、mod_writeやmod_proxyを使って拡張子で各apacheへ振り分ける
フロントエンドのapacheをたてれば手軽さ倍増かと。
0255nobodyさん
2005/08/14(日) 12:54:20ID:???>245でいいじゃん?
実行環境がWindowsServerとかなのか?
0256nobodyさん
2005/08/14(日) 13:06:37ID:???>他のサーバからincludeは薦められん。
その理由とは?
また、そこらへんの事について言及した参考サイトなどあれば教えてください
0257nobodyさん
2005/08/14(日) 13:26:48ID:???鯖へアップする前の開発とテスト用。
coLinuxやVMWare/VirtualPCだとPHPのテストの為に、
複数のOSをHDDに入れなきゃいけない。(無駄が多い)
0258nobodyさん
2005/08/14(日) 14:17:05ID:???pop.phpの
if (!$original) $filename = time()."-".$filename;
}
をいじくればいいと思うのですが解る方教えてください。
0259nobodyさん
2005/08/14(日) 14:17:48ID:???◎
◎
○
○
○
○
○
このようなラジオボタンを作ることはできるのでしょうか?
一段目の二つ目のラジオボタンを選択すると、二段目の上から四つ目のラジオボタンも自動的にチェックされます。
0260nobodyさん
2005/08/14(日) 14:22:33ID:???写メールBBSとやらをググって探すのが面倒。ダウンロードして解凍して回答するのが面倒(クスクス)。
$filename = time()."-".$filename;
つーのは、この行以前に値が入っている$filenameという変数の先頭に、
time()で取得できるunixタイムスタンプと「-」という文字を連結し、
それを新しく$filenameの値とする事を意味する。
その部分でそういう処理をすることを望んでいるのかね?
0261nobodyさん
2005/08/14(日) 14:26:29ID:???PHPは鯖側で動作するので、
ラジオボタンを選択してsubmitボタンとかで鯖に送信し、
希望するチェック状態(<input type="radio" 〜 checked>でチェック状態になる)のhtmlを出力する。
クライアント側(ブラウザ)でやりたい場合は、JavaScriptを使う。
0263nobodyさん
2005/08/14(日) 16:51:44ID:???で$resultに結果を格納した後に、さらに$result1の結果を反映している状態で
mysql_query()を使って結果を出すことは可能なのでしょうか?
0264252
2005/08/14(日) 17:10:12ID:???PHP5 では php5ts.dll のコピーはしていないことに気付いて調べてみたら単に Apache モジュールと
同じディレクトリに置いておけば良かった模様。
また Apache の PHPIniDir ディレクティブで php.ini の置き場所を設定できることを発見したので先の方法を訂正。
>>253 さんの言うとおりスマートぢゃないのは変わらないけどね。また長くなって申し訳ない。
例として PHP4.3.10 を c:\php4.3.10、PHP4.4.0 を c:\php4.4.0 にインストールしたとする。
1)4.3.10 と 4.4.0 用の httpd.conf をそれぞれ httpd-4.3.10.conf と httpd-4.4.0.conf として作成して以下を設定。
LoadModule php4_module php4apache2.dllのフルパス
PHPIniDir php.iniが存在するディレクトリ
2)それぞれのバージョン用の php4ts.dll を c:\php4.3.10\sapi、c:\php4.4.0\sapi にコピー。
3) コマンドプロンプトを開いて Apache のサービスを2つ登録。
<Apacheディレクトリ>\bin\apache -k install -n "Apache2-PHP4.3.10" -f <Apacheディレクトリ>\conf\httpd-php4.3.10.conf
<Apacheディレクトリ>\bin\apache -k install -n "Apache2-PHP4.4.0" -f <Apacheディレクトリ>\conf\httpd-php4.4.0.conf
4) それぞれの起動用バッチファイルを作成。
--- apache2-php4.3.10.bat ---
net stop apache2-php4.3.10
net stop apache2-php4.4.0
net start apache2-php4.3.10
--- apache2-php4.4.0.bat ---
net stop apache2-php4.3.10
net stop apache2-php4.4.0
net start apache2-php4.4.0
apache2-php4.3.10.bat を実行すれば PHP4.3.10 で、apache2-php4.4.0.bat を実行すれば PHP4.4.0 で起動する。
>>254 さんが言っている複数の Apache を異なるポートで動作させる場合も1)、2)は使えるはず。
0265nobodyさん
2005/08/14(日) 18:00:39ID:???httpd.confで、複数のバージョンの定義をしておいて、使わない奴はコメントアウトしておいて、
切り替えたい時に、コメントアウトする場所を変えて、Apache再起動でよくない?
0266从'ャ')
2005/08/14(日) 20:17:01ID:???ローカルで試したらMySQLにつながらんねー
Can't connect to MySQL server on 'localhost' (10061)
mysql.exeでMySQLに繋がるし、借りてる無料スペースだと動くので
何かが悪いのだろうけど
apacheもPHPもはじめたばかり、何が悪いかわからん。
WindowsXPです。
0267nobodyさん
2005/08/14(日) 20:21:47ID:???まさかローカルからレンタルスペースに置いてるDBへ接続するのに
localhostで指定してる?
外部からだとipなりで繋がないと繋がらないべさ
0268从'ャ')
2005/08/14(日) 20:30:52ID:???はじめたばかりの俺が
本とかみながら設定したので何か不足があるのだろうけど
わからん。
MySQL Server Instance Config Wizard
いじってたらMySQLサービスが起動エラーになるようになってしまった。
悪化!
0269nobodyさん
2005/08/14(日) 20:35:54ID:???HTMLのタグの属性とCSSってどうやって使い分けるのがベストなの?
タグで属性指定するものは、大抵CSSやSTYLE属性で指定出来る。
デザイン系のHPとか見ても、両方がごちゃまぜに使われてる場合が多い。
この属性はCSSやSTYLEで指定すべきとか
タグでこの属性を設定するのは推奨できないとかの指針みたいなのってどっかに公開されてないの?
0271从'ャ')
2005/08/14(日) 21:19:22ID:???mysql -u xxxx -pyyyyで使えたのはmysqlパイプ接続だかららしいと推測。
0272从'ャ')
2005/08/14(日) 21:30:45ID:???を使うとmysqlサービスが起動できなくなるので、
バックアップを参考に手動でmy.iniをいじってpipeをportにしたら
PHPのmysql_connectが成功するようになりました。
ありがとうございました。
0273nobodyさん
2005/08/14(日) 21:40:31ID:BEaEv0Pjたとえば通信販売などで、WEBから注文をもらい、その顧客のデータを
データベース化するというような一連の流れをおこなうにはphpというものとSQLというものを勉強すれば作成可能でしょうか??
WEBフォームを作成し、顧客が入力したデータをデータベースとして保存したいのですが。
0275nobodyさん
2005/08/14(日) 22:41:17ID:???説明サイトを見つつ設定をして、実際にPHPを入れたらちゃんと動いたのですが、
エンコードがなぜか西ヨーロッパ言語(ISO)ってやつになっちゃうんです。
<META>タグで文字コード指定しても文字化けするし、ブラウザのエンコードで戻しても、
リロードするとまた西ヨーロッパ言語に戻ってしまうのです。
最初から文字化けしないようにするにはどうしたらよいのでしょう…
0276nobodyさん
2005/08/14(日) 22:42:02ID:???単純に顧客データをデータベース化したいというなら、
PHPやSQLを勉強すればいい。
ただし、現在は個人情報保護法がある事を忘れずに。
適切にセキュリティやルールを設けないと個人情報保護”法”というように、
違法となるのでご注意を。
0277nobodyさん
2005/08/14(日) 22:47:18ID:4hBW2DKT0278nobodyさん
2005/08/14(日) 22:58:32ID:???webサーバが付けるhttpヘッダに、
Content-Type: text/html; charset=iso-8859-1 が含まれてるんじゃないかな。
ttp://httpd.apache.org/docs/2.0/ja/mod/core.html#adddefaultcharset
0279273
2005/08/14(日) 23:10:10ID:BEaEv0Pjありがとうございます。
最初はこれを見とけみたいなサイトとかありますか?
初歩を勉強したいのですが。
0280从'ャ')
2005/08/14(日) 23:21:13ID:???無料スペースだと問題なし
質問をするスレ
↓
?遡笋鬚?る
たぶんまたMySQLの設定が悪いんだと思うが、
なんだろう?
0281nobodyさん
2005/08/14(日) 23:30:24ID:???一連のカキコ見たけど、独り言を言って自己レスしているだけにしか見えないんだが。
助けて欲しいのなら環境等も含めて状況を具体的に書きなよ。
夏休みの日記だったらさっさと消えてくれや。
0282275
2005/08/14(日) 23:36:18ID:???情報ありがとうございます!まさにそれが原因だったみたいです;
設定ファイルでiso-8859-1と検索してそこを直したら文字化けしないようになりました!
どうもありがとうございました。
0285275
2005/08/15(月) 00:05:54ID:???Σそうなんですか!?
ttp://www.apachefriends.org/en/xampp-windows.html
こっから落としたやつなんですが…
昨日今日始めたばかりの初心者なものでよくわかりません;すみません;
0286nobodyさん
2005/08/15(月) 01:07:47ID:???別鯖にfunctionを書いたphpをおいて、それを、メインの鯖のphpの中でincludeした場合、functionを書いたphpのソースのfunction定義だけをメイン鯖に送り返すってことでよいんでしょうか?
0287nobodyさん
2005/08/15(月) 01:33:02ID:???ってことじゃないの?
0288nobodyさん
2005/08/15(月) 08:35:32ID:???遅漏ぎみでスマソ
別鯖に置く理由が「勝手な改ざんを防ぐ」なら多少なりとも効果はあるけど、
「知的所有権を守るため」ってなら意味無いね。
だって元鯖内のソース参照出来れば、別鯖内のソース格納場所はバレバレ。
元鯖内からfilegetしたらそれまで…
ま、そこまでして入手するだけの価値があればの話だけどね。
0290nobodyさん
2005/08/15(月) 10:25:51ID:???>元鯖内からfilegetしたらそれまで
たとえ、ファイルの格納先のURLがわかったところで、そこにftpで入らない限りソースは持って来れないんじゃないの?
パース結果は帰ってくるだろうけど。
結局、なにかechoかprintでもしてないかぎり真っ白。
>>228のいうfunction定義だけを書いたファイルを直で叩いた結果しか取得出来ないはず。
そうじゃないと、DBName,id,passなんかを書いたconn.phpをhttpから持って来れたらえらいことになるじゃん。
0291nobodyさん
2005/08/15(月) 10:56:43ID:???>たとえ、ファイルの格納先のURLがわかったところで、そこにftpで入らない限りソースは持って来れないんじゃないの?
>パース結果は帰ってくるだろうけど。
>結局、なにかechoかprintでもしてないかぎり真っ白。
そういった設定にした場合、includeした場合でもパースされた結果か真っ白だよね。
つまり、ちゃんとincludeさせるためにはPHPのコードがそのまま出力されないと意味が無い。
つまり、格納先が分かれば丸見え。
逆にこういった設定にしないと適切にincludeできない。
0292nobodyさん
2005/08/15(月) 13:48:19ID:cojv7JdTほんとの初歩の初歩から勉強したいのですがどういったことから始めればよいでしょうか?
0294nobodyさん
2005/08/15(月) 14:11:45ID:???0295nobodyさん
2005/08/15(月) 15:26:12ID:???逆に、PHPで何をやりたいのか聞きたい。
まあ何はなくともまずHTMLだな。
0296292
2005/08/15(月) 15:31:40ID:???0297nobodyさん
2005/08/15(月) 15:37:25ID:???>>228が隠したいのはfunctionでしょ?
>ちゃんとincludeさせるためにはPHPのコードがそのまま出力されないと意味が無い。
htmlをincludeで表示させたい訳じゃないんでは?
functionは実行しない限りなにも吐かないけど、includeすれば、ちゃんとユーザー定義関数として、親ファイルの鯖で使われるんでは?
0299nobodyさん
2005/08/15(月) 15:53:10ID:cojv7JdT二度目からはIDやPWを入れるだけで買い物ができるようなシステムはPHPを使って作るのですか?
また、そのデータをサーバー上で管理するにはSQLを使うのですか?
具体的にどうすればよいのかわからず困っています。
どういったことから勉強すればよいでしょうか?
0301nobodyさん
2005/08/15(月) 16:24:56ID:???PHPじゃくてもJAVAやperlでもできる。
出来るかどうかについては言語はそれほど関係ない。
データの管理はリレーショナルデータベース(RDB)を使うのが主流。
SQLはそれを操作するための言語。
具体的にどう言う理由で質問したかによってこれからすべきことは変わると思う。
時間的に余裕があり上記のようなシステムを地力で構築したいなら、まずはしっかりとPHP、HTML、HTTP、RDBそれからセキュリティを学ぶ。電子商取引システムをつくるなら付け焼き刃の知識で作るべきではない。
続く
0302301
2005/08/15(月) 16:29:32ID:???自力解決は諦めて委託した方がよい。
金銭トラブルや個人情報漏洩が起きたら厄介だ。
まぁ頑張れ
0303nobodyさん
2005/08/15(月) 16:42:39ID:VKc1C+7uCookieをperlで取得しようとしているのですが、どの板に質問すれば良いのでしょうか?
perl初心者スレでは板違いと言われました。
0304nobodyさん
2005/08/15(月) 16:50:41ID:???ここはPHPに関する質問スレだからここもスレ違いだな・・
perl と cookie でぐぐれば即効で見つかるぞ
0305nobodyさん
2005/08/15(月) 17:34:13ID:???>$result1 = mysql_query("SELECT * WHERE type='0'")
>で$resultに結果を格納した後に、さらに$result1の結果を反映している状態で
どこで$resultに結果を格納してんだ?
「$result1の結果を反映」とは?「結果を格納」と同義か。
0306nobodyさん
2005/08/15(月) 17:42:21ID:???PHP+MySQLでアンケートを作っているのですが、
*--------------------------------------------*
//データベースより動向希望を取得
for($s_g = 0 ; $s_g <= $rowg ; $s_g++) {
for($s_s = 0 ; $s_s <= 8 ; $s_s++) {
$sql= "select * from $conf[prefix]sTable where group = '&s_g' and select = '$s_s'";
$result= mysql_query ($sql , $con);
$s_num[$s_g][$s_s]= mysql_num_rows($result);
}
}
*--------------------------------------------*
という投票数を取得してグループ毎に投票数を$s_num[$s_g][$s_s]に格納したいのですが
どうもうまく取得か格納ができていないようなのです。
そもそも多次元配列の使い方がこれで合っているのか、多次元配列に格納できるかということもいまいち分からないのですが、
どこで詰まっているのか指摘お願いできませんでしょうか。
0307306
2005/08/15(月) 17:43:54ID:???$sql= "select * from $conf[prefix]sTable where group = '&s_g' and select = '$s_s'";
は
$sql= "select * from $conf[prefix]sTable where group = '&s_g' and g_select = '$s_s'";
です。
0308nobodyさん
2005/08/15(月) 18:08:13ID:???必要な項目でグループ化させてそれぞれの件数を取得すればいいような。
いちいちselect文発行はいかがなものかと。
配列に数値がちゃんと入ってるかどうかはprint_rで確認できる。
SQL文の中の「$conf[prefix]sTable」ってのはテーブル名?
配列のキーに""がないのが気になるし、そのままスペースなしにアルファベットをくっつけて書いていいもんだっけ?
まぁmysqlのエラーがでてないのなら問題ないのかも知んないけど。
0310nobodyさん
2005/08/15(月) 18:32:13ID:???308 が言うとおり普通は SQL でグループ化して count() で取得するのが普通で
ループしながらSQL を発行するようなことはしない。
そのやり方に直すべきなんだが、現状で気になるところだけ。
・SQLの group の部分は g_group の間違い?
group で正しいのなら group ってのは SQL のキーワードだから `group` としなければいけない。
・SQL の group = '&s_g' は group = '$s_g' の間違い?
& で正しいのならどういう意味なんだ?
まずは以下のように変更してみて、取得できているか、いないのかを切り分けてみたらどうだ?
//$s_num[$s_g][$s_s]= mysql_num_rows($result);
$cnt = mysql_num_rows($result);
echo "$s_g, $s_s, $cnt";
多次元配列の使い方は一応合っている。オマイさんが期待している通りの並びで格納されるかどうかは別として。
0311nobodyさん
2005/08/15(月) 21:06:38ID:???いくつか文字を調べたところ、
半角のイウオキケサシスセミなどが?になります。
環境は
Windows
MySQL 5.0.7-beta
PHP 5.0.4
apache 2.0.5.4
です。
色々調べ設定を変えて、
コンソールのmysqlでstatusを実行し、
Server characterset: ujis
Db characterset: ujis
Client characterset: ujis
Conn. characterset: ujis
と表示されるようにしました。
PHPで
mysql_client_encoding が latin1
となるのが原因ではないかと思います。
しかし、これをujisに変える方法がわかりません。
文字ばけを直す方法がわかりません。
よろしくお願いします。
0312nobodyさん
2005/08/15(月) 21:28:02ID:???PHPからmysql_connectした後、以下を実行
mysql_query('SET NAMES ujis')
0313311
2005/08/15(月) 21:56:37ID:???ありがとうございます。
mysql_client_encodingは変わらないままで、
今まで入れてたテスト用データは違う文字化けにかわりました。
新たに入れたデータは文字化けせずに表示できました。
0314312
2005/08/15(月) 22:38:52ID:???mysql_client_encodingは「現在」のエンコーディングを返すのではなくて
「デフォルト」のエンコーディングを返すから SET NAMES ujis をしても変わらない。
そういう意味ではあまり使い道の関数ではある。
どっちにしてもmysql_client_encodingという関数名が悪いわな。勘違いしてもしょうがない。
0315nobodyさん
2005/08/16(火) 16:25:31ID:ug9nnH3B閲覧者が各ページをどのくらいの時間見てたか
調べる方法って無いよね?
0316nobodyさん
2005/08/16(火) 16:28:35ID:???0317nobodyさん
2005/08/16(火) 17:16:44ID:???自分のサイト内の移動だけならわかるけどね
トップだけアクセスしてさよならだとわからないな(多分数秒間しかみてないんだろうけど)
0318nobodyさん
2005/08/16(火) 21:42:28ID:ug9nnH3B紛らわしいな。質問の仕方を変えよう。
閲覧者が各ページをどのくらいの時間見てたか
調べる方法って有るよね?
>>317
> 多分数秒間しかみてないんだろうけど
知らぬが仏か(´・ω・`)・・・
0319nobodyさん
2005/08/16(火) 21:48:59ID:Dz1ale7l0320nobodyさん
2005/08/16(火) 21:49:37ID:???0321nobodyさん
2005/08/16(火) 21:50:30ID:Dz1ale7l0322nobodyさん
2005/08/16(火) 22:22:10ID:???俺は回線が細いので、タブで多数開いて
そのまま表示が終わるのに時間が掛かるので、
飯食ったり何か他の事して表示完了してるの忘れて
放ったらかしのことが良くあるが。
そんな感じの人が閲覧してる時間なんてどうやって測るの?
0323316
2005/08/16(火) 22:27:13ID:???・次のページが読み込まれるまでを閲覧時間とする。
・上記の閲覧時間が一定時間以上の場合は、新規の閲覧とする。
てな感じの決め付けをすれば、まぁ可能といえるかと。
0324nobodyさん
2005/08/16(火) 22:30:34ID:VZdxCnFL123 -123 567.01 etc
これが正の整数であるか調べるにはどうしますか?
0325nobodyさん
2005/08/16(火) 22:42:04ID:???0326nobodyさん
2005/08/17(水) 01:13:45ID:???ここのサイトPHPで作られているんですけど、
どのように作られているのでしょうか。
mojaviとか使われているのでしょうか。
0327nobodyさん
2005/08/17(水) 01:52:02ID:???./configure --helpをみても--with(enable?)-pdflib=[DIR]が無くなっているようで
PHP4のようにはセットアップできないのですが。
0328nobodyさん
2005/08/17(水) 03:41:29ID:???同一のサーバ内でページ移ったときだけ計測するなら>>323でいけるだろうけど、あまり意味のある統計はとれなさそう。
例えばどっかのページ開いて、じっくり読んで、読み終わったあとすぐブラウザを閉じた場合なんてどうなるよ?
せっかく読んでくれたにもかかわらず、ページ開いて即ブラウザを閉じた場合と同じ扱いになるわけでしょ?
それに>>322みたいに「開いているけど見ていない」状態だって少なからずあるだろうし。
それでもやってみたいならやってみ。結果報告も忘れずに。
他の方法として、もしアクセスが少ないとか、サーバ側がハイスペックな場合は、
Ajaxで定期的に情報送信って手もあるかも。
もしくはあるところまでスクロールしたら情報送信とか(これは時間計測にはならないか)。
0329nobodyさん
2005/08/17(水) 06:25:44ID:???仮に他サイトへ飛ぶまでの時間を計れるとしても同じじゃん。見てるか見てないかなんてどんなプログラムでもわからんし。
0330328
2005/08/17(水) 06:55:48ID:???あー、見てるか見てないかまで計るのはそもそも不可能ってのは当たり前って感じで書いてた。
言葉足らずでスマソ。
ま、実現するには世界中のネット端末に監視カメラでもつけるしかない罠。
無理無理。
0333nobodyさん
2005/08/17(水) 08:51:25ID:???ただし逮捕されても知りません。
0335nobodyさん
2005/08/17(水) 13:21:48ID:???各ページ内に極小のIFRAMEでも切っておいて、
その中でページ単位のユニークIDを引数に、
カウンタースクリプトを一分間隔程度でリロードさせ続ける。
カウンタースクリプトでは、
クライアントIPとページIDを紐付けながら、
表示時間を計測・DB化し続ける。
なんて方法で、大まかな取得は出来る。
ただし、信頼性という意味では、前述の通り。
0336nobodyさん
2005/08/17(水) 13:22:27ID:lvwFkGR5BBSで書き込みした人と管理者しか読めないタイプって
一般的になんという名称なんでしょうか。
「私書箱」だと件名が一覧で見えてしまう感じが多いし
まずメアドとか登録しなくちゃいけないので煩わしいので
なんか違うなあと思うんですが。
0337nobodyさん
2005/08/17(水) 13:23:59ID:???すみません、Web製作板と誤爆しました。
0338nobodyさん
2005/08/17(水) 14:01:01ID:???mkdir()のように「ファイルを作成する」そのものの関数ってないのでしょうか?
0339nobodyさん
2005/08/17(水) 14:07:21ID:???0343nobodyさん
2005/08/17(水) 15:05:40ID:???数字を3桁ごとにカンマで区切る関数教えてください。
いろんな方法あると思うのですが、
ビューティフルなやつでお願いします。
0346nobodyさん
2005/08/17(水) 15:28:25ID:5ejG3sJoディレクトリ内にファイルが入っている状態で
そのままディレクトリごと削除する方法はありますか?
(unixコマンドでいうとこのrm -rみたいなやつ)
あと、連続で申し訳ないんですが
ディレクトリ内の画像を一覧で表示したいのですが、GDライブラリを使って
サムネイル表示だけ行う(保存しない)方法ってありますか?
いい方法があったら教えてください。よろしくお願いします。
0347nobodyさん
2005/08/17(水) 15:33:54ID:???>ディレクトリごと削除する方法はありますか?
歩けど、鯖環境と権限による
>サムネイル表示だけ行う(保存しない)方法ってありますか?
リクエストのたびにGDでサムネールを生成・送出する別PHPを<img>で呼び出す。
でも、鯖負荷ドッカンで鯖あぼーんする事にもなる可能性がある。
0349nobodyさん
2005/08/17(水) 15:48:40ID:5ejG3sJo鯖環境と権限ですか・・・
基本的に鯖いじれない状態なんで環境の変更は厳しいです。
ただ、ファイルが無い状態ならrmdirでディレクトリの削除はできます。
鯖に負荷かかりますか・・・
今の状態だとクライアントに負荷が(ry
>>348
rmdirだと、「ディレクトリが空ではありません」というエラーが出てしまいます。
いまのところ、is_fileで存在チェックして、あればファイル削除後、ディレクトリ削除、
とやろうと考えてます。
0351346
2005/08/17(水) 15:59:59ID:???とりあえず、
system("rm -r".$filepath);
でいけました。
権限としては付与されているってことですよね。
ちょっとここらへん勉強不足です。すみません。
GDのほうは、とりあえず生画像を縮小表示で出しちゃって
画像数制限(MAX10枚、まだあれば次ページ)で負荷を抑えようと思います。
0353nobodyさん
2005/08/17(水) 16:46:25ID:???print mb_substr("あいうえお", 0, 3)."<br>";
とやると
あ・br>
と表示されてしまいます。
理想では
あいう<br>
と出て欲しいのですが。
これを実現するためにはmb_substrだけではダメなのでしょうか?
0355nobodyさん
2005/08/17(水) 16:53:35ID:???mb_internal_encoding("文字コード");
print mb_substr("あいうえお", 0, 3)."<br>";
"文字コード"の部分はスクリプトの文字コード(Shift-JIS, EUC-JP etc)に合わせる。
0358nobodyさん
2005/08/17(水) 17:36:13ID:???適切なロック方法ないでしょうか?
現在のロック方法
$fp = fopen($log, "w");
flock($fp,LOCK_EX);
fputs($fp,$ログ保存の配列);
flock($fp,LOCK_UN);
fclose($fp);
宜しくお願いします
0359nobodyさん
2005/08/17(水) 17:41:18ID:???もう一個バックアップ用ファイルを作る。
10くらいずつバックアップにも保存。数値がおかしかったらバックアップから出力。
0360nobodyさん
2005/08/17(水) 18:14:34ID:???0362nobodyさん
2005/08/17(水) 18:37:14ID:???ログが飛ぶという表現が判りづらい。。。
一応以下を前提として書くけど。
ログが飛ぶ = メモ帳等で開いてみるとログファイルの中身が変になっている
fputsで書き込むログ保存の配列 = ログファイルから取得した値をゴニョゴニョした値
$logで示されるログファイルはあらかじめ作成しておかなければならないけど、
$fp = fopen($log, "w"); → $fp = fopen($log, "r+");
にしたら直らないか?
0363nobodyさん
2005/08/17(水) 20:08:48ID:FkJYV7Vlどうしたら良いでしょうか?
お願いします。
0365nobodyさん
2005/08/17(水) 21:22:20ID:FkJYV7Vlどうも、ありがとん。
0366nobodyさん
2005/08/17(水) 21:30:02ID:???PerlじゃなくてPHPにしようと思ったのだけど、Perlで基礎ができてない奴にはハードル高いような・・・
そこで、みんなどこで勉強したのよ?
俺はソース見て勉強してるのかなって思ってるんだけど。。。
本って微妙だしね。
0367nobodyさん
2005/08/17(水) 21:50:37ID:???0368358
2005/08/17(水) 23:05:50ID:???>>359
>>359 氏の言うようなものは当方スキル不足のためつくれません。参考コードをお教えできないでしょうか?
>>362
そうですね "w" と "r+" とか "a" など色々やってみたのですがうまくいきませんでした。
0369nobodyさん
2005/08/17(水) 23:25:19ID:???0370nobodyさん
2005/08/17(水) 23:53:10ID:???0371多分324
2005/08/17(水) 23:55:06ID:???正規表現だと"/^[1-9][0-9]+$/"ですかね
あとマヌアルでみつけた
ctype_digit($n) && $n != 0
掲示板の記事番号チェックとかに今までis_numeric使ってたけど
整数をチェキしてるもんだとばかり思ってた
0372nobodyさん
2005/08/18(木) 00:30:49ID:UHy1ByjR切り出し、MySQLのデータベースに書き込みたいと思っています。
(具体的には株、投資信託の価格です。)
なかにはユーザ名とパスワードを要求されるサイトもあります。
cron.dailyにphpのスクリプトとして作ればよいと思いますが、
サイトに自動ログインして文字列(html)を取得する方法がわかません。
参考になるスクリプトのあるサイトなど教えていただけないでしょうか。
お願いします。
↓環境(自鯖)
RedHat 9
Apache 2.040
MySQL 3.23.58
php 4.2.2
0373nobodyさん
2005/08/18(木) 01:55:56ID:???ターゲットサイトの認証方式、セッション管理方式によって千差万別。
これだって、回答もできないしサンプルもないだろう。
まずは、認証なしのサイトからがんばってつくってみな。話はそれから。
0374nobodyさん
2005/08/18(木) 02:10:02ID:???Local ValueMaster Value
/home/httpd/vhosts/default/htdocsno value
となっているのですがこんな設定はphp.iniでもhttpd.confでもしていなく、
心当たりは/home/httpd/vhosts/default/htdocsにある.htaccessで
中身は一行「Options FollowSymLinks」としてあります
(何故かシンボリックリンクを辿ってくれなかったので)
この一行だけなのにopen_basedirに影響してしまうものなのでしょうか?
0375374
2005/08/18(木) 02:11:55ID:???Local Value Master Value
/home/httpd/vhosts/default/htdocs no value
のつもりで書きましたがtabは無視されるようで間が空きませんでした…
0376nobodyさん
2005/08/18(木) 07:58:39ID:???今現在参考書(一週間でマスターするSQL forWINDOWS)を見ながらサンプルソースをひたすら打っているのですが、以下のエラーを吐かれました。
Notice: Undefined index: Melody . 2 in C:\Apache Group\Apache2\htdocs\music\cdinfo_insert.php on line 41
そして、ソース41行目の内容は、
$tmp_values = $tmp_values . "," . "'" . $_POST["Melody . $i"] . "'";
です。
コレは連想配列POSTのMelodyに値が無い、と言う事なのでしょうか?
そもそも変数名の先頭にアンダーバーがある理由も解らない・・・orz
0377nobodyさん
2005/08/18(木) 09:06:44ID:???Noticeはサンプルがへぼいだけだから気にするな
プログラムの先頭に
error_repoting(E_ALL ^ E_NOTICE);
と書いておけばNoticeエラーは表示しなくんる。
$_POSTはPHPで定義済みの変数名なので覚えておけ、というかマニュアル嫁
0378nobodyさん
2005/08/18(木) 09:11:27ID:???勘だけど
$_POST["Melody . $i"]
じゃなくて
$_POST["Melody$i"]
か、もしくは
$_POST["Melody" . $i]
の間違いじゃないのか?
"Melody . 2" がキーなんてちょっと不自然だな・・・
もしくは
$_POST["Melody"][$i]
かな?
> そもそも変数名の先頭にアンダーバーがある理由も解らない・・・orz
仕様です。としかいいようがない罠
0379nobodyさん
2005/08/18(木) 09:20:22ID:qSODVusS存在しないでは?
0380nobodyさん
2005/08/18(木) 09:26:47ID:qSODVusS定義されていないでは?
0381376
2005/08/18(木) 09:33:04ID:???そんな裏技があるんすか!!
$_POSTか・・・もう本当にスンマセンorz
>>378
× $_POST["Melody . $i"]
○ $_POST["Melody" . $i]
でした・・・
>>380
スンマセン、セットはちゃんと出来てたっす。ありがとうございます!
皆さん本当にありがとうございました!
自分の書いたプログラムがちゃんと動くって・・・凄いっす!感動っす!!
0382360
2005/08/18(木) 09:35:20ID:dNobvAZfやっぱそうですよね、ありがとうございました。
0383nobodyさん
2005/08/18(木) 09:57:48ID:???0384nobodyさん
2005/08/18(木) 10:32:03ID:gP3CzNh8ログ見るとなぜか同じ人が1分間に同じページを何回も閲覧してる
のが残っているんだよね。それも一人じゃなくて何人も。
初めは嫌がらせのF5アタックかと思ったんだけどそうでもないみたい。
ちなみにそのPHPアクセスアナライザはページに仕込まれていて
ページが読まれる毎にログに残すというタイプね。
見てる人の意志とは関係なく、ブラウザって勝手に何回もリロード
したりするもんなの?
0385nobodyさん
2005/08/18(木) 10:53:57ID:???自分でアクセスしてログを見てみればいい気もするけど・・
普通のサイトだったら勝手にリロードなんてするわけもないし
まずは自分でアクセスしてphpのアクセスアナライザの問題かどうか切り分ける。
しかもアクセスアナライザの問題だったら作者に聞くべき
よってどっちにしろスレ違いの気も・・
0390nobodyさん
2005/08/18(木) 12:42:05ID:gP3CzNh8俺のサイトに訪問する連中はそんなせっかちなのか?
0392nobodyさん
2005/08/18(木) 16:18:14ID:gP3CzNh8写真とか多用しているサイトだから読み込みに時間はかかると思う。
読み込んでいる間、ブラウザ側から定期的にページの再取得が
行われてそれで何回も連続でアクセスしてることになってるのかな?
0394nobodyさん
2005/08/18(木) 16:57:42ID:???「xx」が見えない文字に変換されているみたいなんですが
これはBUG? はたまた既知の問題?
変換後はJISなんですが、EUCやSJIS(実質変換処理はしないと思っていた)
にしても同じでした。
0396nobodyさん
2005/08/18(木) 21:31:37ID:v+aFcjwVそうなんですか。
メールを送信するときに本文をSJISからJISに変換するときに
発覚したんですが、SJISのまま送信することにします。
どうもです。
0398nobodyさん
2005/08/19(金) 00:14:56ID:qEImwFqoset_cookieを使わずに、ヘッダ送信後にJavaScriptでクッキーの値を設定する方法を探しています。
PHP側で
<script language=JavaScript>
<!--
document.cookie = "@x=1;";
-->
と出力しているのですが、
$HTTP_COOKIE_VARS[ "x" ]で参照できませんでした。
使用ブラウザはIE6.0、PHPバージョンは4.0で、ブラウザのスクリプト設定はONになっています。
どこか、記法が間違っているのでしょうか。
0399nobodyさん
2005/08/19(金) 00:15:49ID:???>PHPのバージョンは4.0
->PHPのバージョンは4
0400nobodyさん
2005/08/19(金) 08:54:20ID:???>ちゃんと仕様どおりMIMEエンコーディング掛けような。
メールに詳しそうなので教えてください。
SJISで送る場合はBASE64とquoted-printable
どちらにエンコードするのがベターなのでしょうか?
あるいは他に推奨されるエンコード方式はありますか?
0401376
2005/08/19(金) 09:13:43ID:???すんません、プログラムの先頭に教えてもらった
error_repoting(E_ALL ^ E_NOTICE);
を書いたらそれ自体がエラーになっちゃいました('A`)
こんなエラーです。
Fatal error: Call to undefined function: error_repoting()
0402nobodyさん
2005/08/19(金) 09:19:53ID:???「Fatal error: Call to undefined function: error_repoting()」
早い話が「error_repoting」の綴り違い
0404401
2005/08/19(金) 09:39:57ID:???ありがとうございました!エラーが消えました!
そしたら自作関数のクエリを発行する関数から「クエリ発行できないよバカ」って
メッセージが返されましたorz
ガンガリマス
0407nobodyさん
2005/08/19(金) 12:05:52ID:???General PHP error : var: Deprecated. Please use the public/private/protected modifiers
というエラーがでないようにするにはphp.iniをどのように書けばいいでしょうか。
エラーメッセージの通りソースを修正するのが筋ですが、エラーの通知レベルを
下げて対処したいのですが。
0410nobodyさん
2005/08/19(金) 13:54:32ID:???[classなんとか]
とかって使わない方がいいのかな?
0411407
2005/08/19(金) 14:07:50ID:???そう思って色々値を変えてみたんですが(0も含めて)、エラーが
無くならないんですよね・・・。
PHP5とJpGraph 2.0beta、Smartyを使ってて、Smartyの中で var が使われているのは
分かってるんですが・・・。
0412nobodyさん
2005/08/19(金) 14:17:26ID:???0414407
2005/08/19(金) 14:40:12ID:???>>411で書いたとおり(後出しスマソ)JpGraph 2.0を使っているのですが、
その設定ファイル(jpg-config.inc)に
DEFINE("CATCH_PHPERRMSG", true);
という設定があったので、これを true->false へ変更したらエラーがでなくなりました。
0415nobodyさん
2005/08/19(金) 15:29:42ID:MY/rYcMm現在ログイン中のユーザーを取得するにはどんな方法があるのでしょうか?
0417nobodyさん
2005/08/19(金) 15:47:28ID:oRNXECTa変数名の一部に数字が入っていて、その数字を別の変数で
持っていて、つなげてひとつの変数にすることは可能でしょうか?
具体的に言うと、
$count =1;
$hoge.$count = "test";
$count++;
$hoge.$count = "aaaa";
echo $hoge1.$hoge2
出力結果
testaaaa
こんな感じの処理をしたいんです。
ちなみに上の記述では何も出てきませんでした。
ちなみに、配列にしたら、というのは無しでお願いします。
(変数名の規約で配列になっていない仕様の為)
0418nobodyさん
2005/08/19(金) 15:51:32ID:???echo $hoge.="aaaa";
$countはなんだ?
0419415
2005/08/19(金) 15:59:58ID:MY/rYcMm説明不足ですみません。
一般的にどういった手法をとるべきなのかをお聞きしたかったのですが、
とりあえず現状ではログインページにて入力したユーザー名とパスワードをデータベースに照合して、
成功したらユーザー名をセッション変数に格納して各コンテンツにアクセスできるようにしています。
サーバー側で維持しているセッションのユーザーを全て取得して
「現在ログイン中のユーザーは・・・」といった表示をしたいのですが、
このようなことは可能なのでしょうか?
よろしくお願いします。
0420nobodyさん
2005/08/19(金) 16:00:20ID:oRNXECTaあースマソ
なんつーか、testaaaを表示したいとかじゃなくて
ただ例だったんだけど、例が悪かったス
んーととにかく、$hoge1、$hoge2って名前の変数があって
それをループで1と2のところ変動できないかなってこと。
で、しかも配列じゃないの。厄介です。
0421nobodyさん
2005/08/19(金) 16:04:08ID:???素直に配列にした方が良いと思うけど。
$count = 1;
eval("\$hoge" . $count . " = \"test\";");
$count++;
eval("\$hoge" . $count . " = \"aaaa\";");
echo $hoge1.$hoge2;
0423nobodyさん
2005/08/19(金) 16:10:57ID:???こんなんでもできたよ。
$count = 1;
$tmp = "hoge" . $count;
$$tmp = "test";
$count++;
$tmp = "hoge" . $count;
$$tmp = "aaaa";
print $hoge1.$hoge2;
0424421
2005/08/19(金) 16:12:05ID:???おおぉ、すげえ。${} で参照だけでなく代入も出来るのか。
知らなかったよ。PHPって何でもありだな。
>>421はスルーしてくだされ。
0425nobodyさん
2005/08/19(金) 16:17:01ID:oRNXECTaま、まあそうなんですが引継ぎの仕事で、前の人が配列で定義してやがらないので
これから全部配列にすると大変なことが起きるんで、逃げの対策としてってことです。
${}使わせてもらいます。
>>421
evalでもいけました。ありがとうございます。
0426nobodyさん
2005/08/19(金) 16:18:06ID:/9DHVQ9Oif($offset) {
return TRUE;
}
とあるんですが、$offsetが0の場合FALSEになってしまいます。
パラ渡しで、offset=0の時とoffset=NULLの時があり、NULLの
時だけFALSEにしたいんですが、どすればいいんでしょ?
$offsetに値を渡す時に文字指定してあげればいいと思うですが
そんな関数ってあるんでしょか?
0427nobodyさん
2005/08/19(金) 16:23:37ID:???http://jp.php.net/manual/ja/types.comparisons.php
0430426
2005/08/19(金) 17:20:01ID:???と思ったらダメくさい。
if($offset!==NULL)
まちがいですた・・・(T.T)
もうちょっとがんばってみます。
0431nobodyさん
2005/08/19(金) 18:04:29ID:???実行するのは可能ですか?Perlは出来たんだけど・・・
0433nobodyさん
2005/08/19(金) 18:14:13ID:???おぉーーー、見落としてたー!
つd
0434nobodyさん
2005/08/19(金) 18:21:50ID:???昨日からハードディスクの回転が止まりません。異常ですよね。
電源落としてもHDDが動きっぱなし。。。。
0435nobodyさん
2005/08/19(金) 18:27:30ID:???ディスクだけに番町皿屋敷ってね。
0436nobodyさん
2005/08/19(金) 18:27:58ID:???0437434
2005/08/19(金) 18:38:22ID:???ブォーンって凄い音がしてます。どうしたら。…
0438nobodyさん
2005/08/19(金) 18:41:06ID:???0439434
2005/08/19(金) 18:55:27ID:???0440nobodyさん
2005/08/19(金) 18:57:12ID:???0441398
2005/08/19(金) 19:29:57ID:qEImwFqo内容がJavaScript関係の気がするので、そちらのスレッドで聞いてみます。
0442nobodyさん
2005/08/19(金) 20:20:46ID:KoUPvsHD誰かたすけて!!
0444nobodyさん
2005/08/19(金) 20:44:09ID:KoUPvsHDそうやったら、//がある奴以外全部なくなった・・・・
0445nobodyさん
2005/08/19(金) 20:49:56ID:???0446nobodyさん
2005/08/19(金) 21:10:33ID:KoUPvsHD$title = "掲 示 板";
// タイトル文字の色
$tCol = "#666666";
// タイトル文字サイズ
$tSize = '24px';
// 本文文字サイズ
$bSize = '13px';
// 本文文字スタイル
$bFace = '"MS UI Gothic", "MS Pゴシック", Osaka';
// 記事題名の色
$subCol = "#DD0000";
// スクリプトURL
$script = './aska.php';
// 管理用パスワード
$pass = '0123';
0447nobodyさん
2005/08/19(金) 21:12:18ID:KoUPvsHD// 最大記事数(これを超える記事は古い順に削除)
$max = 50;
// 戻り先URL
$home = "../index.html";
// タイトル画像を使う場合 (http://から画像を指定)
//$ImgT = "";
//$ImgW = 300;# 横幅サイズ
//$ImgH = 70;# 縦幅サイズ
// bodyタグ
$body = '<body bgcolor="#F0F0F0" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">';
// URLの自動リンク (0=no 1=yes)
$autolink = 1;
// 引用部色変更
// 1 : 色指定を行うと「引用部」を色変更します
// 2 : この機能を使用しない場合は何も記述しないで下さい ($refCol="";)
//$refCol = "#804000";
// メール通知機能
// 0 : 通知しない
// 1 : 通知する → 自分の投稿記事も通知する//
// 2 : 通知する → 自分の投稿記事は通知しない
$mailing = 0;
0448nobodyさん
2005/08/19(金) 21:14:30ID:KoUPvsHD$mailto = 'xxx@xxx.xxx';
// タグ広告挿入オプション
// → <!-- 上部 --> <!-- 下部 --> の代わりに「広告タグ」を挿入。
// → 広告タグ以外に、MIDIタグ や LimeCounter等のタグにも使用可能。
$banner1 = '<!-- 上部 -->'; # 表示部上部に挿入
$banner2 = '<!-- 下部 -->'; # 表示部下部に挿入
// 記事の更新は method=POST 限定する場合(セキュリティ対策)
// → 0=no 1=yes
//$postonly = 1;
// 他サイトから投稿排除時に指定する場合(セキュリティ対策)
// → 掲示板のURLをhttp://から書く
$baseUrl = '';
0449nobodyさん
2005/08/19(金) 21:16:26ID:KoUPvsHD$page_view = 10;
// 制限投稿間隔(秒数)
// → $regCtl での投稿間隔
$wait = 60;
//データファイル名
$data_file = "bbsas.dat"
// アクセス禁止
// IPを""の中に書いて下さい ,で区切って下さい
//例)array("127.0.0.1", "333.333.333.3", "555.5.5.5")
$yada = array("test", "test2");
Parse error: parse error, unexpected T_VARIABLE
まずこの最後の行からエラーが出るんです
そのあとは//以外全部がエラーです・・・
0450nobodyさん
2005/08/19(金) 21:18:41ID:???んで、$data_file = "bbsas.dat" の末尾に ; がない。
以上
0451nobodyさん
2005/08/19(金) 21:23:11ID:???各行で // 以降はコメント(説明書きで実行には影響しない=削っても良い)なので、
さらにエラーが出なくなるまで(上下から)削っていくと、
$data_file = "bbsas.dat"
$yada = array("test", "test2");
この2行くらいまで削れるっと。
上の行の最後に ; が抜けてるっぺ。
0452nobodyさん
2005/08/19(金) 21:23:52ID:KoUPvsHDほんとだ!!!!!;がない!!!
解決しました!!!ほんとありがとうございました!!
これのために5時間費やした・・・
0453nobodyさん
2005/08/19(金) 21:25:08ID:???明らかに文法的に合ってるのにParse errorというのが出ます
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
( ´,_ゝ`)プッ
0454nobodyさん
2005/08/19(金) 21:25:24ID:KoUPvsHDはい・・・PHP初めて三日目です・・・
これまでプログラミングはHSPしかやったことがありません
ご迷惑おかけしました
0455nobodyさん
2005/08/19(金) 22:19:39ID:???その5時間は無駄ではない。みんな一度は通る道。
経験者からすれば、つまらないミスだけど、原因を突き止めたこの爽快感、わすれるなよ。そして、君が経験を積んで、困ってるやつがいたら、手を貸してやることだ。
0456ハゲド
2005/08/19(金) 22:28:45ID:???0457nobodyさん
2005/08/19(金) 22:30:23ID:???0458nobodyさん
2005/08/19(金) 22:46:06ID:???味わえる訳ねえべ。
HTMLなんかでも、結果がおかしい時に削って範囲を絞るぐらいはするだろ。
HSPは使ったことあるがPHPは慣れていなくて。。。というレベルではないな。
5時間はただただ無駄に過ごした時間。
0459nobodyさん
2005/08/20(土) 02:15:08ID:???まぁ、そう言うなって。イヤだったら答えなきゃいいだけだし。
漏れ自身、まだ初心者の域だけど、自分に答えられる事は答える。
初心者にわかるように答える、それが自分の知識の再確認になるんだ。
助けてもらった事は数知れず。感謝でいっぱいです。
>>452が>>442みたいなことを言った事を、のちのち「恥ずかしい」と思えるようになれば、いいんじゃないかな?
>>452
「プログラムは思ったように動くのではなく書いた通りに動く。」
UNIXの格言です。
0460nobodyさん
2005/08/20(土) 12:24:38ID:???0461nobodyさん
2005/08/20(土) 12:38:02ID:???他人の書いたソースなら見落とすかも知れない。まぁ、走らせればエラーで分かるけど。
0462nobodyさん
2005/08/20(土) 15:42:52ID:???0463459
2005/08/20(土) 16:44:04ID:???× if($hoge = "hage")
○ if($hoge == "hage")
ロジックを思いついてハァハァして関数を一気に書くとこのミスをよくやる。
あと、自分で定義した変数名をすっかり忘れてて上書きとか。
藻前らはどんなミスしますか?
0464nobodyさん
2005/08/20(土) 16:53:49ID:???if("hage" == $hoge) てな感じに先に文字列を書いておけば == を = にしちゃった時にエラーになるね。
0466nobodyさん
2005/08/20(土) 17:10:11ID:???それなりのエディタを使用していれば括弧の数で間違うことはあまりないと思うけど。
if("hage" == $hoge) の書き方は宗教論争に発展しやすいんで感想は述べないほうが。。。
0467nobodyさん
2005/08/20(土) 17:38:56ID:cxKBVtTDDBのフィールドを
words BLOB
とします。
PHPで
$title = addslashes($_POST['title']);
$keyword = addslashes($_POST['keyword']);
を1つのフィールドに登録して
$sql = "insert into tablex (words) values (";
$sql .= "'".$title."\001".$keyword."' )";
$result = mysql_query($sql, $con);
のような登録ってありなんでしょうか。
つまりバイナリデータ"\001"はエスケープしなくて
そのまま使えますか。
--つづく--
0468nobodyさん
2005/08/20(土) 17:40:00ID:???こんなことするのわけは、
select * from tablex where title like '%abc%' or keyword like '%abc%'
を
select * from tablex where word like '%abc%'
で済ませられることぐらいなんですけど。
また、PHPではバイナリを気にせず文字列のように使えますか。
つまり、前述のような使い方が出来たとして、
$sql = "select * from tablex where word like '%abc%'";
$result = mysql_query($sql, $con);
$row = mysql_fetch_assoc($result);
$words = $row['createdate'];
$words = preg_split("/\001/", $words);
$title = $words[0];
$keyword = $words[1];
で取り出すことが出来ますか。
実際こんなことするか決めかねていますけど。
0469nobodyさん
2005/08/20(土) 17:42:37ID:???if($hoge eq "hage")
とか使いたい。
0470nobodyさん
2005/08/20(土) 17:45:21ID:???ヒアドキュメントの;の位置をよく間違える。
0471459
2005/08/20(土) 18:18:54ID:???比較するところ、=が一個足りなくて代入しちゃう、おまけにそれがtrueで意図しない条件分岐のブロックを実行しちゃうわ、変数は上書きしちゃうわ、って意味でかいたんですが。>>463ってそんな変な書き方かな?
if($hoge == "hage"){
$kekka = "ハゲです";
}else{
$kekka = "ハゲじゃないです";
}
echo #kekka;
って続く訳ですが。
>if("hage" == $hoge)
逆だぁ、こんなの初めて見た。
>>465
かっこは先に書いちゃうように心がけてるんであんまりやらないなぁ。
>>470
非亜ドキュメントの最初と最後の行まで、タブでインデントしちゃう、ってのもたまにやります。
0472nobodyさん
2005/08/20(土) 19:58:50ID:oc0A9ckRPerlな人って、覚え初めの頃ってそういう比較演算子気持ち悪いと思わなかったのかな?
俺はプログラムJavaScriptから入ったから、慣れない書き方に挫折した。。
0473nobodyさん
2005/08/20(土) 21:22:44ID:???0474nobodyさん
2005/08/20(土) 21:50:06ID:???仕様とか変わった?
0475467
2005/08/20(土) 22:09:13ID:???実際にバイナリデータをSQL出来るか確かめようと思って試したが、
置換を間違えてこうやってた。
$contents = $_POST['contents'];
$contents = preg_replace("/=/", $contents, "\002");
しばらく気がつかんかった。
ところで、
$contents = preg_replace("/^==+$/", "<HR>", $contents);
のような ^ $ は使えないのでしょうか。
実際出来なかったのですが、何か方法あるのでしょうか。
0476nobodyさん
2005/08/20(土) 23:15:52ID:???> $contents = preg_replace("/^==+$/", "<HR>", $contents);
おしりに改行とか入っているのでは?
0477nobodyさん
2005/08/20(土) 23:24:29ID:???あとヒアドキュメントの>>と<<<も。
>>472
あまり変には思わないな…
BASICの変に大文字なのと、IF THENとか.5とかGOTOの方がキモイと思う
0478467,475
2005/08/20(土) 23:49:47ID:???<TEXTAREA>による複数行なので\r\nが入っています。
ということは、
$lines = preg_split("/\r?\n/", $contents);
foreach( $lines as $line )
みたいにしないとだめって事なのですか。
これだと何か効率悪そうに感じたので。
0479nobodyさん
2005/08/20(土) 23:51:05ID:???そんなことじゃ手に職付かないぞ
0480nobodyさん
2005/08/21(日) 00:11:01ID:???見やすいもへったくれもない。
0481nobodyさん
2005/08/21(日) 00:21:05ID:???0482nobodyさん
2005/08/21(日) 00:28:21ID:saxbkmPuphp.iniの設定とコードを打って実行してみたのですが、なりません。
コードと、php.iniの見直しはそれぞれ7回ずつしました。
誰か
助けてください!!
ソースが必要であれば
書き出しますのでよろしくっす。
0483nobodyさん
2005/08/21(日) 00:28:24ID:???キモさというより各言語間の影響みたいなものを感じる。
そんな感じで各言語の構文を見ていくと面白い。
Perlのelsifなんかは、Perl使いの人はせっかちだなぁ eを打つのも面倒なのか 省略しすぎ、とか。
0484nobodyさん
2005/08/21(日) 00:35:22ID:???OS名と、受信(?)に使っている関数名と、受信に関係するphp.iniの設定はどうなってますか?
また、関数に渡している実際の変数の値をecho等で表示した場合に、希望する値になってますか?
0485nobodyさん
2005/08/21(日) 00:39:48ID:???エラーを嫁。次はsendmailがその鯖で使えてるかどうかを調べる。
>>483
どれがどの言語の文法だったか忘れるでしょ…。
e入れるんだっけ?外すんだっけ?みたいな。
忘れるのも得意になる。
使ってて感じる各言語のクセ以外覚えない事にしてるけど。
0486nobodyさん
2005/08/21(日) 01:03:35ID:saxbkmPu早速の応答感謝します!
OSは、WinXPです。
関数は、mb_send_mail関数です。(マルチバイト関数のSENDMAIL版ですかね。)
php.iniの設定ですが、行数で言えば
101行目 バッファリングの有効化
115行目 出力ハンドラの設定 mb_output_handler
422行目 出力文字コードの設定 Shift-JIS
436行目 外部ファイルの検索先 .;c:/php/includes;c:/php/PEAR
443行目 ドキュメントルート c:/Program Files/Apache Group/Apache2/htdocs
450行目 拡張モジュール(php_*.dll)を含むフォルダ c:/php/ext
570行目 マルチバイト関数を有効化
1105行目 デフォルトの言語 Japanese
1110行目 PHP内部の文字コード EUC-JP
1113行目 HTTP入力の文字コード auto
1117行目 HTTP出力の文字コード SJIS
1124行目 入力文字コードの自動変換を有効化
1128行目 文字コード検出の優先順
1132行目 代替文字 auto
1133行目 スクリプトで使用する文字コード EUC-JP
関数に渡している実際の変数の値をecho等で表示した場合に、希望する値になってますか?
に関しては、恐らく答えはYESだと思うのですが、自信をなくしました。。。
エラーは、出ないんです!
フォームから送信するとちゃんとデータを取得した後
元の画面に戻るようにしてるのですが、メールの受信だけ出来てないんです。
やはり、
ソースを書き出した方が良いでしょうか?
0487nobodyさん
2005/08/21(日) 01:07:29ID:???0488nobodyさん
2005/08/21(日) 01:11:10ID:saxbkmPuご指摘ありがとうございます!
私の打ち間違いでした!
正しくは、Shift_JISです!
ご親切にありがとうございました!
0489nobodyさん
2005/08/21(日) 02:09:59ID:???ttp://www.php.net/manual/ja/ref.mail.php
Windows環境でmail関数(mb_send_mailも)を使うと、
メール鯖(同じ鯖内でも)とネットワーク接続してメールを送信することになる。
(Windows以外では、sendmailプログラムに直接データを渡す)
なので、php.iniの中で、どのメール鯖と通信するかと設定する必要がある。(SMTP,smtp_port,sendmail_from)
(日本語マニュアルのMail設定オプション説明の SMTP int の行は smtp_port の間違いだね。)
要は、メール鯖を用意(自鯖でもいいし、プロバイダのメル鯖でもいいし)していて、
そのメール鯖の情報がphp.iniに適切に設定されている必要があります。
(んでも、プロバイダのメル鯖は、spam対策で POP before SMTPの制限があったりする。その場合は×)
メール送信に失敗した場合は、falseが返ってくるので、
if(!mb_send_mail(〜)) echo 'メール失敗'; てな感じでエラー処理をします。
0490nobodyさん
2005/08/21(日) 02:25:23ID:saxbkmPu深夜にもかかわらず、ご丁寧に返してくれてありがとうございます!
php.iniの設定ですが、あと2つ書き忘れていましたので
追記します!
607行目 自分が利用可能なメールサーバ プロバイダのウイルスチェック用のSMTPサーバ指定
611行目 上記で使っている自分のメールアドレス指定
をしていました。
489さんのおっしゃる通り、適切に設定されていても
spam対策で POP before SMTPの制限がある場合はダメなのですね。。。
因みに、今日プロバイダに電話確認したばかりなのですが
何と訪ねたら良かったのでしょうか?
あと、その回避法などはないものでしょうか?
図々しいとは思うのですが宜しくお願いいたします。
0491nobodyさん
2005/08/21(日) 02:40:37ID:???図々しいと思うのならPOP before SMTPをググって理解しやがれ。
人に聞く前に自分が思いつく回避法を試せ。
0492nobodyさん
2005/08/21(日) 03:32:08ID:saxbkmPu申し訳ないです。
私の勉強不足だと思います。
POP before SMTPについては、SMTPではそれだけでは認証が出来ないため
一度popでIPのログを残して、一定時間内にアクセスがあった場合のみ且つ
popに残ったIPのログと同じものだった場合にのみ、認証されて送信される
という理解だったのですが、これに見合うためのpopにアクセスするために
どうすれば良いかという方法を本とネットでここ3日間ほどずっと悩んでも分からずに、
(OEで一度"送受信"ボタンを押してすぐに、IEでフォームから送信をする始末で..)
幅広い知識がないと、やはり難しいものですね...
491さん、ご気分悪くされたのなら申し訳ございません。
自分でももう一度いろいろ調べた上で質問させて頂きたいと思います。
0493nobodyさん
2005/08/21(日) 03:51:01ID:???0494nobodyさん
2005/08/21(日) 03:58:08ID:saxbkmPuありがとうございます!!
POPにログインの方法を調べて作ってみます!!
出来たらお礼を言いに来ます!
絶対作って、絶対来ます!!
親切にいろいろアドバイスをくれた皆さん
ご指導ご鞭撻ありがとうございます!
頑張りたいんです!!
まだまだ知識不足なんですが
これからもどうぞ宜しくお願いします!!
では、失礼します。
0495nobodyさん
2005/08/21(日) 04:05:56ID:???えーと、POP before SMTPの制限があることは確実なんですか?
>>489で書いたのは、プロバイダのメル鯖利用は簡単にできない事がある、という例です。
そういう制限があるかどうかは、プロバイダのヘルプページに制限事項と
メールソフトでの設定方法が書いてある事が多いので、そこから推測することができます。
POP before SMTP以外にも、SMTP AUTHやら 色んな制限方法があります。
で、POP before SMTPが邪魔になっているのなら、>>493が言ってるような処理を
fsockopen関数あたりを使ってやればよいかと。
「POP before SMTP fsockopen php」あたりでググればそのものズバリのものが見つかるかも。
真面目にやる場合は、POP3(Post Office Protocol version3)を調べてゴニョゴニョと。
0496nobodyさん
2005/08/21(日) 05:37:10ID:saxbkmPuはい。今日(と言っても半日ほど前ですが)プロバイダに電話で聞いたところ
SPAM対策に時間での制限と、30分以内に500通をこえるメールの送信は出来ないように
規制を掛けているそうです。
ちなみに、メールサーバでのウイルスチェックを申込んでいるので利用しているのは
AUTH.***.jpというサーバになっています。
まだメーラーのことからPOP before SMTPについてや
PHP5でのメールの送信の方法(実例)、POP3へのアクセス・ログインの
方法を調べていたところでした!
fsockopen関数のこと、ありがとうございました!!
PHP初心者の私には、まだ手も足も出ませんが、少しの助言を貰えるだけで
かなり助かります!あとは、自分で出来る限り調べて理解していきたいと思います☆
本当に、親切に教えて頂いてありがとうございます!!
0497nobodyさん
2005/08/21(日) 06:05:43ID:g7cZnge0ひらがな、カタカナ、半角カタカナを区別しないでDBから検索するとしたら、
PHPでひらがな、カタカナ、半角カタカナをひらがなに変換してDBに登録し、
SQLのwhereもPHPでひらがなに変換するっていうのありですか。
勝手にひらがなになってしまうのは妥協するものとします。
それよりもっといい方法があるのなら教えてください。
0499nobodyさん
2005/08/21(日) 19:12:08ID:???たとえば
$A[0][NO] = 3
$A[1][NO] = 1
$A[2][NO] = 2
$A[0][NAME] = "ほげ"
$A[1][NAME] = "ほげほげ"
$A[2][NAME] = "ほげほ"
を[NO]順にならびかえて
$A[0][NO] = 1
$A[1][NO] = 2
$A[2][NO] = 3
$A[0][NAME] = "ほげほげ"
$A[1][NAME] = "ほげほ"
$A[1][NAME] = "ほげ"
としたいのですが。
過去ログに似たようなのがあったんですが自己解決したみたいで。くだらないですがお願いします。
0500nobodyさん
2005/08/21(日) 19:15:23ID:???$A[2][NAME] = "ほげ"
でした。
0501nobodyさん
2005/08/22(月) 11:42:38ID:???俺も検索用変換済みの検索用フィールドを用意するのが良いと思うよ。
「タイトル」「本文」なんかをまとめて検索用フィールドに突っ込むとかもできるし。
#where句の LIKE 対象が1フィールドで済む
0502nobodyさん
2005/08/22(月) 12:55:50ID:mbIy2UAI一番エレガントだと思う方法を答えてください。
パスのルール。
・パスは絶対パスで、/ から始まる
・ファイル・ディレクトリ名は . で始まることもある ex) /www/htdocs/.htaccess
・パスがディレクトリ名で終わる時は / で終わる
・万一 ../ を展開して、ルートの下に下りてしまうようなときは、/ もしくはヌルストリングを解とする
どうよ?
正規表現一発で処理しようとトライしたんだけど、なかなかどうして難しいもんです。
0503nobodyさん
2005/08/22(月) 13:04:01ID:???意味不明。
パスといっても、サーバパスとURI上のパスがアル。
掲げたルールはなんに対してのルールなんだか・・
元?変換後?
もう少し、状況踏まえて判りやすく。
0505502
2005/08/22(月) 13:14:45ID:???サーバパスです。
入力されるパスは上記ルールに従っています。
この条件で、./ や ../ を含んでいるパスを適切の処理して、それらを含まないパスを返す関数を作ると考えてください。
でも、../ を処理してルートの下に下りたときは、>>502 のルールだと難しいかもしれないですね。
とりあえずこういったイリーガルな場合は、各自挙動を決める、ってことでどうでしょう?
というか、切実な質問ではなく、エレガントな解を求めるパズルのようなものだと考えてください。
自分の作った一部を挙げると、 ./ を展開する部分までしかできてないですが
function toruDot($path)
{
$ans=Preg_Replace('/\/(\.\/)+/','/',$path); // ./ を取る
// ここに ../ を取る処理を書く
return $ans;
}
てな具合です。
今自分のやり方だと、../ をループで取り除くような処理になってしまうのですが、これをもうちょっとすっきりできないかと。
0506504
2005/08/22(月) 13:16:58ID:???ありゃ、便利な関数があるもんですね。
自分の無知さに打ちひしがれてしまいました・・・
でも、できれば単純な文字列処理にしたいです。
そのパスがサーバ上に存在するかどうかは無関係にしたいです。
0508502
2005/08/22(月) 13:34:54ID:???function toruDot($path)
{
$a=Array();
foreach(Explode('/',$path) as $nm) {
if($nm=='.') continue;
if($nm=='..') {
if(Empty($a)) break;
Array_Pop($a);
}
else {
$a[]=$nm;
}
}
return Join('/',$a);
}
スッキリしないですよね?
正規表現一発ぽんとかでできるといいなぁ・・・
0509nobodyさん
2005/08/22(月) 14:08:07ID:g44ZS3v9参照するのはどうしたらいいのですか?
0510nobodyさん
2005/08/22(月) 14:11:06ID:???つ http://php.s3.to/man/language.variables.scope.html
0511nobodyさん
2005/08/22(月) 15:03:43ID:???>パスのルール。
> ・パスは絶対パスで、/ から始まる
>>505
>入力されるパスは上記ルールに従っています。
>この条件で、./ や ../ を含んでいるパスを適切の処理して
入力値が絶対パスで/から始まるんじゃないの?
どこに、./ や ../ が含まれるというの?
そもそも「入力されるパス」ってどこから入力されるのよ。
0512502
2005/08/22(月) 15:15:30ID:mbIy2UAI入力ってのは、関数の入力です。汎用処理なので、元々どこから入力されたかはどうでもいいです。
お題は、パス中に含まれる相対表記を省いたパスを作る、ということなのですが、そんなに分かりづらいでしょうか?
で、その処理対象のパスの記述として、先頭は / で始まる、ということにして、それを便宜上絶対パスと書いたわけですが。
>>508 にサンプルコード出しときましたんで、興味があったら見てみてください。
# このコードは / から始まってなくてもうまく動きますが
早い話が、>>508 と同等の処理をもっと簡単に書けないか、ということです。
あと、>>508 のコード、if($nm=='..') のブロックの中は
Array_Pop($a);
if(Empty($a)) break;
が正しいです。
0515nobodyさん
2005/08/22(月) 17:17:16ID:???山田 花子
空条 丈太郎
・
・
・
といった名前の羅列の、全角と半角の混じったスペース(空白)を。
苗字と名前の間のスペースをアンダーバーに置換したいのですが。
-----結果-----
田中_太郎
山田_花子
空条_丈太郎
$com = mb_ereg_replace("\t\n\r\f", "_", $com);
では駄目なのでしょうか。
Fatal error: Call to undefined function mb_ereg_replace() in /home/ryota/httpd/mail_acc/tt5.php on line 9
と言われてしまいます。
もしやmbstring関係を有効にするためにPHPをコンパイルして入れなおさなければ駄目ですか・・。
FedoraCore4で全てyumでインストールしてます。
0516nobodyさん
2005/08/22(月) 17:22:23ID:???"&なんたら;"とか。なんたらの部分は忘れた。
0517nobodyさん
2005/08/22(月) 17:28:07ID:???$com = str_replace(" ", "_", $com);
で半角のスペースは置換出来ました
全角は
$com = str_replace(" ", "_", $com);
では出来ませんでした・・
$com = mb_ereg_replace(" ", "_", $com);
はやっぱり
Fatal error: Call to undefined function mb_ereg_replace() in /home/hoge/httpd/mail_acc/tt5.php on line 10
と怒られました
0518nobodyさん
2005/08/22(月) 17:36:27ID:???php-mbstring-*.*.*-**.rpm
というパッケージをインストールしろ
それで
/etc/php.dにmbstring.iniができてればOK
0519nobodyさん
2005/08/22(月) 17:46:31ID:???エラーが出なくなりました!
ありがとうございます
相変わらず置換は出来ません・・
やってる事
$com = str_replace(" "," ",$com);
$com = str_replace(" ", "_", $com);
$com = mb_ereg_replace("\t\n\r\f", "_", $com);
悪あがきしていますが駄目です・・
正規表現関数を試してみます
0520515
2005/08/22(月) 18:01:57ID:???フォームから>>515のような名前の羅列を取り込みます
$com = $_POST['com'];
mb_regex_encoding('sjis'); // エンコーディング
$com = str_replace("\r\n", "\r", $com); //Win系は\r\n$com = str_replace("\r", "\n", $com); //Mac系は\r
$com = str_replace("\n", "<br>", $com); //\n除去して<br>
$com = str_replace(" "," ",$com);$com = str_replace(" ", "_", $com);$com = mb_ereg_replace(" ", "_", $com);
print $com;
0521512
2005/08/22(月) 18:38:56ID:???別に宿題じゃないんだけどね。
こういう処理やるたびに同じようなコード書いて、そのたびにいつも同じようなこと思ってるわけです。
よくある処理なのにこんなにステップ数をかけるのはいかがなものかと。
だから、もうちょっと上級のコードを書く人はいないのか聞いてみた。
というか、たとえばパスを手入力させる機会があったとき、不正なパスを入れられないようなロジックを入れない?
>>508
そういう問題を簡易に解決するために、パスの先頭は / で始まるということと、../ によりートより
深く潜った場合の戻り値について >>502 に挙げてるんです、
ちなみに >>508 のケースでは、カレントの親には到達させるパスは不正ということで、ヌルストリングを返すようにしてます。
0522nobodyさん
2005/08/22(月) 19:09:12ID:???0524nobodyさん
2005/08/22(月) 19:31:09ID:???結局のところ何がしたいのか、いや、したい事はなんとなく判るんだが、
どういうインターフェースなんだかがさっぱり見えない。
想定される不正入力値はどういったもので、
その値をどう加工したいんだか…
開発者としての志は高いみたいだが、
それ以前に他人に伝えるコミュニケーション能力に問題あり。
0525521
2005/08/22(月) 20:19:57ID:???print toruDot('/abc/def/ghi.html'); → /abc/def/ghi.html
print toruDot('/abc/def/./ghi/jkl.jpg'); → /abc/def/ghi/jkl.jpg
print toruDot('/abc/def/../ghi/jkl.gif'); → /abc/ghi/jkl.gif
print toruDot('/../abc/def/ghi.txt'); → ヌルストリングス
print toruDot('/abc/././def/../ghi.pdf'); → /abc/ghi.pdf
print toruDot('/abc/.././def/../../ghi.zip'); → ヌルストリングス
print toruDot('/../abc.lzh'); → ヌルストリングス
等となるような関数 toruDot を定義することです。
不正云々はこのように正規化された後で呼び出し側で判断するので、この関数の処理の範疇ではありません。
0526nobodyさん
2005/08/22(月) 20:23:57ID:???0527nobodyさん
2005/08/22(月) 20:29:46ID:???それは /../abc/lzh が指定されたものと同じとし、ヌルストリングスです。
ただし、パスの先頭は / で始まるということにしましたので、そういうケースは無いものとして扱ってよいということで。
いや、もちろん対応してもいいんですが、この課題の発端が、「Preg_Replace 一発で書けないものか?」だったので、
多分先頭が / で始まるということを絶対条件にしておいた方が正規表現を書きやすいかと思っただけです。
でも、Preg_Replace にこだわりません。
0528nobodyさん
2005/08/22(月) 21:18:29ID:???回答でもなんでもないので読み飛ばして良いよ。
>こういう処理やるたびに同じようなコード書いて、
だいたい、入力値に'/abc/.././def/../../ghi.zip'のような物を入れなきゃいけない、
それがたびたび発生する、って言う時点で、入力者か前段処理のシステムに問題がある。
まずそっちを改善すべきではないだ廊下。
0529521
2005/08/22(月) 21:39:53ID:???ウェブアプリなら、フォームでどんなにがんばっていたとしても、クエリを直接いじられることも想定すべきだと思います。
でも、今はそういう当初の目的よりも、できるだけ簡潔な方法を求めることに目的があります。
0530nobodyさん
2005/08/22(月) 21:47:18ID:X7Dykvns質問の内容が理解できないバカもバカなら
こんなところでマトモな解答があると思ってる502も愚か過ぎるw
0532Perl厨
2005/08/22(月) 23:44:59ID:???{
$path = preg_replace('/(?<=\/)\.\//', '', $path);
do{
$path = preg_replace('/[^\/]+\/\.\.\//', '', ($old = $path), 1);
}while($old != $path);
return(preg_match('/\/\.\./', $path) ? '' : $path);
}
こんなものでどうでしょう。
ただ、少しトリッキーな部分があるのは否めません。
普通にexplodeして処理した方が分かりやすくて、確実でしょう。
0533nobodyさん
2005/08/23(火) 00:08:38ID:???"/a/b/./"は、"/a/b/"になり、
"/a/b/../"は、"/a/"になり、
"/a/b/.../"は、"/"になるってことですね。<-これはないか。
一見単純に
"./"=>""
"x/../"=>""
に置換するような正規表現で出来そうだが、
”../......./..../////"とか変なパスもエラーとしてヌルストリングスを返すとか
考えれば、多少は複雑な処理になってしまうもんじゃないの。
0534nobodyさん
2005/08/23(火) 00:42:26ID:???それは /../../abc のようなときに正しく動かないです。
ループ中の正規表現の先頭は、\.\. ではない [\/]+ にマッチさせないといけないです。
この書き方が何気に面倒なんですよね。自分もその辺で悩み、玉砕されました。
しかしながら、アプローチとしてはやっぱり最初に ./ を取ってしまって、あとはループで ../ を削除していく、ってことですね。
でもこのやり方だと、無理やり正規表現を使ってる、って感じで、いまいちエレガンスを感じないんですよね・・・
# せっかく解答していただいたのにナニですが
>>533
Win系で動くサービスだと、.../ 等にも対応しないといけなそうですね。
うーむ・・・
0537nobodyさん
2005/08/23(火) 01:24:54ID:n8cysVomphpからアクセスして、
その表示されたサイトのソースを持ってくるようなスクリプトを
作りたい場合どうすればいいでしょうか?
1.PHPからあるサイトにアクセスさせる方法
2.アクセスしたサイトのソースを持ってくる方法
以上の2つをどのようにすればいいか良く分かりません。
ヘルプミーでございます
0539nobodyさん
2005/08/23(火) 01:35:46ID:???fopen("http://hogehogehogehoge.co.jp/","r")
0541nobodyさん
2005/08/23(火) 07:54:47ID:???OSによってパスの最大長も違うようだけどどうするよ。
0542nobodyさん
2005/08/23(火) 09:16:17ID:???変数に代入するときに 参照使ってますか?
( $a =& $b)
php programers magazeneにあまり意味がないって書いてあった。
0543nobodyさん
2005/08/23(火) 09:28:25ID:???単純な文字列では使わないけど、配列には使ってる。
なんとなく。
というか、同一の配列を複数の参照で書き換えたりすることが多いから、習慣的に。
0544nobodyさん
2005/08/23(火) 10:00:43ID:???事故解決しました
$com = mb_convert_kana($com, "s","Shift_JIS");
どうも文字コードがきちんと指定出来てなかっただけみたいです。
0545nobodyさん
2005/08/23(火) 10:31:21ID:???0546nobodyさん
2005/08/23(火) 11:02:57ID:???確かにパフォーマンスを期待した参照は無意味ってマニュアルにも書いてた気がする。
と、思って再確認してみた。
> PHP 4 は変数に値の代入を行う別の方法を提供します。
> それは、 参照による代入 です。 この場合、新規の変数は元の変数を参照するだけです。
> (言いかえると、元の変数の"エイリアスを作る"または元の変数を"指す")
> 新規の変数への代入は、元の変数に影響し、その逆も同様となります。
> この手法ではコピーは行われないため、代入はより速やかに行われます。
> しかし、速度の向上が体感できるのは、重いループや大きな配列または オブジェクトを割り付ける場合に限られるものと思われます。
そしたらパフォーマンスも上がると書いてあった。
0547nobodyさん
2005/08/23(火) 11:05:19ID:galtEPWUどうすればいいのでしょうか?
例:「123456」というファイルを吐き出すとき、すでにファイルがあったら「1234561」とする。
Perlだと
$FILE = "123456";
$PATH = "./data/".$FILE;
$i = 1;
while (-e $PATH) {
$PATH = "./data/".$FILE.$i;
$i++;
}
open (Out, "> $PATH");
とすればいいとは教えてもらったんですが。
0548nobory
2005/08/23(火) 11:23:17ID:+KXClmRtどのようにすればいいですか?
よろしくおねがいします
0549nobodyさん
2005/08/23(火) 11:28:45ID:???0551nobory
2005/08/23(火) 11:36:45ID:+KXClmRtありがとうございます
0553nobodyさん
2005/08/23(火) 14:31:47ID:???関数を作ったんだけど、「む」だけマッチしません。
なんでだろう?
$patarn = "[^ぁ-ん]"; に「む」を追加すれば問題ないんだけど。
--------------------------------------
function checkHiragana( $item ){
$patarn = "[^ぁ-ん]";
if (ereg ($patarn, $item)){
return false;
}
elseif (strlen($item) > 32) {
return false;
}
else {
return true;
}
}
0554nobodyさん
2005/08/23(火) 23:02:08ID:uQaQUTbk-----
$str1 = "あa";
$str2 = "aあ";
if (mb_ereg_match("[^ぁ-ん]",$str1)) {
echo "str1 ひらがな以外が含まれます\n";
}
if (mb_ereg_match("[^ぁ-ん]",$str2)) {
echo "str2 ひらがな以外が含まれます\n";
}
-----
こんなテストプログラムを作ったんですが、
結果は、
-----
str2 ひらがな以外が含まれます
-----
しか出てきません。なぜなんでしょう?
ひらがな以外が含まれていることを検出したいのですが、、、
0555nobodyさん
2005/08/24(水) 02:25:42ID:???総合的な質問スレが見つけられ無かったので、
自分も触っているphp関連の質問スレにきました。
場違いな質問かもしれませんが、答えて頂けると幸いです。
自分なりに何時間かググってみたんですが、結局よくわかりませんでした。
よろしくお願いします。
mixiやgreeのようなwebサイトを作ってみたいと思っているのですが、
どの言語でプログラムするのが良いのかわからずに悩んでいます。
(言語が決まれば参考書を買いに走るつもりです。)
Java、perl、php、C#・・・。
色々あって結局どれがいいのかわかりません。
オススメの言語&開発環境などありますでしょうか?
プログラムしたことのある言語はC言語 と php 。
動作させるサーバはLinax。
持っているソフトは eclipse と VisualStadio2003 です。
0556nobodyさん
2005/08/24(水) 02:28:17ID:???0557nobodyさん
2005/08/24(水) 02:58:16ID:JrCzEQY3phpについては、php5徹底攻略(赤マンモス本)と言う本をやっと読み終えたぐらいなんです。
レベル低くてすいません。
この本を読んだ感じでは、phpでやって出来なくはないんじゃないかなと思っています。
(phpでやるならば、もちろんリファレンスや中級者本など追加で揃えます。)
ただ、自分の中では結構大掛かりなプログラムになると思っているので、
できれば途中で「違う言語・環境の方が良かったと気づく」のは避けたいのです。
phpとCなんで直接比較出来ないかも知れませんが、
例えばeclipseよりはVC++の方がプログラムし易かったりしませんでしょうか?
(javaの開発環境についてはまだ良く知りません。)
また、検索中に
「大規模なWeb構築ならphpよりはjavaの方がいい」というサイトや、
「phpは早いけど、計算量が増えるとjavaの方が早い」というサイトを見かけました。
(もちろん、phpの方が良いという意見もありました)
こんなわけで、こう、迷わされる要素が色々とあって、
なかなか自分では判断が付かずに相談させてもらいました。
0558nobodyさん
2005/08/24(水) 03:04:44ID:???まずはそれから勉強してくれ。
0559nobodyさん
2005/08/24(水) 03:09:07ID:???イメージも全然掴めてないって事だよねぇ。
その状態で言語をどれにするか悩んでもはっきり云って無駄な気がする。
多言語間の移植なんてリファレンスあれば難しい事でもないから、
さっさと作り始めた方がいいと思うよ。
あと、「違う言語・環境の方が良かった」となりたくなければ、プログラムを
作る所からはじめるのではなくて、設計書作る所から始めた方がいいと思う。
SNSなんて規模が大きくなるサイトなら尚更だよ。
0560nobodyさん
2005/08/24(水) 03:16:26ID:JrCzEQY3>>558
「サーバーサイドプログラミングの仕方」ですね。調べてみます。
phpはホムペでデータベースから検索かけられるくらいの物を作ってみたのですが、
Cはweb用はおろかグラフィカルな物すら作った事がありませんでしたので。
>>559
データベースはmysql使っています。
といってもSQLについてもまだまだ勉強中ですが。
> 多言語間の移植なんてリファレンスあれば難しい事でもない
そうなんですか!知らなかったです。
まずは設計書作り。そして、とりあえず腹をくくってプログラミングするのがいいんですね。
なるほど。
0561nobodyさん
2005/08/24(水) 03:42:45ID:???559 の言うとおりまずは設計からだね。
性能要件もあるけど、ロードバランスするとかそのレベルじゃない
限り言語選択には影響しないと個人的には思う。
根底の仕様が揺るがない確固たる自信があるなら、スクリプト言語より
仕様が厳格で保守性の高い Java を。
ただし、最初の設計を誤るとプログラムが崩壊する。
最終形をを読み切れなくて、スモールスタートしたいとかスクラッチ
アンドビルドの部分がおおいなら生産性の高い PHP を。
Perl は Web 的に機能が低いし、Linux 使うなら C# をわざわざ
選択する必要はない。
0562nobodyさん
2005/08/24(水) 04:23:53ID:???0563nobodyさん
2005/08/24(水) 06:27:30ID:???スクリプトがシフトジスで内部エンコードがEUC-JP
>>562
関数の名前、引数の数が違う
実行した結果は同じ
0564nobodyさん
2005/08/24(水) 09:47:23ID:AR3QKhJJWindowsからFedoraCore4に移行作業をしているのですが、
Spreadsheetを使用したExcel出力プログラムのエラーが回避できません。
どういった対処を施せばいいのかご指導お願いします。
OS:FedoraCore4
wwwサーバ:Apache2
PHP:PHP-5.0.4 (OLE-0.5、SpreadsheetExcelWriter-0.8をインクルード)
pearコマンドのpear listでインストールの確認はできています。
エラーの内容
Warning: main(/usr/share/pear/Spreadsheet/Excel/Writer.php) [function.main]: failed to open stream:
Permission denied in /var/www/html/dekita/habikino/excelout.php on line 3
Fatal error: main() [function.require]: Failed opening required '/usr/share/pear/Spreadsheet/Excel/Writer.php'
(include_path='.:/usr/local/include/php:/usr/local/lib/php:/usr/share/pear') in /var/www/html/dekita/habikino/excelout.php on line 3
プログラムに関連するディレクトリとファイルの権限はnobody.nobodyの775としていますが
上記のようなエラーがでてしまいます。WindowsのApache2やAnHTTPD上では動作していました。
権限をnobodyの775にしているディレクトリとファイル
・/var/www/html以下のファイル全て
・/usr/share/pear/以下のファイル全て
1:<?php
2:
3: require_once('/usr/share/pear/Spreadsheet/Excel/Writer.php');
・:
・:?>
0566nobodyさん
2005/08/24(水) 10:26:03ID:???で値があるかを調べたいんですが、値が0の時はFALSEになってしまいます。
&& で条件追加してもいいんですが、もっと賢い方法ありますか?
0568564
2005/08/24(水) 10:43:18ID:AR3QKhJJありがとうございます。
パーミッションエラーは回避されました。
0569nobodyさん
2005/08/24(水) 10:48:35ID:???> 最終形をを読み切れなくて、スモールスタートしたいとかスクラッチ
> アンドビルドの部分がおおいなら生産性の高い PHP を。
ぴたりと言い当てられた気分ですw
スモールスタートして、機能追加、機能追加・・・とやっていこうと思っていたので、
プロセスモデルは、スパイラルモデルかラウンドトリップのつもりでした。
「まずは設計」とのお言葉通り、
どの言語にしても共通な「要求分析→外部設計」にまずは取り掛かることにします。
その段階で十分に考えを練る事が出来たらjavaもいいかなと思いました。
(長い目でみると保守性を優先したい気もしますので)
生産性の高さは、ブログのプラグインを作っている時に感じていましたので、
今の所phpを心の中では本命にしておきます。
一つ気になったのですが、
ロードバランスするとなるとphp(やその他のスクリプト言語)は向いていないのでしょうか?
スモールスタートして、万が一大規模(機能・ユーザー数)になった場合には、
ロードバランスが必要になってくると思うので、一応視野には入れておきたいのです。
0570554
2005/08/24(水) 11:15:44ID:pI/B8obu>スクリプトがシフトジスで内部エンコードがEUC-JP
どちらもEUCになっているようなのです。
どなたかヘルププリーズ
0571nobodyさん
2005/08/24(水) 11:21:08ID:???> ロードバランスするとなるとphp(やその他のスクリプト言語)は向いていないのでしょうか?
ロードバランスって言葉はあんまり良くないかもね。
同じ機能をもつサーバを複数用意して、いわゆるロードバランスするだけなら、
それなりの仕組みをいれればプラットフォーム問わずできる。
(セッション管理には注意してな
一方で 機能ごと にサーバを分けて負荷分散するという考え方もある。
これは php ではできないと思った方がいい。(よね? おれはみたことない)
この辺は、Java だと EJB とか環境がそろっている。
って感じか。
0572566
2005/08/24(水) 12:35:47ID:???ありがとうございます。
ただ、
$var = ""; のときでも isset はTRUEを返してしまいますね…;;
empty 使うと $var = 0; のときはTRUE…;;
0573nobodyさん
2005/08/24(水) 12:55:04ID:???マニュアルの mb_ereg と mb_ereg_match の項目を見比べる。
>566
型の比較表
http://www.php.net/manual/ja/types.comparisons.php
0575nobodyさん
2005/08/24(水) 13:14:06ID:???0577575
2005/08/24(水) 14:27:24ID:???未定義のときもtrueだ
結局式が2つ必要
0578nobodyさん
2005/08/24(水) 14:57:44ID:???この時、確認画面でデータが間違っている事に気づいた時、データを保持したまま投稿画面に戻るには
どのようにするのがいいでしょうか?
確認画面に送信ボタンと戻るボタンを作り、それぞれのページにsubmitすればいいとは思うのですが、
この場合、確認画面のソースのみを触って、それぞれにsubmitする方法はあるのでしょうか?
実行画面のソースをいじればいいというのはわかっているのですが、実行画面からさらに投稿画面に
飛ぶというのはあまりやりたくないもので。
御助言よろしくお願いします。
0579nobodyさん
2005/08/24(水) 14:59:23ID:???http://jp.php.net/manual/ja/function.is-numeric.php
0580nobodyさん
2005/08/24(水) 15:47:44ID:???PHP4逆引大全500見てものってないです。
とあるフレームワークで $obj->getStructure() というのがエラーになるのですが、
何が悪いのかわからないのです。
よろしくお願いします。
0582nobodyさん
2005/08/24(水) 15:53:54ID:???get_class_methods
下手な参考書にたよるより公式マニュアルの見方覚えたほうがいいよ。
0583579
2005/08/24(水) 16:06:20ID:???「値があるか」を「数値があるか」と誤読した orz
http://jp2.php.net/manual/ja/function.strlen.php
0584nobodyさん
2005/08/24(水) 16:11:39ID:???ありがとうございます。
公式マニュアルは、いつも見にいくのですが、いつも全くわからないのです。
答えがわかったためしがないです。読み方があるのですかねぇ。
0585nobodyさん
2005/08/24(水) 16:14:33ID:Y2M5edeX化けたときのHTMLと、化けてないときのHTMLを比較すると、
普段は「<TR>」となっているところが「<Tzシ」となっていました。
化けているのはこの2バイト分だけで、ほかは全く同じでした。
原因がさっぱりわかりません。何かヒントになりそうなことがあれば教えてください。
環境
OS:RedHat 9
PHP:4.3.10
Apache:2.0.54
0587585
2005/08/24(水) 17:04:06ID:???どうもです。
ただ、化けてるときもほかのところは「TR」ってなってるんですよね。
解決方法とか、参考になるページとか知ってたら教えてください。
0588nobodyさん
2005/08/24(水) 17:34:28ID:/J84pd/xここで質問して良いかどうかも解らなかったのですが、
良く出会い系サイトとかであるポイント制度のシステムなんですが
あれってPHPで製作出来ると聞いたのですが・・・
ユーザーがポイントを購入するとポイントを加算していき、
アプリケーションに接続するとポイントが消費していく。
ポイントが無くなると接続をシャットアウトする。
と言うような感じのシステムなんですが、
全てマニュアル操作で良いのですが、このシステムの製作って
どなた様かご指導頂けるかたおられないでしょうか??
宜しくお願い致します。
0589nobodyさん
2005/08/24(水) 17:49:25ID:???0590nobodyさん
2005/08/24(水) 17:50:25ID:???>あれってPHPで製作出来ると聞いたのですが・・・
PHP「でも」できるが正解かも。
>全てマニュアル操作で良いのですが
意味不明。ポイント操作を人間が行う?
24時間管理システムに張り付くのか?
>このシステムの製作って
>どなた様かご指導頂けるかたおられないでしょうか
貴方が開発するのか?
どの程度のスキルをお持ちか?
0から手取り足取り、PHPの文法から教える必要が?
それとも「ま る な げ ?」
0592nobodyさん
2005/08/24(水) 17:54:02ID:???マニュアル操作というのが意味分りません。24時間、人が張りつくのですか?
まず、ご自分でPHP+DBを使い簡単なシステムを作ってみて下さい。
ポイントを購入したら、そのユーザのDBにポイントを加算。
アプリケーションを使ったらポイント消費。
ポイントが無くなったらログアウト。
簡単です。
もし、ご自分で出来ない場合には外注しましょう。
ここで教えてもらうモノでは無いです。
0594nobodyさん
2005/08/24(水) 18:03:38ID:???セッション使う。
投稿画面:セッション内に投稿内容があればそれを表示する(最初は空になる)。
確認画面:投稿内容をセッションに入れる。
実行画面:セッション内の投稿内容を破棄。
0596578
2005/08/24(水) 18:08:55ID:???パラメータで送って、投稿画面でGETするということでしょうか?
実は、かなりデータ数が多いので、あまりパラメータ渡しにはしたくなかったのですが、テストしてみたいと思います。
ちなみに、実行画面からさらに投稿画面に飛ぶ作業をあまりしたくない理由は、回線が細いのと、端末が携帯からという理由です。
ありがとうございました。
0598nobodyさん
2005/08/24(水) 18:28:24ID:/J84pd/x有難う御座います。
一度参考書等みながらやってみます。
失礼な事をお聞きしますが、
ちなみにもしあなたが作成するならどれくらいの
金額で作成しますか??
0599nobodyさん
2005/08/24(水) 18:36:00ID:???0601nobodyさん
2005/08/24(水) 18:39:16ID:???いや、だから金額決めるにも様々な要素があるので一概には言えません。ほんとに。
人だけで見ても、ダンピングしてまで仕事まわしてる人も居るし、きちんとやる人も居る。
金額は全然違います。なので勝手な金額を言う訳にはいきません。
それを元に交渉されると外注先が困ると思うので。
0602nobodyさん
2005/08/24(水) 18:48:38ID:???0603nobodyさん
2005/08/24(水) 18:59:19ID:/J84pd/x実は製作会社に問い合わせたところ私の希望のシステムは
やはり20万〜50万かかるような事言われました。
プログラミングの技術者って凄いですね。
でも解らなければ制作会社頼るしかないかっ・・・
でも制作会社側はソースを公開するって言ってから、
仮にお金かかってもそのソースを参考にするのも勉強
ですかねっ!潔く制作会社に頼みます。(;´д`)トホホ
0604nobodyさん
2005/08/24(水) 19:02:11ID:???さんへ
トラブルってどんなトラブルがあるんでしょうか??
私は基本的にそう言うのは絶対ない人間なんで大丈夫ですよ。
0606nobodyさん
2005/08/24(水) 19:12:25ID:Zqn/ZIzxレンタルフォーム?で、お金を払ってフォームを貸してもらうものに登録し、
そのフォームが、HTMLで自分なりにアレンジして改造できる場合、そこにPHPを
埋め込んだりすることはできるのでしょうか?
PHPを使えるサーバーはもちろん用意します。
というのも、レンタルのフォームでは、そのフォームに入力されたデータがCSVで
毎日ダウンロードしないといけないようになっているのです。
これを自分なりに、PHPを使い、MYSQLなどと連携し、RDBでデータベースを作るようにしたいのですが・・・
フォームを借りずに、自分で一からPHPでフォームも作成したほうがやりやすいでしょうか?
0608nobodyさん
2005/08/24(水) 19:24:51ID:???画面(HTML) だけレンタルフォーム(?) からパクって、自分のプログラムに
いれるってこと?だとしたら、技術的には出来るけど著作権にかかる。
自分しか使わないならとめないけどさ。
0609606
2005/08/24(水) 19:25:07ID:Zqn/ZIzxありがとうございます。
一応、レンタルのものにPHPを埋め込むということはできるのでしょうか?
いずれは全て自作したいと思っていますが。
0610606
2005/08/24(水) 19:27:56ID:Zqn/ZIzx違うのです。
そのレンタルフォームは、HTMLで見栄えを変更できるようになっているのです。
http://home.toku-talk.com/html/s-form.html
↑
これなのですが。
CSVでデータをダウンロードするようになっているのを、RDBで管理したいのです。
0611nobodyさん
2005/08/24(水) 19:40:08ID:???"HTML の変更"で POST="url" って書いてあるところを変えることができるなら可能。
url を自分の PHP のアドレスにする。
しかしレンタルフォームを見てないけど、たぶんできないだろう。
メリットもよく分からない・・・。
0615nobodyさん
2005/08/24(水) 21:20:30ID:YErBP/YJを探しています。
どなたかご存知の方いらっしゃいましたらぜひ教えてください〜!
0616nobodyさん
2005/08/24(水) 21:23:47ID:???レンタルフォームを借りる顧客は、基本的に
システム部分を借りるために借りるんだよ。
電子署名関係の費用を浮かしたりできるしね。
PHP部分を自作するスキルがあるなら、
HTML部分も自作する方がはるかに簡単だよ。
0617nobodyさん
2005/08/24(水) 22:23:55ID:???垂直分散させることは無いと思うので、
「負荷分散」させるか「機能分散」させるかも設計段階でちゃんと考慮するようにします。
(ある意味それによって言語が決まってしまいそうですね)
ホント勉強になりました。ありがとうございました。
0620nobodyさん
2005/08/24(水) 22:33:36ID:???機能ごとの分散をどの程度行なうかによるけど、
もし本当にphpでやるとしたら、スクリプト分けて
Apache側でurl見て飛ばすようにする位しかないんじゃないかなぁ。
保守性も悪くなるし、かっこ悪いのは確かだね。
0623nobodyさん
2005/08/25(木) 00:55:18ID:Obq2ezYLSMTP経由でメール送信するためのサンプルをくんでたんですが
<?
require_once("Mail.php");
require_once("Mail/mime.php");
$mime = new Mail_mime("\r\n");
?>
これでエラーが出ます。
きちんと読み込むMail.phpとmime.phpは存在しててきちんと通ってます。
$mime = new Mail_mime("\r\n");で明らかにエラーでてるんだけどこれってナニがいかんのですか?
引数省略も可能なはずだからしてみたけどそれでも駄目です。
「極めるPHP」のP131の引用なんですけど…
0624nobodyさん
2005/08/25(木) 01:05:54ID:???0625nobodyさん
2005/08/25(木) 01:18:07ID:Obq2ezYLphp.iniの
error_reporting=E_ALL
display_errors=On
にはしてあります。
0627nobodyさん
2005/08/25(木) 01:31:39ID:Obq2ezYLPEARのDB系のプログラムは動いてるんですが。
ちょっとエラー表示もされない時点で明らかにおかしいんでもう少しみてみます、ごめんなさい。
0629nobodyさん
2005/08/25(木) 02:05:35ID:???処理の中の一行毎にerror_logなりなんなりでログはけばどこで落ちてるかわかるっしょ。
まずはそれからだ。
0630nobodyさん
2005/08/25(木) 02:09:23ID:95Treuew0631nobodyさん
2005/08/25(木) 02:20:23ID:???0632623
2005/08/25(木) 02:28:56ID:Obq2ezYL言いにくいんですが原因は、実験鯖が2台あってAで実行してるつもりがBで実行しててAの設定を必死でいじくっているという情けないボンミスでした。
けれど次はもう少し価値ある(?)疑問が昨日からありまして、これのせいでPEAR自体を信じられなくなっていて上でつい軽率な質問をしてしまったのですが…。
その疑問というのが
<?
require_once("Net/POP3.php");
$pop3 =& new Net_POP3;
$res=$pop3->connect('サーバーホスト名');
if(!$res)die("connect err");
$res=$pop3->login('ユーザー名','パスワード');
if(!$res)die("login err");
$pop3->disconnect();
?>
という、pop3でメールを呼び出すサンプルの途中なんですが、このloginの部分でエラーが出てしまいます。
Notice: Undefined offset: 3 in /usr/share/pear/Net/POP3.php on line 298
これはもうPEARの内部のコードですので一応みてはみたんですがちょっとぱっと理解するのは苦しいです。
ちなみに環境はPHP5です。
これは一体なぜなんでしょう…。
0633nobodyさん
2005/08/25(木) 02:56:14ID:???とりあえず一行目に、
error_reporting(E_ALL ^ E_NOTICE);
いれて先に進み、PEAR の偉い人が来るのを待つ。
0634nobodyさん
2005/08/25(木) 02:56:33ID:???loginの引数3つ必要とかそういうのじゃないの??
とりあえずソース見ようよ・・
POP3.phpの298行目で配列の要素の3番目を参照しようとしてるけど
その配列には3つ目の要素無いです。ってエラーだと思うよ。
0635nobodyさん
2005/08/25(木) 05:14:12ID:???634のいうことがあたってる気がする。
普通、サーバーホスト、ユーザーIDとパスワだけじゃ
どんなDBにも入れんです。
んで、この場合足りない3つ目の引数は
DB名じゃないかと。
0636nobodyさん
2005/08/25(木) 05:19:08ID:???0637nobodyさん
2005/08/25(木) 05:52:58ID:???hoge.php?hogeの場合は、hoge.phpとは別のページを表示させる
というのはどうやるのでしょうか?
もし宜しければ解説サイトも教えていただけると幸いです。
0638nobodyさん
2005/08/25(木) 06:48:23ID:???・hoge.php?hogeの時に、お目当てのファイルをrequire();する。もしくは、hoge.phpに埋め込む。
・<meta http-quiv="Refresh">を使う
・JavaScriptなで自動的に他のページにジャンプする等
パッと思いついただけでこれだけ。他にもまだあるかも。
解説は自分で探してくれ。
0639nobodyさん
2005/08/25(木) 07:09:26ID:???引数不足なら、Warning: Missing argument でるんじゃね。
function login($user, $pass, $apop = true)
だから、2引数でも動くし。
まぁとりあえず、
$res=$pop3->login('ユーザー名','パスワード', false);
にしておく。
ちゃんとソース読んでないけど、
なんか POP3 サーバが変な返値してる気がする。
だめなら試験している POP3 変えてみるよろし。
>>636
ナイスつっこみ。
0640nobodyさん
2005/08/25(木) 08:35:58ID:NxH/rXi6どのようにやったら実現できるのでしょうか?
ご教授お願いします。
0642nobodyさん
2005/08/25(木) 09:25:27ID:NxH/rXi6$filename = "sample.txt";
$lines = file($filename);
$fp = fopen($filename, 'w');
for ($i = 1; $i < count($lines); $i++) {
fputs($fp, $lines[$i]);
}
fclose($fp);
echo $lines[0];
このように書きましたが、もっとスマートに書けないかと思いまして。。
0643nobodyさん
2005/08/25(木) 10:52:35ID:DuoTARf6<form action="sample.php" method="post">
<input type="text" name="word">
<input type="submit" value="送信">
</form>
---sample.php---
$word = $_POST['word'];
print "$word";
という、ごく普通の変数の受け渡しについてですが、
ほとんどの言葉(日本語)はきちんと受け渡しができるのですが、
いくつかの言葉が受け渡しできません。
たとえば、「道路」という言葉が受け渡しできませんでした。
encodingはhtmlもphpもEUC-JPでそろえてあります。
一部の言葉だけが受け渡しできないという原因は何でしょうか?
0644nobodyさん
2005/08/25(木) 11:08:56ID:???$filename = "sample.txt";
$lines = file($filename);
array_shift($lines);
$fp = fopen($filename, 'w');
fputs($fp, implode('', $lines));
fclose($fp);
0645nobodyさん
2005/08/25(木) 11:22:13ID:???参考になるかも。
http://ns1.php.gr.jp/pipermail/php-users/2003-August/017686.html
0646nobodyさん
2005/08/25(木) 11:41:50ID:???解決しました━━━━━(゚∀゚)━━━━━ !!!!!
本当にどうもありがとうございました!! このご恩は忘れません。
0647nobodyさん
2005/08/25(木) 12:29:26ID:???ふむふむ。。
未だに理解できてない部分がありますが、今後の参考にさせて頂きたいと思います。
お忙しい中、本当にありがとうございました。
0648632
2005/08/25(木) 12:39:32ID:zPPHIyNWそのあたりはありとあらゆる手段を試してみたんですが。
サーバーも2つ試したんですがだめだったので、プロバイダーの提供するメールアドレスのサーバーとか使ってみて実験してみます・・・
0649nobodyさん
2005/08/25(木) 13:27:26ID:???関数が分からず途方に暮れています。どなたかご教示願います。
0651nobodyさん
2005/08/25(木) 14:57:15ID:At275aLQ0652nobodyさん
2005/08/25(木) 15:04:37ID:At275aLQスレッド形式の掲示板を作っているのですが、テーブルを2つ作成し、
tbl_thread(スレ管理用)にthreadno,timestamp,title
tbl_message(レス管理用)にmessageno,threadno,timestamp,user,message
というフィールドを作成しています。
タイトル一覧の画面にて各スレッドのレス数を表示させたいのですが、
これはその都度tbl_messageをthreadno毎にグループ化してcount()してやる必要があるのでしょうか?
スレ・レスともに増えていったらその都度tbl_messageの全てについて処理すると重くなるかも?と思ったので
なんとかtbl_threadの方にレス数も格納したいのですが、
投稿時に投稿後のテーブルに対するレス数をtbl_threadに格納するという方法だと
同時刻に投稿があった場合(トランザクションが同時に実行された場合)に誤差が生じてしまいそうです。
まぁ同時に投稿がある可能性もさほど高くはないし、一度誰かが投稿すればまた正常な数値に戻るはずなので
問題ないといえばないのかもしれませんが・・・。
こういった場合、1.その都度tbl_messageで数える方法 2.誤差くらいあっても処理が軽そうな方法 のどちらを選ぶべきなのでしょうか?
よろしくお願いします。
0653nobodyさん
2005/08/25(木) 15:12:40ID:???そこで一つ質問なんですが、PEAR::DB も pg_connect のように、
PHPが終了すれば自動でコネクションを閉じてくれるんでしょうか?
確か pg_close は持続的接続じゃなければ使う意味があまりないと聞きました。
であれば $db->disconnect も省略できるのかな…?
よろしくお願いします。
0654nobodyさん
2005/08/25(木) 15:21:41ID:???ソース見てみたら?
0655653
2005/08/25(木) 15:31:03ID:???pgsql.php を見たところ確かに pg_connect 呼び出してましたね…
てっきり独自の処理でコネクション張ってるものだと思ってました。
お騒がせしました。
回答ありがとうございました。
0656nobodyさん
2005/08/25(木) 15:31:07ID:???>確か pg_close は持続的接続じゃなければ使う意味があまりないと聞きました。
違う。持続的接続の場合に意味がない。
「意味があまりない」という下りは、通常の非持続的接続の場合には
PHPスクリプト終了時にDB_close相当の後処理が自動的に盛り込まれてるのと混同している。
0657nobodyさん
2005/08/25(木) 18:04:59ID:???トランザクションって意味が分かっていないのかな?
トランザクションというのは、複数の処理をひとつの単位として
管理するもの。
というわけで、トランザクション処理をしているのならクライアント
から同時にリクエストがあっても不整合がおきないように
トランザクションごとにデータベースがちゃんと処理する。
エスパーレスすると、652 はトランザクション対応じゃない MySQL を
使っているので、2の方法を使うなら、lock tables を使う。
PHP と関係ないので、これ以上は他のスレでどうぞ。
0658nobodyさん
2005/08/25(木) 18:32:06ID:???↑こちらのphpスクリプトを落として実行してみたのですが、
結果がすべて空白になります
ttp://cgikon.com/sample/php3/form_view.php3
正しい結果例↑
自宅サーバーなので、エラーログを見てみると
52行目でエラーがでているようです
エラーログ
php notice: underfined variable: NAME属性 in /var/www/html/form_data.php on line 52, referer:http://〜/Form_php.html
php52行目周辺
48// 値の取得
49
50for($loop = 0;$loop < count($title);$loop++) {
51$key = $title[$loop];
52$val = ereg_replace("\x0D\x0A|\x0D|\x0A","",$$key);
53$result[] = $val;
54}
55$result[] = date("Y/m/d H:i:s",time());
サイトのFAQのところにはhtml側と保存する側(form_data.tsv)のNAME属性が一致していない場合とありましたが
完全にすべて一致しております。
どこかエラー可能性のある場所はありますでしょうか?
よろしくお願いします。
0659nobodyさん
2005/08/25(木) 19:26:44ID:???全部見る気はしないがようするにform_data.tsvで指定されているnameと受け取るnameが一致してないって事でしょ
0660nobodyさん
2005/08/25(木) 19:34:01ID:???52行目 $val = ereg_replace("\x0D\x0A|\x0D|\x0A","",$$key);
の「$$key」を $_GET[$key] か $_POST[$key] に変更すればいける。
0661nobodyさん
2005/08/25(木) 19:52:12ID:???セキュリティーホール満載な上に処理が遅いのに。拡張子だけだったらいいんだけどヽ(´ー`)ノ
0662653
2005/08/25(木) 20:24:41ID:???「意味があまりない」という表現が悪かったですね…すみません。
pconnect の時は pg_close では切断できなくて、
connect の時にだけ有効なのは知ってました。
ただ、PHPの処理が終了すると自動で切断されるので、
pg_close を使わなくても良い
という意味で、使う意味があまりないと表現しました。
ttp://php.s3.to/man/function.pg-close.html
ここにも通常は必要ないとありますしね。
0663nobodyさん
2005/08/25(木) 20:33:33ID:???確認してみたら俺とこもだ。
無料スペースでPHPの設定変えられないとしたらどうしたらいいのでしょう。
多少それなりに自分で考えてみました。
どうやら他の文字も一緒に送ればいいみたい。
こんなんでいいかな。
0664nobodyさん
2005/08/25(木) 20:35:39ID:???0665nobodyさん
2005/08/25(木) 21:38:59ID:???magic_quotes_gpc=onに設定してある状態で、
テキストボックスから"hoge"のような文字を入力し、GET/POSTで渡した先で何も処理せずに表示させると
「\"hoge\"」と表示されますが、
そのままMySQLに登録すると、MySQLのクライアントから直接見ると"hoge"となっており、
エスケープされていません。
MySQLにはstripslashesのような機能があるのでしょうか?
0666665
2005/08/25(木) 21:43:01ID:???"hoge"に直されてから登録されるってことか。
ということは、掲示板で入力→確認→登録→閲覧という流れでデータを処理する場合は、
「確認」「登録」の時だけaddslashesされた状態となっているから、
「確認」の画面でhtmlに表示する場合はstripslashesを実行しなきゃいけないのか。
という理解であってますでしょうか?
0667nobodyさん
2005/08/25(木) 21:58:08ID:???たぶんいいんじゃないの。初心者なので良く知りませんが。
エスケープって、"で囲まれた文字列の中に"を入れたいときなどに使うものだから、
SQLを書くときに\"、\\、\'を使い、
DBに登録されるのは"、\、'となる。
0668nobodyさん
2005/08/25(木) 22:16:52ID:???みてる?
http://pear.php.net/bugs/bug.php?id=4243
0670nobodyさん
2005/08/25(木) 22:42:57ID:???新規に立てたら即応して定型文レスを返す、っていうプログラムを作ろうと思って
いるんだけどPHPでいいとおもう?
String関係に強いから気に入っているんだよね。
0671nobodyさん
2005/08/25(木) 22:50:37ID:???0672nobodyさん
2005/08/25(木) 22:54:04ID:???ヒント:addslashesでエスケープされる文字 !== MySQLでエスケープする必要のある文字
"POSTを受けるたび"にget_magic_quotes_gpc()でmagic_quotes_gpcを見て、onならstripslashesをかけて
SQL叩く前に、mysql_espace_string()でMySQL用にエスケープして、INSERT。
表示する際は何も触らない。(必要に応じてhtmlspecialchars()やmb_convert_encoding()等)
なんか、>>665-666を見てると、たまたま動いてるだけで、何かしら不具合抱えてる気が。
0673658
2005/08/25(木) 23:07:05ID:???NAME属性のほうは一致していましたorz
>>660
htmlの方でPOSTにしていたので、$_POST[$key]にしたところ
いけました。
本当にありがとうございます!
>>661
リンク間違ってましたw
実際はphp4の方を使っています
ありがとうございました
0675nobodyさん
2005/08/25(木) 23:34:30ID:???0676nobodyさん
2005/08/25(木) 23:40:54ID:qTYcS0PZ何の為に必要なのでしょうか?
0677665
2005/08/25(木) 23:48:29ID:???レスありがとうございます。とりあえず動作には問題なさそうです。
MySQLのエスケープシーケンスを確認したところ、' " \ NULL に関しては共通のようです。
(addslashesでエスケープされるので問題ないはず。)
% _ に関してはmysql_escape_stringでもエスケープしないということで、エスケープする必要はないということかな?
(DBに%,_を含んだ文字列を登録してみましたが問題ありませんでした。)
\b \t \z ついては利用する予定がないのでとりあえず無視しておくことにします。
改行がよくわからないのですが、複数行のテキストをDBに登録した場合に改行はどのように処理されているのでしょうか?
複数行あるテキストの改行をhtmlで表示するときに改行を反映させるべく「\r」や「\n」を<BR>に置き換えるといった処理をしているのですが、
DBにおいて改行は「\r」「\n」といった文字で登録されているのでしょうか?
(テキストボックスに「hoge\n」といった文字列を入力して登録してもちゃんと「hoge\n」と登録されるんだよなぁ・・・。)
(PHPでMySQLから呼び込み時に改行が「\r」「\n」といった文字に変わってるのかな?)
改行がどう処理されているかどなたかご存知でしょうか?よろしくお願いします。
0678nobodyさん
2005/08/25(木) 23:55:43ID:???俺が使うケースだが、
$f = fopen($filename, "w");
と
$f = fopen($filename, "a");
ftruncate($f, 0);
は等しいわけね。
で、何が違うのかというと、
ファイルをロックしたい時。
前者はロックする前にサイズが0になってしまうが、
後者ならfopen()の直後にflock()を入れれば問題ない。
この場合はrewind()でも似たようなことができるが、
ftruncate()の方が厳密に思うのでこれを使っている。
0682nobodyさん
2005/08/26(金) 00:56:28ID:???0683nobodyさん
2005/08/26(金) 00:58:08ID:???ああ、すまない
前提を勝手にこの先まで考えてた。
ファイルポインタを最初に戻せば、
この後fputs()かなんかで上書きされるだろうから
結果的には同じになるパターンが多いと思ってね。
まあ、元より小さいデータを書き込むとゴミが残ってダメダメなんだけど。
0684nobodyさん
2005/08/26(金) 01:10:08ID:???ttp://jp.php.net/manual/en/function.ftruncate.php
Note: The file pointer is changed only in append mode. In write mode, additional fseek() call is needed.
マニュアルサイトは良くできてるが日本語の説明は抜けや誤訳が多い。
0685nobodyさん
2005/08/26(金) 01:26:54ID:???PHP のエラーメッセージ一覧というのはありますでしょうか?
0687nobodyさん
2005/08/26(金) 03:03:53ID:???includeを2回使うと前の方だけちゃんと実行されるのですが、
後ろの方はソースが展開されてしまいます。
(順番を入れ替えても前の方だけちゃんと動く)
これはapacheとphpのどっちの問題でしょうか?
0689nobodyさん
2005/08/26(金) 08:05:29ID:???どうやってやるんでしょうか。
0691nobodyさん
2005/08/26(金) 09:20:08ID:???それがですねHTTP://?????? から(header("Location: HTTPS://??????"))、HTTPS://?????? へ
するとセッションが空になってしまうのです。
0692nobodyさん
2005/08/26(金) 10:01:49ID:???0693nobodyさん
2005/08/26(金) 12:24:59ID:???うまくいかないのは、ファイルを添付する方法です。
DIMEで加工してやらないといけないらしいですが、
具体的にどうすればよいのですか?
0694nobodyさん
2005/08/26(金) 13:57:14ID:nyexn78S↓のソースでアップロードファイルの名前が表示されると思うのですが、
表示できません。どこか間違っていますでしょうか?
php.iniの設定はfile_uploadsがOnなのは確認しました。
<HTML>
<BODY>
<?php
echo "[".$_FILES['userfile']['name']."]";
?>
<FORM method="POST">
<input type="file" name="userfile">
<input type="submit" value="送信">
</form>
</body>
</html>
0695nobodyさん
2005/08/26(金) 14:16:39ID:bg4VVVx+投稿された記事を、ファイル出力して管理するか、DBで管理するか悩んでいます。
記事の検索や、投稿者のポイント管理なども考えているのでDBのほうが便利だとは思うんですが、レンタルサーバなのであまりサーバに負担をかけてしまうのも心配です。
実際、ファイル出力とDB管理ではどちらがよいのかアドバイスをお願い致します。
0696694
2005/08/26(金) 14:20:10ID:???FORMタグに「enctype="multipart/form-data"」を入れたらアップロードできました。
とりあえずこれで行こうと思います。てかマニュアルに載ってなくね?
>>695
俺はDBが好き。
0697nobodyさん
2005/08/26(金) 14:22:26ID:???<form enctype="multipart/form-data" action="_URL_" method="POST">
0698nobodyさん
2005/08/26(金) 14:28:58ID:???ttp://www.php.net/manual/ja/features.file-upload.php
RFC 1867 - Form-based File Upload in HTML
つー決まり事があって、その中でenctypeの指定の仕方が決まってる。
0699nobodyさん
2005/08/26(金) 14:52:32ID:???ファイルアップロードのenctypeにmultipart/form-dataを指定するのはHTMLの決まりであってPHPは関係ない
0700nobodyさん
2005/08/26(金) 16:08:45ID:wVCDYq5xリンクにカーソルを乗せると、リンクの説明など文字を出すことができますが、
カーソルを乗せたときに、そのリンク先のファイル更新日付を出すにはどうすれば
よいですか?
よろしくお願いします。
0702nobodyさん
2005/08/26(金) 17:05:10ID:???PHPに限らずPerlでもJavaでもRubyでもPythonでもCでもenctype="multipart/form-data"が無いとアップローで出来ないから
0703nobodyさん
2005/08/26(金) 17:15:08ID:???html4.01の仕様
ttp://www.w3.org/TR/html401/interact/forms.html#adef-enctype
input type="file"を使う時は enctype="multipart/form-data"を使え、とある。
0704nobodyさん
2005/08/26(金) 18:20:12ID:???0706nobodyさん
2005/08/26(金) 19:05:04ID:???0707nobodyさん
2005/08/26(金) 20:28:52ID:???array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
array ( [0] => あ [1] => い [2] => う [3] => え [4] => お )
その後、すべての行をさらに配列の中に入れるには
array (
array[0] ( [0] => a [1] => b [2] => c [3] => d [4] => e ),
array[1] ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ),
array[2] ( [0] => あ [1] => い [2] => う [3] => え [4] => お )
)
どのようなソースを書けば良いのでしょうか?
0708nobodyさん
2005/08/26(金) 22:34:35ID:???$fp = fopen("test.csv",'r');
flock($fp, LOCK_EX);
while(!feof($fp)){
$data_line = explode(",",chop(fgets($fp)));
$data_all[] = $data_line ;
}
flock($fp, LOCK_UN);
fclose($fp);
//print_r($data_all);
0712nobodyさん
2005/08/27(土) 04:17:13ID:???>>708のソースで、私の利用している鯖では
PHPのバージョンが古いためなのか
4行目のfgets($fp)をfgets($fp,データ長)
としないとエラーが帰ってきました。
0714nobodyさん
2005/08/27(土) 10:38:52ID:???カンマ区切りのCSVファイルには
$data_line = fgetcsv($fp, 1024);
タブ区切りの時には
$data_line = explode("\t",chop(fgets($fp)));
と使い分けてみます。
0716nobodyさん
2005/08/27(土) 11:48:58ID:???ttp://jp.php.net/manual/ja/function.fgetcsv.php
0717nobodyさん
2005/08/27(土) 12:14:10ID:???PHP5をWin上でApache2のモジュール版として動かしているとき、__destructの中では一切ファイルが開けませんでした。
CLIだと__destructの中でもちゃんと開けました。
これは一体どういうことですか?
マニュアルのどこかに書いてあったら教えてください。
0720nobodyさん
2005/08/27(土) 16:53:49ID:???DBにDATE型で登録してあるデータはYYYY-MM-DDという形式になっていますが、
たとえば今日の日付と一致するかどうかは if ($col["date"] == date("Y-m-d")) で判定できますが、
今日以前のものかどうかを判定するのにたとえば if ($col["date"] < date("Y-m-d"))で判定できるのでしょうか?
試したところ問題なく動作しているように見えるのですが、これでいいのでしょうか?
YYYY-MM-DDやYYYY/MM/DDという形式のデータ同士の比較はPHPは対応していると考えてよいのでしょうか?
0722nobodyさん
2005/08/27(土) 20:54:31ID:???aiueonn
と入力すると
あいうえおん
と返してくれるライブラリーってないですか?
Javascriptでは見たことあるのですがPHPでないですかね?
宜しくお願いします。
0723nobodyさん
2005/08/27(土) 22:08:56ID:oI14vExU私にはPHP等のプログラミングは不可能と判断しまして、お願いがあります。
PHP+DBで小規模なシステムを製作して頂ける親切な方おられないでしょうか?
勿論ある程度の謝礼は致します。
あと製作後のクレームに関してもノークレームと言う条件でも構いませんので
どなた様かご協力頂ける方おられませんでしょうか??
宜しくお願いします。
もしやっていただけそうな方いましたらメール下さい。
値段的な交渉とシステムの構造をご説明致します。
sky_beloved517@ybb.ne.jp
0725nobodyさん
2005/08/27(土) 22:17:47ID:???恐らく連絡される人みんなが聞く事になると思いますが
サーバーのOSや、サーバーの所有者は誰なのかも
明記しておくと余計な説明の手間が省けていいかと思います。
サーバーのOSは何を使っているのか、開発者はサーバーを触れるか
(レンタルサーバーだと自由に出来ないですよね)
とか結構大事な問題ですので。
0727nobodyさん
2005/08/27(土) 22:23:16ID:oI14vExU>>725
はい、まずは予算なんですが10万円程でお願いしたいと思ってます。
それとサーバーなんですが、一応エクスビットと言うところの
レンタルサーバーでCGI・PHP・は可能でDBも2つ作成できるとの事です。
他に詳しい環境等お聞きする事何かありますでしょうか??
0728nobodyさん
2005/08/27(土) 22:25:58ID:oI14vExUマルチって言うのはどう言う事でしょうか??
すみませんがあまりプログラミングの事解らない物で、
すみませんが教えて頂けますでしょうか?
0729nobodyさん
2005/08/27(土) 22:34:55ID:???☆えな♪
sky_beloved517@ybb.ne.jp
2005/04/30(土) 09:50:31 ID:SSF+EUWC
あなたなら夢の100万円と現実の20万円どちらにしますか?
ここからの情報はあなたにとって100%確実に収入になる情報です。
「またその手の話しかぁ!」と思う方は見なくて結構です。
少しでも気になるのであれば見て頂くと納得してもらえるでしょう。
ttp://2bo.cc/affiliate/scripts/t.php?a_aid=1494&a_bid=3
0730nobodyさん
2005/08/27(土) 22:40:02ID:oI14vExUこれが何か問題ありますか??
だいぶ前に何も解らずにやっただけの事柄ですけど、
誰にだって失敗や興味って言う事はありますからね。
今はやってませんし、むしろあなたみたいにメールアドレスから
人の情報を公開する方が悪質では??
まあ私は子供ではないのでこれ以上の事はいいませんが!!
0731nobodyさん
2005/08/27(土) 22:52:13ID:???何処に書き込みしたら良いか解らないので、
ココにも書き込みさせて頂きます。
実はPHPについて私自身今から勉強しても
かなりの時間がかかるかと思いまして、
って言うか多分無理に等しいと思い、
どなたか親切な方に小規模なシステムを製作
して頂きたいのですが、ダメでしょうか??
勿論報酬は致します。交渉させて下さい。
もしやって頂ける方おられましたらお願いしたいのですが?
ノークレームと言う条件で構いませんので!!
詳しい内容はやって頂ける方がおられましたらご説明
致しますので、宜しくお願いします。
0732nobodyさん
2005/08/27(土) 23:02:13ID:???>>588
>>598-605
という流れになっていたと思うのですが。
ここに戻ってきたという事は
「PHPでオブジェクト指向プログラミング」スレでも断られたようですね。
0733nobodyさん
2005/08/27(土) 23:10:26ID:???0734nobodyさん
2005/08/27(土) 23:18:11ID:oI14vExUやって頂けない理由か何かあるのでしたら、教えて下さい。
私的には、お金の方は製作前に半金と製作後に残金と言う形で
きっちりお支払させて頂くのですが。値段的にもやはり難しい
んでしょうかね??
0735nobodyさん
2005/08/27(土) 23:21:23ID:???0737nobodyさん
2005/08/27(土) 23:40:21ID:???可哀想だからマジレスすると、難しいと思います。
・案件の規模が分からないけど、とにかく予算が低すぎます。
・製作前半金と製作後残金って、ゴルゴ13か何かですか?w
他人と仕事したことあります?
・こういう匿名掲示板で仕事の依頼をする非常識さに気づけない
人間と仕事をするのは不安です。
0738nobodyさん
2005/08/27(土) 23:45:19ID:oI14vExU真面目な話。
なら君はビジネスをどう捕らえてるの?????
業者に頼めば安いとこで16万だったわ!!
でも10万で個人的に取り引きするなら相場じゃねぇ〜の!!
俺が何をナメてるのか教えてよっ??
0739nobodyさん
2005/08/27(土) 23:48:59ID:???じゃあこんなところでうだうだ書き込みしてねえで
その業者に16万で頼めや。めちゃめちゃ安いじゃん。
頭沸いてんじゃねえか?
0740nobodyさん
2005/08/27(土) 23:49:52ID:oI14vExU私はこのような形で仕事依頼した事無いから私も不安なのは解りますか?
ですから着手半金と言ったのですよ。
もし金額が少ないならまずメールでシステムお伝えしますから、
金額提示して下さい。納得いけば、前払いしますから!!
0741nobodyさん
2005/08/27(土) 23:53:32ID:oI14vExUなぜ人を中傷するような言葉が出るのですか??
私は解らないから聞いただけですから・・・
あまり熱くならないで下さいね。
お邪魔したようなので、業者に頼みます。
すみませんでした。
0742nobodyさん
2005/08/27(土) 23:54:12ID:???>>588 のシステムだとすると、10万てありえない…。20でも安い。
こちらのリスクも考えて、30からが現実的だけど…。
素直にその製作会社に頼みなよ。ありえない安さだよ。
0743nobodyさん
2005/08/27(土) 23:55:24ID:???業者に頼んで16万の見積もり提示受けたんでしょ。
それで納得しなかったからここにいるって事は、
結局16万以上は払えないってことだそ。
どんなシステム要件かは知らんが。
0744nobodyさん
2005/08/27(土) 23:57:09ID:oI14vExUそうでしたか!!
解りました。大変お騒がせしてすみませんでした。
このように言って頂けると解りやすかったのですが・・・
なぜか熱くなって噛み付いてくる方がいるもんで困りました。。。
では本当に有難う御座いました。
失礼致します。
0745nobodyさん
2005/08/27(土) 23:58:08ID:???なぜ、ここでどんなシステムなのかを明かせない?
「PHP+DBで小規模なシステム」だけでは金額面については結論でない。
で、「メールをくれれば教えます」ってあたりに怪しさが漂うから、
みんなあなたを胡散臭く思っているんですよ。
0746737
2005/08/27(土) 23:58:13ID:???うーん。自分はフリーなんでどんな仕事でも喜んで
お請けしたいと言うべきところなんですが、どんな
に小規模だったとしても16万では作れません。その
見積もり出した業者に頼むのがよろしいかと。破格
だと思います。>>742さんの言ってるように、自分も
最低でも30からかな。
16万でも納得がいかないなら、情報系の大学で
学生さんでも捕まえてみたらどうでしょう。
0747nobodyさん
2005/08/28(日) 00:03:17ID:???なぜ噛み付かれるか本当に分からない?
非常識だからです。
常識が分からない人間とは組めないよ。
トラブルが目に見える・・・。
0748nobodyさん
2005/08/28(日) 00:04:03ID:oI14vExU大変参考になりました。しかしなぜ業者は16万と言う見積もりを
提示したのでしょうかねww
まあ一度その業者にも再度打ち合わせして確認してみます。
お騒がせして本当にごめんなさい。
失礼致します。
0749nobodyさん
2005/08/28(日) 00:08:49ID:ojUxO5Uv本当にすみませんでした。
常識、非常識は解りますが、
初めての事だったんで・・・
無神経な事言って御免なさい。
皆さんの行った事を参考にやって行きますので!
0750nobodyさん
2005/08/28(日) 00:11:38ID:???赤だろうがとにかく案件の数を増やしたい所もあるだろうからね。
それぞれの業者の思惑があるんでしょう。
激安な業者には激安な理由があるかも知れないので、気をつけて。
不測の事態に対応してくれなかったり、してくれても遅いとか、
追加料金がかかるとか。
制作系の金額なんてあってないようなものだけど、
ビジネスの金額って安心を買うためのものだと思うよ。
0751初心者
2005/08/28(日) 01:21:24ID:5+BoFtHP0752nobodyさん
2005/08/28(日) 01:34:08ID:???実際のファイルの中では、改行コード(\r or \n or \r\n)があるだけなんよ。
つまり、例えば4行目が始まる場所を見つけるにはそれより前に改行コードを3個探すという作業が必要になる。
また、書き換えるつーのも全体の文字数が変化するようなものだったら、
その書き換え部分以降を全て書き直す必要がある。
そういう事を踏まえた上で、、、面倒なので煙草吸ってから書く。。。
0753初心者
2005/08/28(日) 01:37:53ID:5+BoFtHP0755nobodyさん
2005/08/28(日) 02:02:16ID:???まぁ、そうは言っても「〜行目を」って使い方が多いので、
一行をまるごと引っ張ってくる関数がいくつかある。
fgets()は1行を取得できる。(マニュアルに例あり)
それでも生ぬるいって場合は、file()を使ってファイル全体を配列(行単位)に取得できる。
そうやって取得し必要な場所に変更を加えた文字列をファイルに書き込めば修正できたことになる。
fgetsを使った場合は、
while(略){ fgets()で読み込み; if(修正行かどうか){ 修正; } fwrite()で別ファイルに書き込み; }
別ファイルを元ファイルにrename;
fileの場合は、まぁ説明しなくてもわかるべ。ガーと読んで修正してガーっと書き込む。
0756nobodyさん
2005/08/28(日) 02:20:27ID:???0757nobodyさん
2005/08/28(日) 09:25:52ID:???どうしてもエラーが出てしまいます。
itemauc.cgi?mode=view&no=7777">題名</a></td>
だとすると題名のみ抽出したいのです。
ご教授お願いします。
<?php
$InputFile = "http://*********";
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
$fp = fopen($InputFile, "r");
if ($fp == FALSE) {
echo "error";
exit();
}
while (!feof($fp)) {
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for ($i = 0; $i < $n; $i++) print "・" . $ar[$i][2] . "<br />\n";
}
fclose($fp);
?>
0760757
2005/08/28(日) 09:50:13ID:???正規表現おかしいですか?
0761nobodyさん
2005/08/28(日) 10:18:09ID:???を
$Pattern = "/(itemauc.cgi?mode=view&no=.*\">)(.*)(<\/a><\/td>)/";
にしたらどう?
(「&no=.*">」の二重引用符をエスケープする「&no=.*\">」)
0762nobodyさん
2005/08/28(日) 10:23:36ID:???0765761
2005/08/28(日) 11:00:35ID:???おっしゃる意味わかりました。
>>757
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
を
$Pattern = "/(itemauc.cgi\?mode=view&no=.*\">)(.*)(<\/a><\/td>)/";
にすると上手くいった。
「&no=.*">」の二重引用符と「.cgi?mode」の「?」をエスケープする。
「?」が正規表現で評価されたみたい。
0767nobodyさん
2005/08/28(日) 12:59:49ID:???0768nobodyさん
2005/08/28(日) 13:59:00ID:dDBq8KPQ変数かファイルに落としたいのですが、どんな関数をつかえばよいのでしょうか?
教えてくださいませ。
0769nobodyさん
2005/08/28(日) 14:09:13ID:???これだと抽出した文字全部表示されるようだけど指定できないかな?
1つ目とか・・・いろいろやってみたんだけど難しー
便乗で申し訳ないが誰か教えてださい。
0770nobodyさん
2005/08/28(日) 14:14:05ID:???これじゃだめ?
$url = "http://*********";
$out = "out.html";
system("wget $url -O $out");
0772nobodyさん
2005/08/28(日) 15:22:57ID:dDBq8KPQ>>771さん
早速のアドバイス、どうも有難うございます。
今は時間がないので、後ほど試してみます。
有難うございました。
0773769
2005/08/28(日) 17:02:12ID:???$InputFile = "http://*********";
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
$fp = fopen($InputFile, "r");
if ($fp == FALSE) {
echo "error";
exit();
}
while (!feof($fp)) {
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for ($i = 0; $i < $n; $i++) $aaa[$i] = $ar[$i][2];
}
print $aaa[1] . "<br>\n";
print $aaa[2] . "<br>\n";
print $aaa[3] . "<br>\n";
fclose($fp);
?>
757さんの改造してるんだけどうまくいかない。
指定したものだけ表示したいんですけど。
どこか間違ってるところありますか?
0774nobodyさん
2005/08/28(日) 18:00:10ID:Io8dHAYtヒントだけでもいいんで教えてください。
ISP規制中により携帯からなので
言葉足らずな点があるかもしれませんがよろしくお願いします。
0776nobodyさん
2005/08/28(日) 18:35:59ID:???自分で作ってるログなら、最後の行だけ別ファイルにキャッシュする
そうでなければ最初から1行づつ読んで最後の行だけ取り出す。
ログファイルが追加のみでどんどん大きくなるという前提なら
最後の行を取得する時にファイルポインタの位置を記録しておけば後の負担が減る。
ログ1行の長さがある程度わかる場合は、
fseekのSEEK_ENDを使って適当な位置から読む手もある。
乱暴なやり方だが。
0777773
2005/08/28(日) 22:26:33ID:???ご教授お願いします。
0779nobodyさん
2005/08/28(日) 22:50:54ID:???以下簡略したコードを示します。sub()内では$writeが1ではありませんでした。
index.phpで、main()のなかではなくfunctionの外でrequire('write_main.php');だと
sub()内でも1が表示されました。
そういうものなのでしょうか。この現象に気づくのに時間かかってしまった。
---index.php----
<HTML><BODY><PRE><?
function main(){
require('write_main.php');
}
main();
?></PRE></BODY></HTML>
---write_main.php---
<?
$write = true;
if($write){
require('write_sub.php');
} ?>
---write_sub.php---
<?
echo "[$write]\r\n"; // [1]が表示される。
function sub(){
global $write;
echo "[$write]\r\n"; // []が表示される。
}
sub(); ?>
0780nobodyさん
2005/08/28(日) 22:53:24ID:???> for ($i = 0; $i < $n; $i++) $aaa[$i] = $ar[$i][2];
この行も間違ってる。
この行の実行のされ方をよく考えろ。
0781nobodyさん
2005/08/28(日) 23:01:53ID:???function main(){
require('write_main.php');
}
は
function main(){
$write = true;
if($write){
require('write_sub.php');
}
}
こうなるわけで、
$writeはmain関数のスコープ内で扱われることになって、
globalではなくなるね。
動作としてはそんなもんじゃないかな。
0782nobodyさん
2005/08/28(日) 23:24:04ID:???ありがとうございます。
なるほど、判りました。
ということは、そうかPHPってfunctionの中にfunctionを入れられるのか。
function main()
{
function sub()
{
}
}
しらんかった。
0785nobodyさん
2005/08/29(月) 04:01:32ID:???if (phpversion() >= "4.1.0")書いたほうがいい?なくてもかまわない?
0786nobodyさん
2005/08/29(月) 06:50:29ID:???関数内でincludeすればグローバルスコープの名前空間が汚れにくくなる利点もあるわけだが。
ヒント:ケースバイケース
>>785
extract使わずに修正するのは無理な状況なの?
0787785
2005/08/29(月) 08:15:47ID:???レスさんくす。
最近PHPはじめたんだけど、なんこかの配布サイトのソース見ると、
if (phpversion() >= "4.1.0") {
extract($_POST);
}
って書いてあるのが結構あるのよね。
おまじないなのか、別に必要がないのか検索してもいまいちさっぱりで。
バージョンによってはこれをかかないとPOSTされたデータが入らないとかあるんだけど、互換?バージョンによってはエラーになったりするのかな?
0788777
2005/08/29(月) 08:24:37ID:???ループさせないほうがいいのでしょうか?
0789nobodyさん
2005/08/29(月) 08:27:33ID:???ttp://www.php.net/manual/ja/language.variables.predefined.php
$_POSTが使えるようになったのは4.1.0以降。(register_globalsのデフォルトがoffになったのは4.2.0以降。)
4.1.0以前は、$HTTP_POST_VARSを使うか、$POST変数名を使っていた。
0790nobodyさん
2005/08/29(月) 08:43:05ID:???PHP4.0以下でregister globalsがoffだと動かない
if (PHP_VERSION < "5.0.0") {
extract($HTTP_POST_VARS);
}
0791nobodyさん
2005/08/29(月) 09:03:22ID:???いい加減しつこい。
というか、そんな聞き方で答えてもらえる(答えられる)わけないだろ。
そもそも、ここに貼ったソースを見る限りだと、このスレの>>757からのレスすら読んでないみたいだし
0792nobodyさん
2005/08/29(月) 11:18:25ID:???取得したいと思い・・・mb_ereg_matchを使ってできると
思いきや、マニュアルには位置を返す記述がないので
できないのかなと思ってます。
全角数字が出てくる位置は
どのようにしたら取得できるのでしょうか?
0793nobodyさん
2005/08/29(月) 11:27:12ID:???0794nobodyさん
2005/08/29(月) 12:18:28ID:???0795nobodyさん
2005/08/29(月) 12:33:45ID:s5T6oqi1file()
でファイルを全部配列に読み込む。
んで、mb_ereg を使って全角文字があるかどうかをループで探していけば配列番号わかるでしょ。
配列位置=行目だから。
0798797
2005/08/29(月) 13:01:12ID:???0799nobodyさん
2005/08/29(月) 13:07:56ID:YewHBwdY通常ページは問題ないのですが、フレームページではフレーム内が
表示されません。
$val = file_get_contents("http://www.aa.com/index.html");
echo $val;
やら、
$fp = fopen("http://www.aa.com/index.html", "r");
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
やらを試しました。
宜しくご教授願います。
0800795
2005/08/29(月) 13:10:44ID:???だったら、さっきの配列で見つけた行にたいして
mb_strposやればいいんでねーの?
0801nobodyさん
2005/08/29(月) 13:21:29ID:???mb_strposを10個並べるか
1文字ずつローラ作戦を決行するしか
ないのですね。
0802nobodyさん
2005/08/29(月) 13:31:32ID:???0803nobodyさん
2005/08/29(月) 13:39:14ID:???表示されない原因は、<frame src>のURIが正しくないからなので、
そこを正しいURIに直してあげればいいですよ。
具体的なソースは面倒なのでパス。
0804nobodyさん
2005/08/29(月) 13:46:56ID:???preg_splitは全角が利かなかったので
mb_splitにして戻ってきた配列からの0要素の文字数をカウント
することにしました。
<thinks src='みんな'>ありがとう</thinks>
0806nobodyさん
2005/08/29(月) 13:55:02ID:bRBqfQsiFTPでバイナリ転送でダウンロードすると化けていないので、
アップロードはうまく言ってると思うのですが・・・
どこが間違っているのでしょうか?
PHPのバージョンは4.3.10、apacheを使っています。
よろしくお願いします。
header ("Content-type: application/octet-stream");
header ("Content-Transfer-Encoding: binary");
header ("Content-Disposition: attachment; filename=" . $fname);
header ("Content-length: " . filesize( $fname));
readfile ($fname);
0807nobodyさん
2005/08/29(月) 14:01:26ID:pua4PW6Bローカル、レンサバとも同じ状態です。
HPのTOPに置いてあるアクセス解析は正常に取得してるようなのですが。。
自分なりに調べて見たのですが、さっぱり解らずに困っています。
何が原因なのでしょうか。。
0808nobodyさん
2005/08/29(月) 14:01:41ID:???mb_eregとかで最初に出現した全角数字を取って
mb_strposで、取得した全角数字の場所取るってのは?
0809nobodyさん
2005/08/29(月) 14:05:29ID:???半角数字のパターンは[0-9]だと思いますが、全角数字のパターンはどうすればいいのでしょうか?
[0-9]としたら範囲が空とエラー吐かれました。
0810809
2005/08/29(月) 14:22:42ID:???実験的なステータスらしいが、mb_ereg_search_pos ってのがある。PHP4.2以上。
ttp://www.php.net/manual/ja/function.mb-ereg-search-pos.php
でもイマイチ使いづらいかも。
0812nobodyさん
2005/08/29(月) 14:43:41ID:???有難うございました。
無事、表示されました。
あと、Basic認証内ファイルの場合ですが、
indexは"Authorization: Basic"でクリアできますが
フレーム部分では認証がポップアップされます。
よろしければこの対策についてご教授願えますでしょうか?
0813810
2005/08/29(月) 14:48:45ID:???うまくいかんです。関数の問題なのか、正規表現の問題なのか?
$ptn = "[0|1|2|3|4|5|6|7|8|9]"; //全角数字
$str = "abc8d2e89f"; // 結果 [0] => 7 , [1] => 1
//$str = "今日は8月28日"; // 結果 [0] => 1 , [1] => 1
mb_ereg_search_init($str);
$ary = mb_ereg_search_pos($ptn); // [0]は一致した先頭の位置、[1]は一致した長さ(バイト数)
print_r($ary);
$ptn = "8"; にすると [1] => 2 になるし。
0816806
2005/08/29(月) 15:02:25ID:???fopenしてからfgetc一回したら3バイトのファイルができました。
2回fgetcしたら4バイトになりました。(相変わらず化けてます)
PHPの原理がよくわかってないので、なんか変な感じです。
これは設定が悪いのでしょうか?どなたかヒントください。
0817813
2005/08/29(月) 15:45:59ID:???813ではスクリプト=EUC-JP、内部エンコード=SJISでした。
なので、mb_internal_encoding("EUC-JP"); としましたが結果は同じです。
>815
ここ(ttp://ash.jp/code/codetbl2.htm)見るとEUCでは「0」=A3B0、「9」=A3B9なので
$ptn = "[0xA3B0-0xA3B9]";
としましたがマッチしませんでした。
指定方法が根本的に間違ってるのかな?
0818nobodyさん
2005/08/29(月) 15:58:06ID:???ってか、POSIXのEREって16進エスケープ対応してんの?
0819nobodyさん
2005/08/29(月) 16:43:09ID:???>>805
PHP4.3.10です。
もしかしてPHP5なら全角でもOK?
>>796>>800>>808
mb_eregを使ってマッチした文字列から
非正規表現でマッチさせればよかったのですね。
勉強させていただきました。
0820nobodyさん
2005/08/29(月) 16:43:35ID:???ループさせるのは間違いじゃないが、$aaaの添字に$iを使ってしまうと、
行(外側のwhileループ)ごとに0から始まるから、
$aaa[0]が何度も上書きされることになりやすい。
$aaaの添字には別の変数を使え。
それから、最後の出力テストはprint_rを使うと便利。
もう1つの間違いについては>>778
0822nobodyさん
2005/08/29(月) 18:25:09ID:???, -―ー '" ; ' 7 !)
/ , '"^、 `ー-、 _, -ー ! /'|
|' _ミ7ゝ ,. ! / |
|| Y' ::y' : | |
|.| | : : | !
|' ! .'o, | '.o, ! |,/
| ヽ、 ,人 ノ |
! | `゛´ ` ー 'ヽ ノ
i | ヽ、_, '
ヽ、__ ノ /
0823nobodyさん
2005/08/29(月) 19:19:57ID:???どこをいじったらなおりますか?
0824823
2005/08/29(月) 19:27:17ID:???MYSQLに入れるときにaddslashesで¥を付けていれたらいいのれすか?
0825nobodyさん
2005/08/29(月) 21:21:05ID:???0826nobodyさん
2005/08/29(月) 21:23:52ID:???これをローカルで動かせるようにするにはどうしたらよいのでしょうか。
Apache2.0.54.0、OSはWinXPSP2、PHP5、
ImageMagick-6.2.0-Q16-windows-dll.exeを使いImageMagickをインストールした
ところまで来ました。
0827nobodyさん
2005/08/29(月) 21:29:00ID:???環境は以下の通りです。
Win XP
PHP 5.0.4
Apache 2.0.54
また、(ない知識を絞ったうえで)関連すると思われるphp.iniの設定は、
safe_mode = Off
register_globals = Off
doc_root =
file_uploads = On
upload_tmp_dir = "C:/tmp"
upload_max_filesize = 2M
です。
このような環境下で
move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
を実行すると、
Apache2のインストールディレクトリに$_FILES['file']['name']な名前の
ファイルが作成(移動)されてしまいます。
つまり、phpスクリプトが置かれているカレントディレクトリにファイルが移動されないんです。
この問題については、
http://jp.php.net/manual/ja/function.move-uploaded-file.php
に「Darrell」という方がそれらしい情報を投稿してくださってますが、
その解決策のようなものが見当たりません。
なので、よろしければ、
同じような問題に遭われた方がいらっしゃれば、
解決策や回避策など教えていただければと思います。
長文失礼しました。
0828774
2005/08/29(月) 21:54:14ID:???レスありがとうございます。
>>775
コマンド使えませんでした・・・。
>>776
それを参考にして色々やってみたいと思います。
ありがとうございました。
0829nobodyさん
2005/08/29(月) 22:07:57ID:???PostgreSQLをインストールして、PHPからアクセスするために
PHPのpgsqlモジュールが必要になりました。
ほかのモジュールをそのままでpgsqlモジュールだけ追加して使う方法は
あるのでしょうか。それともPHPの再インストールが必要なのでしょうか。
よろしくお願いします。
MacOSX10.3.9
Apache1.3.33
PHP4.3.9
PostgreSQL8.0.2
0830829
2005/08/29(月) 22:12:42ID:???0831nobodyさん
2005/08/29(月) 22:13:06ID:???if (!isset($x) && !isset($y)) {
echo $giko;
}
else {
echo $mona;
}
上記のように条件分岐させているのですが、
$mona を表示させるか否かのみを判定したい場合はどの様にするのが格好いいでしょうか。
今のところは
if (!(!isset($x) && !isset($y))) {
echo $mona;
}
こんな風に対処したのですが、なんかカッチョ悪い・・・
0833nobodyさん
2005/08/29(月) 22:17:45ID:???単純に
if(isset($x) && isset($y)) {
echo $mona;
}
でいいんじゃないの?
0834nobodyさん
2005/08/29(月) 22:20:25ID:???要は $x か $y のどちらかがセットされていたら $mona を表示でいいんだろ?
これではダメなん?
if (isset($x) || isset($y))
echo $mona
0835nobodyさん
2005/08/29(月) 22:24:45ID:???それでいいんじゃないの?
if (!isset($x) && !isset($y)) { ; } else { echo $mona; }
って書き方もありっちゃあり。
ただ、!a && !b ってのは a || b と等価なんで(ド・モルガンの法則って奴)
>>831の上の奴は
if (isset($x) || isset($y)) { echo $giko; } else { echo $mona; }
下の奴は
if(!(isset($x) || isset($y))) { echo $mona; }
と置き換えられる。
0836nobodyさん
2005/08/29(月) 22:30:14ID:???echo (isset($x) || isset($y)) ? $giko : $mona;
くらいかな。
0837831
2005/08/29(月) 22:41:33ID:???即レス有り難うございます!
ド・モルガンの法則・・・ウッ頭痛が・・・
三項演算子も使えたんですね。いつか使ってやろうと狙っているのですが思い浮かんだ試しがない・・・
早速書き直します。サンクス!
0838nobodyさん
2005/08/29(月) 22:46:48ID:???こっちも微妙にスレ違いだと思うけど…。
もとのPHPを残したいのはSoftwareUpdate対策?
手元にmacが無いので、ちゃんとは分からないけど、
普通にコンパイルオプション付けて入れ直したらよいのでは。
私はそうしてました。
んで、そのコンパイルオプションは、
デフォルトで入っている PHPの phpinfo() をコピペして必要なのを追加、がオススメです。
どうしても気になるなら、/usr/local/ に入れるなりして回避してください。
0839nobodyさん
2005/08/29(月) 23:05:06ID:???可能かもしれないし、駄目かもしれない。
使ってるPHPはどうやって作ったん?
取り敢えずpgsql.soとMac、php辺りでぐぐれ。
0840nobodyさん
2005/08/29(月) 23:14:43ID:???>>829のPHPは、macに標準で入ってるやつでしょう。
mac用のpgsql.so だけ配ってるなんて聞いたこと無いし。
なるべく他の環境を変えないようにするには、
ソース持ってきてコンパイルしか無かったと思う。
0841827
2005/08/29(月) 23:20:36ID:???move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
↓
move_uploaded_file($_FILES['file']['tmp_name'], getcwd()."/".$_FILES['file']['name']);
この変更で、move_uploaded_file()がちゃんと動く鯖でも、
僕のような問題が起こる鯖でも、どちらでもちゃんと動きそうですね。
初歩的な質問な気がして、はずかしい・・。
ご迷惑をおかけしました。
ですが、もしphp.iniの設定などで今回の問題が直せるのでしたら、
ご存知の方是非教えてください。以上です。
0842nobodyさん
2005/08/29(月) 23:51:18ID:???ローマ字で
aiueonn
と入力すると
あいうえおん
と返してくれるライブラリーってないですか?
Javascriptでは見たことあるのですがPHPでないですかね?
宜しくお願いします。
0843nobodyさん
2005/08/29(月) 23:55:01ID:???0845nobodyさん
2005/08/30(火) 00:20:18ID:???↓
submit
↓
セッションデータのデータをメールへ送信
unset( $_SESSION[data] ); //セッションデータを削除
↓
header('location: aaa.htm'); // 別ページへジャンプ
上記のようなスクリプトがあるんですけど。
ジャンプで飛ばした後、ブラウザの戻るを実行するとunsetした
セッションが復活してしまいます。
完全に消す方法はあるのでしょうか。
unset( $GLOBALS[_SESSION][data])でも消えませんでした。
0846nobodyさん
2005/08/30(火) 00:23:00ID:???phpのソースパッケージをダウンロードしてきて、
$ tar zxvf php-x.x.x.tar.gz
$ cd php-x.x.x/ext/pgsql
$ phpize
$ ./configure --with-pgsql=/path/to/postgres
$ make
$ sudo make install
いつもモジュールが欲しくなった時はこんな感じでやっつけてる。
あとはdl()かphp.iniでロードするだけ。
ひょっとしたらapacheでDYLD_LIBRARY_PATHを設定する必要があるかも
それはpostgresのインストール方法次第だと思うけど、postgres使った事無いからわからん。
/path/to/postgres がどこかは自分で考えろよ。
0847829
2005/08/30(火) 00:55:02ID:???レスありがとうございます。
>>840さんのおっしゃる通りMacに標準ではいっているPHPです。
それでソースから全部インストールするのを躊躇っていました。
phpinfo()からConfigure Commandをコピペして
"--with-pgsql='postgresのパス'"を加えて再インストールしてみます。
DYLD_LIBRARY_PATHのことはこれから調べてみます。
ありがとうございました。
0848nobodyさん
2005/08/30(火) 01:02:01ID:???質問してばっかだなお前ーぶぶぶーwww
ただ置換すればいいだろぼけなすーwwwww
そんくらい自分で書けやかすーwwwwww
0849nobodyさん
2005/08/30(火) 01:07:11ID:FCdiEo7pこんな感じでPHPだけ"script.php"というファイルにまとめていろんなファイル
から呼び出しています。さらに"script.php"からデータの読み書き用に"data.log"という
ルートにあるファイルにアクセス。
さて、ここで
./folder/B.html →(ファイル内呼び出し)→ ./script.php →(データ読み書き)→ ./data.log
という呼び出しをしたとき、script.phpが"./data.log"にアクセスできないと
エラーを返します。つまり"./folder/data.log"にアクセスしようとしてエラーに
なっているんですね。呼び出すhtmlファイルの場所に依存してscript.phpから
毎回エラーを返されるのは正直鬱陶しいんですがみなさんどうされてます?
せめてscript.phpからdata.logを相対パスで呼んでくれればこんな問題は
生じないんですがね。
0851nobodyさん
2005/08/30(火) 01:29:52ID:???図星突かれてそんなに悔しかったのか?wwwwww
誰がいつどこで「単純な置換で事足りる」っつったんだ?wwwwwww
本人だとしたらさすがすぎるwww低脳丸出しだなwwwwww
0852nobodyさん
2005/08/30(火) 01:30:41ID:???別に単純な置換繰り返すだけで出来る気がするんだけど?
元のJavaScriptとやらの提示がいないので、ご希望の精度が得られるかどうかは不明だけど。
というか、正規表現置換(ereg/preg_replace)とかstr_replaceとかだけが置換じゃないよ。
自分でパターンを置き換える処理も立派な置換だ。
んで、作れって言うんだったらスレ違い。↓へどうぞ。
■こんなCGI作ってください■
http://pc8.2ch.net/test/read.cgi/php/1102980903/
0853nobodyさん
2005/08/30(火) 01:32:38ID:???0857nobodyさん
2005/08/30(火) 02:46:17ID:???0858857
2005/08/30(火) 02:47:46ID:???0859nobodyさん
2005/08/30(火) 12:51:39ID:zspoZiNa【祝】コマンドラインから始めるPHP【プロ板進出】
http://pc8.2ch.net/test/read.cgi/tech/1124990165/l50
これならまあええが、
下のは何だ。厨は単発質問糞スレ立てるな。
phpでデリミタしたら配列内に改行
http://pc8.2ch.net/test/read.cgi/tech/1124583843/l50
phpについて教えてください!
http://pc8.2ch.net/test/read.cgi/tech/1125139051/l50
PHPでExcelのテンプレートに値を入れたい
http://pc8.2ch.net/test/read.cgi/tech/1125207985/l50
0860nobodyさん
2005/08/30(火) 13:52:59ID:???考えているのですが、ヘッダはどのように指定すればよろしいのでしょうか?
0861nobodyさん
2005/08/30(火) 15:45:20ID:???>853紹介のスクリプト(ttp://la.ma.la/misc/js/roma.html)を移植したぞ。
$roma["hiragana"]は ttp://la.ma.la/misc/js/roma.js を参考に2次元連想配列で作ってくれ。
$roma["hiragana"] = array("a" => "あ","i" => "い",.......); な風にして。
また今は関数外に出してるけど必要なら関数内に入れてくれ。
function roma2hiragana($text){
return roma2x($text,"hiragana");
}
roma2x()は次↓
0862861
2005/08/30(火) 15:46:09ID:???$skip = 0; $len = strlen($text);
global $roma; // $romaを関数内に入れるなら不要
for($i=0;$i<$len;$i++){
if ($skip > 0) { $skip--;
} else {
$temp = substr($text,$i,1);
if (ereg("[a-zA-Z.,-]",$temp)) { //[a-zA-Z.,-]
$loop = 4; $f=0;
while($loop){
$temp = substr($text,$i,$loop);
if (isset($roma[$to][$temp])){
$kana = $roma[$to][$temp];
if($loop == 2){
if($kana == "っ"){$i--;} //「っ」の場合、一文字戻す
$skip = 1;
}else{ $skip = $loop-1; }
$f=1;
$newarray[] = $kana;
break;
}
$loop--;
}
if(!$f){$newarray[] = $temp;} // $f == 0
} else {
$newarray[] = $temp;
}
}
}
return implode($newarray); // stringで返す
}
0864nobodyさん
2005/08/30(火) 21:18:35ID:???define( "TMP", <<<END );
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END;
こういう使い方って無しでしょうか?
ちなみに上記だと実行時にエラーになります。
0865nobodyさん
2005/08/30(火) 21:30:21ID:???define('TMP', <<<END
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END);
echo TMP;
0866nobodyさん
2005/08/30(火) 21:35:01ID:???864じゃないけどエラーでるぞ。
>>864
これはダメ?
$var = <<<END
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END;
define("TMP", $var);
0867864
2005/08/30(火) 21:47:10ID:???今はその方法にしてます。
ただ、Perl使ってたときはできた書き方なので、
同じようにスマートにならないかなーと思った次第です。
0868866
2005/08/30(火) 22:05:48ID:???これだと出来た。
define('TMP',
$var = <<<END
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END
);
または、
define('TMP',
<<<END
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END
);
でもPHPエディタだと両方とも色分けが変になるから微妙だったけど。
0869868
2005/08/30(火) 22:15:36ID:???ヒアドキュメントの終端マーク?(END)を単独で1行にすれば良さげ?
define('TMP',<<<END
ヒアドキュメントヒアドキュメントヒアドキュメント
ヒアドキュメントヒアドキュメントヒアドキュメント
END
);
0870nobodyさん
2005/08/30(火) 22:21:58ID:???0871nobodyさん
2005/08/30(火) 22:26:38ID:???$end=count($line)-1;
echo $line[$end]
最後の行をだす。
0872nobodyさん
2005/08/30(火) 23:20:26ID:eL6jzClK段落が認識されず、表示されてしまいます。
良い解決方法はないでしょうか?
0875nobodyさん
2005/08/30(火) 23:50:56ID:???whileで“00”〜“20”までを繰り返すとやりたいのですが、
$hage = "00";
while ($hage != "20") {
$hage++;
}
$hageの変数を2桁に固定するにはどうすれば良いのでしょうか。
0876875
2005/08/31(水) 00:05:59ID:???$page = "00";
while ($page != "20") {
$page = sprintf("%02d", $page);
$page++;
}
0877nobodyさん
2005/08/31(水) 00:08:42ID:???あの、それなら最初から
$page = 0;
while ($page != 20) { ... }
の方が良いですよ。
0878nobodyさん
2005/08/31(水) 00:15:28ID:???while ($page++ < 20) { ... }
0881nobodyさん
2005/08/31(水) 01:38:45ID:???その時に、要求アドレスによって、表示を分岐させたいと考えてるのですが、
要求アドレスがどうしても取得できません。
これは無理なのでしょうか。
0883881
2005/08/31(水) 02:33:16ID:???セッションを使った方法を考えてみましたが、分かりませんでした。
404を出すアドレスにアクセスした時点では、
何もアクションが起こせないので、セッションも登録できないと思うのですが、
具体的な方法を教えていただけないでしょうか。
0884nobodyさん
2005/08/31(水) 02:58:42ID:???要求アドレスって存在しなかったページって事ですよね?
$_SERVER[REDIRECT_URL] や $_SERVER[REQUEST_URI] で拾えました。
環境:linux/apache2.0.54/PHP5.0.4
0885884
2005/08/31(水) 03:01:26ID:???0886nobodyさん
2005/08/31(水) 03:23:57ID:???「インクリメントした後の$pageが20未満」なのか
「インクリメントしたら20未満の$page」なのか
どっちの意味になるんだろ?
0887881
2005/08/31(水) 03:27:31ID:???要求アドレスは存在しなかったページを意味してます。
ですが、無理みたいですね・・・。
phpでは無理なんでしょうか。
0888nobodyさん
2005/08/31(水) 03:31:59ID:???0890886
2005/08/31(水) 03:36:04ID:???0891881
2005/08/31(水) 03:37:18ID:???.htaccessをどのように使えばいいのでしょうか。
今も.htaccessはありますが、ErrorDocumentの記述があるだけです。
0892884
2005/08/31(水) 03:44:16ID:???あれ?ダメですか?
存在しないページなら>884の通り、$_SERVER[REDIRECT_URL] や $_SERVER[REQUEST_URI] で拾えましたよ。
print "REDIRECT_URL=[".$_SERVER[REDIRECT_URL]."]<br>\n";
print "REQUEST_URI=[".$_SERVER[REQUEST_URI]."]<br>\n";
で存在しないページ(例:http://192.168.0.111/test/ttt.html)が「/test/ttt.html」として取得できました。
SERVER_ADDRやHTTP_HOSTでIPアドレスも取得できるからURLも取得できますし。
ためしに404のエラードキュメントPHPで print_r($_SERVER); してみては?
その前に404のエラードキュメントをPHPで使えるようになっているのでしょうか?
0893881
2005/08/31(水) 03:51:02ID:???REDIRECT_URLは空文字で、
REQUEST_URIの方には404.htmlの方が入ってました。
マニュアルでREQUEST_URIの箇所を読む限りでは確かにこれで取得できそうですが…。
$_SERVERは、print_rで見ましたが、それらしき値はないです。
0894nobodyさん
2005/08/31(水) 03:56:32ID:???ttp://www.php.net/manual/ja/language.operators.increment.php
0895881
2005/08/31(水) 04:00:18ID:???ErrorDocumentの書き方がまずかったようです。
絶対パスを指定したのですが、これを相対パスにすることで直りました。
絶対パスだと、ページ自体のリダイレクトが行われてるんですかね。
丁寧に答えてくださった方、ありがとうございました。
0896nobodyさん
2005/08/31(水) 04:04:38ID:???自前サーバ? レンタルサーバ?
要求アドレスの取得に関係なくPHPファイルがエラードキュメントとして使えるようにしてますよね?
0898nobodyさん
2005/08/31(水) 09:11:56ID:eJmHKqbd$dy=mktime(0,0,0,date("m"),0,date("Y"));
echo date("Y-m-d",$dy);
0899nobodyさん
2005/08/31(水) 10:48:10ID:???0900nobodyさん
2005/08/31(水) 11:42:07ID:???echo date("Y-m-d")でいいじゃん。
0902nobodyさん
2005/08/31(水) 14:01:37ID:???0904nobodyさん
2005/08/31(水) 14:20:31ID:???今オークションを携帯で見れるようなものを作ってます。
まず題名のみを抽出して表示するところまではできました。
題名を押すとリンク先を表示するところで行き詰まってます。
一応できたのですが題名を押すとphp?no=1という所に行きまた詳細を抽出する方法です。
このno=1とうのを20個近く作らなければいけない無駄なやり方でした。
これをもっとスマートにしたいのですが良い方法が思い浮かびません。
何か良い方法があったら教えてほしいです。
説明へたですいません。
0907nobodyさん
2005/08/31(水) 15:05:27ID:???class hoge {
var $test;
function __construct($a, $b) {
$this->test = array($a, $b);
}
function __destruct() {
unset($this->test);
}
}
こんな感じでいいのでしょうか。
0908nobodyさん
2005/08/31(水) 15:13:20ID:???俺も良く判らんけど、__destruct って、そのオブジェクトを解放するときに処理するんじゃないの。
メソッドもオブジェクトに含まれるので、unsetする必要はないかと。
class hoge {
var $test;
function __construct($a, $b) {
$this->test = array($a, $b);
}
function __destruct() {
print_r $this->test;
}
}
$ob = new hoge(1,2);
unset($ob);
0909nobodyさん
2005/08/31(水) 15:18:41ID:???以前、DB接続クラスを作って、
デストラクタにDBをクローズするメソッドを呼び出すようにしたら、
まだクエリすら呼び出しても以内のに勝手に不要とみなされ、
勝手にDB切断されて困ったことがあった。
使い方がいまいち。オブジェクト解放のタイミングを調整できればいいのだが。
0910nobodyさん
2005/08/31(水) 15:20:51ID:???__autoload()関数が役に立ったことがあるという人、いますか?
もし、役にたったならば、どんなときに役に立ちましたか?
require呼び出しでは使えるものでしたか?
0911907
2005/08/31(水) 15:29:11ID:???あ〜なるほどね。
デストラクタってパフォーマンス向上のためにある関数なのかと思ってたんだけど、そうじゃないのか。
>>910
ん〜手間が省けて結構便利だと思うんだけどな。
0912nobodyさん
2005/08/31(水) 17:08:30ID:/SaEXI7Wセーフモード&SAFE_MODE_GIDがoffのレン鯖で
phpスクリプトが書き出したphpファイルにブラウザからアクセス
する技はありまつか?
0914nobodyさん
2005/08/31(水) 17:27:03ID:???0916nobodyさん
2005/08/31(水) 17:36:34ID:???0917nobodyさん
2005/08/31(水) 20:08:29ID:???0918nobodyさん
2005/08/31(水) 20:40:45ID:kcRQHeGxmktime(0,0,0,date("m"),0,date("Y")); # 8-31となって欲しいが7-31になる
「当月末日」の表現で使っていたんですが、これじゃ使えないね
ttp://php.s3.to/man/function.mktime.html
「指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日として表すことが可能です。」
0919nobodyさん
2005/08/31(水) 20:47:45ID:???0920nobodyさん
2005/08/31(水) 20:50:45ID:???「2005年8月の0番目の日」が「2005年7月の最後の日」になる。
だからmktime(0,0,0,date("m"),0,date("Y"))は「先月末日」の表現にしかならない。
0921nobodyさん
2005/08/31(水) 21:02:22ID:kcRQHeGx勘違いしてたヨ。下記例にもちゃんとあったな。
$lastday = mktime (0,0,0,3,0,2000);
echo strftime ("Last day in Feb 2000 is: %d", $lastday);
0922nobodyさん
2005/08/31(水) 22:19:18ID:N4cNKOEk質問させて下さい
PHPを使ってweb上でメール受信できますか?
http://php.s3.to/net/#popでできてるみたいなんですけど、
内容を変数に扱いたいと思っています。
なにをしたいかというとYahoo!オークションのアラートで送られてくる
メールの画像を一括してみようと思っています。
そういうサイトがあれば一番いいんですけど
だれか作ってくれませんか?
0923nobodyさん
2005/08/31(水) 22:32:34ID:???他力本願というのだよ、それは。
無いなら、自分で調べて作ればいいじゃん。
0925nobodyさん
2005/09/01(木) 02:25:07ID:???DBにいれてかんりしたほうかいい?
0926nobodyさん
2005/09/01(木) 02:36:18ID:???投稿時にファイル名を自動で付すなら
ファイル名だけデータベースで持っておいて
画像は特定のフォルダに放り込むのが簡単。
良し悪しは何で判断する?
0927nobodyさん
2005/09/01(木) 08:14:05ID:eoQpZPGA0928nobodyさん
2005/09/01(木) 13:27:49ID:???<?=$contents?>
--edit.php--
class Edit{
function excute(){
global $contents;
$abc = 'abc';
}
}
$contents=<<<EOL
ほえほえ{$abc}
EOL;
--index.php--
include( 'edit.php' );
$obj = new Edit();
$obj->excute();
include( 'template.php' );
以上のスクリプトで、「ほえほえabc」という出力を得たかったのですが、
実際は「ほえほえ」になってしまいます。
function excuteのなかが著しく怪しいとは思うのですが、
マニュアルhttp://www.php.net/manual/ja/language.variables.scope.phpを
見ても解決の手掛かりが掴めません。。。
何かヒントを頂ければ幸いです。。。
調べたら「実行演算子」とやらで
`rm -Rf $del_dir`;
こう書くように書いてあったのですが、消えません。
実行演算子がシェルに命令を送るだけのものだとすれば、
win鯖の実験用環境では無理ということなのでしょうか。
0930nobodyさん
2005/09/01(木) 13:50:52ID:???0931nobodyさん
2005/09/01(木) 13:53:01ID:???スコープというものが分かってないな。
excuteの中$abcはそこで完結しており、そのままだと外には出られない。
えと、じゃあやっぱり両対応にするにはopendirとかreaddirを使って
ディレクトリ内のファイルやフォルダを全部調べつつ削除する
ルーチンを作るしかないのですね・・・
0933nobodyさん
2005/09/01(木) 15:02:38ID:???とりあえず、以下な感じで逃げました。
ああ、$contents<<<EOLを別の所におきたい。。。
別ファイルにしようかなぁ。。。
--template.php--
<?=$contents?>
--edit.php--
class Edit{
function excute(){
$abc = 'abc';
$contents=<<<EOL
ほえほえ{$abc}
EOL;
return $contents;
}
}
--index.php--
include( 'edit.php' );
$obj = new Edit();
$contents = $obj->excute();
include( 'template.php' );
0935nobodyさん
2005/09/01(木) 15:59:31ID:???index.php
└■A
..├a.inc
..└■B
....└b.inc
index.phpを実行中にA/a.incをinculdeして、さらにB/b.incをinculdeするにはA/a.inc内の記述は
inculde("B/b.inc");
inculde("A/B/b.inc");
どちらが正しいんでしょう?
0937nobodyさん
2005/09/01(木) 16:38:03ID:???ワーキングディレクトリ(working directory)つー概念があって、
この場合 index.phpがあるディレクトリがそれに該当する。
includeやrequireで相対指定した場合はそこからの指定になる。
それぞれのファイル中で echo getcwd(); してみればどういう扱いをされるのか分かるよ。
0938nobodyさん
2005/09/01(木) 16:50:30ID:???文字(フォント)を画像として出力するなんてのは無いですよね?
0941938
2005/09/01(木) 17:07:13ID:???http://ponk.jp/php_gd/index.php?page=1
こことか見るとのってるね
0942nobodyさん
2005/09/01(木) 17:45:59ID:HGt94pY+PHPでファイルを読み込む関数(include require require_once)で絶対パスを使うと
サーバから見たパスになりますよねー。
/usr/ID/public_html/file/
ってな風に。
でも、サイト作ってる時はドメインからみたパスにしたいんですよ。
/file/
ってな風に。
これってどうにか対処法はありますか?
0943nobodyさん
2005/09/01(木) 17:55:33ID:???「リモートにディレクトリがあればそれを削除して、無ければ削除しない」
ということをやりたいのですが、ディレクトリがあるかどうかをチェックする関数が
ありませんでした。
あってもなくても削除するように、
$ftp->rm( 'tmp_dir', TRUE );
としましたが、ディレクトリが無い場合にエラーが発生してしまいます。
(当然といえば当然ですが…)
何かスマートな方法はありますでしょうか?
よろしくお願いします。
0944nobodyさん
2005/09/01(木) 18:26:58ID:???実行時にライブラリのパス変更して、相対パスを使う。
さすがに /file/ は無理だけど、./file/ ならできるのでは。
0945943
2005/09/01(木) 19:25:27ID:???$ftp->ls( 'tmp_dir' );
の結果が空であれば存在しないという判断で対応できました。
お騒がせしました・・・
0946nobodyさん
2005/09/01(木) 19:52:13ID:???色々例題等試してみて、機能的なことはだいぶ解ったのですが、
フォームで複数の入力画面を行き来する可能性があるようなものの場合、
そこに出てくるセッションで保持したい変数(例:$_POST['hoge'])すべてを
例1
if(isset($_POST['hoge1'])){$_SESSION['hoge1'] = $_POST['hoge1'];}
if(isset($_POST['hoge2'])){$_SESSION['hoge2'] = $_POST['hoge2'];}
if(isset($_POST['hoge3'])){$_SESSION['hoge3'] = $_POST['hoge3'];}
続く・・・・
ってセッションに入れないといけないのでしょうか?
if(isset($_POST)){$_SESSION = $_POST;}
じゃ、なんだかうまく逝かなかったです。配列を配列に入れちゃうから無理なのかな?
あと、スクリプトのなかでhtmlに埋め込むときは、セッション変数をどういう風に扱えばよいでしょうか?
自分は{$_POST['nantoka']}って感じで使ってるので、上記「例1」のあとで
if(!isset($_POST['hoge1'])){$_POST['hoge1'] = $_SESSION['hoge1'];}
if(!isset($_POST['hoge2'])){$_POST['hoge2'] = $_SESSION['hoge2'];}
if(!isset($_POST['hoge3'])){$_POST['hoge3'] = $_SESSION['hoge3'];}
続く・・・・
とこれまた面倒なことをしてるんですが。
$_SESSION['hoge1']とか$_POST['hoge1']はそのまま使わずに$hoge1などのような変数に代入した方がいいのでしょうか?
常識的にどうするかって部分が記述されてるサイトを見つけられずちょっと悩んでます。
アドバイスおながいします。
0948nobodyさん
2005/09/01(木) 21:30:30ID:???あるregexのmanページを参照ください。 このページはmanpageフォーマットであり、
読むには man /usr/local/src/regex/regex.7のようにします。
http://jp.php.net/manual/ja/ref.regex.php
とありますが、どうやれば読めるのかわかりません。
regex.7の日本語訳などネット上にありませんか?
0949nobodyさん
2005/09/01(木) 21:46:46ID:???ttp://www.linux.or.jp/JM/html/LDP_man-pages/man7/regex.7.html
0952nobodyさん
2005/09/01(木) 22:40:12ID:???0953nobodyさん
2005/09/01(木) 22:40:49ID:???こんな感じでしょうか?
これだと、{$abc}は置き換えられず、「ほえほえ」だけになってしまうのです。
必ず、<<<EOLの前に$abcを定義しないと逝けないんですよね。
やりたいのは、templateを定義しておいて、excute()でデータを生成して、
templateに埋め込んで、出力する、これだけなんですけどねぇ。。。
やっぱり、別ファイルにしてincludeかなぁ。。。
テンプレートファイルを沢山作りたく無いんだよなぁ。。。
-- template.php --
<?=$contents?>
-- edit.php --
class Edit{
var $template;
function Edit(){
$this->template = <<<EOL
ほえほえ{$abc}
EOL;
}
function excute(){
$abc = 'abc';
return $this->template;
}
}
-- index.php --
include( 'edit.php' );
$obj = new Edit();
$contents = $obj->excute();
include( 'template.php' );
0954nobodyさん
2005/09/01(木) 22:49:41ID:???>>934じゃないけど、ちげーよ!思わずつっこんじゃうよ!
class Edit{
function Edit(){
return $this->execute();
}
function excute(){
return $abc = 'abc';
}
}
-- index.php --
include( 'edit.php' );
$contents = new Edit();
include( 'template.php' );
0955nobodyさん
2005/09/01(木) 22:51:59ID:???fucntion execute()
ね。まさかexcuteだとは思わなんだ。
0956nobodyさん
2005/09/01(木) 22:53:45ID:???既にデータの入っているTABLEにデータを追加する場合、
1項目が同じデータがあった場合はその行の更新(UPDATE)を、
無い場合は、追加(INSERT)したいのですが出来るでしょうか?
やっぱり一度取得して削除して追加になるんですかね・・・
0957946
2005/09/01(木) 23:04:08ID:???ありがとうございます、ヒントになりそう。調べてみます。
ホントに普通はどうするのか?ってとこがわからんです。
その時々で、違う、ってことなのかな?
0959nobodyさん
2005/09/01(木) 23:21:01ID:???それだと、「ほえほえ{$abc}」は何処へ?
なんか頭が煮えくり買って北尾
>>955
(><;;)テラハズカシス
0960954
2005/09/01(木) 23:35:16ID:???あのさ、つられてやるけど、
ほんとにわからない?
それにこのクラスのまま使うつもりならとても疑問に思うけどね。
return ’ほげほげ’.$this->execute();
つられ過ぎかなぁ・・・。寝よっと。
あ、PHPのマニュアルってとっっても優秀だと思うから、ちゃんと読んだ方がいいよ。
下手な解説本より役に立つ。
0961nobodyさん
2005/09/02(金) 00:17:51ID:???テンプレートを先に作っておきたいなら、
変数埋め込みじゃなくて、str_replaceでの置き換えを使った方がいいと思う。
0962nobodyさん
2005/09/02(金) 00:36:30ID:???申し訳ないです、本気で質問してます。
ただ、return ’ほげほげ’.$this->execute();と来るとは思ってませんでした。。。
>>961
pukiwikiのソースではstr_replaceとかpreg_replaceとかが大活躍してますね。
実はあまり好きではないのですが、一旦視野を広げて、見直してみる必要がありそうです。。。
0963nobodyさん
2005/09/02(金) 01:01:31ID:???こんなふうに書いてもいいんだけど、
なんだか気持ち悪いんだよなぁ。
--template.php--
<?=$contents?>
--edit.php--
class Edit{
function excute(){
$abc = 'abc';
return setTemplate($abc);
}
}
function setTemplate($abc){
return <<<EOL
ほえほえ{$abc}
EOL;
}
--index.php--
include( 'edit.php' );
$obj = new Edit();
$contents = $obj->excute();
include( 'template.php' );
0964nobodyさん
2005/09/02(金) 03:25:11ID:BIWfF3gYmb_internal_encoding('EUC-JP');
if(function_exists('mb_send_mail')) {
$to = mb_encode_mimeheader(mb_convert_encoding($nm.'様', 'iso-2022-jp', 'EUC-JP')).' <'.$ma.'>';
$subject = mb_convert_encoding('ご登録ありがとうございます。', 'JIS', 'EUC-JP');
$rcd = mb_send_mail($to, $subject, $body, $header);
}
このようにしてメールを送っているのですが、件名が「Subject: ご登録ありがとうご$6$$$^$9!#」
のように一部文字化けしてしまいます。
文字化けさせないようにするにはどうすれば良いのでしょうか
0965nobodyさん
2005/09/02(金) 03:43:33ID:???ていうか、iso-2022-jpとjisがなぜ混在しているの? べつにいいけど。
0967nobodyさん
2005/09/02(金) 04:26:07ID:???0968nobodyさん
2005/09/02(金) 04:31:07ID:???0969nobodyさん
2005/09/02(金) 04:47:56ID:???思うのだが、
コンストラクタは
従来はクラス名と同じとしていたが、
PHP5になってから__constract()という関数が加わり、これをオーバライドするような
形で自作クラスに定義して使えるが、
クラス名と同じよりも、こっちの新しい__constract()を使ったほうがいいのだろうか?
それから__get(), __set()なんてものも、まるで、C#のプロパティそっくりだが。
使うべきなのだろうか?
JavaBeansの影響を受けて、いつも何も考えず、
class Bean {
private ClassName className;
public function getClassName(){
return $this->className;
}
public function setClassName(ClassName $className){
$this->className = $className;
}
}
としてる。
0970nobodyさん
2005/09/02(金) 04:56:56ID:???これはどうだろう?
> -- template.php --
<?
$edit = new Edit('abc');
$contents = $edit->execute()
?>
> <?=$contents?>
> -- edit.php --
> class Edit{
> private $template;
> public function __constract($abc){
> $this->template = <<<EOL
> ほえほえ{$abc}
> EOL;
> }
> pulic function excute(){
> return $this->template;
> }
> }
> -- index.php --
> include( 'edit.php' );
> include( 'template.php' );
動作確認していないのでなんともいえないけど。
0971970
2005/09/02(金) 05:11:45ID:phrYpD5oあと、これはPHP5で動作確認した。
-- template.php --
<?php
$edit = new Edit('abc');
$contents = $edit->execute();
?>
<?=$contents?>
-- edit.php --
<?php
class Edit {
private $template;
public function __construct($abc) {
$this->template =<<<EOL
ほえほえ{$abc}
EOL;
}
public function execute() {
return $this->template;
}
}
-- index.php --
require_once( 'edit.php' );
require_once( 'template.php' );
0972nobodyさん
2005/09/02(金) 06:34:02ID:???俺はまだPHP4ベースだから使ってないけど
PHP5ベースに移行したらどちらも使うつもり。
Delphiをよく使ってるってのもあるが、
意味を明示してるような気がするから。
クラス名と同名の関数がコンストラクタってのは慣習的なものだし、
プロパティを表現するなら__set、__getは良いと思う。
しかしなんつうか宗教臭いな。
0974nobodyさん
2005/09/02(金) 08:42:51ID:???>>969
自分は数日前にphp5.1rc1を入れたばっかなので、未だphp4の書き方になってます。
コンストラクタはどっちにしようか迷ってます。
自分の愛読しているオブジェクト指向の本に、疎結合の為にアクセッサを…とあったので、
アクセッサは使う方向で逝きたいのですが、マンドクセ('A`)
>>971
index.phpをrequire2つで済ませるなんて、考えなかったですー。
漏れの脳みそテラカタス(><;;)
>>972
宗教なんて言わずに、自らが築いてきた哲学と言いましょう。
自分にレスして頂いた皆様には申し訳ないのですが、
結局edit.phpで使うテンプレート(ほえほえ{$abc})を別ファイルにして、
includeする形にしまいました。
何か有る度にincludeで時間を食うのはどーかなーとは思うのですが、
きもいヒアドキュメントが消えて気分爽快スッキリ清潔なのは否定出来ず。。。
0975nobodyさん
2005/09/02(金) 08:45:47ID:???0976nobodyさん
2005/09/02(金) 09:39:42ID:???可読性が上がるくらい?
0977nobodyさん
2005/09/02(金) 09:54:52ID:???parent::__construct();
って書き方で定型化できるってことくらいしか思いつかないなぁ。
他にも何か付加価値があるのかもしれんが。
0978nobodyさん
2005/09/02(金) 11:15:36ID:???・・・チラシの裏
0981nobodyさん
2005/09/02(金) 14:44:18ID:8M/eVDN40983981
2005/09/02(金) 15:48:57ID:???REQUEST_URIだと無理みたいなんですけど。
0985981
2005/09/02(金) 16:10:15ID:???ローカルではなぜかできなかった。
0987964
2005/09/02(金) 17:45:17ID:???mb_language('ja');
mb_internal_encoding('EUC-JP');
mb_send_mail('mail@server', '登録ありがとうございます。', 'ありがとう', 'From: mail@server');
mb_send_mail('mail@server', mb_convert_encoding('登録ありがとうございます。', 'JIS', 'EUC-JP'), 'ありがとう', 'From: mail@server');
?>
登録ありがとうござ$$$^$7$?!#と、{2Bりがとうございました。という件名になってきたorz
0988nobodyさん
2005/09/02(金) 18:00:37ID:???これでも化ける?
mb_language('ja');
mb_internal_encoding('EUC-JP');
$subject = '登録ありがとうございます。';
$body = 'ありがとう';
$from = 'From: mail@server';
$to = 'mail@server';
$subject = '=?ISO-2022-JP?B?' . base64_encode(mb_convert_encoding($subject, 'JIS', 'EUC-JP')) . '?=';
$body = mb_convert_encoding($body, 'JIS', 'EUC-JP');
mb_send_mail($to, $subject, $body, $from);
0989987
2005/09/02(金) 18:30:41ID:???=?ISO-2022-JP?B?GyRCRVBPPyQiJGokLCRIJCYkNCQ2JCQkXiQ5ISMbKEI=?=
件名がこうなりました(;´▽`A``
0990987
2005/09/02(金) 18:37:36ID:???だと、「登録ありがとう\ございます。」になりました。
「ご」がまずいのかな・・・
0991987
2005/09/02(金) 18:42:27ID:BIWfF3gY--> ご登録ありがとう(B\ございます。
mb_send_mail('mail@server', mb_convert_encoding('受付完了致しました。', 'JIS', 'EUC-JP'), 'ありがとう', 'From: mail@server');
--> 受付完了致しました!#
0992987
2005/09/02(金) 18:43:41ID:???途中で送ってしまった・・・
ごが悪いと思って、件名を変えたらこんどは「。」がNGでした。
0993nobodyさん
2005/09/02(金) 22:44:29ID:???その実装自体がキモイよ。
public function __construct($abc) {
$this->template =<<<EOL
ほえほえ{$abc}
の所なんてキモスギ
0994nobodyさん
2005/09/03(土) 01:11:08ID:???0995nobodyさん
2005/09/03(土) 01:14:17ID:???$this->template = 'ほえほえ'.$abc;
とするで。
ロングなストリングな場合、
$this->template = 'ほえほえ'.$abc
.'あああああああ'
.'あああああああ'
.'あああああああ'
.'あああああああ'
.'あああああああ'
.'あああああああ'
;
とするで。いや、あまりにもロングな場合、テンプレートファイルみたいなのを
メソッド引数やコンストラクタの引数とフィールド(プロパティ)に用意して使うでしょおな。
0996nobodyさん
2005/09/03(土) 04:48:41ID:???条件とかループ辺りを使い始めると、phpなテンプレファイルをincludeするか、
Smartyあたりになるよね。Smartyはデカ過ぎて嫌いだけど。
0997nobodyさん
2005/09/03(土) 07:38:53ID:???簡単なデータベースや掲示板を作れたらなと思っています。
また、こういったものが作れるようになるまで大体どれくらいの時間がかかるのでしょうか?
0998nobodyさん
2005/09/03(土) 08:26:12ID:???どこまででもいける
簡単なDB?・・・利用CGIってことか?ぐらいなら
サンプルどおりやればすぐできるようになる。
時間は人による。できるやつなら数時間。できないやつはできない。
0999nobodyさん
2005/09/03(土) 08:29:35ID:???外国語を学ぶ時に似ているので、それを使って例えると、
[外国語] - [プログラム言語]
単語・文法を憶える - 関数・構文を憶える
読んだり、聞き取ったり - 他人が書いたプログラムを理解
書いたり、話したり - 自分で書く
特定の話題を話す、小説を書く - 有用なプログラムを書く
こんな感じに、単語・文法以外にも一般常識や特定の話題を話す時の基礎知識等、
PHP以外にも身に付ける必要があるんですよ。
オイラは常識的な人間だし話題も豊富だったので(ネットワークの知識、SQL etc.)、
単語・文法を覚えるだけで済み、数時間でプログラムを書けるようになりました。
インターネットもあるし、専門書も沢山出てますから、独学では無理ってことは無いと思いますよ。
1000nobodyさん
2005/09/03(土) 08:47:30ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。