【PHP】くだらねぇ質問はここに書き込みやがれpart4
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
05/03/13 16:08:32ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
0002nobodyさん
05/03/13 16:13:46ID:???0003nobodyさん
05/03/13 16:28:43ID:D632M8O2urlencode/urldecode関数を使うだけじゃなくてもう一工夫必要ですかね?
文字化けしちゃうんですが。
環境はRedhatLinux、PHP4.3.10です。
0004nobodyさん
05/03/13 16:55:32ID:???マルチバイト周りの設定の不備のような気もしますが、
bin2hex()を使って比較してみれば正確に渡っているかどうか確認できますよ
0005nobodyさん
05/03/13 17:02:09ID:???0008nobodyさん
05/03/13 21:01:59ID:???php.iniのmbstring.http_inputとかですかね?
ちょっとやってみます。
ちなみにFORMタグのデータは日本語でもちゃんと受け取れるのですが、
phpでURLエンコードしたデータは文字化けしてしまいます。
0009nobodyさん
05/03/13 22:51:58ID:nnVcNb6z"abc" "def" "ghi"を含まなければtrueとしたいのですが、
if(!ereg("abc"$a)||!ereg("def",$a)||!ereg("ghi",$a)){
echo true;
}
↑このように書いたところすべてtrueになってしまいました。
なぜですか?一個ずつ三回ifを書けば期待どうりの結果になります
00109
05/03/13 23:05:50ID:???思いっきり勘違いしてました
0011nobodyさん
05/03/13 23:08:30ID:???$a="abc"をそいつに放り込んでみると、
ereg("abc",$a) -> true , ereg("def",$a) -> false , ereg("ghi",$a) -> false
したがって、if(false || true || true) -> if(true) になる。
$a="xyz"を入れると同様にして
if(true||true||true) -> if(true) になる。
何も不思議はあるまい。
0012nobodyさん
05/03/13 23:19:16ID:???0013nobodyさん
05/03/13 23:20:25ID:???わかりやすい説明ありがとうございます。
|| ←これは左右のどちらかがtrueならtrueですよね?
だから || をいくつ並べても一つでもtrueがあればtrueですよね?
0014nobodyさん
05/03/13 23:29:31ID:???論理演算でググれば絵付きで説明が見つかりますよ。
"abc" "def" "ghi"を含まない
= abcを含まない かつ defを含まない かつ ghiを含まない
= (! abcを含む) && (! defを含む) && (! ghiを含む)
= !(abcを含む || defを含む || ghiを含む) [ド・モルガン]
= !( ereg("(abc|def|ghi)",$a)) [正規表現のクラス化]
= !(abcを含む または defを含む または ghiを含む)
0015nobodyさん
05/03/13 23:31:43ID:???PHP+MySQLで、MySQLに書き込む際にSJISの文字化けを起こしてしまいます。
クエリは"INSERT INTO table(name) VALUES('$name')" 、$name=mysql_escape_string($_REQUEST['name']); です。
$_REQUEST['name']='表示'とすると侮オになってしまいます。
文字コードはSJIS、magic_quotes_gpcはoffで変更は出来ません。
addslashes()を加えても駄目でした。どうすれば良いのですか?
0016nobodyさん
05/03/13 23:34:23ID:???<? print date('Y.m.d H:i', filemtime("このファイル.php")); ?>
と使ってるのですが、わざわざファイル名を指定せず、自ファイルの最終更新日を得る
スマートな関数って、ないんでしょうか?
SSI で云うところの、<!--#echo var="LAST_MODIFIED"--> みたいな奴。
0018nobodyさん
05/03/13 23:46:31ID:???mb_language("ja");
mb_internal_encoding("SJIS");
mb_http_output("SJIS");
mb_http_input("auto");
0019nobodyさん
05/03/13 23:50:12ID:???そいう場合はココを書き直したら、うまくいきました!
とか書くと同じ悩みの人にもよろし。(今回はいないでしょうけど
皆様もよろしく。
0020nobodyさん
05/03/14 00:02:48ID:???<?php
print date("Y年n月j日 H時i分", filemtime($SCRIPT_FILENAME)) ;
?>
--------------------------------------------------------------
<?php echo "最終更新時刻:".date("F d Y H:i:s." , getlastmod()); ?>
0021nobodyさん
05/03/14 00:09:05ID:???手持ちのマニュアルではimap_fetch_bodyで取り出せるようなことが書いてあるのですが
具体例がなく、またwebで探してみましたがみつかりません。
どなたかお力を・・
002216
05/03/14 01:34:39ID:???ファイル名が色々変わりうるならそれでもいいですね。
>>20
そ、それです。php 公式サイトマニュアルの filemtime() から参照してた…灯台もと暗し。
>>17 のfilemtime($_SERVER['PHP_SELF']) よりもスマートなので getlastmod() でいきます。
002321
05/03/14 04:34:04ID:???0025nobodyさん
05/03/14 11:14:54ID:???>ツリーは検索できるんですが、同じパスワードで認証しようとすると行き詰まります。
パスワードの暗号方式が異なるのでは?
Active Directoryは確かKerberosを使っていたと思いますが。
0026nobodyさん
05/03/14 12:39:35ID:???0027nobodyさん
05/03/14 12:52:03ID:NwXBy3ub$title = "test";
$file_r = file('./template.php');
$file = implode('', $file_r);
$file = ereg_replace('{(\$[[:alnum:]]+)}', "\\1", $file);
print $file;
template.php
<html>
<head>
<title>{$title}</title>
</head>
<body>
<h1>{$title}</h1>
</body>
</html>
test.phpを実行すると変数が置換されて({$title}をtestに)表示されるようにしたいのですが、"\\1"がおかしいのか
$titleのようにそのまま表示されてしまいます。どうしたらいいのでしょうか。
0028nobodyさん
05/03/14 13:15:04ID:???preg使う
$file = preg_replace('/{(\$[[:alnum:]]+)}/e', "$1", $file);
または
$title = "test";
include('./template.php');
002928
05/03/14 13:16:40ID:???<html>
<head>
<title><?=$title?></title>
</head>
<body>
<h1><?=$title?></h1>
</body>
</html>
0030nobodyさん
05/03/14 13:22:09ID:???ランダム数値を取得するのにmt_rand()やrand()を使うとして、
ダブらないようにするには、過去全ての数値を記録しておくより他は無い。
1. 数値を一個生成する度に過去の数値と比較して有効無効を判定。
初めての数値だったら、記録用配列に保存。重複していれば再生成。
2. 重複しない数値を入れた配列を用意し、shuffle()を使ってかき混ぜる。
最初から順番に使っていく。
0031nobodyさん
05/03/14 13:52:38ID:ac0vKofO着メロダウンロードしたんですけど、怪しいサイトの可能性はありますか?
0033nobodyさん
05/03/14 17:42:03ID:R34xlKHj切り取った物を別の変数に格納する関数はPHPに標準装備されてますか?
あれば名前を教えてください。
0034nobodyさん
05/03/14 17:48:16ID:???〃∩ ∧_∧
⊂⌒( ´・ω・`) くぜんぶマニュアルに書いてあんがな
`ヽ_っ⌒/⌒c
ttp://www.php.net/manual/ja/ref.strings.php
ttp://www.php.net/manual/ja/ref.mbstring.php
0036nobodyさん
05/03/14 18:00:01ID:9MS+lPogheader( "Content-type: application/octet-stream;n" );
header( "Content-Disposition: attachment; filename="". urlエンコードした日本語 .""n" );
print ファイルの中身
とやっても、ファイル名がばけばけくんです。
sjisでもeucでもダメなのですが…
0038nobodyさん
05/03/14 18:33:20ID:???>>30 とは違う意味ならこんな感じか。
$nums = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ;
shuffle($nums) ;
$numuniqs = 1000 * $nums[0] + 100 * $nums[1] + 10 * $nums[2] + $nums[3] ;
printf("%04d", $numuniqs) ;
0040nobodyさん
05/03/14 23:19:48ID:???function getPassnum($keta='4'){
if(!$keta) return False;
srand();
}
0041nobodyさん
05/03/14 23:21:18ID:???>>26
function getPassnum($keta='4'){
if(!$keta) return False;
srand();
$temp = shuffle(array(0,1,2,3,4,5,6,7,8,9));
return (string) $temp[0].$temp[1].$temp[2].$temp[3];
}
0042nobodyさん
05/03/15 11:47:18ID:???0043nobodyさん
05/03/15 13:21:19ID:a8e+tPDr実行中のphpをとめるにはどうしたらいいのでしょうか?
強引にでもプロセスとめたいです。
0044nobodyさん
05/03/15 13:23:30ID:a8e+tPDr0047nobodyさん
05/03/15 16:05:59ID:EikE9BP9最近OSを入れ替えたんですが(Fedora2→CentOS4)、
同じPHPスクリプトでメールを送れなくなってしまったもので。
<php.ini>
sendmail_path = /usr/sbin/sendmail -t -i -f自分のアドレス
※sendmailのパスはwhichで確認しましたので、間違いありません。
※メールサーバー(Postfix)はきちんと動いていて、メールの送受信が可能です。
<PHPスクリプト>
<?php
$email = "自分のアドレス";
$subject = "TEST";
$content = "This is test";
mb_send_mail($email, $subject, $content);
?>
※mbstring関係の設定も行っており、mb_ereg_replaceなど他のマルチバイト文字列関数は使えます。
※エラーメッセージの表示をオンにして確認してみたのですが、エラーは何も出ません。
何か根本的なことを見落としているのかも・・・
アドバイス願います。
0049nobodyさん
05/03/15 20:29:10ID:???配列を空で初期化するのは、
$a = array();
でよいんでしょうか。
なにか正しいやり方あれば教えてください。
005147
05/03/15 23:05:05ID:EikE9BP9レスどうもありがとうございます。なるほど、postfixのmain.cfを読むと、
sendmail_path = /usr/sbin/sendmail.postfix となっていますね。
で、この通りにphp.iniの方を書き換えて、apacheを再起動してみたのですが、
メールの送信はできませんでした。うーん・・・
0052nobodyさん
05/03/15 23:38:55ID:???postfix のログを見るとか、下みたいな感じのスクリプトを
sendmail_path の先に置いて、こいつの結果をそのままその sendmail.postifxって
言うやつに食わせてちゃんと送るか確認するとか。
#!/bin/bash
OUT=/tmp/php_maildump
echo $0 $* > $OUT
cat > $OUT
exit 0
0053nobodyさん
05/03/16 00:03:01ID:oQ3Q5gEXPHPのバージョンは4.3.10です。
if(getenv("HTTP_USER_AGENT")=="Pockey-GetHTML"){exit;} うーん?
005447
05/03/16 00:14:43ID:???レスどうもです。postfixのログには関連するものがなかったのですが、
apacheのログを再度見直してみたら、
sendmail.postfix: fatal: chdir /var/spool/postfix: Permission denied
というエラーを見つけました。これが原因でしょうか。
で、/var/spool/postfixのアクセス権を調べたところ、
所有者はrootで、アクセス権は755に設定されていました。
所有者以外のユーザーも読めるわけですが、何が問題なんでしょう。
試しに上記ディレクトリのアクセス権を777にしてみましたが、
結果は変わらず、エラーログも同じものでした。
あと、せっかくスクリプトを書いていただいたのに恐縮ですが、
後半のアドバイスは私にはちょっとわかりません。すみません。
0055nobodyさん
05/03/16 00:14:45ID:???Web制作板から来た人かいな。
UA名はきちんと申告するらしいのでhtaccessで弾くのが手っ取り早いんだが。
「うーん?」つーのはどういう意味で書いているんだ?
005653
05/03/16 00:49:42ID:???はい、移動してきました。
htaccessは使えないのでPHPでなんとかできないかと思ったんですが無理ですか?
うーん?というのは読み飛ばしてかまいません。深い意味はないです。
0057nobodyさん
05/03/16 01:28:17ID:???Pocky-GetHTMLのUser-Agent名は、「Pockey-GetHTML/4.12.0 (Win32; GUI; ix86)」
ってな感じらしいので、>>53の書き方の「 == (等しい)」だとそこを通らない。
strstrやstrposのような文字列の中を検索する関数を使う。
ttp://www.php.net/manual/ja/tutorial.useful.php
0058nobodyさん
05/03/16 07:58:31ID:qOWGuaAh<? echo '<?xml version="1.0" encoding="Shift_JIS"?>'; ?>
とやるのはどうでしょうか?
ご意見をいただけると嬉しいです。
0059nobodyさん
05/03/16 07:59:01ID:qOWGuaAh0061nobodyさん
05/03/16 10:11:58ID:???なんかググってみたけどモノ自体は判らなかったが
(今は配布されてないみたいだ)
相当に行儀が悪い振る舞いをするモノということだけは判った。
現物ないので、UAを偽装できてしまうのか判らんが。
>>57みたいに文字列検索で、正規表現で引っ掛けるか。
あとデフォルトのUA表示は「Pocky/〜」というのもあるみたい。
0062nobodyさん
05/03/16 12:26:14ID:???GETHTML 4.13は持ってるよ
UAを変更する機能はないのでPockey-GetHTMLを含むものを拒否するだけでOKでしょう
それかrobots.txtを読み込むのでrobots.txtでも拒否できますよ。
一応4.13からは
(1) 同一サーバ(ホスト)への同時取得数が 1 に固定されました
(2) 同一サーバ(ホスト)への連続取得に対し、1秒の wait をデフォルトで入れました
という変更がされてるようです
006353
05/03/16 13:14:18ID:???モノが無いので挙動を確かめられんのですが
多分これでいけるんでしょう。次回の爆撃を楽しみにまっときます。
if(strpos($_SERVER['HTTP_USER_AGENT'],'Pockey-GetHTML')==true){exit;}
0064nobodyさん
05/03/16 14:19:24ID:???まてまて、strposは先頭の文字の位置は0を返すぞ。
!==false じゃないかな。
UA偽装してアクセスするくらいのテストをした方が爆撃が楽しみになると思う。
0066nobodyさん
05/03/16 17:00:56ID:???Webで翻訳してみたら「変数だけは、参照によって超えられることができます」と・・・
変数自体は$a[1]=array()しか存在していないはずなのです
意味がわからない
print_r($a);
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference
0067nobodyさん
05/03/16 17:14:15ID:???エラーの原因はわからないがプログラムするんならpass by valueとpass by referenceぐらい知っとけ
知らなければ調べとけ
0068nobodyさん
05/03/16 17:28:28ID:???こんなエラーは私としては初めてみるのですが皆さんはエラーが発生する前にエラーの
文脈を理解されているのですね。流石にプロは違いますね。
文字が出る前に予測し意味を理解されているなんて!。
と煽ってみる^^。
0069nobodyさん
05/03/16 17:41:54ID:???007066
05/03/16 17:53:51ID:???count($a)は1ですし成立しているはずなのに致命的エラーで中止されてしまう
配列の作り方に問題があるのか・・・
print_r($a)
Array ( [1] => Array())
Fatal error: Only variables can be passed by reference
isset($rel[1]);
Fatal error: Only variables can be passed by reference
007266
05/03/16 18:09:10ID:???変数名を変更したら直りました・・・が、あぁ〜書き込む途中で何となく分かりました。
使っている変数名を初期化してなかった為に何処かで使っていた変数と被っていたのかも知れません。
しょぼい・・逝ってくる;;
0073nobodyさん
05/03/16 18:18:13ID:???を出したくてチャレンジしてるのですができません。。 orz
よほど革新的なやり方に違いない。。
007466
05/03/16 18:39:26ID:???使っている形跡がなかった。グローバルなんて使っていないし、わけがわからない・・。
007566
05/03/16 18:47:16ID:???出来るかもしれないな
ちなみにPHP Version 4.3.9です
0076nobodyさん
05/03/16 22:45:43ID:???ローカルルール申請をする前に
知識のある方に確認して欲しいのですが
どちらで聞けばよろしいでしょうか?
0077nobodyさん
05/03/17 00:18:17ID:???http://qb5.2ch.net/operate/
0079nobodyさん
05/03/17 02:32:38ID:pEdxtvRGMYSQLとかだと一行消して間をつめるみたいに軽い処理でできるのでしょうか?
2、最近のサーバーなら5000行を超えるテーブルでも比較的軽く操作できますでしょうか?
3、カンマ区切りのテキストファイルをたくさん作るくらいならMYSQLにすべきでしょうか?
4、MS-ACCESSのようにテーブル作るたびにファイルができるのでしょうか?
webアプリを作っていて、できたのはいいもののデータファイルが1000行とか超えてくるとさすがに心配です。
ファイルロックをしてはいますがfrockでは完璧ではないようで・・
どなたかY/Nで結構ですので1〜4答えてください。
0082nobodyさん
05/03/17 12:31:19ID:JSWrWrWk現在PHPにPOSTでバイナリ画像データを投げています。
ところが、$ret = $_POST['ret'];
にした時にすでに、$retはデータに\0があった場合に切り詰められてしまいます。
これを回避してバイナリ画像データを
画像ファイル形式で保存するにはどうしたらいいでしょうか?
0083nobodyさん
05/03/17 12:31:45ID:JSWrWrWk0085nobodyさん
05/03/17 12:54:39ID:???POSTでバイナリを投げる?
フォームからファイルアップロード?
だったら、普通にmultipart/form-data使えば?
それより、IDに感動した。
0086nobodyさん
05/03/17 13:12:57ID:???フォームからではなくて、Iアプリから投げています。
Iアプリからはきちっと投げれているんですが、
PHP側で$ret=$_POST['ret'];
と、やろうものならもう文字がめちゃめちゃになっています。
なんとか回避できないでしょうか?
$HTTP_POST_FILESというのを試したのですが、うまくいきませんでした。
(FORMからファイルのアップはできました)
0087nobodyさん
05/03/17 13:19:19ID:???0089nobodyさん
05/03/17 13:24:46ID:???0090nobodyさん
05/03/17 13:25:08ID:JSWrWrWkヘッダはこんな感じで出力してます。
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
試しにmultipart/form-dataにしてみたんですが駄目でした。
ちなみに、ret='画像バイナリデータ'という感じでPOSTで渡しております。
文字が認識できないというのは、バイナリデータに\0が在った場合切り詰められてしまうことです。
$ret=$_POST['ret']; ←この時点で取得するときには勝手に切り詰めてくれます(涙
0091nobodyさん
05/03/17 13:54:02ID:???$HTTP_RAW_POST_DATAをググったら解決できました♪
//うちの鯖では$HTTP_RAW_POST_DATAが使えませんでしたので
//ググって出てきたメーリングリストから転載します。
$buffer = "";
$stdin = fopen( "php://input", "r" );
if( !$stdin ){ die( "stdin open error!!" ); }
while( !feof( $stdin ) )
{
$buffer .= fgets( $stdin, 10000 );
}
fclose( $stdin );
これでPOSTデータを取得できました。
但し、もともと"ret=画像バイナリ"で送信していたので、
retをはずして"画像バイナリ"のみで送信しました。
折角、ハッシュになっていて便利なのですが、この際諦めます。
009279
05/03/17 14:12:39ID:???webprogの質問のほういきますね。
0093nobodyさん
05/03/17 15:41:55ID:???Content-typeをapplication/octet-streamとかにすればalways_populate_raw_post_dataの設定にかかわらず
$HTTP_RAW_POST_DATAにPOSTデータがそのまま残ると思う。
0094nobodyさん
05/03/17 15:59:35ID:???i-appli側も作ってるならi-appliのほうでmaltipart/form-dataの形式にして送ればバイナリデータもちゃんと遅れるでしょう。
application/x-www-form-urlencodedは文字通りurlエンコードして送るものですから
0095nobodyさん
05/03/17 17:09:51ID:???http://foo.bar/index.php/20050401
って感じでindex.phpに日付っぽい文字列渡してるんですけど、
Hatenaみたく
http://foo.var/20050401
って感じで日付をスクリプトに渡すにはどうすればいいでしょうか。
やっぱApache側でなんとかしないとダメ?
0096nobodyさん
05/03/17 17:40:17ID:???PHP以前の問題でapacheがどうするかつー話。
上のURLが使えるつーのもapache側でなんとかしてるよ。
自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
他人が管理してる鯖ならその人に相談してみれ
0097nobodyさん
05/03/17 18:34:04ID:???うへぇ。やっぱApache側ですか。
> 自分が管理してる鯖なら「なんとかした」時のドキュメントを再度確認。
Apache側の設定はデフォのままです。
上のURLみたいにやってるサイト見て、試しに自分とこのでも似たようなURL入れて飛んでみたらありゃアクセス出来んじゃんって。
じゃあ$_SERVER['PHP_SELF']から文字列取得すりゃどうにでもなるじゃん、って感じで適当に書いただけなんで。
んー、mod_rewriteあたりでなんとかなりますかね・・調べてみます。
0098nobodyさん
05/03/17 19:12:45ID:???パスワードの比較をしたいのですが
半角の英数のみの文字列を比較する場合
== === strcmp などどれがよいのでしょう?
009998
05/03/17 19:13:20ID:???0100nobodyさん
05/03/18 01:16:38ID:???ホスティングのレンタルサーバで、自分のディレクトリ以下にhoge.phpファイルを置いた場合に、
同階層のinc.phpを読み込むには、
require_once($_SERVER['DOCUMENT_ROOT'].'/inc.php');
これで行けてるんですが、
自分でサーバ動かして、ユーザ/public_html/以下のディレクトリにhoge.phpを置いた場合は、
パス的に違うところ(ドキュメントルートの方)を見に行ってしまってinc.phpが無いという
エラーになってしまいます。
当たり前と言えば当たり前な気がするんですが、こういう場合、今いる位置を取得するような記述に変えるものでしょうか?
(そんなものがあれば、ですが。)
もしくは、apacheの設定でどうにかする問題でしょうか?
0102nobodyさん
05/03/18 02:04:42ID:???0103100
05/03/18 02:11:52ID:???ちょっと調べてみます。使い方がよくわからんので。
>>102
まじすか?じゃあ元から
require_once('./inc.php');
ってやっとけば良かったのかなぁ。後でやってみます。
0104nobodyさん
05/03/18 13:36:47ID:???require_once('inc.php');
はだめなのかな
0105nobodyさん
05/03/18 15:45:07ID:???携帯サイトで画像に文字を入れるサイトを作っています。
imagefttext ($im, $size, $angle, $x, $y, $col, $font_file, $text)
を全て変数にしてformを使った選択式にしています。
PCからアクセスするとすんなり行き、画像に文字が入って表示されます。サイズ、位置、色、フォントの種類も全てOKです。
しかし携帯(auのA3012CA)からアクセスすると画像は表示されますが、文字が描画されていません。
これは無理なんでしょうか?
0106nobodyさん
05/03/18 16:08:50ID:???ここで聞く前に色々出来る事があるだろう?
$textに文字列がちゃんと入ってるのかとかさぁ。
携帯の時の画像をファイルに落としてそれをPCで確認してみるとかさぁ。
0107nobodyさん
05/03/18 17:02:27ID:???0108nobodyさん
05/03/18 17:37:43ID:???+--+--------+-----+------+
| id | leader | sub_l | sub_l2 |
+--+--------+-----+------+
| 01 | 山田 | 本田 | 上田 |
| 02 | 上田 | 藤本 | 山本 |
| 03 | 山田 | 藤本 | 田中 |
+--+--------+-----+------+
こんなテーブルで、各列の名前をひとつの配列に格納したいのですが、
つまづいてしまったので質問させてください。
$result = mysql_query (SELECT leader FROM table, $conn);
$leader = mysql_fetch_array ($result);
これだと、
Array( [0] => 山田 )
Array( [0] => 上田 )
Array( [0] => 山田 )
の様に、行ごとの配列になってしまいます。
これを、Array ([0] =>山田 [1] => 上田 [3] => 山田)
の様にしたいのですが、どうすれば良いでしょうか?
0109nobodyさん
05/03/18 17:52:34ID:???while ($row = mysql_fetch_row($result)) {
$leader[] = $row[0];
}
mysql_resultでもいいけど。
mysql_fetch_array()した後で新しい配列を作るのもありかな。
0110108
05/03/18 18:00:14ID:???うおー!できました!
whileが浮かばなかったです。。。
こんな短時間に答えてもらってめっちゃ嬉しいっす。
�dクス!
0111nobodyさん
05/03/18 18:13:55ID:???0112nobodyさん
05/03/18 18:54:53ID:???0113100
05/03/18 21:41:06ID:???今いるページ(動的)を表示させるにはどうしたもんでしょうか?
$_SERVER['PHP_SELF'];
や、
$_SERVER['PATH_TRANSLATED'];
だと、そのファイル自体が出てしまいますが、
http://xxx.com/hoge.php?huga=1&hage=2とか、
.htaccessでちょっと違う渡し方(http://xxx.com/1/2/みたいな感じ)をしてたりするので、
つまりは、アドレスバーに出ているパスがわかる手法なんてありませんですか?
0114100
05/03/18 21:42:08ID:???0115nobodyさん
05/03/18 22:01:03ID:???0117nobodyさん
05/03/18 22:42:36ID:???最後ギガワロスwwwwwwwwwwwwwwwww
義兄さんいいやつカッコイイwwwwwwwwww
↓の1とは大違いだwwwwwww
http://ex10.2ch.net/test/read.cgi/news4vip/1111083418/
0119nobodyさん
05/03/19 20:15:14ID:+syTbEnIPHPスクリプトからパスワード入力が必要なページにアクセスするのはどうやればいいんでしょうか?
[パスワード認証ページ]
pass.php ($_POST['pass']に対応した入力ボックスがある)
0122119
05/03/19 21:31:07ID:+syTbEnI教えて頂いたcURLを使用して以下の様なコードを作成して実行したのですが
「ERROR!」が表示されてしまい、どうも上手く行きません…
スクリプトで指定したパスワードをコピー&ペーストで手動でボックスに入力して
ログインすると問題ないので、パスワードは間違ってないはずなのですが…
どこが悪いのでしょう??
-------------------------------
[access.php]
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 'test_pass');
curl_exec($ch);
curl_close($ch);
-------------------------------
[login.php]
if($_POST['password'] == 'test_pass'){
print("OK!\n");
}else{
print("ERROR!\n");
}
-------------------------------
0123nobodyさん
05/03/19 21:42:05ID:???curlは使ったこと無いからぱっと見の印象だけど、
passwordという文字がどこにも無いのにそれがPOSTで割り当てられるとは到底思えない。
そう思って本家のマニュアルを見てみれば、user notesにサンプルまであったよ。
0124119
05/03/19 22:04:12ID:???そうですよね… アホなコード書いてしまってた…
以下で問題なくアクセス出来る様になりました。
どうもありがとうございました!
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.******.***.login.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'password=test_pass');
curl_exec($ch);
curl_close($ch);
0125nobodyさん
05/03/20 00:17:39ID:Agj+ehs1ポインタのみ返される(=配列が巨大になってもコストは変わらない)
のでしょうか?
それともまるまるコピーされるのでしょうか?
0126nobodyさん
05/03/20 01:09:28ID:???0127nobodyさん
05/03/20 01:42:16ID:HpwY0q6P鯖管理のスクリプトとして使ってました。
このたびphpを勉強しようと思うのですが、お勧めの書籍などあれば
教えていただきたいのですが。
0128nobodyさん
05/03/20 01:53:14ID:???不安になったら既存のスクリプトを読むとか。
あとは何がしたいかによるけど。
0129nobodyさん
05/03/20 01:58:29ID:HpwY0q6P0130nobodyさん
05/03/20 02:17:44ID:???なんだったら、こっちで訊いて
PHP関連の書籍(但しPHP出版系お断り)
http://pc5.2ch.net/test/read.cgi/php/985315574/893-
バカが沸いて最後変になってるけど。
0131nobodyさん
05/03/20 04:41:31ID:06hYr4Ff書き出すのは上手くいったのですが、
もっとスマートな書き方があるかもしれないと思い、質問です。
自身のファイルに書き出す場合なら
echo = 'hoge';
echo = 'hage';
のところを、一番最初に $kakikomi = ""; とした上で
$kakikomi .= "hoge";
$kakikomi .= "hage";
と$kakikomiに追記を繰り返し、最後に
fputs ( "test.html", $kakikomi );
で出力しています。
変数に追記していく点が、どうかなぁと思うのですが
いかがでしょうか???
0132nobodyさん
05/03/20 05:54:38ID:???そんなんで良いんでね。
行間がどれ位離れてるのか隣接してるの判らんし。
他には隣接してるならヒアドキュメント使うとか、
array_push()使って溜めて、最後にjoin()して書き出しとか。
0133131
05/03/20 10:11:25ID:otGG2Eg1ありがとう。
ヒアドキュメントは使えるところには使ってみました。
なるほど、array_pushも使えますね。。。メモメモ
0134nobodyさん
05/03/20 11:35:21ID:???htmlspecialchars()を使ったのですが\nと\rを<br>に置き換えているためか
改行されず、そのまま<br>と表示されてしまいます。
うまく表示するためにはどうしたらよいのでしょうか?
0135nobodyさん
05/03/20 12:33:41ID:???0136nobodyさん
05/03/20 12:54:44ID:???$comment = str_replace("\r\n", "\r", $post['comment']);
$comment = str_replace("\r", "\n", $comment);//改行文字統一
$comment = preg_replace("/\n{2,}/", "\n\n", $comment);//2行以上の改行を2行に
if (substr_count($comment, "\n") > MAXBR) error("えら!");
$comment = eregi_replace("&([0-9a-z#]+);", "&\\1;", $comment);
$post['comment'] = str_replace("\n", "<br>", $comment);//\nをbrに
0137nobodyさん
05/03/20 13:28:23ID:???array_push()は、$array[]='hoge';でも等価。
あと結果用の自前のクラス作って、そこにpushとwriteってメソッド付けるとか。
(関数でもいいけど。巷のログ出力用のクラスを参考に)
0138nobodyさん
05/03/20 17:08:29ID:MmiCb60Cどこかにありますか?
0139papupapu
05/03/20 17:11:22ID:???0143nobodyさん
05/03/20 17:34:03ID:???0144nobodyさん
05/03/20 21:32:17ID:???イメージディレクトリからファイル名を指定して探し出しURLとして表示させたいのです。
img.phpで以下を保存し、ファイル名の指定はimg.php?aaa.jpg等としたいです。
このときのOOOOをどう表現すればいいのでしょうか?
$dir = "./img/";
$file = strstr(OOOO, '?');
glob("$dir/$file");
0147nobodyさん
05/03/20 23:29:17ID:???洗ってから食べなさい。
0148nobodyさん
05/03/20 23:45:27ID:???0150149
05/03/20 23:59:40ID:???0152nobodyさん
05/03/21 01:46:48ID:???eregで判別するのと「.」をトークンとして分割しその値を==で判別するのでは
どちらが効率が良いですか?
0153nobodyさん
05/03/21 01:55:46ID:???「.」区切りを整数になおす関数もあるぞ。んで、サブネット指定できる。
その辺をうまくやりくりしてくれる関数は前に誰かに質問されて、
こっちかホンスレに書いた。DAT落ちしててみれないかもだけど。
あと、逆引きできるならリモートホストの後方一致って手もある。
0154153
2005/03/21(月) 04:13:25ID:MBpHY0ekWebProg板は不慣れなのでお手柔らかにお願い申し上げます。
PHPとHTML混在の為、文字コードをEUCにして
すべてのページを作成していますが、
内部ページとボタンのポップアップメニューが
文字化けがでたりでなかったり、ひどいです。
DreamWeaverテンプレートをEUCで作成して、
そこから全ページEUC(.htmlのページも.phpのページも)
で読み出して作成しています。これが文字化けの原因なのでしょうか。
それともPHP自体テンプレートから引き出して作らず個別で製作したほうが良いのでしょうか?
もちろんPHPが画面上にPrintする部分は編集可能領域にしてあります。
それとも、ふと思ったのですが、
テンプレートもそこから新規作成するページもShift-JISで作成し、
挿入>PHP>PHPインクルード+PHPページエンコーディングで
<?php include(mb_http_input("EUC-JP"); mb_http_output("EUC-JP");); ?>
といれればそれで良いのでしょうか。
DWの機能も内容にはいっていて
板違いは承知ですが、質問させてもらいました。
これだからデザは、、などといわれるのは覚悟の上ですが、
知識ございますかた、ご教授ください。宜しくお願い申し上げます。
0155nobodyさん
2005/03/21(月) 04:26:03ID:???それでオイラはどっちのスレで答えればいいのかね ゚・(ノД`)・゚・
ttp://pc5.2ch.net/test/read.cgi/hp/1106804437/713
DWのEUC対応が不完全なせいじゃないかなぁ。
バージョン上がる度にEUCの問題を起こしてる気が。
HTTP入出力をEUC、スクリプトをSJIS(HTMLに埋め込みっぽいから)にすると
トラブルの原因にもなるので、EUCに統一した方がよいかと。
で、DWでSJISで作って 出来上がったファイル(s)をなんらかのツールで
EUCに変換するのが楽じゃないかなぁ。
0157154
2005/03/21(月) 05:25:47ID:???おっしゃる通りです。
マルチです。申し訳ありません。どちらに書いたらいいのか判断がつかなかったので
ご容赦ください。
(1)同一サイト内で文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので避けるべきですよね?
(2)それと.phpのページに対してDWのテンプレート機能は使用しても問題ないのでしょうか
とりあえずご教示いただいた通り、S-JISにて作成して、秀かMiにて、
文字コード変換を手動ですることにします。
>>153
ゴメソ
0158nobodyさん
2005/03/21(月) 05:47:40ID:???マルチはやめろ。
判断つかないならサイコロでも何でもいいから1つに決めて質問しろ。
不適切ならきっと誘導してくれる。
0159154
2005/03/21(月) 06:28:46ID:???http://pc5.2ch.net/test/read.cgi/hp/1106804437/715
みなさんレスいただきましてありがとうございます。
おそらく期末前で徹夜で仕事しながら私の質問をみていただいている方も
大勢いらっしゃるはず。反省しております。
再度整理して質問させてください。
(1)同一サイト内でページごとに文字コードを変える(.htmlはShift-Jis、.phpはEUC)ということは
ブラウザに迷わせてしまうので絶対避けるべきでしょうか?
(2).php等のサーバーサイドの動的コンテンツに対してDWのHTMLテンプレート機能は使用しても問題ないのでしょうか
以上です。宜しくお願い致します。
0160nobodyさん
2005/03/21(月) 06:40:40ID:???1しかわからんけど。
ちゃんと文字コードを指定してたら問題ないんじゃないか?
フレームとかincludeさせちゃうとダメだろうけど。
0161nobodyさん
2005/03/21(月) 11:31:46ID:Xj0YOktX拡張子を.phpにしてアップさせなければいいのではというの以外に、
.htaccessなんかで設定できるディレクティブはありませんか?
0164161
2005/03/21(月) 12:55:21ID:???ありがとう。
.htaccessに
AddType text/html .php
だけ書き込んだら、できたよ。
最初、internal server errorが出たんで、???って思ったけど、htttpd.confで
AllowOverride Fileinfo
を付け加えたよ。
ちなみに、php addtypeでググったら
ttp://nanakorobiyaoki.at.infoseek.co.jp/etc/phpdeny.html
が出て来た。検索しづらいなーって思って↑を作ってくれたみたいだけど、
162に教わった後だからあんまり意味なかった。
0165nobodyさん
2005/03/21(月) 13:04:31ID:???さんくす。参考になりました。
リンクをクリックしたかどうかを判別する何かいい方法はありませんか?
携帯向けだからリファラでは判別できないし
やはりユニークIDを付けてリンク先に飛ばす前にファイルに書き込むしかないでしょうか?
0166166
2005/03/21(月) 13:08:34ID:???Options -ExecCGI
AddType text/plain .php .html .cgi .css
IEだと意味無い部分もあるけど自分はIE使ってないので変なブラクラ踏まされることも無い
0167nobodyさん
2005/03/21(月) 14:14:44ID:???(1) ちゃんとhttpdの設定でHTTPヘッダに適正な文字コードの出力がなされ、
かつHTMLドキュメントのMETAの方でも適正な文字コードが指定されてれば
まず問題はないので絶対とは思わない。しかしブラウザによってはPOSTする
文字コードが混乱して変なことになったことがあるので、
余り混在させるべきではないと経験的に考える。
(2) DWを知らんので回答できず
0169nobodyさん
2005/03/21(月) 18:49:50ID:???echo ltrim('web_content/text','web_cont');
上と下では結果が結構違うんだけども・・
何故に?
あ、やりたいことは親ディレクトリ名を切り取りたいだけです。。orz
0170nobodyさん
2005/03/21(月) 19:05:27ID:???どうおかしいと感じたのか書いてないので想像するしかないですが、
ltrimの2つ目のパラメータの意味を勘違いしているものと思われます。
ltrimの2つ目のパラメータは「削除したい全ての文字をリスト」したものです。(not 文字列)
1つ目のltrimは、8文字目のtでパラメータに無い文字を発見するので、それ以降の文字が返されます。
2つ目のltrimは、12文字目の/でパラメータに無い文字を発見するので、それ以降の文字が返されます。
目的にそぐわない関数だと思われます。
0172nobodyさん
2005/03/21(月) 19:35:59ID:???0173nobodyさん
2005/03/21(月) 20:59:31ID:???ltrim($xxx, "-");
って載ってるから同じような物かなーと思ったけど、
第2パラメータの文字列が配列として1文字ずつ比較(?)されてたから、
第1パラメータのみに存在する文字が出た時にそこから後ろが抽出された訳・・かな?
>>170 (なんかカコイイ。。Thanks!)
>>171
>>172
ありがとうございました。
と、言うわけで質問します。
カレントディレクトリ名を取得する関数などはあるのでしょうか?
フルパスではなくて、ディレクトリ名です。
www.xxx/php/index.htm の場合、 php とディレクトリ名を取得したい。
0174nobodyさん
2005/03/21(月) 21:04:01ID:???これってPHP4のスクリプトは書き換えないと使えないの?
0175nobodyさん
2005/03/21(月) 21:39:18ID:???$path = "www.xxx/php/index.htm";
echo basename(dirname($path));
0176131
2005/03/21(月) 23:25:37ID:???亀レスですが、ご丁寧にありがとう。
まだPHPを触り始めて1週間とかなので、
非常に参考になります!
0177nobodyさん
2005/03/22(火) 18:29:04ID:LgrnIX4+ログファイルに<!--- --->で囲まれた部分を複数出力する方法を
お尋ねしたところ
$reg = "/<!--- (.+?) --->(.+?)<!--- \/\\1 --->/";
preg_match_all($reg, $RetrieveFile, $DataPrint);
と御教授いただいたのですがechoの書き方がわからず参ってます。
echo $DataPrintと書いてもecho $DataPrint[0とか1とか2とか]書いても
全てArrayになるのですが、$regの2番目の(.+?)に該当する部分を
出力するにはどうしたらいいのでしょうか?
0178軟式PHP
2005/03/22(火) 18:53:07ID:???0180nobodyさん
2005/03/22(火) 23:19:38ID:???0181nobodyさん
2005/03/22(火) 23:23:26ID:???0182nobodyさん
2005/03/23(水) 21:06:12ID:???0183nobodyさん
2005/03/24(木) 12:27:03ID:uQ7Kwr2a0184nobodyさん
2005/03/24(木) 12:50:25ID:???0185nobodyさん
2005/03/24(木) 16:11:55ID:cbGEPWrcといったように複数の条件を指定して、その値に従ってページを遷移するPHPスクリプトはご存じでしょうか?
探したのですが、レッツPHPのダウンロードカウンタは1つの条件しか持てないようなので・・
http://php.s3.to/data/#dl
0188nobodyさん
2005/03/24(木) 19:58:00ID:???ページを遷移する、という意味が分からないんだが…
こんなのが欲しいんか?
<?php
$foo = ceil($_GET['foo']);
$bar = ceil($_GET['bar']);
$null = ceil($_GET['null']);
//リダイレクトするURL
$urls[0][0][0] = 'http://www.google.co.jp/';
$urls[0][0][1] = 'http://www.yahoo.co.jp/';
$urls[1][1][0] = 'http://www.goo.ne.jp/';
・
・
header('Location: '.$urls[$foo][$bar][$null]);
?>
0189185
2005/03/24(木) 20:42:36ID:???そういう感じです。
何処を見ていいかわからなかったもので検索後もいろいろ試してみたんですが・・
やってみます、ありがとうございました。
0190185
2005/03/24(木) 20:50:30ID:???http://hoge.com/?product=foo&version=1.2&os=mac
0191nobodyさん
2005/03/24(木) 21:36:58ID:???それリダイレクトなんかじゃなく
ちゃんとデータベース作ってやった方がいいですよ
0193nobodyさん
2005/03/25(金) 03:25:56ID:EQZt/eu0以下のようなスクリプトをシェル上で実行すると ghijk がちゃんと
出力されるのですがweb経由でスクリプトにアクセスすると何も表示されません。
どうすればwebでも読めるようになりますか?
<?php
$data = "abcdef\nghijk\nlmnopqr";
$fp = popen("/usr/bin/grep 'i'", "w");
fputs($fp, $data);
pclose($fp);
?>
0196nobodyさん
2005/03/25(金) 14:33:31ID:???それをifに渡してやることって可能ですか?
以下のようなイメージです。
$f = 'is_string($str) && strlen($str) > 0';
if($f){
// 文字列
}else{
// それ以外
}
0199nobodyさん
2005/03/25(金) 15:30:26ID:???0200nobodyさん
2005/03/25(金) 15:42:25ID:???そういう意味じゃなくて、194はコンソールアクセス(成功した方)と
同等の環境(権限とかパスとか)をWebアクセスにも与えろってことだと思うよ。
0201nobodyさん
2005/03/25(金) 15:55:13ID:???入力されたものをevalするのはやめろ
readfile(\"/etc/passwd\");
とか入力されるぞ
0204193
2005/03/25(金) 19:31:21ID:???えっと、grepのパスも/usr/bin/grepとフルパスで指定しているし
grepのパーミッションも-r-xr-xr-xの状態ですけど、これ以外にも
環境を合わせないといけないところがあるということでしょうか?
0206193
2005/03/25(金) 20:22:33ID:???とりあえずerror_logには何も残ってません。
ブラウザー上にはエラーさえも出ません。
念のためtelnetでwebサーバーにつなげてみましたが以下の通り
ヘッダ以下には何も書いてありませんでした。
$ telnet www 80
Trying xxx.xxx.xxx.xxx...
Connected to www.
Escape character is '^]'.
GET /~myuser/test.php HTTP/1.0
HTTP/1.1 200 OK
Date: Fri, 25 Mar 2005 11:16:58 GMT
Server: Apache
X-Powered-By: PHP/4.3.10
Content-Length: 0
Connection: close
Content-Type: text/html
Connection closed by foreign host.
$
0208193
2005/03/25(金) 21:11:43ID:???なるほど。そういうものだったんですか。
サーバー管理者ではないのでphp.iniとかの書き換えはできませんが
error_reporting(E_ALL);
を付け加えてやってみました。error_reporting関数を使っても
エラーは何も出てこないですねー…
0209nobodyさん
2005/03/25(金) 21:36:57ID:???display_errorsやほかその他エラー関連の設定は?
エラー関連の設定はほぼ全部ini_setで変更できる
0210nobodyさん
2005/03/25(金) 23:41:48ID:???0211nobodyさん
2005/03/26(土) 02:13:41ID:???popenで開いて、開いたプロセスに$dataを入力として渡してるが、
プロセスからの出力は、拾ってないぞ?
popenは一方向のパイプしか扱えないから、
proc_openをつかえ。
んで、fputsで$data渡した後、fgetsなりなんなりして結果を取得してくれ。
proc_openの使い方はpopenとは異なるからマニュアル嫁よ。
0212193
2005/03/26(土) 06:11:40ID:???ini_setで変更できるの初めて知りました。
とりあえず以下を追加しましたがやはり何もエラーは残りませんでした。
ini_set("display_errors", "on");
ini_set("log_errors", "on");
ini_set("error_log", "log.txt");
0213193
2005/03/26(土) 06:12:06ID:???proc_openのマニュアルttp://php.s3.to/man/function.proc-open.html
を読みました。よくは理解できなかったのでサンプルを参考に作ってみました。
やはりシェル上では動きますがweb上では何も表示されませんでした。
<?php
$data = "abcdef\nghijk\nlmnopqr";
$descriptorspec = array(
0 => array("pipe", "r"), // stdin is a pipe that the child will read from
1 => array("pipe", "w"), // stdout is a pipe that the child will write to
2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);
$process = proc_open("/usr/bin/grep 'i'", $descriptorspec, $pipes);
if (is_resource($process)) {
fputs($pipes[0], $data);
fclose($pipes[0]);
while(!feof($pipes[1])) {
echo fgets($pipes[1], 1024);
}
fclose($pipes[1]);
proc_close($process);
}
?>
0214nobodyさん
2005/03/27(日) 12:04:17ID:VfQV7VpEphpを使えるように設定しているのですが、どうも期待通りに動いてくれません。
/home/*(username)/public_html/php以下でのみphpを動かしたい
open_basedir = php
user_dir = public_html
とやってみたのですがダメでした。
どの辺の設定をいじればいいのでしょうか?
0216nobodyさん
2005/03/27(日) 17:08:31ID:???それはPHPじゃなくてhttpサーバの仕事だよ
Apacheなら.htaccessで設定できるから該当のスレにどうぞ
0217nobodyさん
2005/03/27(日) 18:30:34ID:o5yBDsfR$a = new TestClass();
$b = &$a;
$aと$bが同じものかどうか(内容が同じというわけではなく、
指し示すメモリの場所が同じ)を検知したいのですが、
なにか良い方法はあるのでしょうか?
どうかご教示下さい。お願いします。
0219nobodyさん
2005/03/27(日) 18:51:03ID:???メモリのマッピングをになっているリファレステーブルで
同じ値が割り当てられていることをもって、指し示す
メモリの場所が同じと見なすしかないと思う。
それとも「同じ値が割り当てられている」ことを調べたいのかな?
0220nobodyさん
2005/03/27(日) 19:16:43ID:o5yBDsfRやはり無理っぽいですね・・
どうもありがとうございます。
0222nobodyさん
2005/03/27(日) 22:49:37ID:???可能だとしたらどうやったらいいのかまったくわかりません。
どなたかご教授よろしくお願いします。
0224nobodyさん
2005/03/28(月) 00:50:15ID:???サーチかなんかのランキング上げたいんジャマイカ?
0226nobodyさん
2005/03/28(月) 07:35:35ID:???そうです。でも田代砲まで強力じゃなくて。
10分間に1アクセスくらいでいいです。
PHPじゃなくてJavaScriptで作れるんですか?
PHPで簡単に作れないでしょうか?
作り方のヒントだけでも教えてください。お願いします。
0227nobodyさん
2005/03/28(月) 12:02:19ID:???1
2
3
4
";
$dat = preg_replace("/1(.*)4/","",$dat);
結果が以下のようになりそうでならないのですがどうしてでしょうか?
1
4
0229nobodyさん
2005/03/28(月) 12:47:19ID:???preg_replace("/1(.*)4/m","",$dat,'m')でもダメでした^^;
洗濯物を干しながら考えてみます
0232227
2005/03/28(月) 13:26:01ID:???$dat = preg_replace("/1(.*)4/m","\\1",$dat);
とすれば結果が23となるので改行が問題なのはわかるのですが/mをつけても
複数行にはマッチしないようです。複数行の解釈を間違えているのでしょうか?。
0233nobodyさん
2005/03/28(月) 13:30:50ID:???.(ドット)を改行にマッチさせるのはsです
$dat = preg_replace("/1(.*)4/s","\n",$dat);
0234232
2005/03/28(月) 13:37:54ID:???$dat = preg_replace("/1(.*)4/s","$1",$dat);
0236nobodyさん
2005/03/28(月) 16:29:39ID:AxvngZW7今まではクラス化されてないPHPコードべた書きのファイルを作り、
グローバル変数として使うというやり方をしていました。
しかしより洗練されたやり方をと思い、設定ファイル自体を
クラス化し、ゲッター(セッターは必要ないですよね)で値を取得
というやり方を考えました。
前者が駄目なやり方とは思いませんが、後者のやり方は一般的な
オブジェクト指向プログラミングにおいて正しいやり方でしょうか?
オブジェクト指向プログラミングにまだ慣れていないので変な質問かも
しれませんが指揮者のご意見をお聞かせいただければと思います。
0237236
2005/03/28(月) 16:35:37ID:???class Config {
var hoge;
var fuga;
// コンストラクタ
// ここで値をセットするのでセッターはいらない?
function Config() {
hoge = "hoge";
fuga = "fuga";
}
// ゲッター
function getHoge() {
return $this->hoge;
}
function getFuga() {
return $this->fuga;
}
}
0238236
2005/03/28(月) 16:45:56ID:???失礼しました。
ちなみに今回お聞きしたいのはどちらかというと小規模な開発
というよりも中規模・大規模開発を視野に入れた保守性重視の
オブジェクト指向ガチガチの開発の場合を想定しています。
0239nobodyさん
2005/03/28(月) 17:24:23ID:???別に決まりは無いので好きなように作ればいいと思いますよ。
自分の場合は値の変わらない設定値は定数にしてます。
0241nobodyさん
2005/03/28(月) 19:44:33ID:???どのようなやり方になるのでしょうか?配列に慣れていないので
よくわからないのです。ご指導宜しくお願いします。
0242nobodyさん
2005/03/28(月) 19:51:02ID:???配列に慣れてないのは構わないんだが、
それ以前に自分の伝えたいことを書き表すのに慣れてないような気が。
そこで指し示す"テーブル"とは具体的に何?
0244nobodyさん
2005/03/28(月) 20:26:42ID:???htmlのテーブルを使って素直に書くと、
<table>
<tr><td><?php echo $array_data[0][0]; ?></td><td><?php echo $array_data[0][1]; ?></td>〜</tr>
<tr> 〜</tr>
〜
</table>
つー風にも書けるけど、それさえも分からんってことじゃないでしょ?
何に困ってるのかよく分わかんないよ。
0245226
2005/03/28(月) 23:06:17ID:???探したけど見つかりませんでした。
0246nobodyさん
2005/03/28(月) 23:11:38ID:VOOnUpPoindexファイルがindex.htmlじゃないとダメで、
テンプレ部分とかいちいち書き直すの面倒なんです
0248nobodyさん
2005/03/29(火) 10:39:10ID:???0251nobodyさん
2005/03/29(火) 13:10:08ID:???>244とヘッダーにおっすおらエクセルよろしくな!って書けば終わりじゃね?
それ以外だとエクセル調べるしかないのでスレ違いだと思われ
0253nobodyさん
2005/03/29(火) 14:02:19ID:fSc5qMirすべて取り除きたいのですが、下のようにしても取れてないようです。
どこが間違えてるんでしょうか?
$hoo=$_POST['hoge'];
$hoo=str_replace(" ","",$hoo);
0254nobodyさん
2005/03/29(火) 14:56:39ID:???0255nobodyさん
2005/03/29(火) 17:06:13ID:???当方、PHP 4.3.9 を先日インストールしました。
<?php
$name = $_SERVER["PHP_SELF"];
echo $name;
?>
と書いても何も表示されません。
スーパーグローバル変数がPHP 4.1.0 から使用できることは知っているのですが、
それ以外にphp.iniの設定などがあるのでしょうか?
0256nobodyさん
2005/03/29(火) 17:22:55ID:???<?php
phpinfo();
?>
0258nobodyさん
2005/03/29(火) 18:42:20ID:3cB8cobm"a" => "10",
"b" => "20",
"c" => "30"
);
$pop = array(
"20",
"30"
);
という二つの配列があって、$arrayから、$popの値が同じデータを削除したいのですが
なんか上手い方法ないですか?
0259258
2005/03/29(火) 19:01:41ID:???foreach($array as $key => $val){
$flag = 0;
foreach($pop as $del){
if($val == $del){
$flag = 1;
}
}
if($flag != 1){
$newArray[$key] = $val;
}
}
です。
0260nobodyさん
2005/03/29(火) 19:10:51ID:???じゃだめ?
0261nobodyさん
2005/03/29(火) 19:23:44ID:???print array_search($value,$array);
}
てのもありかと。
0262261
2005/03/29(火) 19:25:18ID:???0264nobodyさん
2005/03/30(水) 02:30:53ID:???0265nobodyさん
2005/03/30(水) 02:48:37ID:???0267nobodyさん
2005/03/30(水) 03:58:20ID:VK+XSbsaやる必要あるの?
0268nobodyさん
2005/03/30(水) 04:16:45ID:???qmailの設定変更ができない状況であれば、代替手段を考えればよい。
制約条件が多くなるほど使える手段が減り、最終的に実現不可能ということになる。
0270nobodyさん
2005/03/30(水) 08:03:08ID:???qmailである必要はないが、携帯で画像アップする方法に、
メールを使う以外、なにかあるなら言ってみろ。
ワカランチンが余計なことほざくな。タコ。
0272nobodyさん
2005/03/30(水) 09:30:31ID:PFZcR5nDPHPに用意されてる?あったら教えて欲しい。
0273nobodyさん
2005/03/30(水) 09:41:09ID:P9xGS9Mverror_log()で日本語のログを書き出してるんだけど、ある時期から
日本語が文字化けするようになりました
前:[error] エラー
今;[error] \xa5\xa8\xa5\xe9\xa1\xbc
何がきっかけでこのようになり始めたのかは正直わからないんですが
対処する方法はありませんか?
PHPソースはEUCで、error_log()に渡す際にエンコードはしてません
0274nobodyさん
2005/03/30(水) 12:14:27ID:???qmailからのパイプにて、phpスクリプトで添付データを処理
(PHPである必然性は何処にも無いが…)
って、>>267の質問からは大きく逸脱するが(w
0275nobodyさん
2005/03/30(水) 14:22:47ID:LVdKz7n5includeとrequireの違いがわかりません。
お忙しいとは思いますが、なにとぞ、よろしくお願いします。
0277nobodyさん
2005/03/30(水) 15:06:42ID:zj/psBx6上手いやり方が分からないので
$rs=mysql_query("select * from hoge");
$cnt=0;
while($row=mysql_fetch_assoc($rs)){
$cnt++;
}
などとやってるのですが、もっと効率のいい方法は無いのでしょうか。
count($rs)とかcount($row)とかやってみたんですが
正しく帰ってきてないみたいです。
php4とMySQL4.0を使ってます。よろしくお願いします。
0281nobodyさん
2005/03/30(水) 15:55:53ID:???$_SERVERはwebサーバ依存だから表示されないんなら使えないんだろうよ
設定でどうのこうのは無かったと思う
0282nobodyさん
2005/03/30(水) 16:12:38ID:LjnlbFKQsendmailを使ってクライアントへ日本語テキスト+csv形式の添付ファイルをつけたものを送信したいのですが、
クライアントの環境がwindowsXP、IE、そしてメールソフトがノーツなのです。
ノーツ以外のメールソフトで受信すると正常なのですが、ノーツでは文字化けするといわれました。添付ファイルは普通に読めているようです。
本文のヘッダの関係なのかな、と思ったのですが、charsetはISO-2022-JPです。
途方に暮れてるんですが、どうしたらいいでしょうか。
板違いだったらごめんなさい&誘導してくださると助かります。
0283nobodyさん
2005/03/30(水) 16:31:04ID:LjnlbFKQごめんなさい自己解決。
本文のcharsetをUTF-8にしたら普通に見れたみたいです。
お騒がせしました。
0284nobodyさん
2005/03/30(水) 16:49:27ID:zj/psBx6なんか配列みたいのが帰ってきてるのかと勘違いしてました。
下のようにしたらできました。というかmysql_num_rowsを知らなかった・・・。
$rs=mysql_query("select * from hoge");
$cnt=mysql_num_rows($rs);
>>279
mysql_query(select count(*) from hoge)として
レコード数を直に受け取る方法はあるのでしょうか?
0286nobodyさん
2005/03/30(水) 17:15:38ID:???文字列を先頭から何バイト目まで表示、以降は任意の文字列に置き換えっていう関数があったと思うんですが、何でしたっけ?
どうもみつけられず。
0287nobodyさん
2005/03/30(水) 17:20:25ID:???でいいんじゃないの
0288nobodyさん
2005/03/30(水) 17:20:30ID:???0289286
2005/03/30(水) 17:31:10ID:???先頭からn文字まで表示して、任意の文字列を足す、と考えればいいんですよね、ありがとうございました!
0291nobodyさん
2005/03/30(水) 19:24:05ID:???特定のディレクトリから下層のディレクトリまで全部の可視ファイルを検索、そのファイルの作成日時か更新日時を取得して、現在の日時に近い順にソートしてhtmlにリンクで出力させるって可能ですか?
素直にsqlの方がいいのでしょうか?
うちのいつもタコ管理者(鯖ダウンさせる天才)に言ったらsqlで自分でやってと言われますた。
っつか、sql使った事ないので分かりません。phpのみでって出来ます?
0294nobodyさん
2005/03/30(水) 20:03:52ID:???今時のケータイのみ対応したい場合はそれでもいいね。
それ以前の携帯もターゲットに含む時はメール「しか」手段が無い。
>>291
そこに書いてある通りの事を管理者に言って、「SQLですれ」って返されたのなら、
「えええええええ(AA略)」って顔で反応すべきだったな。
PHPのマニュアルの「ディレクトリ関数」「ファイルシステム関数」の関数を幾つかと
再帰処理を使えば、PHPだけでも可能。
0296nobodyさん
2005/03/30(水) 20:10:31ID:???そっか...可能なのか...ちょっとマニュアル見て頑張りまつ。(´・ω・`)
...っつか簡単な掲示板しか作ったこと無い漏れにできるだろうか。
やはりうちの鯖管はダメポなんだな...大丈夫かうちの会社...
0297nobodyさん
2005/03/30(水) 20:38:24ID:???0298nobodyさん
2005/03/30(水) 20:41:18ID:???まぁ、望む事はPHPのみで実現可能だが、
巨大なサイト(対象ファイルが多数)の場合なら、
深夜帯などに定期的にDB化しておいて、表示の際にはSQL使ったほうが、
鯖負荷は低くて済むかも。あくまでもケースバイケース。
0299nobodyさん
2005/03/30(水) 21:28:38ID:???どうやってDBに入れるんだろ?
0300nobodyさん
2005/03/30(水) 21:29:51ID:4FafkLm/PHP拡張子ファイル、を閲覧するようにできるでしょうか?
0302nobodyさん
2005/03/30(水) 22:48:14ID:???ファイルパスと、filemtimeでも放り込んでおけば、
後は如何様にも・・・
ってDBとの接続の仕方とかから説明が必要?
0303nobodyさん
2005/03/31(木) 01:19:34ID:???あるいはXMLでなくても任意のテキストファイルを送信することはできますか。
通常、フォームを使うとデータは param1=value1¶m2=value2&.... という形で送信されます。
しかしこの形式だと、入れ子になったデータを表現するのが難しいです。
そこで、もしフォームデータをXML形式でサーバに送信できたら、入れ子になったデータが簡単に扱えるようになるんじゃないかと思ってます。
HTTPは任意のデータを送信できるので不可能ではないと思うのですが、HTMLとブラウザを使っているかぎりはどうしたらよいのかわかりません。
0306286
2005/03/31(木) 01:56:00ID:???$str = mb_strcut( $str, 0, 100 )."...";
こうしたんですが、テキストに日本語が混ざっている場合、考慮されずに2バイト中の1バイトの部分でぶった切られたりしますか??
日本語英数混在しているんですが、どうもそれが原因で後のhtmlに影響が出ているっぽいんです。
こういった場合、どうしたらいいものでしょうか??
0307nobodyさん
2005/03/31(木) 01:59:27ID:???textareaにガリガリとXMLを書けw
0309286
2005/03/31(木) 02:04:37ID:???htmlソースを見ると、文字じゃない文字になってます。
ブラウザ上では表示されません。
ココにコピペしようかと思いましたが出来ませんでした。
環境:
MacOSX safari 文字コードはUTF-8です。
0310nobodyさん
2005/03/31(木) 02:06:08ID:???FROM要素のenctype属性で指定できる仕様になってる。
実装は知らん。
PHPの話じゃないので続きはほかでやってくれ。
0311286
2005/03/31(木) 02:26:17ID:???そのあたりちゃんとやってまだダメだったらまたお願いします。
0312nobodyさん
2005/03/31(木) 04:05:22ID:Bkn1FNJUインデックスをちゃんとゼロから順に直すにはどうしたらいいでしょうか。
重複を削除してくれるのは便利なんですが、
インデックスが飛び飛びになるので具合が悪いです。
0315nobodyさん
2005/03/31(木) 06:15:20ID:???今の所、str_replaceなどで一種類ずつ地道に消してるのですが、
上手い方法があったら教えて下さい。
0316315
2005/03/31(木) 06:24:58ID:???消したい文字を配列に全部突っ込んで指定したらちゃんと取り除いてくれました。
0318nobodyさん
2005/03/31(木) 10:26:20ID:???レンサバ上のmysqlバックアップどうしてますか
myphpadminでダンプしてもアップの上限は2メガまでだし…
どうしたらいいものか
0319nobodyさん
2005/03/31(木) 10:50:51ID:???例えば、 <a> を残したいけど、属性として残したいのは href だけで、
他に( onclick とか target とか)ついててもばっさり削除、
とか言う場合はどうすればいいんですかね?
0320nobodyさん
2005/03/31(木) 11:27:00ID:LwnfmyDsmail関数で逐次送信するのと、リストをすべてbccで送るのとどちらが
サーバの(phpサーバ、メールサーバ、回線等)負荷は低いのでしょう?
また、bccで送る場合、何件づつ程度が適当なのでしょう?
0321nobodyさん
2005/03/31(木) 11:32:03ID:???普通にmysqldumpだけど
アップの上限って何のこと
何か制限があるのならdumpファイルから必要な部分だけ切り取ってアップすればいいんじゃないの
0323nobodyさん
2005/03/31(木) 11:42:18ID:???多分、PHPでアップロードできるファイルサイズ制限のことだと思われ。
0324319
2005/03/31(木) 11:47:07ID:???つまり便利な関数は無いってことで FA?
0326nobodyさん
2005/03/31(木) 13:56:20ID:???例
[url]http://2ch.net[/url] -> <a href="http://2ch.net">http://2ch.net</a>
ところが、
[search]ほげほげ[/search] -> <a href="./search.php?q=(エンコードされたほげほげ)">ほげほげ</a>
というのをやろうとして、
$text = preg_replace("/\[search\](.+?)\[\/search\]/i", "<a href=\"./search.php?q=".urlencode(\\1)."\">\\1</a>", $text);
とやってもうまく行きません。
urlencodeの部分を、urlencode("\\1")とかurlencode(${1})とか試してみたのですが、ダメでした。
preg_replaceの置換後のテキストの部分で関数は使えないのでしょうか?
0328nobodyさん
2005/03/31(木) 14:20:28ID:???PHPマニュアルのpreg_replace_callbackの頁を見て作り直したらうまく行きました。
すばやい返答ありがとうございました。
0329nobodyさん
2005/03/31(木) 16:20:58ID:???どういう風にしたら良いですか?
0330nobodyさん
2005/03/31(木) 16:24:20ID:???<TITLE>登録</TITLE>
</HEAD>
<BODY>
<BR><FORM action="mailto:***@***.co.jp" METHOD="post" enctype="text/plain">
氏名:<INPUT TYPE=TEXT NAME="name"><BR>
メールアドレス:<INPUT TYPE=TEXT NAME="number"> <BR>
ホームページURL:<INPUT TYPE=TEXT NAME="number"> <BR>
在住市名<BR>
<SELECT NAME="市名">
<OPTION VALUE="***市">***市
<OPTION VALUE="**市">**市
<OPTION VALUE="**市">**市
<OPTION VALUE="その他">その他</SELECT><BR>
ご意見・ご感想をお寄せ下さい。<BR>
<TEXTAREA NAME="感想 rows=" COLS=10 5"></TEXTAREA><BR>
<BR>
当サイトを知ったきっかけは?<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="検索">検索サイト<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="友人・知人">友人・知人<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="雑誌">雑誌<BR>
<INPUT TYPE=RADIO NAME="きっかけ" VALUE="広告・チラシ">広告・チラシ<BR>
<INPUT TYPE=SUBMIT VALUE="送信"><INPUT TYPE=RESET VALUE="やり直し"><BR>
</FORM></BODY>
</HTML>
一応タグです。
0331nobodyさん
2005/03/31(木) 16:27:50ID:???何これ、ふざけてんの?
0333nobodyさん
2005/03/31(木) 16:33:56ID:???携帯電話でform actionにmailtoは使えないよ。
フリーのメールフォームCGIなり探してくるべし。
0337333
2005/03/31(木) 16:58:43ID:???ちったぁ、自分で調べてみなよ。っんとにもう。
ttp://www.google.co.jp/search?sourceid=navclient-menuext&ie=UTF-8&q=%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%83%A1%E3%83%BC%E3%83%AB
0338nobodyさん
2005/03/31(木) 16:59:45ID:???0340ああ
2005/03/31(木) 19:10:01ID:tGTdWeYShttp://blogs.yahoo.co.jp/livinonaprayerjp/MYBLOG/yblog.html
0342nobodyさん
2005/03/31(木) 19:42:05ID:???価格など、1000の位でカンマ入れたいんですけど
関数ってありますか。
0345nobodyさん
2005/03/31(木) 20:41:57ID:???0346nobodyさん
2005/03/31(木) 20:53:13ID:???0347nobodyさん
2005/03/31(木) 21:24:01ID:???サバはLinux、apacheです。
アップローダーを作ってみたんですが、
アップロードして保存先ディレクトリにコピーしたら
そのファイルの所有者がapacheの動作権限者になってしまうのですが、
所有者権限をユーザー(user_dirの)にするにはどうすればいいのでしょうか。
0348nobodyさん
2005/03/31(木) 21:25:55ID:JFqGEsJm見つからないCGIがあるんだが…
0349nobodyさん
2005/03/31(木) 21:28:52ID:???【CGI】こんなCGI探してますver.16
http://pc8.2ch.net/test/read.cgi/hp/1106947416/
0350347
2005/03/31(木) 21:30:29ID:???0351nobodyさん
2005/03/31(木) 21:55:47ID:???モジュール(Apacheの一部)として動作してるからね
CGI(SuEXEC)で動かせば所有者権限で実行、ファイル作成できるけどだめかね
0352347
2005/03/31(木) 22:06:35ID:???ありがとう。
chmodで所有者権限だけ変更しとけば後々のことに問題ないですよね?
あまり深く考えずにchmodだけしときます。
chmodの引数paelと逆なんですね。
あとperlだとcgiでうがかしてる関係で所有者がusr_dirの人と同じになるんですかね?>>351
0353nobodyさん
2005/03/31(木) 23:13:50ID:???0354nobodyさん
2005/03/31(木) 23:36:33ID:???0356nobodyさん
2005/04/01(金) 00:01:31ID:???PHPのコーディング規約を見ていたらインデントはスペース4つが推奨で
タブは使わないほうがよいとのことなのですが、皆さんはどうされてますか?
個人的にスペース4つなんてどうかと思うのですが。
0358nobodyさん
皇紀2665/04/01(金) 00:43:33ID:???htmlを書く時はspace(2)。
インデントに思い入れのある人達が集まっているスレ
ttp://pc5.2ch.net/test/read.cgi/prog/1063471069/
0359nobodyさん
皇紀2665/04/01(金) 01:12:11ID:???で表示されるページの右上の哺乳類は何ですか?
0361nobodyさん
皇紀2665/04/01(金) 02:38:48ID:???そのスレ今見たけどタブ派スペース派真っ二つだね。
今までインデントはタブというのが常識だと勝手に思ってたけど
世の中は違ったんだな。
0363nobodyさん
皇紀2665/04/01(金) 03:24:19ID:???おいらのインストールした鯖は
http://www3.nhk.or.jp/anime/nadia/
を仕込んでありまつ。
(無許可版権モノ)
0364nobodyさん
皇紀2665/04/01(金) 07:11:42ID:???一行ずつ読むんじゃなくて
1つの大きな array とかにできる関数とかないのかな?
0366nobodyさん
皇紀2665/04/01(金) 08:05:24ID:???0367364
皇紀2665/04/01(金) 08:06:18ID:???え?こんなのを作った俺は馬鹿ななのか?
マニュアル一通り読んだつもりなんだが…
function DBresource2array( $rsc_id ){
$result = array();
while ($line = mysql_fetch_row($rsc_id)) {
array_push($result, $line[0]);
}
return $result;
}
0368nobodyさん
皇紀2665/04/01(金) 08:13:31ID:???悪い、文意を取り違えていた。フェッチしないで一気に
多次元配列かなんかに取りたいってことね。
それは、mysql関数には無い(と思う)
0369367
皇紀2665/04/01(金) 08:17:47ID:???なるほど。
っていうかやりたい事は検索なので、
MySQL に普通に query を投げるというコトになりました。orz
0371nobodyさん
皇紀2665/04/01(金) 09:00:14ID:???どうやってチェックしてますか?
今僕がやってるのはみんな
$array = array();
$array = somefunction();
if (count($array)>0 ){
//処理。
}
ってやってるんですけど。。
0372nobodyさん
皇紀2665/04/01(金) 09:01:29ID:???0373nobodyさん
皇紀2665/04/01(金) 10:23:04ID:???というなら理解できるけど
if文一個のワンステップでできてることを、それ以上にどう簡略化したいというのか。
0377nobodyさん
皇紀2665/04/01(金) 10:43:05ID:???//処理。
}
で、少しスマートな感じ
0378nobodyさん
皇紀2665/04/01(金) 10:49:59ID:???if (is_array($array) and count($array)) {
とする必要あり?
0380nobodyさん
皇紀2665/04/01(金) 11:18:18ID:???$array = array();
と宣言してるんだから
is_array($array)はいらないだろ
>>377が>>379より意味がわかりやすくていいんじゃないの
0381nobodyさん
皇紀2665/04/01(金) 11:31:55ID:???>これがスマートなやり方かどうかわからないから聞いてみたんですが…
同じことやん。
0382nobodyさん
皇紀2665/04/01(金) 11:36:25ID:AcRtwYxMなどのデータを、一括で
$hogeに入れ直す関数ってありましたよね…?
教えてください。
0384nobodyさん
皇紀2665/04/01(金) 11:49:16ID:AcRtwYxMこれです!
ありがとう!
0385nobodyさん
皇紀2665/04/01(金) 12:42:37ID:???.htaccessで制限かけるのですか?
エロイ人教えてください
0387nobodyさん
皇紀2665/04/01(金) 16:50:32ID:???画像とか、太字とかが反映されてるのはどういった技術を使ってるんでしょうか?
適切なスレッドが分からなかったのでとりあえずここで質問しました。
0388nobodyさん
皇紀2665/04/01(金) 17:03:35ID:???CGIを多数設置した場合、それぞれ同じディレクトリにjcode.plがあって
容量を圧迫するので、一つ上のディレクトリにjcode.plを置き
各CGIから読み込ませても平気ですか?
それともやはり、一つ一つ同じディレクトリにjcode.plを置いた方がいいのでしょうか?
0389388
皇紀2665/04/01(金) 17:05:34ID:???他のスレで聞いてきます。
0390写
皇紀2665/04/01(金) 17:53:47ID:wSz0R7paどなたか期限切れてないの知りませんか?
0392nobodyさん
皇紀2665/04/01(金) 20:26:04ID:???cvsからロゴを引っ張ってくるとこんな感じになってる。
リビジョン ロゴ PHPver.(ブランチ)
1.5 おっさん
1.6 茶犬
1.6.2.1 黒犬 4.3
1.7 茶犬
1.8 茶犬
1.9 うさぎ
1.10 .うさぎ
1.11 .うさぎ
1.12 .うさぎ 5.0
1.12.2.1 .黒犬 5.0
1.13 .黒犬
やった手順は、
ttp://cvs.php.net/php-src/main/logos.h から各リビジョンのファイルをDLしてきて、
PHPの配列風に手作業で加工 ($php_egg_log = array( 〜 )の形式)。
gif画像の1バイトごとの値を10進数で書いてあるので、
for($i=0;$i<count($php_egg_log);$i++){ $data .= pack("c",$php_egg_logo[$i]); }
てな感じにして、$data をバイナリで保存。
0393nobodyさん
2005/04/03(日) 01:40:23ID:???[0] => Perl
[1] => C
[2] => PHP
)
という配列を、
$array = (
[0] => PHP
[1] => C
[2] => Perl
)
と、"PHP" を一番上にした配列に組みなおしたいのですが、どうすればいいんでしょうか。
0394nobodyさん
2005/04/03(日) 02:05:44ID:???「PHPを一番上にした配列」というのは他にも幾つか考えられるけど、
それらのうち PHP C Perl の順になるのは何か条件があるの?
PHP Perl C の順になる場合もあるよね。
要素数n個の配列だと (n-1)! 個のパターンがあるような。
0395nobodyさん
2005/04/03(日) 03:38:42ID:???while ($line = readline($text) ) {
ほげほげ;
}
とかしたい。
0396nobodyさん
2005/04/03(日) 04:30:24ID:???標準入出力
GPLのreadlineをPHPライセンスのPHPとリンクするのはけしからん、
という話であればBSDライセンスのlibeditというものがある。
0397393
2005/04/03(日) 09:12:02ID:???配列からPHP を一度削除して、配列の一番上に入れたいだけで、特に以下(Perl,C)の配列の位置は問いません。
0399nobodyさん
2005/04/03(日) 09:43:18ID:IY142z6m【一攫】解けたら賞金300万円のクイズ【千金】
http://game9.2ch.net/test/read.cgi/bgame/1107733523/
0400nobodyさん
2005/04/03(日) 11:54:58ID:EIV0TS0dものを作るにはどうすれば良いんですか?
一時期話題になった「タキビ」の動けるのを設置したいんですが…
0401nobodyさん
2005/04/03(日) 12:12:46ID:K0aP+PxK移動の意味わからんがなー
IRCでも使えば良いんでない?
移動の意味わからんけど
0402nobodyさん
2005/04/03(日) 21:18:09ID:???クライアント側の動作がhtmlだけでは対処できない場合はflash等のActiveXやアプリケーションを使う事になる。
同様に鯖側の動作もhttpだけで対処できない場合はsocketを張ったままでデータのやり取りをする事もある。
どういう仕組みを使えば自分のやりたい事を実現できるかをまず調べてみれ。
0403nobodyさん
2005/04/03(日) 22:49:40ID:MM89HE2Pどうにも動かないので、助けてください。
フォームで、セレクトフィールドこんな感じ↓で作って
<select name="kazari">
<option values="0"></option>
<option values="1">ピアス</option>
<option values="2">イヤリング</option>
<option values="3">指輪</option>
<option values="4">へそ用</option>
<option values="5">鼻用</option>
<option values="6">その他</option>
</select>
0404403です続きです
2005/04/03(日) 22:50:06ID:MM89HE2PBのPHPファイルないで、受け取った$_POST['kazari']
の値によって、一覧表示するMySQLのテーブルを変更させたいのです。
if($_POST['kazari'] == '1'){
$stt = "SELECT * FROM syouhin,kakaku WHERE syouhin.id = kakaku.id
AND syouhin.no =".$_POST['kazari']."ORDER BY syouhin.name";
}elseif(略
$res = mysql_query($stt, $conn);
while($row = mysql_fetch_arry($res)){
print(略)
syouhin.no = の後ろに、1とか2などの数字を入れて試して
見た時は、ちゃんと選択されるのですが、変数を入れようとすると
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
というエラーが出るのです。
どうかご指導よろしくお願いいたします
0406403です
2005/04/03(日) 23:17:24ID:MM89HE2Pすみません。質問がまわれくどかったですよね。
ええと、SELECT文のなかに、変数を入れたいのですが、
>>404の方法しかわからなくて、回避策を教えて
頂きたいのです。
0407nobodyさん
2005/04/03(日) 23:18:52ID:???基本的なことだが、SELECTタグが間違ってるよ
http://www.htmq.com/html/select.shtml
てか、
print_r($_POST);
してpostデータの内容を見てごらん。
0408nobodyさん
2005/04/03(日) 23:23:21ID:???mysql_queryの前に、print $stt; exit; を入れて、
数字を直接入れた場合と、変数に設定した場合との違いを調べる。
つーか違いが必ずある筈だから、その原因を print 変数名; てな感じでどんどん遡って調べていく。
0409403です
2005/04/04(月) 00:12:07ID:r/hNOQjg>>408さま
むっちゃ阿呆な事をしていたのだと、やっとわかりました。
ご指導感謝いたします。
ありがとうございます。
0410403です
2005/04/04(月) 00:44:20ID:r/hNOQjgPHPのマニュアル本とサイトでPOSTで受け取る内容の
説明の所を探してみたのですが、select内のvalues="数字"を
受け取る方法が見つけられなくて・・・。
$_POST['kazari']だとselect name="kazari"のkazariが
返されているので、SQL文がエラーをはいているのだと
言うのは理解できたのですが、valuesの中の値を拾いたい
場合は、どのように記述すればよいのでしょうか・・?
0411nobodyさん
2005/04/04(月) 00:55:44ID:???option のアトリビュートは、value's' じゃ無く、value だよ。
適当なHTMLヴァリデータでも通せば、教えてくれるんじゃ無いの。
0412403です
2005/04/04(月) 02:48:51ID:r/hNOQjgすみません。
ありがとうございました。
やっと、SQLのselect内に、関数を入れて欲しい情報を
一覧表示させる事ができました。
本当に、ありがとうございました。
0413nobodyさん
2005/04/04(月) 07:07:25ID:???ttp://smarty.php.net/sampleapp/sampleapp_p2.php
インスタンス化する所で、
$guestbook =& new Guestbook;
ってしてるじゃん。=& ってどういう意味ですか??
0414nobodyさん
2005/04/04(月) 07:20:47ID:???0415nobodyさん
2005/04/04(月) 07:27:49ID:???0416nobodyさん
2005/04/04(月) 08:54:15ID:???どこも無惨に放置プレイばっかじゃん。
0417nobodyさん
2005/04/04(月) 08:56:03ID:???リクエストされた値をそのままSQLに渡すのイクナイ
0419nobodyさん
2005/04/04(月) 14:32:38ID:???下記のようにすると、実現されて入るのですが、スマートじゃないような気がするんです。
$file = "http://外部サーバURL/hoge.php?a=1&b=2";
$fp = fopen( $file ,"r");
$rere = fread( $fp , 100000 );
fclose( $fp );
hoge.phpはgetで受け取った値を元に実行されます。
ログ書き込み等なので、表示はされず、呼び出し元とは完全に独立して動いています。
が、fopen等は本来そういった機能では無いような気がするので、もっといいやり方は無いでしょうか?
0420nobodyさん
2005/04/04(月) 15:04:52ID:???fopenはそういう使い方(httpやftp等のwrapper)も考慮して作られているので
気にしなくていいんじゃないかな。
真面目にやりたい(or 直接ソケットを触りたい)場合には、fsockopenてのも用意されてるけど。
0421nobodyさん
2005/04/04(月) 15:10:31ID:???他人が作ったもんを使いまわすためのスマートじゃないプログラムなんだからそれでええやん。
なんか困ってんの?
0422nobodyさん
2005/04/04(月) 18:35:49ID:???0423nobodyさん
2005/04/04(月) 18:42:40ID:???$dame_ip = array('127.0.0.1','localhost');
if(in_array($_SERVER['REMOTE_ADDR'],$dame_ip)){
echo "<p>アクセスが許可されていません</p>\n";
exit;
}
0424nobodyさん
2005/04/04(月) 19:00:30ID:r/hNOQjgすみません、教えて下さい。
3つの入力された数字を3で割って、小数点以下の
割り切れない数字を、四捨五入したいのです。
色々調べて試してみたのは
$hoge = (($suuti1)+($suuti2)+($suuti3))/3;
$hoge1 = round($hoge,1);
なのですが、一見意図した小数点第一までの表示で
第二の数字を四捨五入している感じなのですが、
割り切れた場合にも、繰り上がってしまうのです。
($hogeが10の場合、print '$hoge1';で11になってしまう)
なにか良い回避策は無いでしょうか・。
どうかご指導よろしくお願いいたします。
0425403=412です
2005/04/04(月) 19:09:58ID:???ご心配頂ありがとうございます。
フォームフィールドからPOSTで受け取って来た変数が
textからの時は
$auth = mysql_escape_string($_POST["auth"]);
$auth = str_replace("%","\%",$auth);
としてから、使うようにしております。
これで、大丈夫なのですよね?
もし大いなる勘違いでしたら、ご指導いただけると
幸いです。 よろしくお願いいたします。
0426nobodyさん
2005/04/04(月) 19:25:41ID:???ttp://jp.php.net/manual/ja/function.get-defined-constants.php
あと、
ttp://jp.php.net/manual/ja/function.get-defined-functions.php
で一覧を作って眺めるといいよ。
0428424
2005/04/04(月) 20:00:45ID:r/hNOQjg頂いたご指導から、考えてみたのですけれど・・・。
$suuti7 = '3';
$suuti8 = '3';
$suuti9 = '3';
$hoge5 = (($suuti7)+($suuti8)+($suuti9))/3;
$hoge7 = (($suuti7)+($suuti8)+($suuti9))%3;
if($hoge7 ==2){
$hoge6 = round($hoge5,1);
}else{
$hoge6 = $hoge5;
}
print '<br>割り切れない値IFの練習です<br>';
print ($hoge6);
上記で、なんとなく出来たような感じなのですが、
あっていますでしょうか・・・?
0429nobodyさん
2005/04/04(月) 20:30:30ID:yZDujDw2そのままお客に渡さなければいけないですよね?
ソースを盗まれたくないんだけど、いい方法ありますか?
0431nobodyさん
2005/04/04(月) 22:08:21ID:???[url]アドレス[/url]
→ <a href="アドレス">アドレス</a>
[url=アドレス]hogehoge[/url]
→ <a href="アドレス">hogehoge</a>
と変換する方法がわかりません。
どのように組めば実現できるでしょうか?
0432nobodyさん
2005/04/04(月) 22:27:51ID:???0434419
2005/04/04(月) 23:39:28ID:???なるほど、ありがとうございます。
>>421
いや、他人というわけじゃないんですが…。
複数のサーバのアクセスログを一つのサーバに累積させたく、作っている所です。
0435nobodyさん
2005/04/05(火) 00:04:06ID:???どうしたらいいですか。
0436nobodyさん
2005/04/05(火) 00:36:32ID:???0437nobodyさん
2005/04/05(火) 02:00:55ID:???ってのは常識だろ。
0438nobodyさん
2005/04/05(火) 02:12:32ID:???継承を辿って調べないと恐くて使えないような設計には問題があるな
リファクタリングすれ
0439nobodyさん
2005/04/05(火) 02:34:52ID:???なんとなく、今風。
なんとなく、かっこいい気がする。
0440nobodyさん
2005/04/05(火) 10:49:23ID:???0442nobodyさん
2005/04/05(火) 19:57:36ID:???$b = &$foobar->baz;
とかやんないほうがいい?
0443nobodyさん
2005/04/05(火) 20:25:16ID:???メソバを候補で上げてくれるから。
0444nobodyさん
2005/04/05(火) 21:03:20ID:???0445nobodyさん
2005/04/06(水) 18:00:09ID:???選択名<BR>
<select name="数字">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
1を選択した時に1が表示出来るようにしたいのですが、***のスクリプトが
わかりません。どなたか教えて下さい。
0447419
2005/04/06(水) 21:20:38ID:???検索エンジンからのリファラ検索文字列がどうも文字化けしてしまいます。
$referer = $_SERVER['HTTP_REFERER'];
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");
で、その後別サーバへ結果を送っています。
yahoo経由はOKなんですが、googleがダメみたいです。
別サーバで結果を表示させた時に、ブラウザの文字コードをUTF-8にすると、検索文字列がちゃんと表示される
(その他の部分は当然、逆に文字化けしますが)ので、mb_convert_encodingが、UTF-8をEUC-JPに変換してくれていないのかなぁ、
と不思議に思っています。
どうしたら、文字化けさせないように出来るでしょうか?
↓phpinfo Configure Command
'./configure' '--enable-mbstring' '--enable-mbstr-enc-trans' '--enable-mbregrex'
0448nobodyさん
2005/04/06(水) 22:56:12ID:???0449nobodyさん
2005/04/07(木) 00:49:50ID:???保存しておきたいんだかどうするんだ?
0450nobodyさん
2005/04/07(木) 04:55:28ID:???http://jp2.php.net/session
セッションの寿命を1日以上に延ばす。
あと保存場所をデフォの/tmpにしてる場合、
システムで1日程度で掃除してないかも注意。
0451nobodyさん
2005/04/07(木) 07:21:24ID:???urlencodeされた文字列は自動で文字コード判別できない(半角英数記号のみだから)
urldecodeしてからmb_convertでどうでしょう
0453nobodyさん
2005/04/07(木) 15:07:37ID:2aRnQEib方法は無いでしょうか?たとえば以下の場合は、
<HTML>
<HEAD>
<TITLE>素晴らしきかな我がホムペ</TITLE>
</HEAD>
<? php
(TITEL名を文字列として使いたい)
?>
</HTML>
PHPのプログラムの中で「素晴らしきかな我がホムペ」という文字列を使いたいです。
0454nobodyさん
2005/04/07(木) 15:17:20ID:???<?php $title = "素晴らしきかな我がホムペ"; ?>
<HTML>
<HEAD>
<TITLE><?php echo $title; ?></TITLE>
</HEAD>
<?php
すきにしなはれ
?>
</HTML>
0455447
2005/04/07(木) 15:48:22ID:???//送信php
$referer = $_SERVER['HTTP_REFERER'];
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");
$referer = urlencode($referer);
//↑ここまでは今までやっていた部分
…
データ送信
…
//受信php
$referer = urldecode($referer);
$referer = mb_convert_encoding($referer, "EUC-JP", "auto");//←これを足した
これで見事に解決しました。ありがとうございます!
送信phpのmb_convertはいらないのかな、とも思いましたが、まあいいかな、と。
0456nobodyさん
2005/04/07(木) 18:28:28ID:???<?php $title = "素晴らしきかな我がホムペ"; ?>
<HTML>
<HEAD>
<TITLE><?php echo $title; ?></TITLE>
</HEAD>
<?php
どうもでやす
?>
</HTML>
0457nobodyさん
2005/04/07(木) 18:34:30ID:jm/6lRT+なのですが、業者から、ソネットはCGiが使えないから、サーバーを業者指定の
物(ファーストサーバー)に変えてほしいという申し出がありました。
調べたところ、ソネットでcgiが使えないという事はなく、業者が自分の
使えるcgiがソネットで使えるか未確認なので変えてほしいという事みたいです。
もし、使えなかった場合は、外注になると言っていまあす。
簡単なアンケート程度の物で、そんな事あるんでしょうか?
私には、サーバーを変えるより、業者を変えた方がいい様に思えるのですが、
ソネットは使えないサーバーですか?
0458nobodyさん
2005/04/07(木) 18:50:06ID:???「業者を変える」に一票
ってか、ソネットビジネスホスティングって、PHP使えんの?
>CGI環境:Perl 5.6.0 / Python 1.5
って書いてあるな。
その業者、perlの実績が無かったりして。
そして、あなたはスレ違い
0459457
2005/04/07(木) 21:11:57ID:jm/6lRT+書き込んでしまいました。CGIのスレで質問するべきでした。
ごめんなさい。
0460nobodyさん
2005/04/08(金) 11:16:53ID:???0461nobodyさん
2005/04/08(金) 11:32:52ID:???の関数化するとか
0462nobodyさん
2005/04/08(金) 11:38:17ID:???こういう記事サイトの最後の方にある
■ この記事についてのご感想 【必須】
役に立った 一部だが役に立った 役に立たなかった
■ コメント
送信
のようなご意見ボックスを自分のサイトにもはっつけてみたい。
PHPでこの機能を実現の仕方を解説しているサイトとかって無い?
余談だけどこういう機能って格好いいよね。
匿名だから送信する方も気兼ねなく好きな言葉送れるし。
0463nobodyさん
2005/04/08(金) 11:42:31ID:???<form action=htto://www.test.com/test.php method="post">
選択名<BR>
<select name="num">
<option value="1">1
<option value="2">2
<option value="3">3
</select><BR>
<input type="submit" value="OK">
</form>
test.php
<?php
if ( $_POST["num"] == "1" ) {
header("LOCATION:http://www.test.com/1.html");
}elseif ( $_POST["num"] == "2" ) {
header("LOCATION:http://www.test.com/2.html");
}elseif ( $_POST["num"] == "3" ) {
header("LOCATION:http://www.testcom/3.html");
}else {
header("LOCATION: form.html");
}
?>
0466nobodyさん
2005/04/08(金) 12:12:31ID:???どういう動きを意図していたのに、どういう挙動をした。というのを書いてくれた方がレスする方も楽なんだけどね。
action部分の httoがおかしい。特に理由がなければ" "で括っておくことが望ましい。
header("Location: http:〜"); Location:の後に空白が必要。
0471nobodyさん
2005/04/08(金) 14:12:57ID:???データーは入らないんでしたっけ?
0472nobodyさん
2005/04/08(金) 14:24:13ID:???GETの時は環境変数QUERY_STRINGに入り、POSTの時には標準入力STDINに入ります。
でも、phpを使う時はそんなことを意識しなくても $_GET,$_POST etc.を使えば良いのでは?
0473nobodyさん
2005/04/08(金) 16:29:23ID:???ありがとうございます。
ディレクトリやファイルをパスに含めてアクセスさせるので不正に変なファイルを
アクセスさせないように複数の変数を一度にチェックしたいと想いました。
$_SERVER['QUERY_STRING']はGETだけなのでリクエストをチェックした方が
良いみたいですね。
0474460
2005/04/08(金) 17:55:07ID:???返信ありがとうございます。
> $var = ($var) ? $var : 1;
↑の手法も良く使うのですが、やはりif文しかないのでしょうかね。
毎回のif文は冗長なので関数にしてみたりしました。
0475nobodyさん
2005/04/08(金) 18:18:47ID:???0477nobodyさん
2005/04/08(金) 18:34:09ID:???<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
が、必ず一番上にきますが、差し支えないでしょうか?
0479nobodyさん
2005/04/09(土) 01:46:33ID:???ttp://www.supra.cx/joyful2chMe/
この掲示板を設置しようとしているのですが、設置はできてもスレ立て・投稿をすると
本文が文字化けしてしまいます。config.cgiが原因らしいことはわかったのですが
それ以上のことがわかりません。余計なところはいじっていないつもりなのですが…
どなたか詳しい方、ご覧になってどのあたりが原因かご教授いただけないでしょうか。
元のconfig.cgi ttp://aploda.org/dat4/upload41470.txt
カスタマイズした(文字化けを起こす)config.cgi http://aploda.org/dat1/upload41471.txt
もしスレ違い・板違いでしたらご迷惑おかけしますが誘導お願いします。
0480nobodyさん
2005/04/09(土) 01:47:49ID:???0481nobodyさん
2005/04/09(土) 02:20:14ID:P2wkPAu1を参考にテンプレートを使ってHPを作っています。
そこでお聞きしたいのが、テンプレートにPHP更新履歴スクリプト(レッツPHP)を
挿入したいので、テンプレートファイル(html)をphpに変え、スクリプトをincludeして
みたのですが、できてないようで更新履歴は表示されませんでした。
phpファイルだからincludeできるとばかり思ってたのですが・・・
無理なのでしょうか?それとも他に挿入できる方法はありますか?
ご教授下さい。宜しくお願いします。
0483nobodyさん
2005/04/11(月) 00:12:38ID:n2r9fgnb以下の文を書いたのですがうまくいきません。
$text = preg_replace("^(1$)", "←合格", $text);
鈴木1
佐藤
田中
山本1
↓スクリプト実行
鈴木
佐藤←合格
田中←合格
山本
このような結果を出すためにはどのように書き換えたらよいでしょうか?
0484nobodyさん
2005/04/11(月) 00:51:27ID:6yyE9tWD0485nobodyさん
2005/04/11(月) 00:51:50ID:6yyE9tWD0486nobodyさん
2005/04/11(月) 01:29:31ID:7J6f5Hz+0490nobodyさん
2005/04/11(月) 10:36:59ID:???人を貶す前に日本語勉強してこい。
それだとrootkitが欲しい厨房と読める。
PEARとか作ってる人は大抵、定義済み定数「PHP_OS」を使う。
0491nobodyさん
2005/04/11(月) 12:06:12ID:???Locationでエラーファイルに飛ばすにはどのようにしたら良いですか?
ifやorを試してみましたができませんでした。
0492nobodyさん
2005/04/11(月) 12:28:15ID:???0494nobodyさん
2005/04/11(月) 13:24:21ID:???エラーハンドラ(マニュアルのエラー処理およびログ記録関数あたり)を自分でカキカキすればできるような気がするけど、
そんなことをするより、includeやrequireする前に file_exist()を使ってファイルの存在チェックをすればいいような・・
0495nobodyさん
2005/04/11(月) 18:00:37ID:???漏れは1ヶ月掛かってもできません|д゚)...
しかもプログラムは初めてです。
0496nobodyさん
2005/04/11(月) 18:13:51ID:???掲示板ってのは、最初みんな作ろうとするんだが、
思いの他、色々な知識やテクニックが必要なのさね。
(だからこそ、きちんとした掲示板が作れれば、それなりのスキルがついたともいえる)
なので、ただ書かれた物を羅列表示するだけなら、PHPに触れてから1か月ぐらいでも作れたが
(きちんとした)掲示板を作れるようになるまで、オイラは1年以上かかったな。
0497nobodyさん
2005/04/11(月) 18:19:57ID:???全くプログラミング経験が無い場合は小さなものを作るだけでも3ヶ月〜1年はかかりそうな気がするけどな。
まあ、他人のものは俺のもって言うんなら1週間でも可能だとは思う。
0498nobodyさん
2005/04/11(月) 18:35:09ID:???そうですか...
早く覚えたいのはやまやまだけど、所謂Linuxタコなんで(笑)いろいろ調べて頑張ります。
人真似でも人によってコードの書き方や処理が違うので、あんま勉強になりません。
それ以前に、「何でこういう処理するのか」とか「なぜこんな風なロジックなのか」で迷います。
一年か...|彡サッ
0499軟式PHP
2005/04/11(月) 18:43:31ID:???とりあえず最初は深く考えずに作る楽しさを覚えた方がいいと思う。
0500nobodyさん
2005/04/11(月) 19:20:15ID:???<a href="index.html#name">go name</a>
で<a name="name"></a>したポイントへいけるけど、
index.php#nameだといけない。
これはPHPじゃできないのですか?
0501nobodyさん
2005/04/11(月) 19:30:24ID:???.._ .......、._ _ /:/l! またまたご冗談を
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
0502500
2005/04/11(月) 19:37:31ID:???失礼しました。
0503447
2005/04/11(月) 19:56:13ID:???491じゃないけど、ファイルが存在してパス指定も合ってればエラーは起きないのかな。
エラーになった事が無いから、ちょっと疑問にオモタ
対象がローカルだとしてね。
0504nobodyさん
2005/04/11(月) 22:03:04ID:OM1k7qLvCGIとどうちがうんだもらぁー
詳しく教えれ
0506nobodyさん
2005/04/12(火) 00:16:57ID:???0507nobodyさん
2005/04/12(火) 01:04:55ID:???日本に置いてあるサーバーでやると、0 でアメリカに置いてあるサーバーだと1がかえってくる。。
0508nobodyさん
2005/04/12(火) 04:49:43ID:UCe7BGgZD:\PHPにphp入ってるんでphp.iniもそこにおいて読み込ませたい
0510nobodyさん
2005/04/12(火) 06:34:56ID:???http://192.168.11.2/
http://192.168.11.2/~ss.jpg
http://OEMCOMPUTER/
http://OEMCOMPUTER/~ss.jpg
0511nobodyさん
2005/04/12(火) 09:48:50ID:???<FORM ACTION="http://www.example.com/example.php.htm" METHOD=POST>
氏名:<INPUT TYPE=TEXT NAME="name"><BR>
メールアドレス:<INPUT TYPE=TEXT NAME="email" ISTYLE=3> <BR>
<BR>
選択<BR>
<SELECT NAME="test">
<OPTION VALUE="a">A
<OPTION VALUE="b">B
<OPTION VALUE="c">C
</SELECT><BR>
<BR>
テスト<BR>
<TEXTAREA NAME="impression" rows=" COLS=10 5"></TEXTAREA><BR>
<BR>
テスト<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="a">A<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="b>B<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="c">C<BR>
<INPUT TYPE=RADIO NAME="test1" VALUE="d">D<BR>
<BR>
<INPUT TYPE=SUBMIT NAME="submit" VALUE="送信" id="submit"> <INPUT TYPE=RESET VALUE="やり直し"><BR>
<BR>
<BR>
</FORM>
内容を一度確認して送信するようにするには、どうすればよろしいですか?
0512nobodyさん
2005/04/12(火) 10:13:11ID:???HTMLとしておかしい場所が数箇所あるので、直しておいたほうがいいかと。
確認をしたい時には、確認用のスクリプト(or ロジック)を書く必要があります。
0513nobodyさん
2005/04/12(火) 12:31:16ID:???0515nobodyさん
2005/04/12(火) 12:55:40ID:???まぁ今回は見当外れもいいところだが。
オイラはcaps lockを押すのが面倒なので普段は小文字。
DreamWeaverも使うけど小文字で吐くように設定してあるなぁ。
>>507
鯖のライブラリを使って時間を取得して、そのライブラリ内で定義されているdst(夏時間)を使うから、
鯖の設定や環境に依存するよ。
0516nobodyさん
2005/04/12(火) 13:42:35ID:???phpはデータベースの連携にすぐれてると聞きました。
phpもデータベースもよく知らないのですが、
会員登録系にある、個人情報,指定したLoginID,LoginPassなどは
データベースに格納されて、認証時に引き出してくるものだと思うのですが
php+DBで、そのようなことは可能でしょうか?
会員登録した人だけが書き込みできるようなことをしたいので、
ログインシステムみたいなものを作ってみたいと思っています。
知識はhtmlぐらいしかないのですか、
超初心者〜中級者と、幅広く参考になるページも教えていただけると助かります。
0517nobodyさん
2005/04/12(火) 13:43:57ID:???ソースとして記述する場合は小文字「html」。
マークアップランゲージの固有名称として記述する場合は大文字「HTML」。
で、FA?
0519516
2005/04/12(火) 14:02:58ID:???レスどうもありがとうございます。
マンモス本調べてみました。
php+DBのよさそうな教材ですね。
php4とphp5両方買ったほうがいいですかね?
MySQLを勉強しようと思っていましたが、
PostgreSQLに変更してみたいと思います。
0520nobodyさん
2005/04/12(火) 14:11:26ID:m58tL93LCSVファイルを出力するプログラムで
「ファイルのダウンロード」ダイアログ→「開く」を選択した場合
POSTの場合はダイアログが2回表示されるのはなぜでしょう?
POSTで1回のみにできないのでしょうか?
test.htm のソース
--------------------------------------------------------------------------------
<form action="download.php" method="get">
<input type="text" name="data" value="test">
<input type="submit" value="GETでダウンロード">
</form>
<form action="download.php" method="post">
<input type="text" name="data" value="test">
<input type="submit" value="POSTでダウンロード">
</form>
--------------------------------------------------------------------------------
download.php のソース
--------------------------------------------------------------------------------
<?php
header("Content-Disposition: attachment; filename=test.csv");
header("Content-type: application/x-csv");
print $_REQUEST['data'];
?>
--------------------------------------------------------------------------------
0521520
2005/04/12(火) 14:15:26ID:???もしかしたらスレ違いかも知れません。
0522nobodyさん
2005/04/12(火) 15:23:11ID:???PHP4徹底攻略ならpdfがうpされているので、それで勉強すると良いと思う。
PHP5はもう少し本が出そろってからでもいいのではないかと思う今日この頃・・・
0523nobodyさん
2005/04/12(火) 17:15:20ID:???$list = file($data);
$count = count($list);
$in = 2;
for($i = 0; $i <= $count; $i++){
print "$id";
print "$id2 <BR>";
print "$pass";
print "$pass2 <BR>";
list($number2,$id2,$pass2,$sex2,$time2) = split( ",", $list[$i]);
if (($id == $id2) && ($pass == $pass2)){
$in = 1;
}
print "$i";
print "$in <BR>";
}
if($in == 1){
print "ログインしました";
}else{
print "ログインできません";
}
と打ってみたんだんですが、$idと$passが空白のとき一番最後の周期で必ず$inに1が代入されます。
空白でないときはちゃんとなるんですが・・・
0524nobodyさん
2005/04/12(火) 17:16:14ID:???phpで、外部サイトのソースの一部を読み込むことってできますか?
例えば、www.hogehoge.comのソース内に
<!--今日の日記、毎日更新-->
日記の内容
<!--今日の日記ここまで-->
という記述があったとして、その記述を
www.mogemoge.net/indexphpのページの一部に
埋め込むといった感じです。
0525523
2005/04/12(火) 17:18:20ID:???すみません、自己解決しまいsた
0527nobodyさん
2005/04/12(火) 17:25:52ID:???ところで外部ってLAN内の外部?
それとも地球の裏の鯖?
0528524
2005/04/12(火) 18:27:34ID:???どっちかっていうと、地球の裏側です。
読売新聞のサーバから産経新聞のサーバのデータを読み込む様な。
>>526
includeですか、外部サイトのデータも読み込めるんでしょうか?
でもヒントになりそうです、調べてみます。
ありがとうございました〜。
0529nobodyさん
2005/04/12(火) 19:15:08ID:jjWsVBo6↑このくらいのサイトを作るのにはいくらくらいかかるもんなんですか?
0531nobodyさん
2005/04/12(火) 19:21:22ID:jjWsVBo6製作を依頼すると100万円かかるということでしょうか?
0533nobodyさん
2005/04/12(火) 19:27:36ID:???全く同じもの(裏の管理者用のページも含めて)を作るとしたら、そんくらい取られるだろうね。
つーか取りたくなるね。
0534nobodyさん
2005/04/12(火) 19:29:55ID:jjWsVBo6仕様決定ってなんですか???
そういう作成業者でいいところってないですかね?
0535nobodyさん
2005/04/12(火) 19:39:38ID:???よくよく見てみると、巨大データベースからチャットから都道府県別BBS、
オマケの諸々・・・
仕事で受注するなら、400〜600万、システム周りの構築から含めると、
1000万超の見積もり出すぞ、うちの会社なら。
0536nobodyさん
2005/04/12(火) 19:41:32ID:???a.php の中で、いくつか処理して、b.php に redirect して、
処理した値をまた POST で送りたい。
大事なのは、ユーザ的には form.html -> b.php に見えるっつぅことです。
そういう場合はどうしたらいいんですか?
今 pear の HTTP_Client を読んでる所なんですけど…
0537nobodyさん
2005/04/12(火) 19:58:52ID:jjWsVBo61000万ですか。
どういう部分で高くなるんですか??
0538nobodyさん
2005/04/12(火) 20:47:46ID:???535じゃないけど解説。
>仕事で受注するなら、400〜600万、システム周りの構築から含めると、
>1000万超の見積もり出すぞ、うちの会社なら。
開発だけで400〜600ってのは設計からプログラミング、テストに至るまでの期間による。
大手SI企業(例えばIBM)とかだと1人が1ヶ月付きっきりだと200万ぐらいかかるが、
普通の企業で計算しやすく1人月100万とする。
そうすると、人間1人が4ヶ月から6ヶ月で作成できる規模ということになる。
(当然人間が2人でやれば2〜3ヶ月)
開発費用がこの程度なら妥当な値段。
それにシステム周りの構築、つまりサーバなりも含めると1000万近くになる。
真面目な構成のサーバを用意すると、それだけで数百万掛かる。
まぁ、この部分は実際のマシン代と考えればいい。
それと、問題はデータだな。
>>529のサイトはデータがあるからこそのシステムだと思う。
お前さんがどんなシステム欲しいか知らないが、データはあるのか?
データを集める、もしくは買うとなると、データの種類にもよるが
それでけでも数千万〜数億単位で金が掛かるぞ。
0539nobodyさん
2005/04/12(火) 20:55:29ID:jjWsVBo6なるほど。ご丁寧な解説ありがとうございます。
つまり>>529くらいのwebを作成するにはそのくらいかかると、、
普通のHPと>>529の違いというのはどこからなのでしょうか?
ちょっと手の込んだHPというわけではないってことですよね・・・
0540nobodyさん
2005/04/12(火) 21:02:18ID:???少しこの業界の事がわかっていないようで・・・
普通のHPだろうとPHPを使った開発だろうと、
値段は作る為に、『何人がどれ位の期間掛かったか』という事。
0541nobodyさん
2005/04/12(火) 21:09:33ID:jjWsVBo6なるほどぉぉ。
そういうのは普通業者に頼むものなのでしょうか?
一般の腕利きでそういうことができる人も少なからずいますかね?
0542nobodyさん
2005/04/12(火) 21:17:44ID:???オメェは何の目的で何が知りたいんだ?
単なる興味本意なら、とりあえず社会に出て働け
仕事の発注先を探しているなら、悪いことは云わん。
上司に頼んで担当替えてもらえ
0543nobodyさん
2005/04/12(火) 21:20:13ID:???頼む相手は、作りたい物による。
普通のHPならWebデザイナーやらに頼めばいい、
何かしらのシステムを作りたいならシステム開発会社に頼む。
デザインにこだわりたければ、システム会社に依頼しても、
デザイン部分はWebデザイナーに委託したりしてくれるから、
その辺は打ち合わせとか金次第。
一般の腕利きでそういうことをできる人が居るかだが、普通に居る。
ただし、一般といってもピンキリ。
元々はシステム開発会社に勤めてたって奴も居れば、
本業はシステム開発会社に勤め、副業としてバイト感覚でやってる奴も居る。
全くの独学でやってる奴もいる。
0545nobodyさん
2005/04/12(火) 22:11:03ID:ZbNIWkrh作ってほしいって見積もりだしてる人いるねw
0546nobodyさん
2005/04/12(火) 22:41:27ID:???0547nobodyさん
2005/04/12(火) 22:52:40ID:???0548nobodyさん
2005/04/12(火) 22:52:44ID:???0550nobodyさん
2005/04/12(火) 22:54:47ID:???ユーザー定義関数の頭についてる&ってどんな意味があるんですか?
0551nobodyさん
2005/04/12(火) 22:56:11ID:???if(){
if() $a=true; (この部分で抜けたい)
}
error();
}
あ、break;でいいのか・・・
確かにifから抜けるっていうのは意味不明でした。
0552nobodyさん
2005/04/12(火) 22:58:43ID:???..処理1
// ここで抜ける
..処理2
}
// ここへ抜ける
ってことだよね?そういうのは無かった気が。
最初から処理2を書かなきゃいいだけのような・・・
ある条件を満たした時に抜ける(ifの中にさらにif)だとしても、
処理2の部分を2つ目のifのelseの中に持っていくとか。
って、書いてる間に解決してたか。まぁループ以外で抜ける時の参考ということで。
0553551
2005/04/12(火) 23:26:12ID:???みなさんありがとうございました。
0554nobodyさん
2005/04/12(火) 23:52:59ID:9LvPVNujConfiguで設定を変えたいのですが鯖にphp.iniがありません。
whichで探すとphp4というファイルがあるだけでした。
こういう場合PHPを再インストールするしかないのでしょうか?
0557nobodyさん
2005/04/13(水) 00:34:18ID:???phpinfo();
で設定表示して「Configuration File (php.ini) Path 」ってところにあるはず。
なければ「php.ini-recommanded」っていうテンプレートファイルがどっかにあるから
findで探してコピーする(まあ大抵は展開したソースディレクトリの中に入ってるけどね)。
0559nobodyさん
2005/04/13(水) 02:11:07ID:???しかしながら、LINE5でエラーがでます。
test.htmlの内容(htmlなど一部タグ省略)
<form method="get" action="test.php">
<input type="text" name="tasu0">+<input type="text" name="tasu1"><br>
<input type="text" name="hiku0">-<input type="text" name="hiku1"><br>
<input type="text" name="kake0">+<input type="text" name="kake1"><br>
<input type="text" name="waru0">+<input type="text" name="waru1"><br>
<input type="submit" value="計算">
</form>
test.phpの内容
<?php
$tasu = $_GET['tasu0'] + $_GET['tasu1'];
$hiku = $_GET['hiku0'] - $_GET['hiku1'];
$kake = $_GET['kake0'] * $_GET['kake1'];
$waru = $_GET['waru0'] / $_GET['waru1'];
print <<<EOF
足し算の実行結果 {$tasu}<br>
引き算の実行結果 {$hiku}<br>
掛け算の実行結果 {$kake}<br>
割り算の実行結果 {$waru}<br>
EOF;
?>
というような、計算機みたいのを作りました。
LINE5ということは
$waru = $_GET['waru0'] / $_GET['waru1'];
の部分ですが、どこが悪いのでしょうか?
長々とすみませんが、アドバイスお願いします。
0560559
2005/04/13(水) 02:29:39ID:???<input type="text" name="kake0">+<input type="text" name="kake1"><br>
<input type="text" name="waru0">+<input type="text" name="waru1"><br>
この部分なんですが、<input>+<input>の部分は+ではなく、
kakeのほうは*、waruのほうは/です。
最初の+のやつをコピペしたので、修正忘れてました。すみません。
0561nobodyさん
2005/04/13(水) 03:29:07ID:???0562559
2005/04/13(水) 03:39:35ID:???詳しく教えていただけませんでしょうか?
一応エラーには
Warning: Division by zero in test.php on line 5
とあるので、0が関係しているようなので、
>>561さんの言うとおりだと思うのですが
どういうことなのでしょうか?
0564559
2005/04/13(水) 04:33:48ID:???値を入れたら、正常なんですが
何も入れないとこのようなエラーが出てしまうので、
文法とかにエラーがあると思ったんですが、そういうわけではなかったんですね。
0/0がおかしいってことですか。
エラーを吐かなくするような、演算子(?)のようなものが
今みてる本の、10ページぐらい前に書かれてたようなきがするので、
ちょっと見直してみます。
どうもありがとうございました。
0565nobodyさん
2005/04/13(水) 06:51:53ID:WcJtctkNありませんか?
0566nobodyさん
2005/04/13(水) 07:38:09ID:tWz+dwtY0567nobodyさん
2005/04/13(水) 12:52:09ID:???if($_GET['waru0'] && $_GET['waru1']){
$waru = $_GET['waru0'] / $_GET['waru1'];
}else{
$waru = '割れね';
}
0568nobodyさん
2005/04/13(水) 13:03:01ID:???0569nobodyさん
2005/04/13(水) 13:50:22ID:160fl1OF送信されるところまでできたのですが
送信元がAPACHになっちゃいます。。
sendmailの設定をいじるコントロールパネルがあるのですが
どこをいじっていいのか教えてください!
0570nobodyさん
2005/04/13(水) 14:21:56ID:???sendmailの設定でも可能だが、そのどこの誰が作ったとも分からんコントロールパネルとやらで
それができるかどうか分かるわけが無かろう。
mail関数を使う時にenvelope-fromが正しく設定されているか、
そのenvelope-fromの設定がsendmail側で拒絶する設定になっていないか、
チェックすべき事がまだまだある。つーかマニュアルにもその事の記載がある。
0571559
2005/04/13(水) 14:46:09ID:???コードどうもありがとうございます。
なるほど、こういうところでif構文を使うんですねぇ。
そのコードを組み込んでみたところ、
parse error, unexpected '@'というエラーがでてしまいました。
エラーの場所はわかるのですが、エラーの意味がよくわからなくて、
せっかくエラーを吐いてくれるのに、修正できないでいます。orz
勉強不足なので、勉強してまたで直したいと思います。
どうもありがとうございました。
0572nobodyさん
2005/04/13(水) 15:10:27ID:???> parse error, unexpected '@'
パース(ソースを構文解析)している時にエラーが発生した。「@」はここに出てくる筈が無いのだが。(超訳)
>>564 で書いている演算子(@)の位置が悪いかと。
まぁ根本的な問題の解決には、0かどうかで処理を分岐する、
言い換えれば0の時にどうするかを明確に決める、つーのがいいんだけど。
0573569
2005/04/13(水) 15:17:27ID:160fl1OFini_setにてfromの設定をしてみたのですが無理でした。
envelope-fromというのは_ENV["HOSTNAME"]のことでしょうか?
これの設定の仕方を調べているのですがわかりませんTT
コントロールパネルはensimのものです。
これだけじゃ無理っぽいですね・・^^;
0575nobodyさん
2005/04/13(水) 15:38:43ID:c/E+T1wC0576567
2005/04/13(水) 15:54:38ID:???悪ィ!
条件式は、
if($_GET['waru0'] || $_GET['waru1']){
だわ。andじゃ無くってorね。
ってか、これは
parse error, unexpected '@'
には関係ないな…
このエラー、大抵の場合、セミコロンが無かったりってことが多いので、
ソースを小一時間眺める由。それでも駄目なら、近辺のソース全部貼り。
0577567
2005/04/13(水) 15:55:47ID:???if($_GET['waru0'] && $_GET['waru1']){
で良いんだよ。andで・・・
吊って来るor4z
0578559
2005/04/13(水) 16:04:29ID:???>>572
昨日あの後本を読み返したんですが、エラーをはかなくする
演算子が見つかりませんでした。@だったんですね。ありがとうございます。
>>576
ソースまで書き換えていただいてありがとうございました。
>>574の全角スペースをヒントに原因が判明しました。
>>567の
if($_GET['waru0'] && $_GET['waru1']){
$waru = $_GET['waru0'] / $_GET['waru1'];
}else{
$waru = '割れね';
}
これの
$waru = $_GET['waru0'] / $_GET['waru1'];
部分にエラーがでていまして、
なんとなく$の前に空いていた全角スペースを削ってみたら、
見事に動作しました。
本当に皆様どうもありがとうございました。一歩前進できました。
メモ帳を使っていたので、ちゃんとしたエディタに換えます。
0579nobodyさん
2005/04/13(水) 16:30:49ID:???で@が0x40という話でした。
0580nobodyさん
2005/04/13(水) 17:14:58ID:???PHPのソースファイルや表示文字などはphp.iniで設定すれば
文字化けを回避できる事は分かりました。
そこで疑問なのですが、データベースを使う場合は何か注意点が必要なのでしょうか?
例えば、PHPのソースファイルや表示時はEUCでデータベースではUTF8の場合、
PHPから発行するSQLはUTF8で行わないと行けないのでしょうか?
また、SQL発行後、取得した結果はUTF8となるのでしょうか?
0583580
2005/04/13(水) 17:28:35ID:???なるほど。
つまり、文字コードが異なるDBへSQLを発行するときは、
SQLをmb_convert_encodingで変換しないといけないし、
取得した結果もmb_convert_encodingで変換しないといけないんですね。
0585nobodyさん
2005/04/13(水) 17:59:09ID:???じゃ
if(is_numeric($_GET['waru0']) and is_numeric($_GET['waru1']) and $_GET['waru1'] != 0) {
$waru = $_GET['waru0'] / $_GET['waru1'];
}
0586nobodyさん
2005/04/13(水) 18:01:59ID:RAtZXMfHbbb
ccc",aaaa
となっていて、""内の改行を全て<BR>に置換するにはどうすればいいでしょうか?
0587586
2005/04/13(水) 18:09:03ID:RAtZXMfH0588nobodyさん
2005/04/13(水) 18:25:34ID:???"が必ず2つ存在(1個以下でも無いし、3個以上でも無い)のなら、
explodeでちょっきんして、nl2brでぱたぱたして、implodeでぺたぺたしてもいいんじゃないかな。
CSVっぽいので "の扱いに疑問が残るけど。
0589nobodyさん
2005/04/13(水) 21:05:02ID:???$messageという変数に半角文字が30文字以上空白無しで続いたら
切り取って再代入する方法はありますか?
ex)
$message = askldnasdafvaiohdfahv;haifv.,aosdlihadfnvafXC
↓ 再代入
$message = askldnasdafvaiohdfah..
出来れば↓とする方法はありますか?
$message = askldnas....hadfnvafXC
0590nobodyさん
2005/04/13(水) 22:43:01ID:???配列同士を連結するにはどうすればいいでしょうか?
perlにおける@a=(@a, @b); あるいは push(@a, @b); と同じことをしたいです
0591nobodyさん
2005/04/13(水) 22:48:31ID:???0592nobodyさん
2005/04/13(水) 22:51:10ID:???perlのpushと混同していたのですぐに分からなかったorz
0593nobodyさん
2005/04/14(木) 01:43:03ID:OcmzBqS0DESIGNLAB. というサイトがnot foundなんですが
どなたか詳細ご存知?
0594nobodyさん
2005/04/14(木) 02:37:35ID:???・半角文字が30文字以上連続していたら
if (preg_match("/[\w,.+-]{30,}/", $message)
# 半角文字の指定は適当なので好きにして
・文字列の一部を取り出す
substr()
・文字列の連結
$a = $b . $c
0595nobodyさん
2005/04/14(木) 04:03:07ID:Pq56Nx3Sfputs
fputs -- fwrite()のエイリアス
こんな感じに説明されているんですが
よく分かりません
0598nobodyさん
2005/04/14(木) 08:57:56ID:???0599nobodyさん
2005/04/14(木) 10:25:04ID:???$GLOBALS にある $_SERVER[”SCRIPT_FILENAME”]
を使おうとかと思ってましたが、
その値がある環境とない環境があるみたいなんですけど、
これってコンパイル時に決める事なんですかね?
0602nobodyさん
2005/04/14(木) 11:28:15ID:???どうしたらいいかな
実際にファイルロックはしたくない
0603nobodyさん
2005/04/14(木) 11:34:25ID:???0604軟式PHP
2005/04/14(木) 11:36:34ID:???0605599
2005/04/14(木) 11:39:31ID:???なるほど。だから debugger だとなかったのか…
>>601
Linux 2.4.20-28.7 で php v.4.1.2 なサーバーではそれも出ないねぇ…
0607軟式PHP
2005/04/14(木) 11:43:33ID:???もし、include,require内で実行中を知りたいのだったら調べてみらんとわからん
0609軟式PHP
2005/04/14(木) 11:52:57ID:???print __FILE__;
みたいに。詳しくは↓
http://php.s3.to/man/language.constants.predefined.html
0610軟式PHP
2005/04/14(木) 11:54:42ID:???http://www.php.net/manual/ja/language.constants.predefined.php
こっちのが正式なマニュアル。
0611602
2005/04/14(木) 14:18:56ID:???ファイルロックを自前で作って管理した方がいいのかな
でもそれにはファイルロックを使わないとファイルロック実装できないな
ムヒョ
0614602
2005/04/14(木) 14:39:36ID:???そもそも起動前にすでに起動してるかをチェックすれば
多重起動そのものが抑止できるなと思って。
仮に誤認識したとしても、一個も起動してない という方向の誤認なら
問題ない という程度のおおらかさで。
なんかファイルtouchしてunlinkすればいいかと思ったけど
プロセス異常終了時にunlinkできないから脳内会議で却下だった。
0616nobodyさん
2005/04/14(木) 15:55:40ID:???シェルスクリプトとかでよくあるやり方としてはpidをロックファイルに
書き込んでおいて、そのpidのプロセスが生きてるかどうかを確認するというのがある。
0618攻撃者
2005/04/14(木) 17:42:22ID:RTJAfNtd0619nobodyさん
2005/04/14(木) 17:45:22ID:???変な日本語だな、しかも反日って。中国人か?お前か
低脳は中国人だけで十分。
もし反中国だとしても
真似するようなアフォにはなりたくない。
0620軟式PHP
2005/04/14(木) 17:54:21ID:???0621nobodyさん
2005/04/14(木) 18:21:36ID:ai8mxHPmhttp://www.itheart.com/phpgw/sample_filemanager.html
このファイルマネージャで画像をサムネイル表示させるものはないでしょうか?
グループウェアではなくて、ファイル管理機能だけでいいのですが。
0622nobodyさん
2005/04/15(金) 00:35:26ID:???これを一定時間おきに対象ファイルを参照するようにはできないもんでしょうか?
0623nobodyさん
2005/04/15(金) 00:40:40ID:???配布サイトによって .log だったり .dat だったり .txt だったりしたんだが。
0624nobodyさん
2005/04/15(金) 00:41:05ID:eMqwG+N6どういう場所で使うのか分からない。
一定時間おきに対象ファイルを参照するんであれば、includeやrequireを使うのは間違ってる。
0625nobodyさん
2005/04/15(金) 00:41:35ID:eMqwG+N6テキストファイルならなんでもいい。
logfile.2chだって使える。
0626622
2005/04/15(金) 00:47:30ID:???何使えばいいんでつかね・・・?(´・ω・`)
理想としては
ファイルを取得してディレクトリに格納
これを一定時間おきに更新したいんです
0629nobodyさん
2005/04/15(金) 01:50:10ID:???スクリプトでやらせるの?
HTMLタグの<META HTTP-EQUIV="Refresh" CONTENT="???">
("???"は秒数)
では対応できないの?
0630nobodyさん
2005/04/15(金) 01:57:17ID:???if ( count($_POST) ){
session_start();
session_set_cookie_params(300);
$_SESSION['url'] = $_POST[”url”];
$_SESSION['email'] = $_POST[”email”];
header(”Location: http://...show.php”);
exit();
} else {
echo ”pass val: no data”;
exit();
}
show.php は、
echo "url: ".$_SESSION['url'] ."\n";
echo "email: ".$_SESSION['email']."\n";
何にも出ない…なぜ??
0631nobodyさん
2005/04/15(金) 02:00:37ID:???echo mb_convert_encoding($out, "SJIS", "EUC-JP");
SJIS書出しすると "〜"この文字が"~"こーなるんですけど
なんで?
0633nobodyさん
2005/04/15(金) 08:53:40ID:???・アクセスに関係無く、定期的に実行したい
OS側の仕組みを利用。cronやら task schedulerやら。
・他鯖へincludeを仕掛けているのを、怒られないように減らしたい
(経過)時間をチェックする仕組みをスクリプトに埋め込む。
0634nobodyさん
2005/04/15(金) 09:05:42ID:???全角の " は ここに書き込む時に間違えたとして、、、
show.phpで session_start()をしていない。
ブラウザのcookie offで、header("Location: 〜")するとセッションIDを渡せないので SIDを付け足す。
てなところかな。
0635630
2005/04/15(金) 10:48:32ID:???もう直してたけど、その通り、「show.phpで session_start()をしていない。」
が正解でした。サンクスコ。
0636初心者
2005/04/15(金) 16:18:46ID:PCiCWiW9これで$mojiから¥の記号を取れないよね?
エラーがでる?なんで
どうやればとれるの?
0638nobodyさん
2005/04/15(金) 16:58:12ID:???あと正規表現使う必要なし
普通の文字置換で十分
str_replaceのほうが早いです。
0639nobodyさん
2005/04/15(金) 17:57:36ID:???<?php
print "\n";
?>
は意味ってあるのでしょうか?
0640nobodyさん
2005/04/15(金) 18:36:23ID:???あるよ。その\nを受け取った時点でブラウザが
どう解釈し、画面に反映する/しないと判断するかで
見え方も変わってくるが、送られてきたhtmlをソース表示で見れば一目瞭然。
0641nobodyさん
2005/04/15(金) 19:19:32ID:PCiCWiW9なんでエラーになるの?わからない
<form method="post">
<input name="moji">
<input type="submit">
</form>
<?
if(isset($_POST['moji'])){
$str=$_POST['moji'];
$text = ereg_replace ("\\", "",$str);
print $text;
}
?>
0642nobodyさん
2005/04/15(金) 20:46:21ID:???が化けて困ってるんですが、良い解決方法ないですか?
ちなみにEUCなら化けないけど理由があってEUC無理なもんで。
【html】
<form action="./test.php" method="POST">
<INPUT TYPE="text" NAME="夕食" SIZE=20>
<INPUT TYPE="text" NAME="昼食" SIZE=20>
<INPUT TYPE="text" NAME="朝食" SIZE=20>
<INPUT TYPE=SUBMIT VALUE=" 送信 ">
</form>
【test.php】
<?php
while (list($key, $val) = each($_POST)) {
$get_key[] = $key;
$get_val[] = $val;
}
for ($i=0;$i<count($get_key);$i++){
echo $get_key[$i]."---".$get_val[$i];
}
?>
【結果】
・--Array昼食---カレー朝食---パン
0644nobodyさん
2005/04/15(金) 21:26:43ID:Gel4URAu0645nobodyさん
2005/04/15(金) 21:30:03ID:PCiCWiW9うそつき「」
0646nobodyさん
2005/04/15(金) 21:40:47ID:???ereg_replace("\\\\","",$str) か ereg_replace("[\]","",$str) でできる。
が、>>638のいうようにわざわざ正規表現を使う必要は無い。
pattern部分を " にしようが ' にしようが 4個必要なのだけど、性器表現のエロい人がいたら解説お願い。
オイラの解釈(つーか こじつけだな)だとこんな感じ。
\\の場合は、REG_EESCAPEが出るので 最後に\があるのがまずい。
なにかつけなきゃいけないんだが、パターンの一部に組み込まれる文字だとまずい。
regexの解説によると、\は4種類の意味を持ち(クォート(打ち消し)もその1つ)
それの中で \ が無視されるケースがある。
それに当てはまるものとして \\ があって、最終的に \\\\ になるんじゃないかな、と。
0647nobodyさん
2005/04/15(金) 21:44:12ID:???0648nobodyさん
2005/04/15(金) 21:45:24ID:???オマイ天才だな
0649642
2005/04/15(金) 21:56:52ID:???このHTMLが100ページ以上あって、文字コードとMETA変更したくなくて・・・。
>>644
nameタグを次の内容確認ページでユーザに見せる必要があってやむを得ず日本語にしてます。
100ページのinputの構成がばらばらなんですが、一つのphpで動かそうとしてますもんで。
汎用的に使えるフォームメールみたいなサンプルどこかにないですかね?
0650nobodyさん
2005/04/15(金) 22:07:45ID:PCiCWiW9<form method="post">
<input name="moji">
<input type="submit">
</form>
<?
if(isset($_POST['moji'])){
$str=$_POST['moji'];
//$text = ereg_replace ("\\", "",$str);
ereg_replace("\\\\","",$str);
print $str;
}
やっぱ¥が消えない
0651nobodyさん
2005/04/15(金) 22:08:10ID:???処理の流れとして、登録→確認→完了
と、一般的な流れで処理するプログラムなのですが
「確認」画面の際に、前のページに戻ると入力しておいた
内容が無くなっています。(テキストエリアなどが空欄になっている)
これってやはりcookieの問題なのでしょうか?
また、この問題を解決する方法ってありますか?
0652nobodyさん
2005/04/15(金) 22:34:41ID:???>このHTMLが100ページ以上あって、文字コードとMETA変更したくなくて・・・。
んなもん、その辺に落ちてるフリーウェアで100だろうが1000だろうが5分で終わるだろう。
「文字コードとMETA変更したくない」理由が「100ページ以上あってめんどくさい」ってなら
その他に理由があるのなら知らんが。
0653652
2005/04/15(金) 22:37:58ID:???5分は言い過ぎた。
条件式の入力含めても1分以内だな。
0654nobodyさん
2005/04/15(金) 23:51:23ID:???array('Opera,'IE','NN','Mozilla') と、
Operaを配列の[0]とする方法はありませんでしょうか。
0655nobodyさん
2005/04/16(土) 00:12:36ID:???$hoge = array('IE','NN','Opera','FF','Mozilla');
unset($hoge);
$hoge = array('Opera,'IE','NN','Mozilla');
どうしたいのかさっぱり分からん。
0656nobodyさん
2005/04/16(土) 00:28:45ID:???0657nobodyさん
2005/04/16(土) 00:42:26ID:???説明不足ですみません。
array(
[0] => IE
[1] => NN
[2] => Opera
[3] => FF
[4] => Mozilla
)
という配列から、[2]を削除して、新たに[0]に入れなおす、ということをやりたいのです。
array(
[0] => Opera
[1] => IE
[2] => NN
[3] => FF
[4] => Mozilla
)
となってくれれば成功なのですが・・・。
説明不足ですみません。。。
0658652
2005/04/16(土) 01:23:58ID:???お前は俺に喧嘩売ってんのか?
ttp://www.vector.co.jp/vpack/filearea/win/util/text/conv/code/
ttp://www.vector.co.jp/vpack/filearea/win/util/text/conv/
0659nobodyさん
2005/04/16(土) 01:28:09ID:???0660nobodyさん
2005/04/16(土) 03:58:58ID:???それとも全体のデザイン考えてから、ロジック組み立てます?
私の場合、デザイン考えて、考えて、考えて...etc
途中で嫌になってロジック組み立てだして、あああれも必要、これも必要、やっぱりあれも...etc
それで機能不足&イメージと違うものが出来上がります。|ω・`) イツモコウナンダヨネ...
0661nobodyさん
2005/04/16(土) 05:11:58ID:???デザインからひたすらあーでもないこーでもないってもう紙にペンで書いたりもして
悩みに悩んでからロジック組んで見て各ブラウザで動作チェックしますね。
おかげで私のパソコンにはIE NS Opera Mozilla
など5種類 入っています。1種類は秘密 w
0662nobodyさん
2005/04/16(土) 05:26:39ID:???新しいサイトを作ろうとデザイン考えてはや2ヶ月・・・
機能的なことは、とりあえず作ってからphpで組み込んでいく感じかな。
0663nobodyさん
2005/04/16(土) 05:42:08ID:???私は結構ヘタレプログラマなので、単純ミスとか多いんです。|ω・`) ハズカシイ...
でもって最近はヘタレロジック集を作ってライブラリ化しました。
ちょっとは楽になったのですが...今度はちょっとずつ機能を変えていくとライブラリが巨大化しました。
毎日何かあーしたい、こーしたいってブツブツ言いながらロジック組んでばかりです。
お陰で自分のサイトは半年放置状態です。
ああ、はじめはアップローダ作って動いたときの感動が懐かしい...
0664nobodyさん
2005/04/16(土) 06:56:17ID:???同じような関数がいっぱいでてきて戸惑っています。
>>>EOFと>>>__EOD__が同じだったり
echoとprintとprintfが同じだったり・・・
PHP初心者向けのサイトにも
1ページ前まではprint使ってたのに、次のページではechoになってたり、
同じだからいいんでしょうけど、統一性がなくて戸惑っています。
いろいろな言語から派生しているようなので仕方ないでしょうが、
みなさんは、気にしないで書いてるのでしょうか?
0665nobodyさん
2005/04/16(土) 06:58:56ID:???echo mb_convert_encoding($out, "SJIS", "EUC-JP");
SJIS書出しすると "〜"この文字が"~"こーなる
>>632
マッピングってどうやって変更するの
0666nobodyさん
2005/04/16(土) 07:47:29ID:???それは、お前さんがその関数に関して理解が少ないのと、
勉強始めたばかりで色々な状況に遭遇していないだけ。
>echoとprintとprintfが同じだったり・・・
これだって、それぞれに出来る事と出来ない事がある。
勿論、同じような事はできるが、作業が簡単になるとか、
色々な状況がある。
>いろいろな言語から派生しているようなので仕方ないでしょうが、
>みなさんは、気にしないで書いてるのでしょうか?
上記のように、出来る事と出来ない事があるので、
結果的には”気にして”書いている。
0669nobodyさん
2005/04/16(土) 09:18:19ID:???各ページで httpヘッダ(PragmaやCache-controlあたり)をチェック。
例えば、フォームのページでセッションを使ってたりすると、
これらにno-cacheが設定されて、ブラウザの戻るボタンで戻るとフォームを鯖から再読込してしまう。
この場合はsession.cache_(expire|limiter)を設定して回避できる。
とりあえず現状の把握からだな。
ブラウザの戻るボタンを使わせないように、ページ内に入力データをhiddenで仕込んだボタンを置いて、
フォームの再読込時に初期値として使う、つー気配りもあるとさらによいかと。
>>665
オイラの環境(4.3.5@win)だと 〜 になる。4.3あたりでmb_*が大幅に変更になったんじゃなかったっけ。
PHPは自前の変換テーブルを使っているので、それを書き換えてコンパイルしてサーバにインストールして...
鯖を弄れない場合は jcode.phpを使う つー逃げ道もあるかと。
0670nobodyさん
2005/04/16(土) 09:18:56ID:ESrHxwe0どう違うのでしょうか。
0671nobodyさん
2005/04/16(土) 09:35:57ID:???いろいろ制限があるよ。マニュアルにもその記載がある。
それで足りない場合は、ソースを見れ。ext/standard/basic_functions.c
0672nobodyさん
2005/04/16(土) 13:02:14ID:???その後、session_destroy して、Cookie に残ってる session 名と ID を
消したいんだけど…マニュアルに書いてある通り、
setcookie("セッション名", "", time() - 3600);
ってしても、session cookie が消えません。何か気をつける所ってありますか?
0673nobodyさん
2005/04/16(土) 13:53:17ID:2f7MF8Cm>>\が勝手について困ってるのなら
>>$str=stripslashes($_POST['moji']);
>>650
<?
$s="圭一";
//$str=stripslashes($s);
print print $s;
?>
できない!
0674nobodyさん
2005/04/16(土) 14:15:03ID:???>>673は何がしたくてそんなコードを書いているのか分からん。例としては不適切だな。
0675593
2005/04/16(土) 15:59:39ID:UCDVjpu7まじで探してるんですけど誰か知らないですか・・・。
0677nobodyさん
2005/04/17(日) 00:56:39ID:LKi8AXzU2ちゃんねるは連投を防ぐために、30秒経たないと投稿できないようになってますが、
これはどこでカウントされているのでしょうか。
クッキーかと思っていたのですが、ダイアログを表示して詳細を見ても、
それらしい書き込みはないし、書き込みをブロックしてもしっかりカウントされてます。
phpで同じ仕組みを作りたいと思ったのでここに書き込みました、
よろしくお願いします。
0678nobodyさん
2005/04/17(日) 01:26:39ID:???0679nobodyさん
2005/04/17(日) 01:37:27ID:???ttp://www.google.co.jp/search?hl=ja&q=%E9%80%A3%E7%B6%9A%E6%8A%95%E7%A8%BF%E3%81%AE%E9%98%B2%E6%AD%A2+PHP&lr=
0680nobodyさん
2005/04/17(日) 01:38:50ID:LKi8AXzUレスありがとうございます。IPですか、なるほど。
0681nobodyさん
2005/04/17(日) 01:39:35ID:???ユーザーが文字列を入力すると、その文字列を記述したページを日付入りURLにて、自動生成したいです。
簡単に言うと、 Hello World とユーザが入力したら、 Hello World と表示されるHTMLページ
http://ほげほげ.com/200504/0001.html を生成したいんです。
日付入りURLにて、自動生成するにはどうすればいいでしょうか?
0682nobodyさん
2005/04/17(日) 01:39:43ID:???0683nobodyさん
2005/04/17(日) 01:53:44ID:XcOUU5pl日本を抗日中国人から救う気概のあるプログラマさん
以下にて作戦会議をしていますのでお力を貸してください!!!
http://cgi36.plala.or.jp/bargiko/bargiko.cgi?roomID=1113648718774
よろしくお願いします!!
0684nobodyさん
2005/04/17(日) 02:03:30ID:???普通に書けばいいんじゃないの?
ユーザがHelloWorldと入力し、Submitする。
↓
現在の日付を取得し、その日付のディレクトリが存在するかを確認し、
存在しなければ作成する。
↓
HelloWorldと表示されるHTMLファイルを生成する。
0686nobodyさん
2005/04/17(日) 05:56:38ID:???例えばnameに「nanasi」という名前が入っていたとして
次の投稿でも同じnameにnanasiを入れたとします。
通常の表示なら
1:nanasi(名前)
2:nanasi(名前)
と重複表示すると思うのですが、重複文字列の場合は
表示させないようにします。(ID1だけを表示)
自分で考えてIFを使ってif($name=="")のように判定するというのはわかるのですが、
""の中をどのように設定すれば重複登録を表示させなくするか
わかりません。
申し訳ありませんが、何かアドバイスいただければと思います。
0688nobodyさん
2005/04/17(日) 08:01:22ID:cwjmobtF昔の方はソースが余りにも汚いので全部統一することにしました。
そこで、タイトルと本文を入力したら、指定したHTMLを吐き出すような
スクリプトは書けないでしょうか?
0690nobodyさん
2005/04/17(日) 09:05:16ID:cwjmobtF作ってみました。
>>689
ありがとうございます。
早速行き詰ったのですが、これだと出力がphpになってしまいます。
htmlで出力させたいんです。
ご教授よろしくお願いします。
0691nobodyさん
2005/04/17(日) 10:32:42ID:???ファイルに書き込む関数を使って、htmlファイルを作成する。
$title = 'タイトル'; $content = '内容';
$fp = fopen("target_filename.html","w");
fwrite($fp,$title.":".$content);
fclose($fp);
0692nobodyさん
2005/04/17(日) 11:04:12ID:???index.html内
<form action="form.php" method=post>
言葉を入力して下さい
<br><input type="text" name="kotoba">
<br><input type="submit" name="submit" value="言葉を登録!">
</form>
form.php内
<p>
<?php print $kotoba; ?>を登録しました。貴方専用の言葉を記載したURLは以下になります
<br>
http://ほげほげ.com/2005/0417-000000001.html
</p>
//日付表示のコード
<?php
$today = getdate();
print("$today[year]$today[mon]$today[mday]<br>\n");
?>
ここまでしかわからず。日付取得からディレクトリ作成・同じ日に投稿されたら1・2・3とカウントした上でhtmlを生成
そいで生成したURLを表示
がわかりませぬ。。。
なんかそれっぽい解説サイトありませんか? Yahoo!カテゴリ登録サイトを見てもなんかイマイチ。
0693nobodyさん
2005/04/17(日) 11:08:54ID:???出来ました。
それで日付をファイル名にぶち込もうと思い、
フォームを使ったのですが
"target_filename.html"の部分を$dateに置き換えるとhtmlファイルになってくれません。
試行錯誤してるんですが上手くいかず…。
0694nobodyさん
2005/04/17(日) 11:26:18ID:???0695nobodyさん
2005/04/17(日) 11:41:25ID:???何に困ってるのか分からん。
どういう関数を使えばいいのか分からないのなら、
存在(重複)チェック is_dir is_file(or file_exists)
作成 mkdir fopen
あたりを使えばできるんじゃないかなぁ。
解説サイトが必要になるほど複雑なロジックは使わなくていいはずだが。。
>>693
$dateつーのがどういう文字列か分からんが、htmlファイルにしたいならそういうファイル名にしましょう。
0699nobodyさん
2005/04/17(日) 12:42:43ID:???だから、プログラミングをするための思考に向いていないって。
>>691が示したスクリプトの各部が何をしているのかを考えろ。
$outfilename = 'target_filename.html';
$title = 'タイトル'; $content = '内容';
$fp = fopen($outfilename,"w");
fwrite($fp,$title.":".$content);
fclose($fp);
って、やれば判る?
日付を使った文字列の作り方はマニュアルを嫁。
0700nobodyさん
2005/04/17(日) 14:15:38ID:???というか、他人のスクリプトも解析した経験がないの?
まずは人のを見て、どういう構造でどういう動きになっているのか理解できるようになった方が良いと思うよ。
このコードがどんな役割してるのか分からんって場合は、このスレで聞けば良いんだし。
参考にするスクリプトも選んだ方が良いけど。
もしくは素直に既存のスクリプト使っておいた方が、自分の為でもサーバーの為でもあるんじゃ。
0701nobodyさん
2005/04/17(日) 15:01:51ID:???何とか出来ました(;´Д`)
ありがとうございます。
>>700
うい、勉強し直して来ます。
その時はまたお世話になると思いますが、どうぞよろしくお願いします(/д`)
0702nobodyさん
2005/04/17(日) 16:49:27ID:???全ファイル数と全ファイルサイズを取得する方法はないでしょうか?
そういった関数又は方法があればご教授願います。
0703nobodyさん
2005/04/17(日) 16:58:02ID:EGBwihx+0704nobodyさん
2005/04/17(日) 17:12:01ID:???ttp://www.php.net/manual/ja/
0705702
2005/04/17(日) 18:55:55ID:???サンプルを参考にしてファイル数を取得するスクリプトを書いてみました。
<?php
$dir = "scandirectory";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
sort($files);
print_r($files);
rsort($files);
/* print_r($files); */
for ( $i=0; $i<sizeof($files); $i++){
/* echo $files[$i]; */
echo $i;
}
?>
このスクリプトでは$iにファイル番号が次々と格納されていきます。
これでは使い物にならないので$iの最大値を取得したいのですが
$iの最大値を取得するにはどうすればいいでしょうか?ご教授願います。
0707702
2005/04/17(日) 19:27:45ID:???704さん706さんありがとうございました。
完成品
<?php
$dir = "scandir";
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
$files[] = $filename;
}
for ( $i=0; $i<sizeof($files); $i++){
$i;
}
echo $i - 2;
?>
0708nobodyさん
2005/04/17(日) 19:44:29ID:???0709nobodyさん
2005/04/17(日) 19:48:24ID:???再帰処理するのが妥当なんだろうねぇ。
0710686
2005/04/17(日) 21:15:35ID:???だいぶレスが空いてしまって申し訳ないのですが
「全てのnameと比較」というのは、登録してあるDBなり保存ファイル
なりを、一端読み込んで
if($name=="$name"){
表示させない文
}else{
表示させる文
}
という風にするのでしょうか?
0711nobodyさん
2005/04/17(日) 22:31:18ID:???if文の中で比較するのは、
・今の処理対象のname - 例えば $new_name
と
・読み込んだ物をループして、その時の比較する順番になったname - 例えば $array_name[3], $old_name
との比較になる事は理解できていますか?
同じname項目ということで$nameという変数名にこだわってしまっている感じがします。
0712nobodyさん
2005/04/18(月) 02:45:14ID:???エディタは何を使うのがよろしいでしょうか?
TeraPadはPHPに対応してないので迷っています…
0713nobodyさん
2005/04/18(月) 03:46:32ID:???PHPに"対応した"エディタなんて無いんじゃ。
逆にコードハイライト程度であれば、エディタは好きな(慣れた)もの選べばよい。
但し文字コードがSJIS以外にEUC-JP/UTF-8には対応してるものを。
0714nobodyさん
2005/04/18(月) 05:25:09ID:???arg.php というファイルは引数によって、処理を変えたいと思っています。
arg.php の起動は(他の php ファイルからの)CLI か、
あるいは browser からの GET にしようと思っているんですが、
どうやって引数を受け取ったらいいでしょうか?
基本的には $_SERVER["argv"] で array が受け取れるんですけど、
試してみたら、あるサーバーでは値が設定されてませんでした。
例えば;
Apache/1.3.33 (Darwin) PHP/4.3.4 mod_perl (Mac OS X)
まぁ Mac で実際のサービスを動かす事は無いから無視してもいいんですけど、
一応、どこで動かすかわかんないし…
$_SERVER に設定される変数ってのをどの程度まで信用していいかどうか、教えて下さい。
0715nobodyさん
2005/04/18(月) 06:35:51ID:???コマンドラインの引数も入るけどね。
CLIでも$_SERVER["argv"]はつかえるはず。
でも2chよりマニュアルに明確に書いてある事だけを信用した方がいいよ。
そもそもどこで動かすかわからないスクリプトの動作を保証する必要があるの?
あるのなら損な仕事ですねっていうか動作条件を仕様ではっきりと指定すべき。
0716nobodyさん
2005/04/18(月) 16:12:17ID:???読んでいるだけでも結構目から鱗な事が多いので、全部読んでみたいのですが。
0720nobodyさん
2005/04/18(月) 17:10:59ID:???「公開されているか?」と尋ねるべきでしたね。
>>718>>719
ありがとうございます。にくちゃんねるで見付ける事ができました。
0721nobodyさん
2005/04/18(月) 20:37:23ID:???extract($_POST);
if($to == $ban) exit;
mail($to,〜以下省略);
$banで禁止アドレスに[email protected]を指定しています。
$toに"[email protected]"が代入されてもifで弾いてくれなくて困っているのですが、どうすればよいでしょうか?
0725nobodyさん
2005/04/18(月) 20:53:04ID:???$ban = "[email protected]";
$to = "[email protected]";
if($to == $ban) exit;
mail($to,〜以下省略);
でやってみたが
>$toに"[email protected]"が代入されてもifで弾いてくれなくて
普通に弾くがな。
0726686
2005/04/18(月) 21:05:40ID:wNKEVpEWありがとうございます。
>・読み込んだ物をループして、その時の比較する順番になった
>name - 例えば $array_name[3], $old_name
>との比較になる事は理解できていますか?
上記についてなのですが、全く理解出来ません・・。
arrayでname配列から取り出すというのはわかるのですが
old_nameというのはどこから出てきたのか?とか
そこから比較するのは正しいのか?というがいまいちどういう風に
組み込めばいいのかわからなくて。。
0727nobodyさん
2005/04/18(月) 21:12:26ID:???0729727
2005/04/18(月) 21:58:41ID:???$msg = str_replace("\", "¥", $msg);
とやってみたのですが、変換されていませんでした。
Googleで検索をかけてみましたが、それらしい情報見当たらなかったので、質問をさせて頂きました。
説明足らずで申し訳ありません。
0730nobodyさん
2005/04/18(月) 22:29:27ID:???スコープの概念なのですが、
$test = 1;
$test2 = 2;
if($test){
print "$test2 <- これは表示されて正常。\n";
$test3 = 3;
}
print "$test3 <- これが表示されるのが理解できない。\n";
上記$test3が表示されるのがどうも理解できません。
書き方がおかしいのでしょうか。
0731nobodyさん
2005/04/18(月) 22:35:13ID:???test3が表示されるということは、IFの中と外は同じスコープって事だ。
0732nobodyさん
2005/04/18(月) 23:05:09ID:???ttp://www.php.net/manual/ja/language.types.string.php#language.types.string.syntax.single
>>730
PHPでは perlでのブロック・スコープみたいなものは無いよ。
PHPでのスコープはどうなってるかってのはマニュアルを参照
ttp://www.php.net/manual/ja/language.variables.scope.php
0733nobodyさん
2005/04/18(月) 23:06:33ID:???0734712
2005/04/18(月) 23:36:10ID:???回答ありがとうございました。
それでは、PHPを編集するにあたってオススメのエディタはないでしょうか?
TeraPadは行末で折り返してくれないのが不便で、何かあれば乗り換えたいのですが…
0735nobodyさん
2005/04/19(火) 00:00:19ID:???行末で折り返してくれないエディタなど無い。
ウィンドウ幅で折り返し、という意味なら、
折り返される方がスクリプトエディタとしては失格。
0736nobodyさん
2005/04/19(火) 00:16:49ID:???折り返すように設定できる。ウィンドウサイズを変更するたびにやらないといけないが。
オプションのルーラーのところで論理行で行番号を表示するようにしておけば
行番号もずれることがない。
しかし俺も同等エディタに乗り換えたいという気持ちがある。
0737730
2005/04/19(火) 00:38:02ID:???そうですね。理解できてないですね。
スコープがかかってないのは試験でわかっていたのですが、
どうも気持ち悪くて質問してしまいました。
もう少し勉強してみます。
0738nobodyさん
2005/04/19(火) 01:07:51ID:???0739nobodyさん
2005/04/19(火) 01:29:22ID:???0740nobodyさん
2005/04/19(火) 08:43:47ID:???これ最強
0741nobodyさん
2005/04/19(火) 09:00:14ID:???0742nobodyさん
2005/04/19(火) 09:37:25ID:???0743nobodyさん
2005/04/19(火) 10:05:49ID:???子供が居るから、アカデミックパックで1万6千ですむ。
0744軟式PHP
2005/04/19(火) 10:49:06ID:???0746nobodyさん
2005/04/19(火) 11:45:15ID:???その辺はどうなんだろうな。
MSのアカデミックパックだと中学以上なんだよね。
それに、MSのサイトに対象学校が検索できる。
俺は、弟が高校の教師だから、弟に頼んで買ってもらってる。
0747nobodyさん
2005/04/19(火) 15:15:29ID:RLnorT+EPHP Startup: Unable to load dynamic library'./php_gd2.dll' - 指定されたモジュールが見つかりません。
PHP Startup: Unable to load dynamic library'./php_mdstring.dll' - 指定されたモジュールが見つかりません。
gdをインストールしなければいけないのですか?
PHP5をインストールしただけではだめなのですか?
本の通りにインストールしたのですが…。
0748nobodyさん
2005/04/19(火) 15:33:02ID:???ttp://www.php.net/manual/ja/install.windows.extensions.php
0749nobodyさん
NGNGPHP4.3.11
を使用しているのですが
Apacheを起動するとき何故か
Unknown():Unable to lpad dynamic library 'C:\php\extensions\php_curl.dll' - 指定されたモジュールが見つかりません。
というエラーが出ます
extensionsフォルダを調べてみてもちゃんとphp_curl.dllはありますし
extensionsフォルダまでのフォルダ構成もあってます
4.3.8から4.3.11にバージョンアップしてApacheを再起動した時は特にエラーは出なかったのですが…
どうやれば直るんでしょうか?
ちなみにphp.iniは4.3.8のものをそのまま使った場合と4.3.11のパッケージに入っているものを使った場合を試してみましたが
両方ともエラーが出ました
0750nobodyさん
2005/04/19(火) 16:50:29ID:???0751749
NGNG>>748を見てもわからなかったんですが…
extension_dirを設定してphp_curl.dllのセミコロンを削除するだけではダメなんでしょうか?
他のdllもいくつか読み込むようにしているんですがエラーは出てないのですが…
0752nobodyさん
2005/04/19(火) 19:15:02ID:???0754nobodyさん
2005/04/19(火) 22:41:32ID:wL85daoNような関数はないのでしょうか
0755nobodyさん
2005/04/19(火) 23:32:38ID:???わかりやすく作ったつもりでも、後から見直してみたら判りづらいし。
0758nobodyさん
2005/04/20(水) 00:26:14ID:YJUJgQqHttp://218.222.232.106/skin.txt
このスクリプトを実行しても<!-- date -->以外変換されないんですが
原因わかる方教えてください
0759nobodyさん
2005/04/20(水) 01:07:31ID:S/OGWVDAお互いの記事を自動的にリンクさせる、って感じの掲示板を作ろうと思っていて、
自然文を解析させなきゃいけないから茶筅とかで形態素解析かなとまず思いついたんですが、
レンサバだと茶筅等の導入が難しかったりでPHPだけで実現できないかと模索しています。
PHPで形態素解析とか使わずに似たようなことが出来る方法ないでしょうか?
0760nobodyさん
2005/04/20(水) 01:19:47ID:???したいことがよくわからんが、もうちょっと勉強しろ。
foreach使えばもっと楽だし、わざわざ配列に入れて1行ずつ比較せんでも、
ざくっとstr_replaceだけしてやりゃいいんじゃないか?
どこが間違ってるかは知らない・・・というか見る気がしない。
0761nobodyさん
2005/04/20(水) 02:56:32ID:???正規表現の「パターン」とはどんなもんか勉強すること。
$replaced='title';
$replaced='body';
$replaced='date';
と並べると、$replacedには'date'しか入らんよ。
&各行でstr_replaceの返り値がどうなってんのか確認汁。
0762nobodyさん
2005/04/20(水) 03:48:23ID:???0763nobodyさん
2005/04/20(水) 04:10:07ID:???意図が分からんが負荷高いとディスク逝かれるぞ。
動的のHTMLを生成しないならshellでindex作ってる方が良いぞ。
0764nobodyさん
2005/04/20(水) 07:22:50ID:HNz86lwJ適した関数があるぜよ。
0765nobodyさん
2005/04/20(水) 12:53:45ID:M6NXhxaMできればPHP5でバンドルされるSQLiteのバージョンも合わせて知りたいのですが。
よろしくお願いします。
0766nobodyさん
2005/04/20(水) 14:42:37ID:???ソースをダウンロードして、
$ cat php-x.x.x/ext/sqlite/libsqlite/VERSION
php4もpearかなにかでエクステンションをダウンロードして以下同文
0767nobodyさん
2005/04/20(水) 15:32:45ID:???追加されてますよね?
0768nobodyさん
2005/04/20(水) 15:52:31ID:???PHP5で追加されたのは、E_STRICT noticeだけですよ?
ttp://www.php.net/manual/ja/ref.errorfunc.php#errorfunc.constants
0770nobodyさん
2005/04/20(水) 16:19:05ID:???本にのってない…。
0771nobodyさん
2005/04/20(水) 16:29:16ID:???比較演算子
ttp://www.php.net/manual/ja/language.operators.comparison.php
それが載ってないってことはphp4が出る前の本なのかな、それとも入門版なのだろうか。。
いい機会なので他の部分にも目を通しておきましょう。
0772770
2005/04/20(水) 16:45:18ID:???ありがとうございます。
!=との違いは、
<?
$a = 10; //int型
$b = '10'; //char型
if($a != $b){
print '!=';
}elseif($a !== $b){
print '!==';
//これが出力される
}
?>
ということですね。
0773nobodyさん
2005/04/20(水) 16:50:25ID:???char型ではなくString型
0775nobodyさん
2005/04/20(水) 17:37:55ID:H4DxOPr0渡らないという現象が起こることってあるのでしょうか?
ユーザーの投稿フォームで入力したデータをメールで受信
するようにしてるのですが、ごくたまに空で受信されることが
あります。エラーチェックをしてるので空で渡るとエラー
が表示されのでこのような現象を解明できません。
誰かわかる人いないでしょうか?
0778nobodyさん
2005/04/20(水) 19:24:17ID:CALzzqinperl?
phpからexcelファイルに書き込むことはできないか・・・
0779734
2005/04/20(水) 20:23:33ID:???ありがとうございます。そうです、ウィンドウ幅で折り返しという意味でした。
TeraPadも設定でできるのですね。やってみます。
>>738〜744
ありがとうございます。とりあえずPHPエディタっていうのを使ってみますね。
0781nobodyさん
2005/04/20(水) 21:11:21ID:y5EWfJ2t0783nobodyさん
2005/04/20(水) 23:10:46ID:feDsyNHx(過去スレとかは時間なくて見てないスマソ)
phpで時間指定で自動起動させることって可能でしょうか?
できればOS依存とかウェア依存なしの回答があれば助かりますが、
依存する方法でも知っているようでしたらご教授お願いします。
なお、鯖OSはWin2kまたはLinux。ウェアはともにapache使ってます。
よろしくお願いします。
0785783
2005/04/20(水) 23:21:44ID:feDsyNHxそか、即レスサンクス。
板違いになるがじゃあPERL/CGIもOS依存になっちゃいますか?
0787nobodyさん
2005/04/20(水) 23:28:53ID:bhY+XuSLprint "HTTP_USER_AGENTは、[<b> $_SERVER[HTTP_USER_AGENT] </b>]<br>\n";
print "REMOTE_ADDRは、[<b> $_SERVER[REMOTE_ADDR] </b>]<br>\n";
print "CONTENT_LENGTHは、[<b> $_SERVER[CONTENT_LENGTH] </b>]<br>\n";
print "QUERY_STRINGは、[<b> $_SERVER[QUERY_STRING] </b>]<br>\n";
?>
----------------------------------------------------------------
↑こう書いてエラーは出ないんですが、ブラウザで表示すると、
最後のQUERY_STRINGの上にこんなエラーってか注意みたいな表示が出ちゃいます。
「Notice: Undefined index: QUERY_STRING in C:\WWWRoot\_SERVER-test.php on line 8」
出ないようにしたいんですがどうすればいいですか?
ちなみにURLの後ろにパラメタ適当につけたらちゃんと消えますが。。。
0788783
2005/04/20(水) 23:31:23ID:???�dクス。
UDの集計は自動でやってるとかって話をきいたのでそれをphpでできるかなぁ
と思ったんですがどうやら無理っぽいので諦めまつ。
ノシ
0789nobodyさん
2005/04/21(木) 00:29:25ID:???<?php
if(!array_key_exists("QUERY_STRING", $_SERVER)) $_SERVER[QUERY_STRING] = '';
print "HTTP_USER_AGENTは、[<b> $_SERVER[HTTP_USER_AGENT] </b>]<br>\n";
print "REMOTE_ADDRは、[<b> $_SERVER[REMOTE_ADDR] </b>]<br>\n";
print "CONTENT_LENGTHは、[<b> $_SERVER[CONTENT_LENGTH] </b>]<br>\n";
print "QUERY_STRINGは、[<b> $_SERVER[QUERY_STRING] </b>]<br>\n";
?>
0790nobodyさん
2005/04/21(木) 01:11:14ID:???このCache_Liteの使い方を教えてください。
付属のtest.phpにアクセスしてもCache Missed !と出てうまくいかないんです。
0791nobodyさん
2005/04/21(木) 02:07:14ID:???マニュアルに例まで載ってるのに、これ以上何を望むつもりなんだ・・・
コンストラクタの$option['cacheDir']が無いとかじゃないかなぁ。
$Cache_Lite->setToDebug(); してみると、エラーが起きてる場合表示されるから試してみ。
0793nobodyさん
2005/04/21(木) 11:56:50ID:???<?php
error_reporting(E_ALL ^ E_NOTICE);
print "HTTP_USER_AGENTは、[<b> $_SERVER[HTTP_USER_AGENT] </b>]<br>\n";
print "REMOTE_ADDRは、[<b> $_SERVER[REMOTE_ADDR] </b>]<br>\n";
print "CONTENT_LENGTHは、[<b> $_SERVER[CONTENT_LENGTH] </b>]<br>\n";
print "QUERY_STRINGは、[<b> $_SERVER[QUERY_STRING] </b>]<br>\n";
?>
0794nobodyさん
2005/04/21(木) 12:07:43ID:???0800799
2005/04/21(木) 15:08:32ID:???797=798ということね
798が797にレスしてるみたいじゃないか orz
0801nobodyさん
2005/04/21(木) 17:05:49ID:???大きなファイルをダウンロードさせようとしたのですが
2000000バイト(2MB弱)で切られてしまいます。
これはPHPの仕様なのでしょうか?
回避するには少しずつfreadして出力するしかないでしょうか?
PHP 5.0.4 を FreeBSD 5.3 で使っています。
0802787
2005/04/21(木) 17:25:34ID:7ze3BV4u試しましたが、だめでした。結果はかわらずでした。
>>793さん
できました!!ありがとうございます。
error_reportingについてぐぐったらいろいろわかって
なるほどという感じでした。
いい忘れてましたが、サーバにうpしたら何もしなくてもうまくいくんですが、
ローカルでIISにPHP入れてやるとあのnoticeが出てしまっていたんです。
ってか毎回error_reporting文を書かないと無理なんですかね?
なにか、php.iniなるものをいじれば大丈夫とか書いてあったけど
よくわからなかったです。
0804nobodyさん
2005/04/21(木) 20:21:34ID:6XaqBGy5php.ini
0805nobodyさん
2005/04/21(木) 21:39:03ID:???php.iniで制御できるのはアップロードのサイズですよね?
ダウンロードのサイズを制御する方法がわからないのです。
0807nobodyさん
2005/04/21(木) 21:43:13ID:???0808nobodyさん
2005/04/21(木) 22:21:22ID:???0809nobodyさん
2005/04/21(木) 22:22:51ID:???DBにも触れてみる。
とか
0810nobodyさん
2005/04/22(金) 00:48:00ID:???なりたいんだけど、サンプルとしてCGIはよりどりみどりだけど
PHPってあんまりないよね… いや、無いわけじゃないんだけど少ないっていうか。
0811nobodyさん
2005/04/22(金) 01:41:31ID:???あまり難しいことしてないし簡潔に作ってるから、初心者には分かりやすいと思うよ。
0812nobodyさん
2005/04/22(金) 02:28:28ID:???開発中のちっこいCMS探して、開発に口をはさむと、すぐ上達するぞ。
0813nobodyさん
2005/04/22(金) 04:47:59ID:???あれソース汚くね?
低機能掲示板が作れるなら、あとはアイディアと実現するための方法を考えるだけでしょ。
例えば発言ランキングシステムの場合だと、
1.同一IPでカウントするのか、名前でカウントするのか、パスワードでカウントするのかをまず決める
2.書き込み処理の前に、判定文をいれる
3.ランキング用ログが空だったらそのままいれる
4.そうじゃなければ連想配列にいれて1こ1こ比較する
5.同じのがあればカウントアップ
6.なければ最後に追加
次に表示部分を作る。array_multisortかなんかでカウンタ部分を基準に
ソートして表示するだけ
ranking.dat
----------------
やまだ,12
たろう,5
ささき,20
にしむらひろゆき,10
とりあえず、手当たり次第に機能を追加していけ。
超高機能にして、なおかつコードが分けられてて保守性が高いものを
作るように努力すれば力は付くよ。
0814nobodyさん
2005/04/22(金) 05:00:15ID:CDduA99v作ることは可能でしょうか。
0815神の子
2005/04/22(金) 06:02:56ID:Bd2K4OvAつまりあなたの掲示したそのプログラムも理論的には可能でしょう。
あえて今ここで可能かどうかを結論付けるのならば私はこう答えます。
力量を問われるときそこに力量のある人間がいるかどうかです。
つまりそれ相応の力量がある人間がいるのならば可能ですしないのならば不可能ということです。
だからもうこんなくだらない質問をしないでください。
私はあなたのような愚か者が大嫌いなのです。
(・A・)
0816nobodyさん
2005/04/22(金) 06:11:41ID:???0819nobodyさん
2005/04/22(金) 07:03:42ID:???0820nobodyさん
2005/04/22(金) 08:11:35ID:???できない計算問題はないと。
解があるものなら計算問題でphpにできないことはないでしょう。
何らかの解決方法が難しいかもしれんが必ずある。
なので可能、不可能どちらかといわれたら「可能」以外にはない。
0821nobodyさん
2005/04/22(金) 11:45:20ID:???http://www.stackasterisk.jp/tech/php/php02_01.jsp
に
>違いは、file 関数は一度配列にファイルの内容を格納しているという点です。
>当然、file 関数で大きなファイルを扱うと、メモリをたくさん使います。
>ですから、大きなファイルを扱うときは fopen, fgets を使うのが良いでしょう。
とありますが、例えば
---
$fp = fopen("/tmp/hoge.txt", 'r');
while ( !feof($fp) ) {
$buff() = fgets($fp, 9182);
}
fclose($fp);
---
のように一度配列に読み込んで使う場合は、file()で一度に読み込んでしまう方法も
fopen(),fgets()でループして読み込ませる方法も処理速度以外の点では変わらないのでしょうか?
0822821
2005/04/22(金) 11:46:36ID:???でした・・・orz
0823nobodyさん
2005/04/22(金) 12:17:30ID:LithArKTアップロード処理をしない、というのに
if (isset($_FILES['userfile'])) {
〜処理〜
}
と書いてるのですが有効になりません。
どうしたらよいでしょう。
0825nobodyさん
2005/04/22(金) 12:38:47ID:BaSGQtheArray ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )
エラーコードはどうしても入ってしまうものなのでしょうか
0828nobodyさん
2005/04/22(金) 13:04:14ID:BaSGQtheてっきり、処理をしない=アップロード失敗だと思い込んでました
0831nobodyさん
2005/04/22(金) 17:27:34ID:g8UiWXVVWarning: fopen(count.txt) [function.fopen]: failed to open stream: Permission denied in C:\hp\count.php on line 9
Warning: fwrite(): supplied argument is not a valid stream resource in C:\hp\count.php on line 10
Warning: fclose(): supplied argument is not a valid stream resource in C:\hp\count.php on line 11
こんなのが出る。カウンタ増やすプログラムだけどカウンタ増えない。
0833831
2005/04/22(金) 18:02:33ID:g8UiWXVV[規定のウェブサイトのプロパティ]→[ホームディレクトリ]→[書き込み(W)]に
チェックを入れてもビクともしませんでした。
0834nobodyさん
2005/04/22(金) 18:38:29ID:SVAfoP6X0835nobodyさん
2005/04/22(金) 18:39:28ID:???じゃあ、その設定じゃないってことだから、他を探そうよ
0836nobodyさん
2005/04/22(金) 18:40:58ID:???(トップページにブログの最新記事とか)
のですが、どうすればいいでしょうか?
できればJavascriptは使いたくありません。
imgタグ、 <?php include〜?>などを使ってみましたができませんでした。
0837nobodyさん
2005/04/22(金) 18:46:07ID:???0838nobodyさん
2005/04/22(金) 18:46:20ID:???もっと正確に丁寧に書け
0839nobodyさん
2005/04/22(金) 18:51:41ID:???<img src="〜.php">にすると、〜.phpは画像ファイルを出力しないといけない。
正確には、画像ファイル用のhttpヘッダと画像ファイル本体の内容を返すことになる。
<?php include〜?>は、その文を含むファイルがphpとして処理された場合に効果を発する。
鯖の設定にもよるが、通常 拡張子phpでないと、phpとしては処理されない。
やり方はいろいろあるだろうけど、例えば、
・表示したいページを拡張子phpのものに変更し、includeを使う。
・表示したいページはhtmlのままで、phpがそのページ(全体)を書き換えるようにする。
・表示したい部位をiframeにして、html+phpファイルの2つから構成されるようにする。
・諦める
0840nobodyさん
2005/04/22(金) 19:45:20ID:???とりあえず拡張子をphpにして対処してみます。
0841nobodyさん
2005/04/22(金) 20:58:54ID:z8YA9D+9あんまりにも携帯からの荒らしが多いので、2chと同じく
固有識別番号で規制しようかと思っているのですが、
検索しても全く情報が見つかりません…
0844nobodyさん
2005/04/22(金) 21:41:55ID:+qJeWhCFてかHTTPなんだからヘッダに乗せる以外に手段はないと思うけどなぁ
0845799
2005/04/23(土) 08:56:17ID:???他は知らん
0846nobodyさん
2005/04/23(土) 10:36:46ID:ArE+mySzVodaは51系以降、ユーザー側で通知をONにしているとUAについてくる。
あーうーとつーかーは開発側が$_ENV[なんとか]の環境変数で自由に取り出せる
0847nobodyさん
2005/04/23(土) 12:03:01ID:???おまえ、アプリ板某ゲームスレで晒された香具師だろw
0848nobodyさん
2005/04/23(土) 13:33:13ID:???変数($namae)に渡して表示させたいんですが、
phpのほうでUndefined variableのエラーが出ます。
参考書付属のCD-ROMのサンプルデータをそのまま使っても
同じ結果になってしまうんですが、どういう原因が考えられるでしょうか?
<FORM action="./○○○.php" method="post">
<INPUT type="text" name="namae" size="30">
<INPUT type="submit" value="送信">
</FORM>
を
<?php
$text="$namae";
echo $text;
?>
で、というやつです。2000serverのApacheでやってます。php4
0850nobodyさん
2005/04/23(土) 13:51:19ID:???PHP4.2.0以降はスーパーグローバル変数を使わないとダメだよ。
0851850
2005/04/23(土) 13:52:21ID:???0852848
2005/04/23(土) 13:57:17ID:???0853nobodyさん
2005/04/23(土) 14:49:17ID:???0854nobodyさん
2005/04/24(日) 08:43:41ID:???$com = eregi_replace("(^|>)(>[^<]*)", "¥¥1<font color=#ff9166>¥¥2</font>", $com);
他に、$comに">>"が入ってたら違う色に変えたいのですが正規表現の書き方が分かりません。
どなたか教えて下さい。m(_ _)m
0855nobodyさん
2005/04/24(日) 13:52:09ID:ztU9/Bmhちなみに既にあるプログラムは全く弄ることはできません。
インターフェース用のプログラムを作って、
元プログラムの処理結果を抜き取ってくる、みたいな感じになると
思うのですが。
単純に静的なウェブページの表示を切り替えるのなら、
そう難しいことではないと思うのですが、
元が動的なウェブページになりますので、そこが色々厄介かなと。
ちなみにphp経験は書籍読みながらなら、なんとか掲示板等を作れる
レベルで、はっきりいって、素人レベルだと思います。
アドバイスどうか宜しくお願いします。
0857nobodyさん
2005/04/24(日) 14:06:33ID:???1行を1つの要素とした配列でforeach($hoge as $com)として回しているんであれば
正規表現を使わなくとも可能。
if(substr($com,0,1)=='>'){
if(substr($com,0,2)=='>>')[
}else{
}
0858857
2005/04/24(日) 14:07:42ID:???インデントにtab使う癖が・・・。
if(substr($com,0,1)=='>'){
if(substr($com,0,2)=='>>')[
//行頭が">>"の場合
}else{
//行頭が">"の場合
}
}
0859854
2005/04/24(日) 14:10:43ID:ztU9/Bmh既にあるプログラムの表示方法のみを切り替えることは可能でしょうか?
の間違いでした、スマソdesu
0862nobodyさん
2005/04/24(日) 21:10:44ID:W++2BwUoそこで自宅サーバーに踏み切ろうと思うんですが、現在パソコンが1台しかないんです。
この場合は新たに1台用意しなければなりませんか?
それとも今ある1台でサーバーとしても、HP編集の用途としても、趣味でのゲーム等にも使えますかね?
教えて下さいお願いします。
0863nobodyさん
2005/04/24(日) 21:35:51ID:???真面目に答えるけど、そのていどの知識では
鯖立ては止めた方が良いよ。
0864nobodyさん
2005/04/24(日) 21:36:03ID:???Linuxで動くゲームなら良いけどな・・・
それに、色々な所からアクセスが来るのに、
裏でゲームやってたら、ゲームのCPU占有率が高くてHPが遅くなるだろうな。
また、逆の場合もあって、HPアクセスが多いと、ゲームが途中で止まるかも。
まぁ、悪いことは言わないからもう1台用意する事をお勧めする。
サーバだから、高価なグラフィックカードとか不要だし、ディスプレイすら要らない。
ディスプレイ必要なら、既存のディスプレイ繋げば良いし、
OSがLinuxならその他のスペックもそれ程高くなくても良い。
秋葉でパーツ探して組み立てたり、ショップのBTOかなんかで5万も出せば十分なPCが買える。
0866nobodyさん
2005/04/24(日) 21:44:21ID:???PHP「言語」とは全く関係ない話だと思うんだが。。。
可能だけど、当然サーバの機能を果たすためのリソース(CPUやらメモリやら回線やら)を食いつぶすから、
確実に今より使い勝手が悪くなりますよ。
それ以外にも運用のための知識等も必要になりますし、懐状態と頭の中身との相談になるんじゃないですかねぇ。
自宅鯖板があるので話が続く場合はそちらへ。 ttp://pc8.2ch.net/mysv/
0867854
2005/04/24(日) 22:19:11ID:ztU9/BmhPHPでは不可能でしょうか?
0868nobodyさん
2005/04/24(日) 22:24:40ID:ZdX9oQv/自宅サーバってのはマシンをもう一台用意するとかそんな話じゃなくて、
回線をもう一本用意するとか、そういう話になるもんだけど。
要するに普通は外に置いてあるものを自宅に持ってくるだけなんだから。
とはいえ、自宅で自分が使ってる間はサーバが消えて無くなっててもいいのであれば
マシンも回線も共通にして、切り替えて使ったら?
0869nobodyさん
2005/04/24(日) 22:33:24ID:???0870nobodyさん
2005/04/24(日) 22:41:30ID:???>>855の質問だよね?
できるだろうけど、難易度は 既にあるというプログラムの出力内容次第だろうね。
それに、他人の物を掠め取るつー事だと相手の了承も得なきゃいけないし。
0871854
2005/04/24(日) 23:35:16ID:ztU9/Bmh利用することは既に了承を得ていますが
どのような関数を使うかなど、全く想像がつかないので
ヒントでも与えて頂ければ、と思うのですが。
どうか宜しくお願いします。
0872nobodyさん
2005/04/24(日) 23:43:23ID:cJjvrVZL多少誤差が出てしまいます。
IPチェックを行い、カウンターの設定を重複アクセスはカウントしない様にしてます。
以下がソースです。どこが悪いのでしょうか?
0873872
2005/04/24(日) 23:43:52ID:???$yes_date = gmdate("Ymd", time()-15*3600); //-24h
$dat = file(COUNT_LOG_PATH); //カウントファイルを配列に
list($key, $all, $tod, $yes) = explode("|", $dat[0]); //データを分解
$ip = getenv('REMOTE_ADDR'); //アクセス者のIP取得
$regip = file(IP_LOG_PATH); //IPファイルを配列に
$countflag = false;
if(IP_CHECK && array_search($ip . "\n", $regip) === false){ //IPチェックON
if($key == $now_date){ $fp = fopen(IP_LOG_PATH, "a"); } //今日のログ保存中ならIP追加
else{ $fp = fopen(IP_LOG_PATH, "w"); } //日付が変わったらファイル上書き
flock($fp, 2);
fputs($fp, "$ip\n");
fclose($fp);
$countflag = true;
}elseif(!IP_CHECK){ //IPチェックOFF
$countflag = true;
}
if($countflag){ //書き込みフラグONなら
if($key == $now_date){ $tod++; } //キーが今日なら今日をアップ
else{ $yes = ($key == $yes_date) ? $tod : 0; $tod = 1;} //キーが昨日なら昨日に今日カウント格納それ以外は0
$all++; //合計をカウントアップ
$new = implode("|", array($now_date, $all, $tod, $yes)); //データ連結
$fp = fopen(COUNT_LOG_PATH, "w"); //ファイルに保存
flock($fp,2);
fputs($fp, $new);
fclose($fp);
}
0874nobodyさん
2005/04/24(日) 23:45:58ID:???状況がよく掴めていないんだけど、こんな感じかな。
(a)対象がリモートの場合、
1. fopen(),file(),fsockopen()辺りの関数を使ってリモートファイルを取得。
2. 取得したものから(または取得しつつ)、必要なデータ部分を抜き出す。
3. データを飾り立てる。
最悪、htmlをパースするスクリプトを書くことになるかと。
(b)対象がローカル
対象のプログラムの組み方次第だけど、最悪(a)と同じ事をしなきゃいけないかと。
0876854
2005/04/25(月) 00:16:35ID:7+40Al/Q例えば、変数を入力して演算するスクリプトがあるとして、
そのスクリプト自体はまったくいじらずに、
別のスクリプトで表示、外観を組み立てる、ということが目的です。
一つだけいいでしょうか?
「パースする」ってどういう意味でしょうか?
辞書で調べたら、
アメリカの哲学者の名前と出てきました。orz
パースペクティブの略でしょうか?
0877854
2005/04/25(月) 00:17:54ID:???JavaScript で「ドム」るとはどういう意味でしょうか?
ぐぐっても分かりませんでしたorz
0878nobodyさん
2005/04/25(月) 00:39:49ID:0O36XnJZ0879nobodyさん
2005/04/25(月) 00:52:08ID:???サーバー、DBについてはどのくらいのレベルまでカバーすれば良いでしょうか?
たとえばDBにしても、MYSQLとORACLとでは、知識に格差がある
と思うんです。よろしくお願いいたします。
0880879
2005/04/25(月) 01:01:02ID:???JAVAプログラミングには、アプリケーションの作成くらいしか用途が
思い浮かばないのですが、WEB製作時になんの役割として使用される
のでしょうか?
0881nobodyさん
2005/04/25(月) 01:15:57ID:???Javaはappletやiアプリの他にも、JSP servletといったサーバサイドプログラムにも使われる。
で、これが一番重要なことなんだが、サーバサイドプログラムを作るのに使われる言語に
PHPという言語も含まれていて、ここはその言語のためのスレなのだ。
0882nobodyさん
2005/04/25(月) 01:17:29ID:???echo $fp;
なら問題ないのですが、
$fp = file_get_contents('http://hogehoge.jp:80/');
echo $fp;
のようにポート番号を含むと正常に表示できません。
Warning: file_get_contents(
http://hogehoge.jp:80/): failed to open stream: No such file or directory
ポート経由のデータをfile_get_contentsしたいのですが、
この場合どう対応すれば良いでしょうか?
0883nobodyさん
2005/04/25(月) 01:25:58ID:???0884nobodyさん
2005/04/25(月) 01:37:04ID:???"独立"なら技術よりも人脈や営業力の方を重要視しろ。
仕事の幅で要する技術のレベルも変わってくる。
一般的なフリーランスなら広く&浅く(ても良い)。
0885872
2005/04/25(月) 01:51:49ID:0QyGkIUaもう一度だけageさせて下さい。
0886ファイルロッカー
2005/04/25(月) 02:15:53ID:0O36XnJZfopenで上記のそれぞれのモードで開いた時、
flockで、LOCK_SHを指定するのは最初の「r」だけで、それ以外の5つはLOCK_EX
ということでいいの?
0887886訂正
2005/04/25(月) 02:20:08ID:0O36XnJZfopenで上記のそれぞれのモードで開いた時、
flockで、LOCK_SHを指定するのは最初の「r」だけで、それ以外の7つはLOCK_EX
ということでいいの?
0888nobodyさん
2005/04/25(月) 05:31:40ID:???スレッド式掲示板のスクリプトを探しているんですが、どこかにオススメはありませんでしょうか?
0889888
2005/04/25(月) 05:45:41ID:???0890nobodyさん
2005/04/25(月) 08:09:23ID:HSj72Zbp0892nobodyさん
2005/04/25(月) 09:25:38ID:HSj72Zbp0893nobodyさん
2005/04/25(月) 09:49:46ID:IAqctJnu0896895
2005/04/25(月) 14:14:02ID:???0897nobodyさん
2005/04/25(月) 15:40:21ID:???http://kasarfa.com/
0899nobodyさん
2005/04/25(月) 19:22:11ID:???リンク集スクリプトを探していて引っかかったんですが
こんなスクリプトはないでしょうか?
0900nobodyさん
2005/04/25(月) 19:42:28ID:???0901882
2005/04/25(月) 21:44:07ID:???0902nobodyさん
2005/04/25(月) 22:04:57ID:???オイラの環境(php4.3.5@win2k)では問題なく動作した。
yahooの80に対してと、8080でググって適当な8080ポートを使っている鯖に対してテストを実行した。
0903nobodyさん
2005/04/26(火) 00:18:14ID:???↑リネームしようとしたらbbs.txtが存在するから
だめとかいうエラーが出てしまいます。
Warning: rename(tmp.txt,bbs.txt) [function.rename]: File exists in〜
bbs.txtはリネームの前に絶対必要であり、リネームで上書きしたいんですが、
どうにかしてできますか?
0904nobodyさん
2005/04/26(火) 01:35:33ID:???$a = $_SERVER[REMOTE_ADDR];
$b = gethostbyaddr($a);
print "$a<br>\n$b";
このスクリプトに漏れがアクセスすると
$bの出力は自分のPC名が表示されてしまう。
プロバイダのホスト名が表示されるようにしたいんだが。
ちなみに携帯(DoCoMo)からアクセスしたら
ちゃんとDoCoMoのホスト名が表示された。
0907904
2005/04/26(火) 08:24:24ID:???$aに入っているIPはちゃんとプロバイダのIPなんですよ!
それをgethostbyaddrによって変換しているはずなのに
$bではPC名が表示されます。
0909882
2005/04/26(火) 14:31:20ID:???スクリプトはこれで問題ないでしょうか?
$fp = file_get_contents('http://www.yahoo.co.jp:80/');
echo $fp;
同か宜しくお願いします
0911902
2005/04/26(火) 14:50:40ID:???オイラが召還されたのかな?
テストは、それとまったく同じもの(www.yahoo.co.jp:80)と、
ポート番号が無視されているわけではない事を確認するために
80以外のポート番号で公開しているサーバに対して行いました。
結果としてポート番号は適切に扱われました。
>>882にあるような failed to 〜のwarningを出そうとして
試しにFirewallでパケットを叩き落とした所、見事に同じwarningが出ましたが、
そちらでは80を指定しない時はうまく行ってるみたいなんで状況が違うかも知れませんね。
0912nobodyさん
2005/04/26(火) 15:16:17ID:???http://******.co.jp/nandemo/test.php?cmd=view&option=1
というアクセスを、
http://******.co.jp/nandemo/test/cmd=view/option=1
というアドレスで表示させたいのですが(amazonみたいに)
どのようにすれば良いのでしょうか。
0916nobodyさん
2005/04/26(火) 16:21:46ID:???調査してみたところ、マニュアルにも載っている下記コードを
実行すると、latin1になってしまいます。
これは何処を設定すれば、utf8になりますか?
<?php
/* 接続のオープン */
$link = mysqli_connect("localhost", "root", "hoge");
/* カレントの文字コードセットを表示 */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);
?>
ちなみに、localhostでmysqlクライアントだと、\sでみればちゃんと
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
となっとります。
0917nobodyさん
2005/04/26(火) 17:05:46ID:???いちいちINSTALLでパッケージ指定しないと行けないのか?
upgrade-allだとインストールされてるやつを全部アップグレードしてくれるけど、
インストールしてないパッケージをコマンド1つでインストールする方法ないかな?
0918nobodyさん
2005/04/26(火) 17:42:48ID:???PHPのmysqli関数で使ってるMySQLクライアントライブラリが
latin1でビルドされてるものなんじゃないの。
接続後に毎回エンコードSETしといたら?
0919nobodyさん
2005/04/26(火) 17:46:37ID:???$dom = domxml_open_file('http://example.com/example.xml'); ←UTF-8
$xsldoc = domxml_xslt_stylesheet_file('http://example.com/example.xsl');
$result = $xsldoc->process($dom);
$xsldoc->result_dump_file($result, 'example.html'); ←EUC-JP
print $xsldoc->result_dump_mem($result); ←EUC-JP
?>
今DOMXMLの練習をしてまして
UTF-8のXML文書をEUC-JPに変換して表示&保存したいのですが
どこでmb_convert_encodingをかければいいんでしょうか?
0920801
2005/04/26(火) 18:52:44ID:???http://bugs.php.net/bug.php?id=32553
0921nobodyさん
2005/04/26(火) 23:46:06ID:???phpMyadminを別のポートで立ち上げたいんですけど
どうやってやるんでしょうか。
0922nobodyさん
2005/04/26(火) 23:54:33ID:???phpMyAdminではなく、phpMyAdminを呼び出してるWEBサーバーを
設定しなくちゃいけない。
phpMyAdminを呼び出してるWEBサーバーが何か判らないと
答えようがない。
0923nobodyさん
2005/04/27(水) 01:05:42ID:???2個起動するんでしょうか
0924nobodyさん
2005/04/27(水) 01:35:59ID:???apacheの場合、単体でポート番号を複数使うことができるよ。
Listen VirtualHostディレクティブを組み合わせると希望する動きになるんじゃないかなぁ。
PHPとは全然関係ない話になるので、続くようなら適切なOSの板か自宅鯖あたりで。
0926nobodyさん
2005/04/27(水) 02:14:13ID:???2個起動しても良いけど、Apache2ならSSLと同じようにバーチャルドメインの
機能を使うのが良いだろう。どっちにせよ明らかにPHPの話じゃないので、
別の適切なドキュメントあたれ。
0927919
2005/04/27(水) 02:32:29ID:???スレ汚しすいませんでした
0928301
2005/04/27(水) 05:57:01ID:???という4つのテキストデータがありまして
読み込む度にランダムで違う配列にしたいです。
phpを使って並び替える方法を教えてください。
『 hoge3、hoge1、hoge2、hoge4 』とか
『 hoge1、hoge4、hoge3、hoge2 』とか
こんな感じにランダムで並び替える方法を教えてください。
0930301
2005/04/27(水) 11:38:24ID:ZOjS30sy0931nobodyさん
2005/04/27(水) 11:52:21ID:ZDoIiicSファイルの日付けを検索して、その日付けをトップページに表示
したいのですがどのようにすればよいですか?
0932nobodyさん
2005/04/27(水) 12:01:27ID:???0934nobodyさん
2005/04/27(水) 16:29:28ID:???0936nobodyさん
2005/04/27(水) 17:02:45ID:???0937nobodyさん
2005/04/27(水) 17:12:23ID:???PHPと各種DBのバージョンの対応表など、どこかに情報は無いでしょうか?
MySQLやPostgreSQLだけでなくOracleなどを含めて、
細かいリビジョン毎に対応表があるといいのですが。
正直、自分の使ってるPHPのバージョンで
どのデータベースどのバージョンまで使うことが出来るのか、
こういった情報って少ない気がするのですが、
皆さんはどうやって調べてるのでしょうか?
0938nobodyさん
2005/04/27(水) 20:58:23ID:???クライアントの接続下位互換性を持ってないDBMSというのは珍しいと思うけど?
例えDBサーバ側の設定が必要だとしても。
---
組み込む接続ライブラリに依存するから、
個々のDB接続性がPHPでどうなってるかは環境による。
0939nobodyさん
2005/04/27(水) 22:08:47ID:FF8E+B0xそのままでは化けてしまいます。
どうしたらいいのでしょうか?
0941nobodyさん
2005/04/27(水) 22:43:03ID:???ページと同じにsubjectをEUCで書けばいいだけ。
ああ、リンクをメールで開いたときに"化ける"なんて言うなよ。
そこに日本語は使えないんだから。"化けない"のは偶々。
0942mizinko
2005/04/28(木) 10:11:48ID:???fopenとかfeofなんかが使えない…(´・ω・`)
0943931
2005/04/28(木) 11:45:14ID:???レスありがとうございます
どのファイルが最新の日付けかを探し出すには
どういう構文を書けばいいのですか?
0944nobodyさん
2005/04/28(木) 12:15:29ID:???比較用に最新の日付とそのファイルの組み合わせを持っておいて、
すべてのファイルと逐次比較して、比較したものの方が最新だったら
手持ちの組み合わせをそれと入れ替えて、さらに逐次比較を継続する。
これが一番単純なやりかた。
構文は自分で考えろ。
0945nobodyさん
2005/04/28(木) 20:47:43ID:BVIDeapOというアドレスにアクセスがあったときに、index.phpで、
"mode=normal&price=500&number=1"
という文字列を取得するにはどのようにすれば良いでしょうか。
0947945
2005/04/28(木) 20:57:13ID:???無事解決いたしました。
0948nobodyさん
2005/04/28(木) 21:34:43ID:???アフォか
>944
全ファイル舐めまわしながらファイル名をキーに更新日時を配列に格納
後はソート…
0950944
2005/04/28(木) 22:02:19ID:???全ファイル舐めるなら、配列にいれてソートするなんて2度手間する必要あるのか?
変数1つ用意して、最初、変数は空だから最初に見つかったファイルの更新日時を入れて、
ファイルを舐める段階で順次ファイルの更新日付と比較して、
最新の日付だったら変数に入れるだけじゃないか。
ファイル全部舐めたときには最新の更新日付が取れてるよ。
なんで、わざわざ、全部舐めた後にソートなんてするんだよ、馬鹿らしい。
0952nobodyさん
2005/04/29(金) 01:16:58ID:???0953nobodyさん
2005/04/29(金) 01:53:46ID:???無いので正規表現で処理しましょう。
というと、正規表現分からんと返ってきそうですが、この機会に身に付けておきましょう。
0954nobodyさん
2005/04/29(金) 07:55:13ID:???>948ではありませんが、二度手間ではないですよ。
if文は負荷が大きい(当然ファイル数が多いほど高負荷になる)から
繰り返し処理の中ではif文で比較しないで配列に要素を追加するだけ。
繰り返しが終わったら配列をソートで比較終了。
つまり、10000ファイルあった場合、9999回if分岐するか
10000要素の配列をつくって1回ソートするか、ですね。
CPU負荷とメモリ消費と処理速度等の兼ね合いで、
メモリをちょっとだけ使ってCPU負荷を少なく抑えて
その結果速いであろう>948の方法を良しとするのが一般的です。
一概には言えないしアフォかとは思わないけどね。
アフォほどファイルをつくって両方の処理速度でも測ってみて
何がどう違うか観察するとよくわかるかも
0955nobodyさん
2005/04/29(金) 08:47:22ID:???PHPの構文としてのif文は負荷が大きいのだろうか?
配列のソートの場合でも結局はZEの中でクイックソートしてるので
比較は発生してるよね。配列への値の挿入よりも、if文で内部的に
発生する挿入等のハンドシェイクの方が効率が悪いということか。
まあ、下層を追うよりもテストして結果として現れる上層を
見てみれば結論が出るんだろうけど。
0956nobodyさん
2005/04/29(金) 09:12:40ID:???そもそも、PHPのifとCのifとの効率の差異は
「最大値を持つ要素1つだけ先頭に持ってくるソート」と
「すべての要素を順に並べないといけないソート」
の差異よりも、差があると思えるのか?
0957nobodyさん
2005/04/29(金) 10:46:00ID:???色々なサイトなどでカウンタのスクリプトのソースを見たのですが、
どうしても腑に落ちない所がありました。
DATファイルなどにカウンタの値を記録しておいて、
アクセス時にその内容を読み込み、カウントをアップし、
そして、書き込み時にファイルをロックしてカウンタを増やしているという
サンプルが殆どなのですが、この場合って不具合起きませんか?
AとBがほぼ同じタイミングでアクセスした場合、
AもBも同じ内容のカウンタを取得し、お互いにカウントアップし、
どちらかが先に書き込んだあと、同じ値で上書きされるような気がします。
やはり、カウントアップして書き込み終わるまでファイルが読み込めないようにした方がいいのでしょうか?
0958nobodyさん
2005/04/29(金) 10:53:20ID:???>954です。すみません、ウソつきました。
アフォほどファイルをつくって試してみましたが
処理時間はほとんど変わらず両者の負荷は変わらないぽいですね。
一般的ですとか逝っちゃって恥ずかしいんですけど。。。
if文じゃなくて配列を駆使するのが効率的という頭で
負荷も少なくなると勝手に思い込んでました。orz
>948は、古いファイルとか新しい複数ファイルの情報も取り出せたり
何かと応用がきくからプログラム的にスマートって事ですね。
さて、吊ってきます。
0959nobodyさん
2005/04/29(金) 11:07:45ID:???おい、もっとよく確かめrよ。
どう考えたってsortよりifのほうが負荷が大きいに決まってるだろ。
俺なんかあまりの違いにifやめてsort使うことにしtんだぞ。
これで俺のプログラムも爆速だぜぃ。がはは。
0960nobodyさん
2005/04/29(金) 12:11:00ID:B3CgdDo1if ($con = oci_connect("user", "pass", "db")) {
$open = true;
} else {
$open = false;
}
if (oci_close($con)) {
$close = true;
} else {
$close = false;
}
echo "open : " . $open . "<br>";
echo "close : " . $close . "<br>";
これだけなんだけど、なんでoci_close()でfalseが返ってくるのか
分からないっす。なんかPHPとデータベースについて根本的な勘違いを
しているのかな?
0962957
2005/04/29(金) 13:03:41ID:???実際に名前を出すのはどうかと思ったのですが、
レッツ以外にも、ググッて出てくるようなPHPスクリプトを配布しているサイトで、
読み込み時から書き込み終了までロックをしているサンプルって見た事無いんですが・・・
疑問に思ったのは、どのサンプルも書き込みの時だけロックを行っている。
また、読み込み時にロックしても、読み込んだ後にはロックを解除していて、
書き込み時に再度ロックして書き込み後にロックを解除しているというものが殆どで、
後者の方法でも、読み込み時のロック解除から書き込みのロックまでの間に
誰かのアクセスがあれば、結果的に同じカウンタ数を読み込むので無意味だと。
此処からは私の勝手な想像なのですが、
1つ目はこの方法でも、処理時間的にはそう簡単には懸念している不具合が起きないために
手を抜いている。
2つ目は単順にスクリプトを公開してる人間に、こういった問題意識が無い
又は問題は認識しているが技術力が足りない。
と考えているのですが、どうなのでしょう?
それとも、根本的に、公開されているスクリプトでは
私が懸念している不具合が起こる可能性は0%なのでしょうか?
0963nobodyさん
2005/04/29(金) 14:15:49ID:???それに同一ホストからでもリロードするたびにカウントがあがる
駄目カウンタも結構あるし
0964957
2005/04/29(金) 14:22:17ID:???その辺は、俗に言う仕様じゃないでしょうか?
あとは、目的の違いかと。
単純にアクセス数だけをカウントする場合は、同一ホストとか関係無いでしょうし、
ものによっては、直前との同一ホストしか比較してないものもある。
これだと、同じホストで間隔明けて誰かがアクセスした後に
再度アクセスすればカウントアップされるし。
ただ、私が気にしているのは、更新されるべき値が他のアクセスで読み込まれ、
データベースで言う所のダーティーリードに相当するものが
何故放置されているのかが単純に疑問な訳で。
0965nobodyさん
2005/04/29(金) 15:41:39ID:???まねする必要なんか無いので好きなように書けばいいだぎゃ
0966nobodyさん
2005/04/29(金) 16:10:04ID:???それはレッツの劣化コピーが巷に溢れてる所為では。
タイミングもちゃんとしてあって、ロックが掛かってたら
ランダムに待ちして数回リトライしてるようなカウンターも見たことあるよ。
それよかカウンターのような恥ずかしいものを最近サイトに置いたことがないな。
0967957
2005/04/29(金) 16:51:46ID:???自分はファイルにデータは一切記録させず、
全てDBで制御してるので、今まで全く気にしていなかったのですが、
他人のサイトを見たときに、気になっただけです。
>>966
なるほど、確かにレッツの劣化コピーという可能性はありますね。
標準のロックを使わずに独自にロックの仕組みを作ってる所とかはしっかりしてますね。
>それよかカウンターのような恥ずかしいものを最近サイトに置いたことがないな
カウンターのように、基礎が出来てないサイトって、
カウンター以外のスクリプトにも同様にロックの仕組みが不味いので気になってました。
0969nobodyさん
2005/04/29(金) 18:05:13ID:???0970nobodyさん
2005/04/29(金) 18:36:06ID:???読みやすいフォントがなかなか見つからない orz
0971nobodyさん
2005/04/29(金) 18:55:51ID:djMTOoa/0974971
2005/04/29(金) 19:04:16ID:???0975nobodyさん
2005/04/29(金) 19:49:33ID:???実際に起こりにくいのと起こってもそれが判明しにくいから
問題を認識(重要視か?)してない人は確かに多そうだよね。
敷居の低いPHPの特性上 とりあえず動けばいいや的な感じで
あまり追及しない人が多いというのもある気がする。
しかし"r+"で開いてflock()してる間に読み書きすれば済む話だから
独自ロックする意味がわからない。独自ロックって例えばどんなの?
0976nobodyさん
2005/04/29(金) 20:10:58ID:???お前さんが、そもそも問題を認識(重要視)してないんじゃないか?
flockだってロックの種類は読み込み・書き込み・解除しかなく、
それぞれを重複して掛けられない訳だ。
書き込み時だけロックしたって、他人は読む事は出来る。(ここで問題が発生)
読み込み時に、読み込みロックで開いて、カウントアップし、
書き込む前に、読み込みロックを解除したあと書き込みロックをすれば、
更にタイミング的にはシビアになるから問題が発生する頻度は減るが0%じゃない。
独自ロックの仕組み(大抵はファイルのリネームやロックしてるかのダミーファイル)を使うことにより、
読み込みや書き込みすら出来ないように(プログラム)で出来る。
実際にはflockしてないから読み書きできるが、この独自ロックのダミーファイルなどを見て、
ロックされてるかの判断が出来る。
さらに、ロックが何時まで経っても解除されないような自体でも、
タイムアウトを設けることで、強制的にロックも解除できる。
0977nobodyさん
2005/04/29(金) 20:46:55ID:???975だけどよくわからん
$txt="count.txt";
$fh=fopen($txt,"r+");
flock($fh,2);
$count=(int)fgets($fh);//読
rewind($fh);
ftruncate($fh,0);
fputs($fh,++$count);//書
flock($fh,3);
fclose($fh);
どこがまずいですか?
0978nobodyさん
2005/04/29(金) 21:04:41ID:???976じゃないけど、flockが全ての鯖で使えると思ってるのが馬鹿過ぎ。
つまり、そのコードのflock($fh,2);からflock($fh,3);までヤバ過ぎ。
0979ave
2005/04/29(金) 21:08:01ID:???ページにアクセスできないです。 助けてください
OS:windowsXP proffesional
0980ave
2005/04/29(金) 21:10:20ID:???ページにアクセスできないです。 助けてください
ttp://www.aqua-soft.org/
OS:windowsXP proffesional
0981nobodyさん
2005/04/29(金) 21:13:12ID:TDd2BQoiphpで書かれたオープンソース版を探しています。phpMyadminを、管理でなく運用向けにしたようなイメージです。
デジエ買えばいいんですけど、貧乏なんで...
0982nobodyさん
2005/04/29(金) 21:13:54ID:???if ($fp_lock = fopen($lock_file,"w")) {
if(flock($fp_lock,LOCK_EX)){
if($fp = fopen($txt,"r")){
if(flock($fp, LOCK_SH)){
$data=fgets($fp);
flock($fp, LOCK_UN);
}
fclose($fp);
}
if($fp = fopen($txt,"w")){
if(flock($fp, LOCK_EX)){
rewind($fp);
fputs($fp, $data);
flock($fp, LOCK_UN);
}
fclose($fp);
}
flock($fp_lock,LOCK_UN);
}
fclose($fp_lock);
}
0983nobodyさん
2005/04/29(金) 21:19:56ID:???flock使える鯖で運用するなら、
flock使えない鯖のことなんて全く気にする必要ない。
具体的にどこがやばいか言ってみなよ。
0985nobodyさん
2005/04/29(金) 23:02:39ID:???>>978
実用時はfopen(),flock()でfalseが返ってきたら
処理を止めるようにしてるし、使えないサーバでは使いません
977ではできるだけ単純でわかりやすいコードにしたつもり
>>984
おれが教えて君ですかね。むしろ978が説得力ないんだけど。
何が問題かわからない人のために簡単に説明すると
977は、排他ロックを1回でその間に読み書き、です。
(976はそれを理解していなかったからコードを書いた)
これと比べてダミーファイル等の自作ロック処理がどう有用なのか疑問でした。
PearlのCGIでダミーファイルでのロックを見た事あるけど
関数が豊富なPHPでは必要だと思わなかったんだよね。その確認でした。
(今のところまともな反論はないから「必要ない」かな?)
そもそも読み・書きを別のfopen(),flock()で行うのが無駄な処理なのに
そうする人が多いのが不思議。
0987nobodyさん
NGNGデータベースから抽出したデータ
\\5,600を (バックスラッシュは実際は半角
stripslashes(\\5,600) として出力してますが
本当は \5,600 と出力したいとです・・
文字コードはeucです
0988nobodyさん
2005/04/30(土) 00:12:29ID:???何を言いたいのか分からん。
円マークは、eucなどのマルチバイトの領域では無く、asciiコード(0x20-0x7e)の領域に含まれる。
(正確には、ISO646規格による日本独自の記号。)
eucだろうがjisだろうがsjisだろうが、\を出力するには(相手がうまく表示する事を期待して)0x5cを使うしか選択肢が無い。
0989nobodyさん
2005/04/30(土) 00:15:59ID:???0992nobodyさん
2005/04/30(土) 01:04:05ID:???0993nobodyさん
2005/04/30(土) 01:08:48ID:wZKX7Atjクラスメソッドを指定することは出来ないのでしょうか?
存在するクラスメソッドを指定しても
Argument 1 is not a valid callback
と言われます。
0994nobodyさん
NGNGそうしたいのですが、、
ereg_replace("\\", "¥", "//5,600")
とすると
Warning: ereg_replace(): REG_EESCAPE
というエラーがでてしますんです
0995nobodyさん
2005/04/30(土) 01:29:21ID:???>>646
<!-- チラシの余白
646を書いたのはオイラなのだけど、それを書くまでは元質問者が粘着してたのに
以降はレスどころか解決できたのかどうかさえ無いのは辛いな。。 -->
0996nobodyさん
NGNGありがとうございます!!
\\の場合は、REG_EESCAPEが出るので 最後に\があるのがまずい。
なにかつけなきゃいけないんだが、パターンの一部に組み込まれる文字だとまずい。
の文にときめきを感じました。
いけましたです
0997993
2005/04/30(土) 01:51:54ID:???気持ち悪いけど関数にしました
0998nobodyさん
2005/04/30(土) 07:30:00ID:???0999nobodyさん
2005/04/30(土) 07:30:45ID:???1000nobodyさん
2005/04/30(土) 07:31:23ID:MBOW+yPq10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。