【PHP】質問スレッドpart20【php】
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
04/08/06 15:44ID:paJ4kjjQ・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
抜けているものがあったら補足願います
0002nobodyさん
04/08/06 15:45ID:paJ4kjjQ【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/
0003nobodyさん
04/08/06 15:50ID:paJ4kjjQPear
http://pc5.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/
0005nobodyさん
04/08/06 16:59ID:???【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/
って2に書いてあるぞ、4よ
0006軟式PHP
04/08/06 17:03ID:8a2aplVU0008nobodyさん
04/08/06 17:21ID:MRWEjhxdおながいします
0009nobodyさん
04/08/06 17:30ID:zD2/bc5/たまに文字化けするってのにもうずっと悩まされています。
色々試しに修正いれても、
たまにしか文字化けしないので直ったかどうか分からず辛いです。
どうすればイイかの方法論を教えて欲しいです。
助けてください。
0010nobodyさん
04/08/06 18:19ID:???my.ini の設定
以下のふたつは設定しておくこと
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
ってことじゃないの?
あと影響しそうなのは
php.ini
magic_quotes_gpc = Off
とか?
表とか十とか申とか化けてない?
0011nobodyさん
04/08/06 18:28ID:???きちんと把握してから変更してね。
0012nobodyさん
04/08/06 19:12ID:???PHPの標準関数の中にはねぇな。
> Sorry, but the function checkauth is not in the online manual.
pearのAuthのやつなら pearのマニュアルのインストール部分を読んで入れれ
0013nobodyさん
04/08/06 19:37ID:???重複しますが、よろしくです。
/*前スレ990*/
$image_dir_path = dirname($image_path);/*元イメージ格納ディレクトリーパス*/
$mkdir_path = $image_path.$mkdir_name;/*サムネイルを作成するディレクトリーまでのパス*/
mkdir($mkdir_path , 0777);
chmod ($mkdir_path , 0777);/*←これが無いとmkdirでは755にしかならなかった、*/
で一応目的のディレクトリーを作ってサムネイルも作成できるのだけど
$mkdir_path へディレクトリーを作るにはその上層のディレクトリーのアクセス権を777にしないと
行けないので、mkdirの前にchownでchown($xxx , www);
としたけど、
chownするのはそのまた上層にwwwへのアクセス権777が必要みたい・・・
結局、サムネイルを作成するディレクトリーまですべてwwwをオーナにして777にしないと
いけない状態。。
どうすればいいんだろうか。。
0014nobodyさん
04/08/06 22:24ID:???0016nobodyさん
04/08/06 23:55ID:???0017nobodyさん
04/08/07 00:01ID:???グループは0にしとけ、マジで。
無料鯖はユーザーを同じグループにしてて普通に他人のディレクトリは入れるようなずさんなところあるから
どっちにしてもセキュリティのためにグループは0で
0018nobodyさん
04/08/07 00:21ID:???output_handler = mb_output_handler
と指定してもphpinfo()では"no value"となってしまいます。
mb_stringsを使いたいのですが、この項目は必要ないのでしょうか
0019nobodyさん
04/08/07 00:24ID:???カポコン04/08/07 00:13
04/08/07 00:13
>>11
文句があるなら、ココに言ってくれ。
思いっきり.NETバイトコードって書かれてるだろ。
http://japan.linux.com/opensource/04/04/26/0139204.shtml
ちなみにバイトコードとはネイティブコードの中間にあたるコードの事。
まーLinuxで.NETバイトコードって言われるゆえんは、LinuxOSに詳しい人間なら
分かるだろうけどね(ボクはまだ、マウス派だから分からないか?)
所詮、IT用語辞典関連の検索キーで調べた浅はかで唯々諾々とやってきただけの知識か・・・。
0020nobodyさん
04/08/07 00:25ID:???0021nobodyさん
04/08/07 00:37ID:???全然違う。
仮想コンピューター上でのコードのことであって、
中間というわけではない。
0022nobodyさん
04/08/07 01:04ID:???0023nobodyさん
04/08/07 01:09ID:???0025nobodyさん
04/08/07 14:27ID:???0026nobodyさん
04/08/07 17:26ID:I/AgGnLbご存知の方はいらっしゃいませんか?海外のでも構いません…。
ぜひ参考してみたいと思いますので、どうぞよろしくお願いします。
0027nobodyさん
04/08/07 21:00ID:???http://www.uploda.net/anonymous/etc2/upload25313.gif
こういう画像で(分かりにくいのですが左下を透過処理しています。)透過されてない部分の色を
任意の色に書き換えたいんですが可能でしょうか?
もし可能であればご教授お願い致します。
0028Tom
04/08/08 00:20ID:5rvsGlMW文字列をダブルクオーテーション内に書いたときは「"」を、シングル
クオーテーション内に書いた時は「'」をエスケープしなくてはなりませんが、
ダブル、シングルの両方エスケープする必要がある場合はどうしたら
よいのでしょうか?
例えば下記のようにJavaScriptのファンクションをコールするHTMLタグを
PHPで書き出して、このファンクションにPHPの変数を渡したい場合、
シングルとダブルクオーテーションの両方を使わざるを得ないと
思うのですが、このファンクションに渡される変数に例の$details1
〜3のようにシングル、ダブルクオーテーションの両方が含まれて
いると、いずれもエラーになってしまいます。
<?php
$details1 = "My friend's name is \"John\""; //ダブルクオーテーション内 ダブルのみをエスケープ
$details2 = ' My friend\'s name is "John"'; //シングルクオーテーション内 シングルのみをエスケープ
$details3 = "My friend\'s name is \"John\""; //ダブルクオーテーション内 両方エスケープ
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details1 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details2 \")' >";
echo "<input type='button' value='Show Details1' onClick='showDetails(\" $details3 \")' >";
?>
変数に' や"が含まれるのが避けられないケース(ユーザによる
フォーム入力値など)があると思うのですが、この場合皆さんはどう
処理されているのでしょうか?
ご教授よろしくお願いいたします。
0029nobodyさん
04/08/08 00:27ID:???俺の場合、それは頻繁に使うからこうしている
変換する文字列を簡単に拡張できるようにstrtrを使っているが別にstr_replaceで置換を使ってもいいと思う
/* HTML特殊文字変換 */
function htmlspecialcharsEx( $text ){
$translations = array(
"'" => "?",
);
return strtr( htmlspecialchars($text) , $translations );
}
同様に改行付き出力の為にprintlnも定義したりしている。
0030nobodyさん
04/08/08 00:28ID:???$translations = array(
"'" => "'",
);
0031Tom
04/08/08 01:51ID:5rvsGlMWなるほど!!!そうすればいいのですね!早速やってみます。
レス本当にどうもありがとうございました!
0032nobodyさん
04/08/08 03:00ID:F0zxfskV皆さんどうしてるんですか?
0033nobodyさん
04/08/08 03:06ID:???0034nobodyさん
04/08/08 03:11ID:F0zxfskV0035nobodyさん
04/08/08 03:25ID:???鯖だってフリーのhttpdがいろいろあるのに。
0036nobodyさん
04/08/08 03:30ID:F0zxfskV0038nobodyさん
04/08/08 12:25ID:???"sendmail_from" not set in php.ini or custom "From:" header missing
と出て送れませんでした。
php.iniの[mail function]は
SMTP = localhost または SMTP = xx.xx.com(普段使ってるメールのSMTP)
sendmail_from = xx@xxxx.xxxxx.com (普段使ってるメールアドレス)
で試しました。;は外してあります。Apacheも再起動しています。
telnetを試したところ、上記のメールアドレスとSMTPで正常に送信できました。
どこがダメなんでしょうか、誰か助けてください……
0039nobodyさん
04/08/08 13:04ID:zYHZKtONSMTP = xx.xx.comって中継を許可してんの?
ま、まさかねぇ・・・
SMTP = localhostって自分のPCでメールサーバーを動かしてるよね?
0040nobodyさん
04/08/08 13:28ID:???#define W32_SM_SENDMAIL_FROM_NOT_SET19
<win32/sendmail.c>
static char *ErrorMessages[] =
{"\"sendmail_from\" not set in php.ini or custom \"From:\" header missing"}, // 19
/* Fall back to sendmail_from php.ini setting */
if (mailRPath && *mailRPath) {
RPath = estrdup(mailRPath);
}
else if (INI_STR("sendmail_from")) {
RPath = estrdup(INI_STR("sendmail_from"));
} else {
if (headers) {
efree(headers);
efree(headers_lc);
}
*error = W32_SM_SENDMAIL_FROM_NOT_SET;
return FAILURE;
}
つーことは、sendmail_fromが設定されていないんでねぇの?
0041nobodyさん
04/08/08 13:29ID:???うう、たぶんそれです。
PHP関係ない部分でコケてたんですね…すいません。
正直なとこメールだのSMTPだの、よく知らないんで(PHP自体も、覚えたてでして)
エラー文とかをググって、出てきた方法を片っ端から試したんですが……
それ以前の問題ってことでしょうか。また調べてきます。
0042nobodyさん
04/08/08 13:42ID:???皆さんどうしてます?
0043軟式PHP
04/08/08 14:08ID:???0045nobodyさん
04/08/08 14:13ID:???0046Imo ◆.jC7ANgFY.
04/08/08 14:36ID:???必要ページ数 = ceil(記事数 / 1ページあたりの表示数)
計算はこんなところ。あとはrangeでも使ったりして。
0047nobodyさん
04/08/08 15:01ID:zYHZKtONごっそりデータを読み込んでから拾うしかないのだろうか。
良い方法を見つけた人いないですか?。
0049nobodyさん
04/08/08 15:25ID:zYHZKtONありません!。
投稿総数を保存しているのは当然の事だしなぁ。
カウンターにもっと高度なヒントが隠されているのでしょうが、
どんなヒントなのだろう。
私には思い付かないので教えてくださいm(_)m。
005038
04/08/08 15:48ID:???mail関数などで調べると、どこのサイトを見ても、
php.iniの SMTP = xx.xx.xxx と sendmail_from = xx@xx.xx
を自分の使ってるものにすれば、それで送れるようになる。
みたいに書いてあるんですが、勘違いなんでしょうか。それだけじゃダメなんですか?
0051nobodyさん
04/08/08 16:22ID:???0052nobodyさん
04/08/08 16:23ID:zYHZKtONSMTP = localhost
smtp_port = 25
というのは、localhost:25でMTA(メールサーバー)が稼働している
事が前提であってMTAが無ければ当然メールは送信出来ません。
他は、>>40を参照
0053nobodyさん
04/08/08 16:35ID:???GETの場合…$_GET['変数名']
これは普通の変数と何が違うんでつか?
0054nobodyさん
04/08/08 16:55ID:???0055nobodyさん
04/08/08 17:15ID:mbHx5JiBEUC-JP、Shift_jis、
どっちが一般的なんでしょう?
Shift_jis で使うのってナンセンス??
0056nobodyさん
04/08/08 17:28ID:???mbstring.internal_encoding = euc-jp
にするとメール送信フォームなんかのときに
再度、euc から shift_jisに変換する必要が出てくるんですよね?
0057nobodyさん
04/08/08 18:00ID:???かきくけこ
さしすせそ
仮に上のような複数行にまたがる文字列があったとして
「こ」を含む行全体(かきくけこ)のみを取得するには
どうすれば良いのでしょうか?
どうぞよろしくお願いします
005955
04/08/08 18:23ID:???shift_jis だと問題ありでしょうか?
0060nobodyさん
04/08/08 18:23ID:???内部コードはOSによる
・Windowsならshift-jis
・LinuxならEUC(FedoraはUnicodeらしいがよく知らん)
詳しくはここ
http://tsuttayo.sytes.net/php/char_trn/index.html
0061nobodyさん
04/08/08 18:33ID:???>>内部コードはOSによる
(! ̄д ̄)えぇぇぇ
それはちょっとおかしいだろ。
そもそも本家で配布されているWin用バイナリは--enable-zend-multibyteしてるんだっけ?
--enable-zend-multibyte付でコンパイルされてなかったらSJISを内部コードに出来なかったと記憶しているが。
006261
04/08/08 18:35ID:???スクリプトが--enable-zend-multibyteしていないとSJISは拙いんであって
internal_encodingは問題ないのか。。。
0063nobodyさん
04/08/08 18:41ID:???その方がいいと思うよ
0064軟式PHP
04/08/08 20:49ID:???いや、今年は行ってないな。周りから「色白すぎ」と言われる。
焼けても赤くなるだけのタイプ>俺
>>57
正規表現使うとか、改行で分割して判定して取得とか。
0065nobodyさん
04/08/08 21:34ID:???ttp://www.gta-series.com/eng/index.php
↑のサイトはどこでphpを使っているんでしょうか?
教えてください、お願いします
0067nobodyさん
04/08/08 21:45ID:???0068nobodyさん
04/08/08 21:48ID:Odqra96P0070Imo ◆.jC7ANgFY.
04/08/08 22:09ID:???$txt = <<<EOM
あいうえお
かきくけこ
さしすせそ
EOM;
$search = preg_quote('こ');
$txt = preg_grep("/$search/", explode("\n", $txt));
echo implode("\n", $txt);
0071nobodyさん
04/08/08 22:20ID:???あいうえお
かきくけこ
さしすせそ
EOM;
0072nobodyさん
04/08/08 22:23ID:???いやん
ばかぁん
えっちぃ
ERO;
0073nobodyさん
04/08/08 22:33ID:???0074nobodyさん
04/08/08 22:41ID:???preg 系は文字コードが UTF-8 で u オプションを使用するときだけにした方がいい。
その例で、文字コードが EUC-JP の場合、「修学旅行」という文字が含まれていても引っかかる。
0075nobodyさん
04/08/08 23:22ID:Odqra96Pその変数をfor文を使って初期化したいです。
for($i=0; $i<10; $i++)
$data$i = "abc";
これだと、エラーで動きません。
どこを修正したらいいでしょうか?
0076nobodyさん
04/08/08 23:29ID:???0078nobodyさん
04/08/08 23:31ID:???${"data".$i} = "abc";
007975
04/08/08 23:32ID:Odqra96P0080nobodyさん
04/08/09 00:07ID:???0081軟式PHP
04/08/09 00:54ID:???008278
04/08/09 01:30ID:???0083nobodyさん
04/08/09 02:15ID:???どーでも良いが、0から10まで作りたいなら
for ($i=0;$i<=10;$i++) じゃないのか?
>>78
なんでだろ?
0084nobodyさん
04/08/09 02:47ID:???<?php
$name = "山田";
$_GET ["name"];
print $_GET;
?>
実行結果「Arrey」
$_GETの使い方教えてください・・・
008684
04/08/09 03:13ID:???0087nobodyさん
04/08/09 03:13ID:???0089nobodyさん
04/08/09 04:15ID:???○ o ○ ○ 「ママー夏過ぎるよ」
○`「「「l
\. V7 r‐、
____`o ○ | |. >、,>
// |O。゚-ト、. | | |
.//| /(・) ∩ |o. | | | /\ | |
|//| | | | | / | | ̄`l /\
|//| (・) \_| |─/ /く | / r、/`ーっ
|// \ | / / | \/\/ `ー'"
|/ ヽ__ // / | /
mn____|___r──l__/ | /
ヽ_______|__ノ────' ──''"
0090軟式PHP
04/08/09 09:13ID:???<?php
print 'GET:' . $_GET['name'] . '<br>' .
'<a href="'.$_SERVER['PHP_SELF'].'?name=山田">山田クリック</a><br>';
?>
0091nobodyさん
04/08/09 09:26ID:???<?=$_GET["name"];?>
軟式軟式。私も真っ白。
0092Imo ◆.jC7ANgFY.
04/08/09 10:44ID:???ついついpregしか使わない癖があってorz(perlから入ったからかなぁ、、、
ereg_replace_callbackみたいなのがあったら移りやすいのだけど…。
>>90
rawurlencodeをして渡したほうがいいのでは?
ブラウザによっては日本語をUTF-8に変換して取得しようとするから、
0093nobodyさん
04/08/09 11:04ID:???そのた制限ありますかね?
〜だと全く変換されないとかっての
$conv = mb_convert_kana($str, 'asHVc');
0094軟式PHP
04/08/09 11:13ID:???確かに。スマンカッタ。GETで直接日本語を渡す機会が殆ど無かったから忘れてた。
そういえばHDMLのFORM構文の初期値に日本語を入れる場合もurlencodeしてたなぁ。
初心者にはエンコ無い方が分かりやすいかもしれないからユルシテ。・゚・(ノ∀`)・゚・。
0095nobodyさん
04/08/09 11:46ID:lYQyr6Nk配布されているところって知らないかい?
0096nobodyさん
04/08/09 12:07ID:???0097nobodyさん
04/08/09 12:14ID:???まぁその前にSQLを全然知らないみたいだが
0098nobodyさん
04/08/09 13:48ID:???それを DB に落とし込むのは日本各地で車輪の最発明は無駄だよね。
あと、郵便番号は更新しないといけないし。
大学のデータとかもどこか SOAP や XML-RPC とかで提供しないかな。
0099nobodyさん
04/08/09 14:00ID:???0100nobodyさん
04/08/09 14:32ID:???Class関連の使い方はだいたい分かるのですが、
実際に使っていきたいのですが、
どうもとっかかれなくて、書籍もJAVA関連になるので躊躇ぎみで、
こんなところから、とっかかればいいよ、などなど
アドバイスを頂ければと思っています。
宜しくお願いします。
0101nobodyさん
04/08/09 14:35ID:???まずは言語とは無関係にオブジェクト指向が何かを学ぶことをお勧めします。
0102軟式PHP
04/08/09 16:21ID:???Class使えればオブジェクト指向と思ってる100君には
「オブジェクト脳のつくり方」でも読んでみるといいかも。
0103軟式PHP
04/08/09 16:36ID:???憂鬱なプログラマのためのオブジェクト〜も読んでみれ。・゚・(ノ∀`)・゚・。
0104nobodyさん
04/08/09 17:00ID:GoEzAwXJarray_uniqueを使うと、配列から重複した値を削除しますよね。
もし、重複した値を残したければどう処理すればよいでしょうか?
それ専用の命令はありますか??
0105nobodyさん
04/08/09 17:06ID:???0106軟式PHP
04/08/09 17:14ID:???$array1 = array("1","2","3","3","4","4","5","6","7","8","8","9");
$array2 = array_unique( $array1 );
$array3 = array_diff_assoc( $array1, $array2 );
print_r( $array3 );
?>
0108nobodyさん
04/08/09 18:06ID:GoEzAwXJありがとうございました。
array_diff_assocという関数があるのは始めて知りました・・・。
0109nobodyさん
04/08/09 19:11ID:???0110nobodyさん
04/08/09 19:27ID:w1W9HQhoclk(this,'res',15)
(15は正の整数でいろいろ変わる)
という文字列がたくさん含まれている文字列$contentsに対して、
preg_match_all("/,([0-9]+)/",$contents,$matches);
とやると数字がとれるのですが、
preg_match_all("/',([0-9]+)/",$contents,$matches);
や
preg_match_all("/\',([0-9]+)/",$contents,$matches);
とすると数字がとれません。なぜなのでしょうか?
0111nobodyさん
04/08/09 19:59ID:???0112110
04/08/09 20:28ID:???0113110
04/08/09 20:34ID:???でもひっかかりません。ということは、
なにか根本的な勘違いをしてるのでしょうか・・・?
0114nobodyさん
04/08/09 20:44ID:1E04QFET0115110
04/08/09 20:47ID:???0116nobodyさん
04/08/09 21:05ID:lYQyr6Nkリスティング
個別ページ
検索機能
htmlテンプレート
を作りたいが、どこからやればよいか・・・
参考になる本・サイトはありますか?
0117nobodyさん
04/08/09 21:13ID:???2.リスティング
3.検索
4.個別ページ
0.PHP
0118nobodyさん
04/08/09 21:13ID:1E04QFET機能だけ列挙したって意味がない
何が作りたいのかきちんと書け
0119nobodyさん
04/08/09 21:16ID:???0120nobodyさん
04/08/09 21:21ID:???UserAgentは「-」となっているみたい
(確認しました)ですが、
これを任意の文字列に変える方法はありますでしょうか?
0121nobodyさん
04/08/09 21:53ID:???検索してみたんですがそのまま表示するだけの解説しか見つからなくて・・・
よろしくお願いします。
0122nobodyさん
04/08/09 22:11ID:???ホントに検索したのか?!
http://www.php.net/manual/ja/function.imagejpeg.php
012468
04/08/09 22:28ID:Wd+U0VKlコメントをこれ以上長くすると、表示がおかしくなってしまいます。
<?php
// ファイルから読んでいくよ
$fp = fopen("./test.txt","r");
for(;;){
// ファイルから一行読み込む
$line = fgets($fp);
if($line == null)
break;
list($ban,$com) = explode("<>", $line);
// 読み込んだ行を出力する
print "<H4>番号:$ban</H4>";
print "<P>コメント:$com</P>";
}
fclose($fp);
?>
012568
04/08/09 22:31ID:Wd+U0VKlttp://rivernet.cool.ne.jp/upmini/200408a/20040809223111_.txt
0126nobodyさん
04/08/09 22:49ID:???即興で書いてみた。
<?php
$fp = @fopen("./test.txt","r") or die("File open failed");
print("<dl>");
while( ($s = fgets($fp)) != null ){
list($ban,$com) = explode("<>",$s);
print("<dt>{$ban}</dt>");
print("<dd>{$com}</dd>");
}
print("</dl>");
fclose($fp);
?>
0128nobodyさん
04/08/09 23:03ID:uySv1+mCは?頭悪いの?
012968
04/08/09 23:06ID:Wd+U0VKlこれでも駄目です。
0130Imo ◆.jC7ANgFY.
04/08/09 23:54ID:???どういう風に表示されるのか今ひとつわからない。
たぶん、テキスト表示に変わるのかなぁと思ってレス。
もしそれならIEのファイルタイプ自動判断の閾値を超えたのだと思う。
文書に対してタグの割合がある値より少なければテキスト、多ければHTMLと
表示するようになっている。(ちゃんと指定していれば別
要するにHTMLヘッダーをちゃんと書くべきだということ。
文字化けの場合もちゃんとMETAタグを書けば直るし?
0131nobodyさん
04/08/10 00:12ID:???1回のfgetsで行の最後まで読まないから、とか?そういう話?
それならば。
fgetsは行末まで読むとは限らない。
第2引数の指定と、読み込んだデータの最後が改行かどうかのチェックをやる。
って、これじゃなかったらスマソw
0132nobodyさん
04/08/10 00:47ID:???何がどうなのか説明もできないのか?
0133nobodyさん
04/08/10 01:22ID:cuHg/9mk例えば、グラビアアイドルのデータベース検索ページを作るとします。データベースはmysql4.0.20、PHPは4.3.7です。
やりたい事は、フォーム(form.html)からチェックボックスにチェックを入れてもらい、その結果をPHP(search.php)で表示する事です。
form.htmlのフォーム部分
<form action="search.php" method="get">
<!-- 年齢 -->
<table>
<tr>
<td><input type="checkbox" name="age[]" value="19">10代</td>
<td><input type="checkbox" name="age[]" value="20-24">20〜24歳</td>
<td><input type="checkbox" name="age[]" value="25-29">25〜29歳</td>
</tr>
</table>
<!-- バスト -->
<table>
<tr>
<td><input type="checkbox" name="bust[]" value="79">〜79cm</td>
<td><input type="checkbox" name="bust[]" value="80-89">80〜89cm</td>
<td><input type="checkbox" name="bust[]" value="90">90cm〜</td>
</tr>
</table>
<input type="submit" value="検索">
<input type="reset" value="リセット">
この結果をsearch.phpで表示させるにはどうすれば良いでしょうか?
ちなみにsearch.phpはデータベース接続、動的データ取得は可能となっています。
ただ、現在はチェックボックスの検索機能が効かない為、全データが表示されてしまいます。
恐らく、チェックボックス『value="20-24"』がチェックされたら
search.phpでsql文『SELECT * FROM MyDB WHERE age >=20 AND age <=24』が
実行されれば良いのではないかと思うんですが、そのやり方をどなたか教えて下さいませ・・・。
0134nobodyさん
04/08/10 01:36ID:???・・・。夏だね。
switch ($_GET['age']) {
case "19": $sql="age < 20";break;
case "20-24" : $sql="age >=20 and age<=24";break
case "25-29" : $sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;
めちゃくちゃ単純に書いてみた。(これだと問題ありすぎなのはわかってるけどツッコまないで>エロイ人)
これ以上は自分で考えて。
考えられないなら、オマエには向いていないから諦めたほうが良いと思う。
0136133
04/08/10 02:17ID:???早速のお答え、ありがとうございます。
なるほど、caseを使うやり方ですか・・・。
私はてっきり、if〜文で作るのかと思ってました。
しかし難しいですね。なんかアナタのおっしゃるとおり、諦めかけてます・・・
0138133
04/08/10 02:35ID:???仲間内の中では自分が一番知ってるんですよw
いきなり専門外のPHPによるデータベース検索を作らなくてはならなくなったので、
このように四苦八苦している訳です。
perlのcgiみたく、フリーのサンプルスクリプトが全然無いので困ってしまいます。
「PHPによるWebアプリケーションスーパーサンプル」って本も買ったんですが、
私のやりたいようなサンプルがありませんでした。
ネット検索してやっとPHPサンプル見つけても、大体が掲示板とかなんですよね。
まだまだ先は長そうです・・・。
0139nobodyさん
04/08/10 02:47ID:???if ($_GET['age'] == "19") {
$sql="age < 20";break;
}elseif($_GET['age'] == "20-24") {
$sql="age >=20 and age<=24";break
}elseif($_GET['age'] == "25-29") {
$sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;
どこが分からないか分からないけど、
サンプルイジルヨリMySQL+PHPの入門書をサラッとやったほうが、
結構なんとかなると思うよ。がんがれ。
0140nobodyさん
04/08/10 02:50ID:???0141134
04/08/10 02:56ID:???誤字までコピペしなくても・・・
fomって何だよw
・・・あ、俺だ
>>138
専門外って何だよ
ってか、ifを知っていて何でこの処理がわからないんだ??
0142133
04/08/10 03:22ID:???そうそう!最初はそのようにif〜文で記述するんだと思ってた訳です。
確かに134氏の記述はシンプルで良いと思いましたが。
実はMySQL+PHPの入門書はスペンサー・K・OGAWA著の本を持っています。
それにも欲しいサンプルが無かくてそのままにしていたので、
これを機に読み返してみようと思います。
>>134=141
自分はプログラマーでは無い、という意味の専門外という意味です。
コードがシンプルで分かりやすいので、アナタの提案してくれた
caseを使った記述を参考にやってみようと思います。
色々ありがとうございました。
スレ汚し失礼しました。
0143nobodyさん
04/08/10 03:33ID:???Perlで自分の使いたいようなサンプルがあるなら、
それみて(パクって)コーディングした方が早いよ。
caseのデフォルトで何も値が取れなかったときに
$sql="1=1"とでもしとくのが吉。まあwhere条件外すのが正解だけど。
それよかその場合は検索を弾くのが正解かな。仕様がわからんけど
0144軟式PHP
04/08/10 09:09ID:???0145nobodyさん
04/08/10 09:13ID:???0146nobodyさん
04/08/10 11:07ID:???$data = ereg_replace("A", "a", $data);
$data = ereg_replace("B", "b", $data);
↓
$data = ereg_replace("Z", "z", $data);
という(アナログ的な?)方法を使っています。
もっと短くて済む表現はないでしょうか。
本や過去ログ見たり検索しても全然見つからなくて・・・。
初心者な質問ですみません。
0147nobodyさん
04/08/10 11:11ID:???0149nobodyさん
04/08/10 11:40ID:???本当に検索したのか疑問だけど。
$data = strtolower($data);
ttp://jp.php.net/manual/ja/function.strtolower.php
0150nobodyさん
04/08/10 12:08ID:5BcnoGGN動的にグラフをつくりたいのですが、なんとかgifを生成できないものですか?
0151146
04/08/10 12:26ID:???>>147
それやったんですが
$data = 'ABC';
とやると
[a-z][a-z][a-z]と返ってきてたんですよ。
>>149
てっきりereg_replaceだと思い込んでました。
ググっても正規表現関係しか出てこなかったんだけど何かいい検索法とかあるんでしょか。
0152軟式PHP
04/08/10 12:46ID:???0153nobodyさん
04/08/10 12:48ID:???0154軟式PHP
04/08/10 12:55ID:???0156nobodyさん
04/08/10 13:16ID:???文字列の操作についてなにか調べたかったら、
文字列関数をチェック
http://jp.php.net/manual/ja/ref.strings.php
その他、ここからそれっぽいところを探す。
http://jp.php.net/manual/ja/funcref.php
確かにちょっと慣れるまでマニュアルの有効利用ってできないのかも。
0157nobodyさん
04/08/10 13:18ID:???ライセンス切れたから、そろそろimagegifが使えるようになるかも。
もう使える??
ライセンスの問題でgifは使えなくなったんだ。
0158nobodyさん
04/08/10 13:38ID:???0159軟式PHP
04/08/10 13:40ID:???2.0から普通に使えるようになったんじゃないの?
0160nobodyさん
04/08/10 13:58ID:???0161nobodyさん
04/08/10 14:01ID:???4.3.7 で 2.0.23 になったばかりみたいだから。
次のバージョンぐらい?
http://www.php.net/ChangeLog-4.php
0162nobodyさん
04/08/10 14:02ID:???gifにICCプロフィールが埋め込み出来るってのなら別だけど。
0163軟式PHP
04/08/10 14:10ID:???「よっしゃ、広まったところで金取るかーー」っていうのが丸見えで萎え。
0164nobodyさん
04/08/10 14:18ID:???pngも24にすれば屁たれIEでもなんとか透過できるし。
0165nobodyさん
04/08/10 15:51ID:???0168nobodyさん
04/08/10 19:32ID:???0169nobodyさん
04/08/10 19:45ID:???あったよ
http://www.nttdocomo.co.jp/p_s/imode/tag/s3.html#3_6
0170nobodyさん
04/08/10 20:19ID:???対応する気がないみたいだから、まぁ当分はgifかな・・・。
つうか、何故ドコモはPNGに対応しないんだべ。技術不足?
0171nobodyさん
04/08/10 20:27ID:???imodeの昔の端末はGIFでないとダメ
逆にJ-skyの昔の端末はPNGのみ
仕方が無いのでJPEGで吐き出してる
これも一部端末で見られないけど、
最近のはカメラ対応の関係で見られたりするんで
0174nobodyさん
04/08/10 21:43ID:???0175nobodyさん
04/08/10 22:41ID:???全然わかりません。
ゲームの攻略サイト作りたいんだけど、php必要ない?
どこにphpを使ったらいいのかわからんのよ
0178nobodyさん
04/08/10 22:52ID:???まぁゆっくりマンモス本でも眺めてみたらどうだろうか
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
0179nobodyさん
04/08/10 22:56ID:???ヘッダーとかフッターとか、同じリンクボタンで複数のページに登場するときとか
phpでやると楽ですよ。
metaも全部のページに書かないでもいいので楽。
0182nobodyさん
04/08/11 00:27ID:???0183nobodyさん
04/08/11 00:41ID:2sgdWAV8ファイルに出力するときって何を使えばいいのでしょうか?
普通に一つずつテキストとして出力するんじゃ駄目ですよね。
どうもDOM関係の資料が少なくて困ってます。
ヒントでもいいので教えてください。
0184nobodyさん
04/08/11 00:45ID:???結構詳しい資料を発見した。
http://broadband.ocn.ne.jp/gmms/dom.html
0186165
04/08/11 11:36ID:???GIF でないと表示できない端末があるっつーことは、GD の GIF 対応も
うれしいかな。端末によって表示できないのは可哀想だし。
0187nobodyさん
04/08/11 11:51ID:???require_onceで他サーバにあるライブラリ等を読込事は出来ないのでしょうか?
ini_set('include_path','http://******')
で変更しても上手く出来ないです。
ご教授下さいます様お願い致します。
0189nobodyさん
04/08/11 11:57ID:???0191nobodyさん
04/08/11 12:04ID:m7sM3Cg8実行形式である限り結果しか読み込めない
読み込めたら面白いが問題山積み
今日は更に暑くなりそうだね
0192nobodyさん
04/08/11 12:05ID:???0193nobodyさん
04/08/11 12:34ID:???ライブラリを置いている鯖がtext/plainとして吐いてくれればの話だが。
0194193
04/08/11 12:35ID:???0195軟式PHP
04/08/11 12:54ID:???0197nobodyさん
04/08/11 13:53ID:???include ('http://example.com/lib.php');
は出来るワケだが。
require_once は知らない。
あと出来ない方がいいってのも事実。safe_mode で運用しような。
0198nobodyさん
04/08/11 14:00ID:???0199187
04/08/11 14:25ID:???行いたかったのはエラーの関数等を読み込んで
結果を別のPHPで行いたかったのです。
しかしそれが出来たら怖いですよね…
勉強が足りないです。ありがとう御座いました。
0200軟式PHP
04/08/11 14:52ID:???他サーバーってのがよく分からんのだが。
0201nobodyさん
04/08/11 14:54ID:???言ってるのだろうから、素直にコピーしたら良いのでは?
0202軟式PHP
04/08/11 14:57ID:???0203nobodyさん
04/08/11 14:59ID:???あった場合なら出来そうな気がするのですが、それは先読みし過ぎだろうか^^;
LANで接続されている環境であれば共有したい事もあるだろうしね
0204nobodyさん
04/08/11 15:02ID:zEQw5zg8引き出してます。
が、あぽーのメーラーは、メールに画像を添付した場合、multipartのひとつ
のpartがmultipartになってます。
multipartのネスティング状態です。
その中に、プレビュー用のパートと画像本体のパートに別れているようです。
$decode1 = new Mail_mimeDecode( メール全体 );
でPart1/Part2/Part3とデコードできるのですが、
Part3がmultipartだったばあい、どうやってでこーどすればいいのでしょう?
$decode3 = new Mail_mimeDecode( Part3のbody );
とやっても、mime decodeしてくれません。
よろしくおながいします。
0205軟式PHP
04/08/11 15:03ID:???0207nobodyさん
04/08/11 17:28ID:???と、いっても全文検索みたいな高度なものではないです。
ひとまず実現したいのは・・・
1. スペース区切りの場合はスペースで単語を分割
2. ダブルクォーテーションでくくられている場合は、その間のスペースは文字扱い
1だけなら explode() を使えばいいんですが、
2も実現するためにはどうしたらいいでしょうか?
例)
あああ いいい ううう
→ "あああ" と "いいい" と "ううう" に分割
あああ "いいい ううう" えええ
→ "あああ" と "いいい ううう" と "えええ" に分割
スペースもダブルクォーテーション括りも複数可で。
0208nobodyさん
04/08/11 17:31ID:???0209nobodyさん
04/08/11 17:39ID:Ad++av00よろしくお願いします。
$fp = fopen("xx.txt","a+");
fputs($fp,"あああああ");
でテキストファイルに何か文字列を書き込む場合、モードが
a+になってるのでファイルが無かったら自動で作成するはずですよね?
事実、ローカルで試したら作成してくれたのですが、Web上で試そうと
思ってPHPが実行できる無料スペースにUPしたところ、エラーが出て書き込め
ませんでした。
テキストファイルを先に自分で用意しておくと書き込みが成功しました。
なぜ、ローカルではうまくいってWeb上ではうまくいかないのでしょうか?
サーバーの仕様とか、そういう問題なのでしょうか?
こんな質問で申し訳ありませんが分からないので教えてください。
0211nobodyさん
04/08/11 17:44ID:J4D7ZMSzjpegにICCプロファイルの埋め込みって出来ないもんですかね。
webで見ると全然色が違うので。
分かる人居ませんか。
0212nobodyさん
04/08/11 17:45ID:???0213nobodyさん
04/08/11 17:47ID:???ありがとうございます。
例)
あああ "いいい えええ ししし" ううう えええ "search text"
Array
(
[0] => あああ
[1] => いいい えええ ししし
[2] => ううう えええ
[3] => search text
)
なかなかいい感じなんですが、
最初に ダブルクォート で explode() しちゃうと、
[1] と [2] の区別がつかなくなっちゃいますね・・・。
0214nobodyさん
04/08/11 18:13ID:???$str = 'あああ "いいい えええ ししし" ううう えええ "search text"';
$str2 = explode(" ",$str);
$count = count($str2);
unset($str);
$flag = 0;
$j = 0;
for ($i=0; $i<$count; $i++) {
if( mb_ereg("(^\")",$str2[$i]) ){
$flag = 1;
$str[$j] = $str2[$i];
}
else if ( $flag==1 && !mb_ereg("(\"$)",$str2[$i]) ) $str[$j].=" ".$str2[$i];
else if ( $flag==1 && mb_ereg("(\"$)",$str2[$i]) ) {
$str[$j].=" ".$str2[$i];
$j++;
$flag=0;
}
else {
$str[$j] = $str2[$i];
$j++;
}
}
foreach($str as $key => $value) echo "\$str[".$key."] = ".$value."<br>";
0215nobodyさん
04/08/11 18:28ID:???__$1__ がとてもいけてない。
$text = 'あああ "いいい えええ ししし" ううう えええ "search text"';
$text = preg_replace("/\"([^\"]+)\"/", "\"__$1__\"", $text);
$quote = explode("\"", $text);
$list = array();
foreach ($quote as $item) {
if (preg_match("/^__(.+)__$/", $item, $arr) != 0) {
$list = array_merge($list, $arr[1]);
} else {
$list = array_merge($list, explode(" ", $item));
}
}
for ($i = 0 ; $i < count($list) ; $i++) {
$list[$i] = trim($list[$i]);
if (strlen($list[$i]) == 0) {
array_splice($list, $i, 1);
}
}
print_r($list);
0216nobodyさん
04/08/11 21:17ID:???allow_url_fopenを有効にするしかないのでしょうか?
0217>>213
04/08/11 22:18ID:???$words = array();
if( preg_match_all('/("[^"]*(?:\\"[^"]*)*?"|\S+)(?:\s|$)/',$str,$m) ) {
if( is_array($m[1]) ) {
foreach($m[1] as $tmp) {
$tmp = preg_replace('/^"(.*)"$/','$1',$tmp);
$tmp = preg_replace('/\\\\"/','"',$tmp);
array_push($words,$tmp);
}
}
}
print_r($words);
バグ入ってないかな・・・確認求む
入れ子のケースは簡単そうでとても難しい
文字の出てくる順序を気にして考えるとよいよ
0218nobodyさん
04/08/11 23:33ID:UR02D5bFこれだとうまくいきません。
if($file == 20..00)
どのように変更したら良いのでしょうか?
0219nobodyさん
04/08/11 23:50ID:???0220nobodyさん
04/08/12 00:34ID:???0221nobodyさん
04/08/12 00:36ID:???0223nobodyさん
04/08/12 01:07ID:???0224nobodyさん
04/08/12 01:18ID:???0227nobodyさん
04/08/12 08:44ID:aDJWVDD6localとglobal...プログラミングのアロハでつね
0228nobodyさん
04/08/12 09:35ID:???headder "Location:index.html";
だっけ?
0229nobodyさん
04/08/12 10:02ID:???/public_html/fairy/data/clist.cgiまで飛ぶのに
.../data/clist.cgiじゃだめなのか?
0230nobodyさん
04/08/12 10:03ID:???0231229
04/08/12 10:07ID:???にしたのに、
Warning: file(): Unable to access .../data/clist.cgi in /virtual/drk/public_html/fairy/page/item/touroku.php on line 177
だって;;
だめだ_| ̄|○
0232nobodyさん
04/08/12 10:09ID:???../../data/clist.cgi
0233229
04/08/12 10:11ID:???おお、あり!
どうやら.../はCGIしか無理だったようだ・・・
$time = data("Ymd");
にするとエラー出るぽウワァァァァァン
Call to undefined function: data()
0234nobodyさん
04/08/12 10:12ID:???0235nobodyさん
04/08/12 10:13ID:???0236229
04/08/12 10:18ID:???スマ、あほな間違いだった&ありがと
間違え探し
$all = file($slist);
$yoyaku = "";
$count = count($all);
$put = implode(",", array($id,$item,$syurui,$str,$dex,$def,$luck,$taikyu,$plusa,$plusb.$plusc,$kazu,$memu,$comment,$time,$yoyaku));
$fp = fopen($all,"w");
flock ($fp,LOCK_EX);
rewind ($fp);
fputs($fp,"$put\n");
for ($i=0;$i<=$count ; $i++){
fputs($fp, $all[$i]);
}
flock ($fp,LOCK_UN);
fclose($fp);
データが書き込まれないぽ
0237軟式PHP
04/08/12 10:22ID:???0238229
04/08/12 10:32ID:???間違い見つかったので糸冬キボン
0239nobodyさん
04/08/12 10:33ID:???$fp = fopen($all,"w");
$fp = fopen($slist,"w");じゃないの?
0241nobodyさん
04/08/12 10:55ID:???特に気を付けなければならない点はなんしょうか?
0242nobodyさん
04/08/12 11:28ID:I9M6Mw7p0243軟式PHP
04/08/12 11:36ID:???DB使ってるならトランザクションとか気をつければいいんじゃないかな。
てか、漠然としすぎてて答えようが無いっす。
>>242
http://php.s3.to/man/ref.mysql.html
マニュアル見る事に慣れよう。モロ載ってるから。
0244nobodyさん
04/08/12 11:41ID:???0245242
04/08/12 11:51ID:I9M6Mw7pうーんわからん
mysql_field_seekのことか?
0246nobodyさん
04/08/12 11:54ID:a319dClm$_ENV['HTTP_REFERER']
で宜しいのでしたっけか?
0247nobodyさん
04/08/12 11:56ID:???if ($yoyaku != ""){
$color = '#cccccc';
}else{
$color = '#ffffff';
}
で、$colorが#ccccccになります。なぜでしょうか
0248247
04/08/12 12:13ID:???0250nobodyさん
04/08/12 12:26ID:aDJWVDD60252nobodyさん
04/08/12 12:48ID:???0253nobodyさん
04/08/12 12:52ID:???検索すれば一瞬で分かることすらやろうとしない。
0254nobodyさん
04/08/12 12:55ID:???って言い方がマジ腹立つわw
0255軟式PHP
04/08/12 12:56ID:???これ良いな。俺も使わせてもらおう。的射すぎw
0256軟式PHP
04/08/12 12:57ID:???次スレはこれにケテーイ
0257nobodyさん
04/08/12 13:19ID:???みたいにifの中にif入れられないのかな〜
検索システム勉強中なんだが・・・
0259242
04/08/12 13:27ID:???0260nobodyさん
04/08/12 13:28ID:???0261nobodyさん
04/08/12 13:28ID:???したいことは
if( ($syurui2!="") && ($syurui==$syurui2) )
なんじゃないかな、と予想してみる
0263nobodyさん
04/08/12 13:38ID:???0264nobodyさん
04/08/12 13:41ID:???list (jA,jB,jC)(ry
を読み込む
$joukenAとjAを比較して同じ、joukenBとjBを比較して同じ、joukenCとjCを比較して同じだったらTRUE
&joukenAが空白ならjoukenA以外を比較して同じならTRUEとやりたいんだ
0265264
04/08/12 13:42ID:???0266nobodyさん
04/08/12 14:02ID:aDJWVDD6ワラタ
0267nobodyさん
04/08/12 14:03ID:???0268nobodyさん
04/08/12 14:10ID:???list($JA,$JB,$JC);
if($JA != $jyoukenA){continue;}
if($JB != $jyoukenB){continue;}
if($JC != $jyoukenC){continue;}
else{TRUE;}
こんな感じかなぁ?
0270nobodyさん
04/08/12 15:14ID:TRKJBK110271nobodyさん
04/08/12 15:26ID:???外部プログラムとしてsudo等を使うか、
特定の場所に置いたファイルをcronで定期的に確認させて変更するか、
方法はいくらでもあるが本当に一つも思いつかなかったのだろうか?
0272nobodyさん
04/08/12 15:57ID:???何卒宜しくお願いします。
0275軟式PHP
04/08/12 16:10ID:???昔、分割ファイル+結合するexeを吐き出すプログラム作った時は
ファイルの読み込み位置をずらしながら一定の量を取得しつつ分割していったよ。
一気に読み込んで分割すると何かOSの挙動がメモリ不足になったり変になった。
PHPで作る場合もそんな感じで分割読み込みしていったほうがいいと思う。
0276272
04/08/12 16:13ID:???やっぱり出来ますよね。
freadあたりを使えばいいんでせうかね。
0278270
04/08/12 17:57ID:TRKJBK11レスありがとうございます。
とりあえず、cron.confというファイルを作って
<?php
system("/usr/bin/crontab cron.conf");
?>
としてみました。エラーは出てこず、通常終了(0)でした。
しかし、crontab -l としても結果が反映されていませんでした。
コンソールから crontab cron.conf とすると反映されます。
system()関数自体は使えていますし、パスもあっていると思います。
なにがいけないのかサッパリorz
cron.confの中身は
10 * * * * w
です。
0279nobodyさん
04/08/12 18:00ID:???0280270
04/08/12 18:07ID:TRKJBK11FTPのログインID(SSH)と同じユーザです。
0281nobodyさん
04/08/12 18:21ID:TRKJBK11$php cron.php
とやると反映されていました…
0282nobodyさん
04/08/12 18:31ID:???0283nobodyさん
04/08/12 19:02ID:???0284nobodyさん
04/08/12 20:27ID:???0285nobodyさん
04/08/12 21:02ID:???僕もがんばってPHP勉強しようと思います。
分からないところがあればまた聞くかもしれませんけど、その前に
なるべく自分で調べますので、その時はよろしくお願いします。
ではでは・・・。
0287nobodyさん
04/08/12 21:52ID:oR5u/X7X$AB = new ABC;
と
$AB =& new ABC;
というのがあるんですけど違いはなんですか?
0288nobodyさん
04/08/12 22:03ID:???プロキシを使ってる場合は、プロキシサーバーから
「俺はプロキシだよ」ってな情報を送ってくるから
それを取得する。
ただ、そういう情報を送ってこないサーバーもあるから、
そういう場合はIP単位やホスト単位で個別に弾くしかない(いわゆる匿名串)
俺が実際使ってるコードを載せておく。場合によってはプロキシじゃない
ものを弾いちゃうこともあるので、あんまりきつく制限しない方がいいよ。
詳しくはGoogleとかで検索してね。結構出てくるよ。
0289nobodyさん
04/08/12 22:04ID:???// プロキシからアクセスしているか
//-------------------------------------
function is_proxy_access(){
//サーバー変数のキー
$server_keys = "";
foreach ($_SERVER as $key => $value)
$server_keys .= $key.",";
//プロキシと思われる変数
$proxy_keys = "HTTP_CACHE_INFO|"
. "HTTP_CLIENT_IP|"
. "HTTP_FORWARDED|"
. "HTTP_PROXY_CONNECTION|"
. "HTTP_SP_HOST|"
//. "HTTP_TE|"
. "HTTP_VIA|"
. "HTTP_X_FORWARDED_FOR|"
. "HTTP_X_LOCKING|"
. "HTTP_XROXY_CONNECTION|"
. "HTTP_XONNECTION";
0290nobodyさん
04/08/12 22:04ID:???if (preg_match("/($proxy_keys)/i", $server_keys)) return TRUE;
//UserAgentでの判定
if (preg_match("/(via|proxy|anonym)/i", @$_SERVER["HTTP_USER_AGENT"])) return TRUE;
//リモートホストでの判定
if (preg_match("/(anonym|cache|delegate|^dns|keeper|^ns.|proxy|^www)/i", @$_SERVER["REMOTE_HOST"])) return TRUE;
//規制しない
return FALSE;
}
改行が大杉とか言うエラーが出るから分割した。
もうね、アホか馬鹿かと
0291nobodyさん
04/08/12 23:42ID:K+6vy8Mq続きのHTMLを表示するプログラムを作りたいのですが、終了させる方法がわかりません。
〜〜
<?php
while(1){
$fp = fopen("$logfile","r");
if($fp == false)
break;
}
?>
〜〜
だとWarningメッセージが表示されます。Warningメッセージを表示させないで終了させる方法ってありあすか?
0292291
04/08/12 23:44ID:K+6vy8Mq0293nobodyさん
04/08/12 23:48ID:???0294nobodyさん
04/08/13 09:26ID:???ttp://www.pat.hi-ho.ne.jp/dimension/inst/
0295nobodyさん
04/08/13 10:18ID:???知りませんか?
PHPユーザ会のページにも見当たらないし・・・。どこで登録とかしたらいいんだろう。。
本当に開催するんですよね?
0296nobodyさん
04/08/13 11:06ID:???おおお。なんかうまくいってますね。
preg_match_all のところの正規表現が理解できないので、
調べてから使います。
ありがとうございます。
0298nobodyさん
04/08/13 11:47ID:???大変初歩的な事とは思いますが、検索してもなかなか見つからなかったので
こちらで質問させて頂きます。
場違いな質問かもしれませんが、ご教授して頂けると有難いです。
$_SERVER['HTTP_USER_AGENT']
を使ってアクセスしてきたOSやブラウザを調べ、
それに対応するcssをlinkさせるスクリプトを書いているのですが・・
$_SERVER['HTTP_USER_AGENT']
の返り値で、macのOS9がどのように表示されているのかが分からないのです。
OSXのIEとOS9のIEでは表示が違ってきてしまうようなので、OS9もちゃんと識別をしたいのです。
分かりにくい質問かもしれませんが、宜しくお願い致しますm(__)m
0299nobodyさん
04/08/13 12:04ID:???UA名の一覧。かなりデカいのでページ内をmacで検索するよろし。
http://www.sal.tohoku.ac.jp/~gothit/ua.html
「HTTP_USER_AGENT mac win xp」でググった。
0300nobodyさん
04/08/13 12:13ID:???本当に助かりました!
有難うございますm(__)m
アクセス解析 os9
HTTP_USER_AGENT os9
とかでググってました(´・ω・`)
ブックマーク入れておきますです。
本当に感謝ですm(__)m
0301nobodyさん
04/08/13 14:03ID:???http://www.php.net/
0302nobodyさん
04/08/13 14:19ID:???0303nobodyさん
04/08/13 14:38ID:???0304nobodyさん
04/08/13 16:24ID:MYpDNZIf$message = 'かきくけこ';
$to = 'テストさん <test@test.com>';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=EUC-JP\r\n";
$headers .= "From: "送信者 <from@from.com>\r\n";
mail($to,$subject,$message,$headers);
これをEUC-JPで作って、送信したところ、Windows Outlookではちゃんと日本語が反映されていました。
しかしBeckyで受信したところ、タイトルとFromの部分が文字化けを起こしていました。
そこで、Shift_jisで作ったところ、特定の受信メールアドレスでは文字化けし、それ以外はちゃんと受信できました。
いずれもタイトルとFromの日本語部分のみです。
なにが原因でしょうか?
0305nobodyさん
04/08/13 16:31ID:???0306nobodyさん
04/08/13 16:43ID:???mb_encode_mimeheaderをつかう
iモードはShift_JISで送っても平気?
content-transfer-encoding: 8bit
でいけるのかな
0307nobodyさん
04/08/13 17:10ID:???誰かここ読んでたのか知らんが、案内が掲載された。
http://www.php.gr.jp/seminar/20040821/
0308nobodyさん
04/08/13 17:16ID:???$A[]=("1","2","3");
であってるよな?
0309nobodyさん
04/08/13 17:20ID:???0311nobodyさん
04/08/13 17:53ID:???ってかマニュアル読め
0312nobodyさん
04/08/13 17:55ID:???0313nobodyさん
04/08/13 17:56ID:???変数名に全角使えるとか発想できるんだろう
0314nobodyさん
04/08/13 17:59ID:???骨董品だから知らないか・・・
0315nobodyさん
04/08/13 18:13ID:???$Jに$Sを代入して
print "$($J) <BR>";
とやってみたが、出力されるのは「$S」です。
なぜでしょうか?
0319nobodyさん
04/08/13 18:36ID:???0320nobodyさん
04/08/13 18:38ID:???$J = "$S";
print $($J);
0323nobodyさん
04/08/13 18:46ID:???$J = "S";
print &$($J)[0]." <BR>";
実際はこうやってます↑
0324nobodyさん
04/08/13 18:54ID:???単に$S[0]を出力したいだけって意味か?
0325nobodyさん
04/08/13 18:57ID:???0326nobodyさん
04/08/13 18:59ID:???print ("$j");
とか
echo $S[0]."<br>";
でいいかな
0327nobodyさん
04/08/13 19:52ID:???0328nobodyさん
04/08/13 20:03ID:???php4.3.8でImageGifは使えるのでしょうか?
よろしくです。
0329nobodyさん
04/08/13 20:15ID:???$J054 = array("0","0","0","0","15","25","30","35","40","45","50");
$J055 = array("0","0","0","0","0","10","15","20","25","35","45");
$J056 = array("0","0","0","0","0","0","10","15","20","30","40");
$J057 = array("0","0","0","0","0","0","0","10","15","25","35");
$S6 = array("$J050","$J051","$J052","$J053","$J054","$J055","$J056","$J057","$J058","$J059","$J060");
$on = $S6
print $on[5]."[3]";
上記のようにやったのですが
出力結果が「0」ではなく「Array[3]」となるんですが
なぜでしょうか?
0331nobodyさん
04/08/13 20:26ID:???echo $on[5][3];でいい
0332329
04/08/13 20:29ID:???0336nobodyさん
04/08/13 21:17ID:iU64GMXW拡張子「.php」のファイルが一切見られないサイトは、
どのようにしてファイル内にPHPが記述されているのか否かを判別させているのでしょうか??
0337>>336
04/08/13 21:28ID:???AddType application/x-httpd-php .php .html .htm
AddType application/x-httpd-php-source .phps
0338nobodyさん
04/08/13 21:43ID:???<html>
省略
<?php処理1?>
省略
</html>
<?php処理2?>
処理2が重たい&出力に関係ないので
先に処理1だけ出力させたいのですが、どのような方法があるでしょうか?
0339nobodyさん
04/08/13 21:50ID:???言ってる意味がわからんが、必要な時に呼び出せばいいんでないのかな?
<?php
function 処理1() {
}
function 処理2() {
}
?>
<html>
<?php 処理1(); ?>
</html>
<?php 処理2(); ?>
内容的には変わらないけど。
0341nobodyさん
04/08/13 21:56ID:???有難う御座います。
解り辛くてすみません。
そういう意味ではなく、
</html>までのバッファを先に出力して処理2に移りたいという意味です。
0343nobodyさん
04/08/13 22:18ID:???0345344
04/08/13 22:28ID:???0346nobodyさん
04/08/13 22:32ID:???>変数名に全角使えるとか発想できるんだろう
逆に発想出来ないのは、頭が固い証拠では?
マニュアルの「変数」の章の「基本的な事」参照
ttp://www.php.net/manual/ja/language.variables.php#language.variables.basics
>>338
flush()
0347nobodyさん
04/08/13 22:33ID:???ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();
書けば、逐次表示されます
でもこれ、
mb_http_output('SJIS');
ob_start('mb_output_handler');
と併用するとうまくいかないんだよなー
エロイ人教えて
0349294
04/08/13 23:48ID:???参照先まちがえてますた。正しくは、
ttp://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_dp_singleton.shtml
PHP 4.3.x は $instance = new Class(); としたときにインスタンスの
コピーを返します。
シングルトンパターンなどで、毎度同じインスタンスを利用したい時は
リファレンスを使います。くわしくは参照先で。
0350nobodyさん
04/08/14 01:34ID:???<html><head></head><body>
$opendir = dir(".");
$i = 0;
while (($ent = $opendir->read()) != FALSE) {
if (is_dir($ent) != FALSE) {//ディレクトリのみ
$i++;
$dirname[$i] = $ent;
echo '<a href="aaa.php?page='.$ent.'">'.$ent."</a><br>\n";
}
}
if ($page == $dirname[1]) {
echo "ああああああ";
}
echo "</body></html>";
?>
こういう風にしているんですが、$dirname[1]に当たるリンクを押しても
ああああああの文字列が表示されないんですが、いったい
どこが間違ってるんでしょうか・・・
0351nobodyさん
04/08/14 01:49ID:???print "_GET['page'] : ".$_GET['page']."; page : ".$page; を仕込んで
表示されるかどうか試してみ
0352nobodyさん
04/08/14 03:10ID:???0353nobodyさん
04/08/14 03:32ID:RcWJyX8gfunction abcd($1,$2,$3) {
などで、この例えば$2に値が入っていない(入れ忘れてしまった)
場合には、phpがエラーを出すのですが、
この$2に値が入っているか居ないかを調べるにはどの関数を使えばいいでしょうか?
defined かなと思ってやってみたのですが、うまくいかなくて。
よろしくお願いします。
(使い方は
$2に値が無い場合(空)に予め用意したデフォルト値を代入?したいのです。ifとかつかってですが。)
0354nobodyさん
04/08/14 03:47ID:???これさえ満足させればいいなら
function abcd($1,$2='でふぉると',$3)
でいいんじゃないかい?
0355nobodyさん
04/08/14 03:57ID:???その場しのぎでいいなら、全部にデフォ値設定かなぁ。
0357353
04/08/14 05:13ID:???function abcd($1,$2="hoge",$3="moge") {
です。
デフォルト値を入れるのなら右側にしないとだめでした。
>>354さん>>355さんありがとうさんでした〜
ifとか使ってごにょごにょしないとだめかなと思ってたので大喜びですw
0358nobodyさん
04/08/14 10:11ID:???関数の引数の初期値にグローバル変数を定義することはできますか?
具体的には、次のようなことがしたいのです。
---------------------------------------
1 $variable = "global variable";
2
3 function test($var="$variable")
4 {
5 print $var;
6 }
7
8 test();
---------------------------------------
このようなスクリプトを書くと、以下のようなエラーになってしまいます。
Parse error: parse error, unexpected '\"' in index.php on line 3
対処法がありましたら、教えてください。
0359nobodyさん
04/08/14 10:32ID:???はぁ・・頼むからマニュアル嫁でくれよ…ばっちり書いてあるだろ
ttp://www.php.net/manual/ja/functions.arguments.php#functions.arguments.default
>デフォルト値は、定数式である必要があり、 (例えば、)変数やクラスのメンバーであってはなりません。
0360350
04/08/14 12:13ID:???4時間ぐらい悩んでいたのが嘘のようです。
本当にどうも有り難う御座いました。
0361nobodyさん
04/08/14 13:08ID:go/x2Owu頭から水をかぶって、頭を冷やせば見えてくるよ
0364nobodyさん
04/08/14 15:25ID:???<son>
<taro></taro>
<jiro></jiro>
<sab></sab>
<white></white>
</son>
上のようなXML文書を、 simplexml_load_fileで読み込んで、下のような形式で子ノードの一覧を出力したい
と思っています。
son
jiro
sab
white
その場合、どうすればいいのでしょうか?
0365nobodyさん
04/08/14 15:28ID:???jiro
:
ではなく、
taro
jiro
:
でした、すいません。
0366nobodyさん
04/08/14 15:36ID:???ドキュメントがまだ十分に無いから、使い方とかどこかに書き残すと重宝されるよ。
0367nobodyさん
04/08/14 16:18ID:???現ディレクトリ以下の下位ディレクトリのファイルの取得は
どうすればいいんでしょうか。
0369364
04/08/14 17:11ID:???要するに、要素名を得たかっただけなのですが……SimpleXMLには、そういった関数が用意
されていないみたいです。じゃあ、どうやって要素名を得ればいいのか――が、今回の質問で
あります。
0370nobodyさん
04/08/14 18:38ID:???XML分かんないんでやっつけだけど、これで一応子ノード一覧取れるよ
<?php
function child_list($xml, $nest=0) {
foreach ($xml->children() as $key => $element) {
echo str_repeat(" ", $nest) . "$key\n";
child_list($element, $nest+1);
}
}
$xml = simplexml_load_string(
'<son>
<taro></taro>
<jiro></jiro>
<sab></sab>
<white></white>
</son>');
child_list($xml);
?>
0372nobodyさん
04/08/14 19:41ID:???{
array_push($array,"test");
}
$a = array();
test($a);
print count($a);
このようなスクリプトを書いたのですが、$aに値が代入されず、最後の行で0と出力されてしまいます。
どのようにすれば$aに値が代入されるようになりますか。
0373nobodyさん
04/08/14 20:19ID:???function test(&$array)
{
array_push($array,"test");
}
もしくは
function test(&$array)
{
return array_push($array,"test");
}
にして戻り値を使う
0375nobodyさん
04/08/14 21:21ID:???0376nobodyさん
04/08/14 22:17ID:???値渡し意識してるなら、普通にreturnで返すだろうし、
参照渡しを意識してるなら&ぐらい気づくだろうと思うのだが、
なぜ、 >>372 は それで値の変更ができると思ったのかなぁ。
0377Imo ◆.jC7ANgFY.
04/08/14 22:23ID:???# VBは省略すると参照渡しになる
0378nobodyさん
04/08/14 22:28ID:8vlh+W98$timestamp = 年/月/01 という時間を入れた変数を
$timestamp = 年/月-1/31 というようにしたいのですが、
(つまり1日前日にずらす)
どのようにすればいいのでしょうか?
ご教授おながいしますm(_ _)m
0379nobodyさん
04/08/14 22:31ID:???0381nobodyさん
04/08/14 22:36ID:8vlh+W98レスありがとうございます。
つまり、エポック秒に直して、ひいてまた
もとの形に戻すってことですね。
ついでで恐縮ですが、エポック病になおしかた、
戻し方も教えてもらえないでしょうか?
調べたのですが、エポックってぐぐってもあんまりでてこないようなので・・・
0382nobodyさん
04/08/14 22:39ID:???全部マニュアルに書いてあったよ
http://www.php.net/manual/ja/ref.datetime.php
0384nobodyさん
04/08/14 22:56ID:8vlh+W98にしてもあれですね、1日戻すだけでも結構だるいもんですね。
0385Imo ◆.jC7ANgFY.
04/08/14 23:01ID:???strtotimeもいろいろ使えるよ。一度見ておくといいかもしれない。
04/08/14とあったら解釈が違ったりするけどね。
(外国は年月日の順番が違うから
2004/08/14ならちゃんと解釈してくれる。
0386nobodyさん
04/08/14 23:03ID:???勉強になった
0388nobodyさん
04/08/14 23:10ID:???エポック秒で格納しておいて
date()で書式変えて表示すればいい
0389nobodyさん
04/08/14 23:10ID:???これでOKじゃね??
0390nobodyさん
04/08/14 23:20ID:???echo date("Y/m/d H:i:s",$timestamp);
$timestamp = mktime(0,0,0,08,date("d",$timestamp)-1,2004);
echo date("Y/m/d H:i:s",$timestamp).;
0391nobodyさん
04/08/15 00:02ID:???変数に何入れても空白なわけだが・・・
0392nobodyさん
04/08/15 00:12ID:ThpZR4Ya投稿データチェック(未選択不可)を行いたいのですが、
どうすればいいのですか?
下記のところに、新しく追加したら大丈夫だと思うのですが..
チェックの仕方がわかりません。
#── メールアドレスをチェック
length($::FORM{'email'})
&& ($::FORM{'email'} !~ /^[!-?A-~]+@[!-?A-~]+\.[!-?A-~]+$/)
&& push(@error, 'メールアドレスが不正です。');
#── パスワードをチェック
($::FORM{'key'} =~ /[<>&"]/)
&& &::error(\('パスワードに「<, >, &, "」は'
. '使えません。'));
0394392
04/08/15 00:16ID:ThpZR4Ya申し訳ないです....
0395nobodyさん
04/08/15 00:37ID:nLnvBjde本家 http://phplib.netuse.de/index.php3
ファイル名 phplib-7.2c.tar.gz
0396395
04/08/15 00:37ID:nLnvBjde0397394
04/08/15 00:42ID:nLnvBjdehttps://sourceforge.net/project/showfiles.php?group_id=31885&release_id=44737
0398391
04/08/15 00:52ID:???0400nobodyさん
04/08/15 01:07ID:???上のURLの上体で
〜〜〜〜〜〜〜
</TBODY>
</TABLE>
</TD>
<TD bgcolor="#5788b5" valign="top">
<?php
if ($mode != ""){
include "./page/$mode.php";
}else{
include "./page/main.php";
}
?>
</TD>
</TR>
</TBODY>
</TABLE>
</TD>
〜〜〜〜〜〜
にしてあるんだが
表示されるのはhttp://〜/page/main.php デツ
0402軟式PHP
04/08/15 01:15ID:???のあとに
$mode = $_REQUEST["mode"];
をいれてみ。
0403軟式PHP
04/08/15 01:17ID:???しかしお盆どうすっかなぁ( ´-`)
0404カポコン
04/08/15 01:30ID:???0406nobodyさん
04/08/15 01:50ID:???0408nobodyさん
04/08/15 01:54ID:???0409nobodyさん
04/08/15 04:03ID:???BBSのログ等を表示する際の処理は
for foreach while
どれが効率良いでしょうか。
ご教授願います。
0410nobodyさん
04/08/15 04:25ID:???その時の結論は忘れたけど
俺はあんまり気にせず、状況に合わせてソースがきれいに書けるやつを選ぶ
0411nobodyさん
04/08/15 04:38ID:???そうなんですか。
速さよりもどれが負荷が少ないかなと思いまして。
でもそんなには変わらないのですかねー。
有難うです!
0412nobodyさん
04/08/15 09:01ID:???なんか、namespaceとかprivateとかの新機能が使えないんですけど、なぜですか?
心当たりがあれば教えてください。
0414nobodyさん
04/08/15 09:51ID:???具体的にはinclude_pathに追加したい。
0415nobodyさん
04/08/15 10:02ID:???0416軟式PHP
04/08/15 11:53ID:???俺も410のように保守性を重視するよ。
0417nobodyさん
04/08/15 12:11ID:???<SELECT name="sex">
<OPTION value="女" selected>女</OPTION>
<OPTION value="男">男</OPTION>
</SELECT>
<INPUT type="submit" name="action" value="送信">
</FORM>
としてるんだが、変数が格納サレマセン。なぜでつか?
0418nobodyさん
04/08/15 12:16ID:???action="info.php"として info.phpの中身はphpinfo();のみ。
表示されたhtmlの中でセックルを探してみ
0419nobodyさん
04/08/15 12:23ID:???0421軟式PHP
04/08/15 12:44ID:???いやそのままと思うけど。既にヘッダーが出力されているから
header()は使えないってことだよ。header()周り見てみ。
何か出力してるところがあるはず。
0423419
04/08/15 12:55ID:???<?php
$action = $_REQUEST["action"];
$age1 = $_REQUEST["age1"];
$age2 = $_REQUEST["age2"];
$Region = $_REQUEST["Region"];
$sex = $_REQUEST["sex"];
$server = $_REQUEST["server"];
$cls = $_REQUEST["cls"];
$monster = $_REQUEST["monster"];
if ($action == "送信"){
$data = 'data.cgi';
$age = $age1.$age2;
$input = implode(",", array($age,$Region,$sex,$server,$cls,$monster));
$fp = fopen($data,"a");
flock($fp,LOCK_EX);
rewind($fp);
fputs($fp, "$input\n");
flock($fp,LOCK_UN);
fclose($fp);
$ok = 1;
}
header("Location:http://**********/index.php");
?>
0425412
04/08/15 13:18ID:???「private var $x;」と書いていたためでした。ばかです。
namespaceのほうはやっぱりエラーになります。
namespace Foo {
class Bar {
}
}
これだけなんだけどな。
0426nobodyさん
04/08/15 13:44ID:???RC2で消えたんじゃなかったん?
0429Imo ◆.jC7ANgFY.
04/08/15 15:10ID:???実際は「1.while 2.foreach 3.for」っぽい。
後半の二つはファイルを全部読み込むのはいいけど配列にするため
(explode&配列アクセス)の処理で時間を食っている様子。
forとforeachが違うのは、forが$i++や$i < count($data)とかを
毎回通しているためのロスみたい。
とはいってもテキトーにしか調べてない(というか差が誤差の範囲で
しかでない)から正確にはよくわからない。
whileはファイルを1回だけ読むのなら適当。
ただ、私は何度チェックしても無限ループが怖い。
forは添え字を自分で管理でき、
前とか後とかをすぐに参照できるという点で良い。
foreachは添え字が数値でなくても、
ちゃんとすべて処理できるという点で良い。
こんなところ。ただし、これは私の考えなだけ。
0430nobodyさん
04/08/15 15:43ID:???>>337のやり方で拡張子無しのファイルをPHPとして認識させるにはどうしたらいいですか?
または、別のやり方でできるのでしょうか?
0431nobodyさん
04/08/15 16:17ID:???$mode = $_REQUEST["mode"];
if ($mode != ""){
include "./page/$mode.php";
}else{
include "./page/main.php";
}
?>
もし、modeに「aiueo」が格納されているとして
「./page/aiueo.php」がない場合に他の処理を行いたいんだが・・・
どうすればよい?
0434nobodyさん
04/08/15 17:43ID:???<Files ~ "^[^\.]+$">
ForceType application/x-httpd-php
</Files>
0435nobodyさん
04/08/15 17:45ID:???$mode = $_REQUEST["mode"];
if ($mode != ""){
if (! file_exists(./page/$mode.php){
include "./page/$mode.php";
}else{
include "./page/404.php";
}
}else{
include "./page/main.php";
}
?>
これでいいのかな・・・・
0436nobodyさん
04/08/15 17:58ID:???よく見直した方がいい
0437nobodyさん
04/08/15 19:04ID:???is_fileの「filenameが存在して、かつそれが 通常ファイルであればTRUEを返します。」と
ありますが、この通常ファイルとはCGI以外という意味なのでしょうか?。
0438435
04/08/15 19:31ID:???0442nobodyさん
04/08/15 21:18ID:???parse error, unexpected '}' in
0444444
04/08/15 21:37ID:???$data = 'count.cgi';
$file = file($data);
$date = date(Ymd);
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host ==$addr){
$host = gethostbyaddr($addr);
}
list($date1,$scount,$host2) = split( ",", $file[0]);
list($date2,$tcount,$tdate) = split( ",", $file[1]);
list($date3,$ycount,$ydate) = split( ",", $file[2]);
if ($host != $host2){
$scount++;
if ($date != $tdate){
$ydate = tdate;
$tdate = date;
$ycount = $tcount;
}
$tcount++;
$host2 = $host;
//書き込み
$data[0] = implode(",", array($date1,$scount,$host2));
$data[1] = implode(",", array($date2,$tcount,$tdate));
$data[2] = implode(",", array($date3,$ycount,$ydate));
$fp = fopen($data, "w");
flock($fp,LOCK_EX);
0445444
04/08/15 21:38ID:???rewind($fp);
fputs($fp, "$data[$i]\n");
}
flock($fp,LOCK_UN);
fclose($fp);
}else{}
print " <TABLE cellpadding=0 cellspacing=0>";
print " <TBODY>";
print " <TR>";
print " <TD align=right><FONT size=2>Total:</FONT></TD>";
print " <TD><FONT size=2>$scount</FONT></TD>";
print " </TR>";
print " <TR>";
print " <TD align=right><FONT size=2>To:</FONT></TD>";
print " <TD><FONT size=2>$tcount</FONT></TD>";
print " </TR>";
print " <TR>";
print " <TD align=right><FONT size=2>Yes:</FONT></TD>";
print " <TD><FONT size=2>$ycount</FONT></TD>";
print " </TR>";
print " </TBODY>";
print " </TABLE>";
?>
0446444
04/08/15 21:39ID:???これをincludeでページに貼ったのですが、
ページを表示して実行するとカウントされずに
ttynt.cgiというプログラムができます;;
なぜでしょうか?
0447nobodyさん
04/08/15 22:03ID:???0448nobodyさん
04/08/15 22:04ID:???なんかこう、、、夏真っ盛りだな・・・
このスレはクエリをそのまま変数に勝手に入ると思ってるのもいるし(?mode=xx→echo $mode)
もうね、アホかと
0451Imo ◆.jC7ANgFY.
04/08/15 22:21ID:???どっかのPHPのセキュリティーに関する書籍で
$mode = str_replace('../', '', $_GET['mode']);
にすればいい、とかかいてるダメなやつがあったな。
〜.php?mode=....//....//
ってどうなるんですかと問いたい。問い詰めたい。小一時間(ry
# と、愚痴をもらしてみる。
# そもそもそういうクエリを送ってくるやつははじくべきなんだよ。
0452軟式PHP
04/08/15 22:21ID:???まぁ、マルチはいくないな。
0453nobodyさん
04/08/15 22:23ID:???ああ、>>400 以降ね。
どうでもいいが、これから PHP やるヤシは何故そんな実装になってるのかよく考えてみれ。
特に変数のスコープや register_globals 関係。
例文だから考慮してないだけかも知れないが、ちょっと安易杉。
>>400 だって、ある機能に対して認証を飛ばしてアクセスが可能になるかも知れないワケで。
例えばユーザーのパスワード変更を chpasswd.inc.php に切り出して認証されたページ内から呼び出していたら
?mode=../../chpasswd.inc&new_passwd=hogehoge
とか突っ込まれる可能性もある。
>>443 も言いたいのはそれだろ。
0454nobodyさん
04/08/15 22:31ID:???> # そもそもそういうクエリを送ってくるやつははじくべきなんだよ。
ちょっと興味深い。
手軽な方法ある?
クラック目的で突っ込まれたコードが効果的に検知出来るなら、勉強のためにトラップしてログっときたい。
セキュリティを意識して欲しいだけで。バッドノウハウはびこりすぎなんで。
しっかりしたアプリケーションが書ければどこから何突っ込まれようと大体は大丈夫だ。
取り敢えず変数を区別しないのはマズい。
一つの変数を二つの意味で使うとか、由来を考えずに使うとか、ユーザーからの入力値を深度の限界無しに受け付けてるとか。
0455444,445,446
04/08/15 22:31ID:???0456nobodyさん
04/08/15 22:36ID:???0459Imo ◆.jC7ANgFY.
04/08/15 23:03ID:???preg_match('/[^\w]/', $_GET['mode']) and die('不正クエリ');
これくらいの勢いでもいいんじゃないかってこと。
どうしても"/"や"."がいるのだったら
strpos('../', $_GET['mode']) === false or die('不正クエリ');
$_GET['mode']{0} == '/' and die('不正クエリ');
とかいろいろ試してみるとよろし。その場その場にあった処理が必要だと。
# 上の例は上位ディレクトリを参照させないようにする処理
# 下の例は直接変数と使う場合以外はいらないが、絶対パスを防ぐ処理
それと、いろいろとやっかいなのが"\x00"の処理。
phpでは大丈夫(なはず)だけど気になるので、
$_GET = array_map(create_function('$a',
'return str_replace("\x00", "", $a);'), $_GET);
こんな感じであらかじめ省いておくと安全かもしれない。
# $_POSTや$_COOKIEの時も同様にしておくといい
# 場合によれば改行系列も省いた方がよい場合がある
0460nobodyさん
04/08/15 23:08ID:???0461nobodyさん
04/08/15 23:48ID:???参照先ディレクトリの制御に限った話でつか。
それは誤動作誘発に通じるルートを叩き潰すって発想で付加的な話。
基本はルートを掘られて利用されるような脆弱性をつくらない事なのでは。
という話も出しておきまつ。初心者が佃煮状態みたいなんで。
- safe_mode を使う
- ライブラリ単体で動作させない (require/include で結果を返すような書き方をしない)
- 外部ライブラリはそれ自体をセキュアな作りにする
とか。定石と普段からの意識とバッドノウハウの排除。
0462カポコン
04/08/16 00:33ID:???0463nobodyさん
04/08/16 02:30ID:vS77LDZvえと。
127.0.0.1/hoge/ で「hoge」ディレクトリーを作るのなら
mkdir(hoge,0777);で作れるけど、
例えば、127.0.0.1/hoge/hogehoge/hohoge/
でこの「hohoge」を作るにはまず上層の「hoge」と「hogehoge」を作らないといけないわけですが、
この作業を行うにはどんな書き方になるんですか?
毎回階層が決まっていれば問題はないけど、
決まってない場合がわからなくて。
よろしくお願いすます。
0464nobodyさん
04/08/16 02:38ID:???>決まってない場合がわからなくて。
↑がよく解らないんだけど、
必要なディレクトリ名を配列に入れて、その数だけループさせたら?
0465nobodyさん
04/08/16 02:40ID:???まぬあるにヒントが!
http://jp2.php.net/manual/ja/function.mkdir.php
0466nobodyさん
04/08/16 02:47ID:???今ファイルをアップする部分をつくってて
POSTされたアップロード先のアドレスが毎回違うだろうし、ってことです。
すでに作られたディレクトリー内に、1階層だけディレクトリーを作るのなら
mkdirを1度すればいいんだけど。。。
ヒントページみてみます〜〜
また分からなかったらまたきますw
よろしく!
0467466
04/08/16 04:38ID:???できました。
丸写しだけど・・・
$dir=split("/", $up_dir);
for ($i=0;$i<count($dir);$i++){
$path.=$dir[$i]."/";
if (!is_dir($path))
@mkdir($path,0777);
@chmod($path,0777);
}
if (is_dir($up_dir))
return 1;
間にいくつかif入れて目的の事は完成です。
お世話になりました!
0468nobodyさん
04/08/16 05:54ID:gbbwkQJr0469nobodyさん
04/08/16 06:33ID:???いや、まてよ・・・まさかと思うが、サーバに置いたPHPスクリプトから、
クライアント側の何かのファイルのパーミションを変更したいってわけじゃないよな?
0474nobodyさん
04/08/16 09:38ID:2LXrMV/7phpでラップ関数って作れるんでしょうか?
0475軟式PHP
04/08/16 09:42ID:???0476nobodyさん
04/08/16 10:25ID:???という文字列があって1つ目の@を(1)、2つ目の@を(2)という風に
置換したいのですが、良い方法があれば教えてもらえると助かります。
0477nobodyさん
04/08/16 10:37ID:go59Ftbg正規表現使えば?
0478nobodyさん
04/08/16 10:57ID:???何番目の@か取得する方法が分からないため、正規表現スレで聞いてこようと思います。
$1,$2の数値の部分を取る方法があるのだろうか…。
0479Imo ◆.jC7ANgFY.
04/08/16 11:03ID:???とりあえず、こんなこともできたりする。
$data = 'abcdef @ hijklmp @ aiueos.';
echo preg_replace_callback('/@/', create_function
('', 'static $a;$a++;return "($a)";'), $data);
0480nobodyさん
04/08/16 11:09ID:???まさにそれがやりたかったんです!ありがとうございます。
匿名関数を作って静的変数を使ってるあたりがテクニカルでいいっすね(>_<)
本当参考になりました。謝謝。
0481nobodyさん
04/08/16 12:11ID:???こんな感じでもいけそう。
$i = 0;
echo preg_replace('/@/e', '"(" . ++$i . ")"', $data);
0482nobodyさん
04/08/16 12:55ID:???その「うん」は >474 に対しての「うん」であるならば、
できれば具体的な内容を教えて頂きたいのですが・・・・
0483軟式PHP
04/08/16 13:12ID:???あなたの考えてる「ラップ」とは違うかもしれませんが↓教えておきます。
http://nx.eth.jp/php/manual/function.stream-wrapper-register.html
0484nobodyさん
04/08/16 14:56ID:???/[^\w]/ って /\W/ じゃダメなの?
create_functionって何回(というより何千回)も使うと遅くならね?
0485Imo ◆.jC7ANgFY.
04/08/16 15:22ID:???それでもいい、というよりかそっちのほうがいい。
create_functionは関数をつくっちゃってるからねぇ、
何回も使うのならば>481のようなものを使ったほうがいい。
そうしないと、なにをするにも遅いプログラムになってくる。
0486466
04/08/16 15:28ID:???お〜またまたレスありがと!
popenもやってみます!
mkpathの方は書き方が悪いのかうまく動かなかったです。
うむ。難しいですねー
0487nobodyさん
04/08/16 17:33ID:???array_filter を試してみましたが htmlspecialchars は使えない模様でつ。
0489nobodyさん
04/08/16 17:51ID:???でWebからの登録で自動的にディレクトリを割り当てたいと考えて
おります。
ディレクトリを作成すると所有者がapacheになりますが、その
ファイルの所有者を変更したいのです。chownはスーパーユーザで
ないと実行出来ませんとありますが、http://hoge.co.jp/でアクセスさせて
スーパーユーザーで動作させる事は可能なのでしょうか?。
apacheはapache権限です。
0491nobodyさん
04/08/16 19:39ID:???0492nobodyさん
04/08/16 20:07ID:???0493nobodyさん
04/08/16 20:29ID:???どうしたらいいんだー
マニュアルインストールなんて難しいことはわかりません。
ヘルプミーぷりーず orz
0494nobodyさん
04/08/16 21:00ID:???でつまつ使っただけで「厨だ」とかぬかすアホが。
0495nobodyさん
04/08/16 21:17ID:???そもそも、2ちゃんで礼儀などは期待していない
礼儀知らずが厨かどうかは知らないが、それに食いついてる
494が厨だとしか思えん
>>493
Windows?
0496493
04/08/16 21:21ID:???そうです。
0497nobodyさん
04/08/16 21:22ID:???条件を満たしていると思われ(厨)
0499nobodyさん
04/08/16 22:17ID:???0500nobodyさん
04/08/16 22:21ID:???installerはむりぽ
0501nobodyさん
04/08/16 22:29ID:???ミラーもダメだね
0502nobodyさん
04/08/16 22:34ID:???0503nobodyさん
04/08/16 23:01ID:???んじゃ、RingServerのミラーからでも。
http://www.dnsbalance.ring.gr.jp/archives/net/www/php/distributions/
php-4.x.x-installer.exe
0505nobodyさん
04/08/16 23:15ID:???インストーラパッケージは、ZIPパッケージに同梱されてる
各種DLL(mysql関数だとか、確かmbstring絡みも)が入ってない(足りない)から
殆どの場合、あとでZIPパッケージから足す必要があるよ。気をつけて
それとSJISでPHPのスクリプトを書くなら、
http://www.geocities.jp/rui_hirokawa/php/
じゃないと駄目。
0506nobodyさん
04/08/16 23:19ID:???って使えますか?
0508軟式PHP
04/08/17 00:35ID:???( ゚д゚)彡 サァ!!
⊂彡
0509nobodyさん
04/08/17 00:46ID:???0510nobodyさん
04/08/17 03:43ID:???PHPとjavascript間で値のやり取りをしたいのですがどうすればよいですか?
0511nobodyさん
04/08/17 05:54ID:???PHPが外部から受け取る変数は $_GET $_POST $_COOKIE である以上、
javascriptからそれらを操作するものを使う他あるまい?
0512軟式PHP
04/08/17 14:07ID:???( ゚д゚)彡 サァ!!
⊂彡
何か面白いもんつくりてーな。
0513nobodyさん
04/08/17 17:09ID:???ある PHP スクリプトが include/require 等で呼んでいるファイルを全部引っ張る方法って無いでしょうか。
fileA
include('fileB');
fileB
include('fileC'); include('fileD');
とあった場合、fileA が fileB, fileC, fileD を読み込んでいる事を fileA 側から確認出来ないか、といった具合です。
0517nobodyさん
04/08/17 18:03ID:Jto412WCというエラーが出て
サーバーやPHPの環境設定、ブラウザの設定等に問題がないかも
チェックしたほうがいいかもしれませんね。
と上司にいわれましたが設定のチェックの方法が分かりません。
知っている方教えてください。
0519軟式PHP
04/08/17 18:06ID:???0521nobodyさん
04/08/17 20:00ID:???$hash = array('key1'=>10, 'key2'=>20);
array_delete_key('key1', $hash); ← こんな関数ないっすかね?
array_key_exists('key1', $hash); #=> false
0524nobodyさん
04/08/17 20:33ID:???unset($hash['key1']);
でいけました。
そうか、$hash['key1'] 自体がひとつの変数ということか。
どうもありがとうございました。
0525nobodyさん
04/08/17 21:24ID:hQEO8cuEバージョンアップ不可の条件をいただいたのですが
4.0.3のマニュアルのURLご存じの方いたら教えて下さい。
ググったら「最低4.0.6まで上げる事をお薦めします.」とか書かれてて(´・ω・`)
0526nobodyさん
04/08/17 21:56ID:???普通にその辺のマニュアル使える。
例えば 4.3.0 から入った関数の場合、マニュアルに記載がある。
逆にマイナーバージョン固有のバグとかの場合はマニュアルには載らない。
前後の ChangeLog を地道に追う。
後はエラい人、補足よろ。
0527nobodyさん
04/08/17 22:03ID:???0528527
04/08/17 22:11ID:???0529nobodyさん
04/08/17 22:28ID:???ML に投げようかとも思ったけど、Google に残るのがイヤなのでこっちで。
取り敢えずコンピュータの管理はコントロールパネルからな。
それくらいググれ。
取り敢えず集中砲火浴びる前にここ読んで ML って何なのか掴んだ方がいい。
http://www.hyuki.com/writing/techask.html
で、分からない事全部が勉強だと思って調べまくる。それが当たり前に出来ないとこの仕事辛い。
特に知識系産業は国際間の壁が低く世界的に集約/役割が割れていくからどんどん寒くなる。
技能職って事で目の前の待遇の良さだけを見てるなら考えた方がいい。
それにプロって事は、責任だって相応。
俺は無関係だが、規模のデカい開発投資がプログラムで失敗して営業から展開から全部狂って悲惨な目にあったのを知ってる。
まぁその会社のマネジメントも悪いんだが、俺はたまたま開発担当を別件で知っていてコードもちょっと見た。
一番タチ悪いのはソイツが能力低すぎて、何が悪いのかさえ分かってないって事だ。
ML で何か言ってるが、顧客から見れば 俺初心者なんで とか明後日方向の事情は言い訳にもならない。
甘え捨ててもっと自助努力しる。
0530nobodyさん
04/08/17 22:43ID:LR9RAB4Qshell_exec('oggenc ファイル.wav -t "タイトル" -a "アーティスト名" > /dev/null &');
のようにすると日本語が######のように化けてしまいます。
(実際はshell_exec()の中身は.shファイルに書いてあってもう少し長いですが、上のように書いても同じ症状でした。)
何か良い方法は無いでしょうか?
環境はLinuxです。
0532nobodyさん
04/08/17 23:08ID:???Ogg 扱える PHP アプリケーションどこかで見たな、と思って PHP ogg でググってみると
コードいろいろ出てきた。
英語ね。
0534530
04/08/17 23:20ID:???スクリプトも全てEUC-JPで書いたのですが・・・。
試しにXウインドウから.shファイルを動かしてみたらちゃんと日本語になりました。
Xウインドウ無しだと日本語使えないのかと思って、
shell_exec('mkdir フォルダ');
みたいにすると日本語のフォルダ作ってくれたので、
Xウインドウ無しでも使えるみたいですし。
>532
英語ですか・・・。
苦手ですけど一応調べてみます。
0535nobodyさん
04/08/17 23:32ID:???例えば Fedora は UTF-8 がデフォです。それに PHP の設定や Ogg のエンコード環境は別ではないかと。
あとまぁ英語出来ないと一定以上の事出来ないので。
Ogg とか人があまりやってない事をやろうとすると特に。
0536530
04/08/17 23:42ID:???0537nobodyさん
04/08/18 00:13ID:???# mp3 の ID タグ? 編集ライブラリとかも見たことあるので海外探せば ogg も転がってるかも
# で、それに日本語関連の修正&メモ書き入れて weblog か wiki にでも押し込んでおけば皆幸せ (・∀・)
って無責任に言うだけもな〜 と思ってググってると PEAR で見つけました。
http://pear.php.net/package/File_Ogg
0539nobodyさん
04/08/18 00:50ID:???つか、PHP-usersでも最近出てたと思うが、
"PHPがshell関数で動かす環境の"言語等の設定がそもそも何なのよ。
keyword:LANG
0540nobodyさん
04/08/18 11:56ID:x3r+WkyO最近お世話になりっぱなしですが、よろしくです。
セーフモードがオンのサーバーで
Warning: mkdir(): SAFE MODE Restriction in effect
となってしまうのですが、
オンのサーバーでもディレクトリーを使う方法?
はないでしょうか?
もしくは、無理なのでしょうか?
よろしくお願いします。
0542nobodyさん
04/08/18 12:36ID:???うぉーありがと。
ってことはやっぱり代わりに使えるものがあるってことですね?
マニュアル声出して読んでみますw
「セーフモードにより制限を受けるか無効となる関数」
ってページあってそこを見ると自分の使ってる関数が沢山でてて・・・
いやになるw
ありがとさんでした!
0543nobodyさん
04/08/18 12:42ID:???マニュアルの使い方を覚えるだけで、PHP は 256 倍楽になるのに。
不用な本買わなくてもいいからお財布にも地球にも優しい。
> mkdir() 処理を行うディレクトリが実行するスクリプトと同じUIDを有しているかどうかを確認します。
0545軟式PHP
04/08/18 12:54ID:???0546軟式PHP
04/08/18 12:55ID:???0547軟式PHP
04/08/18 13:08ID:???0548541=543
04/08/18 14:30ID:???0549nobodyさん
04/08/18 15:06ID:???0550軟式PHP
04/08/18 15:29ID:???0551nobodyさん
04/08/18 15:33ID:???0552nobodyさん
04/08/18 15:58ID:???ってなんだよウワァァァァン
0555552
04/08/18 16:23ID:???0556軟式PHP
04/08/18 16:32ID:???r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 よく頑張ったじゃねぇか。
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ もうちょい先まで読んでみようぜ。
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0557552
04/08/18 16:37ID:???0558nobodyさん
04/08/18 16:38ID:???0559nobodyさん
04/08/18 16:39ID:???> headers already sent
0560552
04/08/18 16:40ID:???0561nobodyさん
04/08/18 16:40ID:???echo とか print とかしてると 起こりやすいね。
0562552
04/08/18 16:42ID:???<?php
if ($action == "投稿"){
$mynews = 'page/〜/data.cgi';
$file = file($mynews);
$count = count($file);
if ($count > 10){
$count = 10;
}
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host ==$addr){
$host = gethostbyaddr($addr);
}
list ($name2,$url2,$title2,$comment2,$host2) = split( ",", $file[0]);
if ($host != $host2 && $url != url2){
$input = implode(",", array($name,$url,$title,$comment,$host));
$fp = fopen($mynews, "w");
flock($fp,LOCK_EX);
rewind($fp);
fputs($fp, "$input\n");
for($i = 0; $i < $count; $i++){
fputs($fp, $file[$i]);
}
flock($fp,LOCK_UN);
fclose($fp);
unset($file);
}
header ("Location:http://〜/index.php");
}
?>
0563nobodyさん
04/08/18 16:43ID:???> Cannot modify header information
の前に何かエラーか警告が出力されてないか
<?php の前に改行や空白がないか
0564562
04/08/18 16:50ID:???空白もナイポ
0565nobodyさん
04/08/18 16:54ID:???マジきもいんだけど
0566nobodyさん
04/08/18 16:57ID:???それからエラーの出ているHTMLのソースはどうなってるかよく見てみれ
0567nobodyさん
04/08/18 17:11ID:???ヘッダー情報-、(/usr/家/自由な/家/市場/public_html/mmorpg/index.php
で始められた出力: 4)既に送られたヘッダー-を修正することができません。
この辺りも見とけ
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.30
headerの行を削除した時に、全く何も画面出力されていないことが必要だぞよ
0570nobodyさん
04/08/18 17:37ID:???0571nobodyさん
04/08/18 17:41ID:???無償のレンタル鯖でアクセス制限が掛けられない時、
データファイルの拡張子をcgiにしておけば、URL直打ちでも
データファイルを覗かれないという利点がありますけど。
0572nobodyさん
04/08/18 17:43ID:???500がでて見れないようにしているんだと思う
# 自分だったらそんな変なことしないで.htaccessによるアクセス制限するが
0575nobodyさん
04/08/18 19:03ID:???さんざんやってたような希ガス
0576nobodyさん
04/08/18 19:05ID:QMhJW4BU0577nobodyさん
04/08/18 20:07ID:???0578nobodyさん
04/08/18 20:31ID:???0579578
04/08/18 20:32ID:???0580nobodyさん
04/08/18 21:10ID:???すげー。このサイト全部 GIF かよ。ってことになるのか。
で、GIF 画像を表示するとき困らないかしら。
あふぉなブラウザが勘違いして妙なことになりはしないかしら。
わたしもやってみよー。
0581nobodyさん
04/08/18 22:03ID:sgbsN4EW$str = <<<EOS
aaa $x bbb
EOS;
この例なら $x を展開しようとして「初期化されてない変数」というエラーがでてしまう。
もちろん \$x と書けばいいのだが、ちょっと面倒くさい。
$s = <<<'EOS'
aaa $x bbb
EOS;
と書いたら変数展開されないかなーと思ったけど、シンタックスエラーだ。
0582nobodyさん
04/08/18 22:29ID:???0583nobodyさん
04/08/18 22:52ID:???jsp にしたら多少リソース喰っても許される
aspx にしたら客が他に移管するって言い出さなくなるし単価も上がり、初期投資も色乗せれる
cgi にしたら単価下がるけど杜撰な運用でデータ漏れても泣き寝入り度上がる
php にしたら 普通じゃーん と思われつつ、人員の技能レベルとセキュリティホールやバグを執拗に心配される
まぁどれを選ぶかはおまい次第だ。
# .html を被せて運用してるところはマジであるよね。運用情報隠して被いたずら/クラッキング率を下げる
0584nobodyさん
04/08/18 23:14ID:???0585nobodyさん
04/08/18 23:20ID:???1字付け足してエスケープするのが一番楽だろう。
それかその部分だけエラー制御で殺す。テンプレートエンジンはコレやってる。
ヒアドキュメント自体そんなに使う物でもないし、不満になってきたら他のやり方探す方がいい。
0586nobodyさん
04/08/18 23:22ID:???> それかその部分だけエラー制御で殺す。テンプレートエンジンはコレやってる。
考え無しにコレをやると脆弱性作るぞ。
運用段階で register_globals を有効にされたり、そのコードの前で外部変数を extract されたらまさに鴨。
テンプレートエンジンがソレやって許されるのは、きっちり閉じ込めてあるからで。
0587nobodyさん
04/08/18 23:27ID:???0588nobodyさん
04/08/18 23:28ID:???PHP の変数ではなく、> 変数 $hoge に対して~ とか文章の流れで $var が出てくるってのなら、
$ はエンティティにでもしておくのが妥当だと思われ。
0590530
04/08/19 01:08ID:???シェルからphp hoge.phpとしてphpを呼び出すとちゃんと日本語にしてくれて、
apacheから呼ぶと駄目みたいです。
どっちも同じユーザーでやってみたので権限の問題でもないようですが、
もうさっぱりです。
どなたかご教授願います。m(_ _)m
>>539
PHPがshell関数で動かす環境の言語とは何処を設定すれば良いですか?
PHP-usersも検索してみましたが探し当てられず・・・。
0591nobodyさん
04/08/19 01:37ID:???shell_exec('touch 日本語のファイル名.txt');
としてapacheとシェルから実行したらどうなるかやってみてよ
0592530
04/08/19 01:54ID:???mkdirでも出来たので予想はしてましたけど、
apacheとシェルどちらもEUC-JPで日本語名のファイル作ってくれました。
EUC-JPで.shファイル作ってやっても出来たので、oggencの引数はEUC-JPで良いみたいですし。
何が悪いのでしょう?
0593nobodyさん
04/08/19 02:00ID:???0594530
04/08/19 02:11ID:???やりました。
apacheからやった場合は文字コードの1バイトが#に置き換わって表示されます。
シェルからやった場合は#と?で出てきます。
どちらも英字の部分は普通に表示されています。
0595581
04/08/19 02:15ID:???どうもありがとう。
背景をちょっと説明すると、PHPスクリプトの中にPHPスクリプトを書く必要があって、
それをヒアドキュメントで書いています。
$code = <<<EOS
#PHPスクリプトをここにかく
<?php echo \$x ; ?>
EOS
それで、Cut&Pasteで貼り付けてるんだけど、そのあとに¥でエスケープするのが
面倒だったので質問しました。
\n なんかも \\n としなきゃいけないんで、結構面倒なんですよ。
まあ頑張ってちまちま直します。
>>587
どういう意味?
0598nobodyさん
04/08/19 09:23ID:???0599もん吉
04/08/19 10:35ID:???SQL文で
$sql = "SELECT * FROM data WHERE NAME LIKE '%".$data."%'";
$dataは前ページからもらってきたデータが入ってるんですが
データベースの中身(NAME)が全角(例:カーショップ)の場合で
$dataが半角(例:カーショップの場合bとかjでした)の場合
なぜか引っかかってしまいます。
これはなぜでしょうか?
0600nobodyさん
04/08/19 10:58ID:???$hoge .= "ほげ";
これだとエラー。
$hoge = "";
$hoge .= "ほげ";
これだとエラーなし。
そういうもんなんでしょうか?
php4.3.4
0601もん吉
04/08/19 11:06ID:???先に$hoge = ""; としておかないと追加する場所がなく
エラーが出るのだと思います。
$hoge = "ほげ";だと問題ないですよ。
0602nobodyさん
04/08/19 11:07ID:???いれば教えてホシイのですが、どういう手段で文字コード変換やってますか?
jcode.phpとかだと半角カナをうまく使えないですし、
かといってレンサバなのでphp.iniをいじくったりモジュール追加できないので悩んでいます。
0603nobodyさん
04/08/19 11:16ID:???0605nobodyさん
04/08/19 11:26ID:???0606nobodyさん
04/08/19 11:43ID:???0608nobodyさん
04/08/19 12:02ID:???そもそもjcode.phpって必要
0609nobodyさん
04/08/19 12:03ID:???0610nobodyさん
04/08/19 12:26ID:???Warning: fputs(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 20
Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 24
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/free/home/market/public_html/mmorpg/link/index.php:19) in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 28
もうだめぽ_| ̄|○
0611nobodyさん
04/08/19 13:06ID:???とはどういう意味でしょうか?
0613Imo ◆.jC7ANgFY.
04/08/19 13:23ID:???文法エラー
文法上の誤りがあります。
本来、case(T_CASE)またはdefault(T_DEFAULT)または}であるべき
ところが文字列(T_STRING)になっています。
0615611
04/08/19 13:27ID:???case1:$a = "q";break;
case2:$a = "w";break;
case3:$a = "s";break;
case4:$a = "x";break;
}
って間違ってるのかな〜
0616nobodyさん
04/08/19 13:33ID:???0619軟式PHP
04/08/19 14:39ID:???case 2
case 3
case 4
だろ。
0620nobodyさん
04/08/19 14:43ID:HVGJn52bが167にならないのって一体どういう事だ?
おかげで徹夜しますた。
0621Imo ◆.jC7ANgFY.
04/08/19 14:59ID:???注意: 引数の値が 2 つの整数の中間にある場合の ROUND() の動作は、
C ライブラリの実装に応じて決まる。
実装に応じて、最も近い偶数に丸められる場合と、
常に切り上げまたは切り下げられる場合、
あるいは常にゼロ方向に丸められる場合がある。
特定の丸め方法を必要とする場合は、この関数ではなく、
TRUNCATE() や FLOOR() などの明確に定義された関数を使用するようにする。
0624軟式PHP
04/08/19 15:13ID:???あと俺はcase処理を1行で書くのは嫌いだな。
619のようなやつだったら配列処理でいいし。
0625620
04/08/19 15:15ID:HVGJn52bなんか>>621の文言が言い訳にしか聞こえない(^^;
で、結局「四捨五入」する方法ってどれなの?
TRUNCATE() や FLOOR() ってどう工夫すると期待した結果が得られるの?
0626nobodyさん
04/08/19 15:20ID:???0627nobodyさん
04/08/19 15:20ID:???私も書き方は気に入らないが個人の好みもあるし
最初はあんなものでしょ
>>625
てかMySQLにいけ
オマケにマニュアル読め
0628nobodyさん
04/08/19 15:32ID:???"四捨五入 銀行型"辺りでぐぐれ
明確にされてないのが気に食わないのかもしれないが、
そのround実装は普通(の範疇)だ
0629Imo ◆.jC7ANgFY.
04/08/19 16:12ID:???私はマニュアルをコピペしただけですが?
0.5引いて切捨てしろってことだろ
FLOOR(`num` - 0.5)
0630nobodyさん
04/08/19 16:14ID:h2ZrLQAF教えて頂きたいのですが、
アドレスで
123/456/
の時は最後の「/」を削除して
123/456
の時は何もしない
最終的にどちらも123/456
となるようにしたいのですが、
何か方法ないでしょうか?
よろしくお願いします。
0631Imo ◆.jC7ANgFY.
04/08/19 16:17ID:???最後が「/」の時は最後の「/」を削除して
ほかのときは何もしない。
をそのままプログラムにすればいいじゃない。
0633nobodyさん
04/08/19 16:37ID:???ども〜
マニュアルみてきました!
$trimmed = rtrim($text," \t.");
ってのがのっててそれで目的が達成できそうです。
欲しい関数はなんでもありますねw
ありがとうございました!
0634nobodyさん
04/08/19 16:43ID:???630ではないが、rtrimってこういう使い方もあったのか・・・知らなかった
「/」が可能という事は全ての文字で利用出来るという事ですね
0635nobodyさん
04/08/19 16:45ID:???rtrim()は以下の文字を削除します。」と書いてあるが空白文字以外でも利用出来るなら
そう書いてくれよ
0637nobodyさん
04/08/19 17:24ID:???ttp://www.beginnersphp.co.uk/digitalclock.php
を参考にしたのですがファイルのCRC4の取得方法がわかりません。
途中に出てくる ^ 排他的論理和(Xor?)がワケワカラン…
$file = "./data/a.png";
$size = filesize($file);
$fp = fopen($file, rb);
$da = fread($fp,$size);
fclose($fp);
echo crc4($da);
function crc4($a){
〜〜〜〜〜〜〜〜〜〜〜〜〜
処理
〜〜〜〜〜〜〜〜〜〜〜〜〜
return $crc_data;
}
こんな感じにしたいのです。
0638nobodyさん
04/08/19 17:39ID:???0639nobodyさん
04/08/19 17:58ID:???string rtrim ( string str [, string charlist])
[]はオプション。お前オプション注意して見たことないだろ?
phpの関数には至る所にオプションがある
0640nobodyさん
04/08/19 18:22ID:???<tr>
__<td class="">
____<a href="http://hogepage.com/sample.php">サンプル</a>
__</td>
__<td class="">
____2004/08/19 00:00
__</td>
</tr>
以上の文字列から、パターン %<a href=\"(.+?)\">(.+?)</a>(.+?)</tr>% で
リンク部分を抽出して、さらに3番目にマッチした部分から、
パターン ([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+:[0-9][0-9]) で時刻を
抜き出していますが、最初のパターンで、更新時刻もきれいに取得したいのです
もう少しコンパクトにすることはできないでしょうか?
どうぞよろしくお願いします。
0641nobodyさん
04/08/19 18:34ID:???こんな感じか?
preg_match_all('%<tr>(?:.*?)<a href="(.+?)">(.+?)</a>(?:.*?)(\d\d\d\d/\d\d/\d\d \d\d:\d\d)(?:.*?)</tr>%s', $html, $m);
print_r($m);
0642620
04/08/19 18:54ID:HVGJn52b>>629
いや、知ってる、そのマニュアルの文言が言い訳っぽいって事
>>628
せめて一貫性を保ってほしいよな
select round(166.5); が166なのに
select round(167.5); が168になるのはどうかと・・・
そんな中途半端な関数最初から作るなって感じだな
というわけで、MySQLスレ逝ってくるわ
0644nobodyさん
04/08/19 19:00ID:???echo "COOKIE";
}
この処理をディレクトリ変えたらできなくなるのですがなぜでしょうか?
よろしくおねがいします
0646nobodyさん
04/08/19 19:06ID:???"四捨五入 銀行型"でぐぐったのか?
0.5を偶数になるように繰り上げたり切り捨てたりするのさ
167.5 -> 168
166.5 -> 166
165.3 -> 165
0647nobodyさん
04/08/19 19:07ID:???> ディレクトリ変えたら
意味わかんね
0648644
04/08/19 19:10ID:???<?php
if(isset($_COOKIE['ck'])){
echo "COOKIE";
}
?>
このファイルがa.phpで、hogeというディレクトリに入っていて、a.phpを実行するとCOOKIEと表示されます。
で、a.phpをhoge2というディレクトリに入れると、COOKIEと表示されないのです。
0649628
04/08/19 19:16ID:???世の中には「偶数側に丸める(round(166.5)→166, round(167.5)→168)」
という丸め方法があって「銀行型の四捨五入」と呼ばれています
それに一貫性がないってのは……、銀行に文句を言ってみてくださいね(苦笑
0651nobodyさん
04/08/19 19:28ID:???echo "COOKIE";
}
これって間違ってますか_?
なぜディレクトリ変えただけでクッキーの値取れないのだろう(汗
0652620
04/08/19 19:32ID:???とりあえず銀行に文句言ってくるわ
0655nobodyさん
04/08/19 19:38ID:???0656nobodyさん
04/08/19 19:43ID:???0657530
04/08/19 19:47ID:???エンコード後にタグ変える必要も出て来そうですし。
助言して下さった方々、ありがとうございました。
>>537
ちゃんとした物が出来たら何処かに放り投げておきます。
何処に投げれば良いかな?
使う人なんて居なさそうですけど。 ^ ^
0658nobodyさん
04/08/19 19:49ID:???Cookieのpath設定してる?
0659軟式PHP
04/08/19 19:49ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>655
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0660nobodyさん
04/08/19 20:15ID:???pathは"/"としていますが、間違ってますかね?
0661nobodyさん
04/08/19 20:21ID:???鯖を変える前まではできていたんだが
鯖を変えたらできなくなったぽ(´・ω・`)ショボーン
ちなみにどちらもPHP対応です、何が違うんでしょうか?
0662nobodyさん
04/08/19 20:38ID:???鯖が違う
0663軟式PHP
04/08/19 20:43ID:???\(⌒-⌒)
(・(ェ,,)・ ) < そんなエサで俺様がクマー!!
`つ `つ (´⌒(´
ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザザザ
どこまで行クマ?
\  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ (´´
\(⌒-⌒) o (´⌒(´
(・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0664nobodyさん
04/08/19 21:15ID:JfzAv2MEどのようなものにしていますか?
私はタブにしているのですが、ネットでは<>が圧倒的に多いので
その利点なども教えていただけると幸いです。
0665nobodyさん
04/08/19 21:22ID:???タブでいいよ。<>は本文にないとも言い切れないし
0666nobodyさん
04/08/19 21:25ID:???ログファイル開いた時も見やすいし。
0667nobodyさん
04/08/19 21:31ID:???0668nobodyさん
04/08/19 21:31ID:???FATAL: emalloc(): Unable to allocate エラーが出ます
file_get_contents()でも使って変数に読み込むしかないのかな
タブか…良いことを聞いた。φ(.. )メモメモ
0670nobodyさん
04/08/19 21:47ID:???fopenごときでそんなエラーが出るはずは無いんだが・・・。
・根本的な対処
スクリプトのメモリを無駄に使っている部分を直す。
(ファイルの中身を一気に変数に入れてたのを一定サイズに抑えるとか)
・刹那的な対処
PHPやWebサーバのメモリ関係の制限を緩和する。
(当然他の部分に皺寄せが行くので刹那的)
0672671
04/08/19 22:11ID:???他のところでミスってました。
1GBも読み込もうとしてたorz
お手数をおかけしました。
0673nobodyさん
04/08/19 22:13ID:???0674nobodyさん
04/08/19 22:18ID:???\t
0675nobodyさん
04/08/19 22:19ID:???0676nobodyさん
04/08/19 22:22ID:???0677nobodyさん
04/08/20 01:15ID:???0680nobodyさん
04/08/20 05:40ID:???標準入力から読み込む方法と、標準エラー出力にだす方法がわかりません。
マニュアルのどこに書いてありますか?
0681nobodyさん
04/08/20 06:02ID:???0682nobodyさん
04/08/20 06:25ID:???WebPage記述用スクリプトとして生まれてきた性なんだろうな。
0683nobodyさん
04/08/20 06:34ID:???UNIXを知らない奴はプログラム作っちゃだめだな
0684nobodyさん
04/08/20 07:15ID:???マニュアルのどこに書いてあるのか分からなかったので質問しました。
Windows用のマニュアル(*.chm)を使ってるのですが、キーワードにないし、
検索しても見つかりません。
件枠キーワード: standard output, stdin, stdout, ...
なお英語版のマニュアル使ってます。
0686軟式PHP
04/08/20 09:04ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>683
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0687nobodyさん
04/08/20 13:24ID:???0688nobodyさん
04/08/20 15:13ID:???まとめて全てを<?php ?>で囲っちゃった方が負荷が少なかったりします?
大した差は無いかな。。
0690nobodyさん
04/08/20 16:03ID:???0691nobodyさん
04/08/20 16:11ID:???100 / 1.05を計算すと95.238095238095になるのですが、
小数点第何位までと決めることはできますか?
また、やり方もご教授お願いします。
0692691
04/08/20 16:12ID:ttg46q2U0694nobodyさん
04/08/20 16:15ID:???配列に入っている数値を1バイトずつファイルに書き出したいのですが
どうやってもテキストで出力されてしまいます。。。orz
0696Imo ◆.jC7ANgFY.
04/08/20 16:22ID:???初心者にはchr関数ですべてループさせることをすすめる。
すっきりやりたければこんなことしてもできる。
call_user_func_array('pack', array_merge(array('c*'), $list));
0700691
04/08/20 16:50ID:???なるほど、そういう書き方もありましたか。
$motone=$_POST["money"] / 1.05;
$motone=round($motone , 0); //round関数で$motoneの値を整数にする
と書いていました。
0701nobodyさん
04/08/20 16:54ID:???$a=round(100/1.05*100)/100;
ってのも覚えたんだけど、
例えば、
function a(){
$zz = 1234;
}
function b(){
echo = $zz;
}
としてもecho = $zz;は表示されないのだけど、
これを$zz = 1234;の値を他のfunctionで使い回す事ってどうやればいいんでしょうか?
今は全部のfunctionで$zz = 1234; を書いてます・・・
よろしければ教えていただきたいのですが。
0702Imo ◆.jC7ANgFY.
04/08/20 16:57ID:???function a(){
global $zz;
$zz = 1234;
}
function b(){
global $zz
echo $zz;
}
0703Imo ◆.jC7ANgFY.
04/08/20 16:58ID:???b関数内のglobalのセミコロン抜けた。
というわけで報告ついでに別な方法も。
function a(){
define('ZZ', 1234);
}
function b(){
echo ZZ;
}
0704nobodyさん
04/08/20 17:02ID:???そういう方法なんですね!
多分マニュアルに書いてあると思うのだけど、
その方法をマニュアルで探す方法がわからなくてw
ありがとうございました!
0705軟式PHP
04/08/20 17:36ID:???\(⌒-⌒)
(・(ェ,,)・ ) < そんなエサで俺様がクマー!!
`つ `つ (´⌒(´
ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザザザ
どこまで行クマ?
\  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ (´´
\(⌒-⌒) o (´⌒(´
(・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0708nobodyさん
04/08/20 17:56ID:???〜略
$hdata = bin2hex($bdata);
$i=1;
while($i<=$size){
$ddata = hexdec(substr($hdata,$i*2-2,2));
$i++;
}
略〜
こういう感じの処理を速くすることはできますか?
forからwhileにしたら少し速くなった
base_convert(,16,10)からhexdecにしたら少し速くなった
これくらいしか思いつかないのでよろしくお願いします。
0709軟式PHP
04/08/20 18:04ID:???{
var $zz;
function a()
{
$this->zz = 1234;
}
function b()
{
echo $this->zz;
}
}
0712nobodyさん
04/08/20 18:23ID:???$hdata = unpack("C*",$bdata);
$i=1;
while($i<=$size){
$ddata = $hdata[$i];
$i++;
}
略〜
これだと>>708のほうが速いのです。
0713nobodyさん
04/08/20 18:40ID:???0714nobodyさん
04/08/20 18:49ID:???$i=0;
while($i<$size){
$ddata = ord($bdata[$i]);
++$i;
}
だとどうだろうか?
0715nobodyさん
04/08/20 18:50ID:???実行テストは自分のPC(OSはWindows)で行ってますが、
最後に使うのはレン鯖なのでインストはむりぽ
と思ったけどxreaは実験的に導入してくれてるようです。
0716nobodyさん
04/08/20 18:56ID:???0717nobodyさん
04/08/20 18:56ID:???速くなりました。
ありがとう御座います。
ord -- 文字のASCII値を返す
↑ASCII値ってのが意味わからなかったので触ってませんでした。
これかもPHPの勉強を励んでいきます。
0718Imo ◆.jC7ANgFY.
04/08/20 19:24ID:???こうしてほしかったんだけどまぁいいや。
foreach (unpack("C*",$bdata) as $ddata) {
}
0720nobodyさん
04/08/20 21:06ID:ho3qNz5a管理人殺害!!!
0722714
04/08/20 21:32ID:???0723カポコン
04/08/20 23:07ID:???0724684
04/08/21 00:29ID:???見つかりました。
fopen('php://stdin') とか fopen('php://stderr') とかするんですね。
PHPのことだから、「標準エラー出力に出力する関数」とか、
「標準入力を表す定数」とかがあるんじゃないかと思って、そのあたりを探してました。
でもそうじゃなくて、Streamだったんすね。
あまり美しさを感じない仕様だけど、まあこんなもんか。
ていうかいちいちオープンしなきゃならんのはちょっとだけ面倒。
ありがとうございました。
0725nobodyさん
04/08/21 00:39ID:???0728nobodyさん
04/08/21 14:03ID:???echo "<p class=\"2ch\"><? include 'inc/giko.inc'; ?></p></div>";
とやると<? include 'inc/giko.inc'; ?>の部分がそのままでてきてしまいます。
これを出力するにはどうしたらいいでしょうか?
?>で一旦閉じる方法も考えましたが、それだとincludeが全部出力されてしまいちょっと都合が悪いのです。
0729nobodyさん
04/08/21 14:28ID:???もし使えたら予約語の文字列を全て把握しなければならない上、
びくびくしながらプログラムを組まなければならなくなる。
0730nobodyさん
04/08/21 14:29ID:???現在の状況と期待する内容が良く分からんが、
giko.incをphpスクリプトとして実行したいってことなら、
giko.incが <?php 〜 ?>の形式になってないだけじゃないの?
include()の説明を良く見てみ。
0731728
04/08/21 14:44ID:???giko.incはhtmlがそのまま入っています。
htmlでメニューだけincludeして使っていたので(使い方間違ってるかもしれませんが)、それをプログラム中のhtml出力にも使いたい訳です。
現在の状況は
echo "<p class=\"2ch\"><? include 'inc/giko.inc'; ?></p></div>";
html出力
<p class="2ch"><? include 'inc/giko.inc'; ?></p></div>
と表示されるのを
期待している出力
<p class="2ch">(;゚Д゚)</p></div>
((;゚Д゚)=inc/giko.inc内テキスト)
としたいわけです。
0732nobodyさん
04/08/21 14:49ID:???echo "<p class=\"2ch\">";
include 'inc/giko.inc';
echo "</p></div>";
?>
これで確実にOKと思う
0734nobodyさん
04/08/21 16:13ID:???http://jp.php.net/crc32
にあるcrc16用の関数を用いて、
function fcrc16($file){
if(!$fp = fopen($file, 'r')){
return 0xffff;
}
// メモリが足りないかも。
$buf = fread($fp, filesize($file));
$crc = crc16($buf);
fclose($fp);
return $crc;
}
としてやったのですが、うまく計算できませんでした。
どのようにすればうまく計算できるでしょうか?
0735nobodyさん
04/08/21 16:28ID:???の下のほうにcrc16のサンプルがあるよ
使えるかどうか知らないけどね
0739734
04/08/21 17:00ID:???それ、http://jp.php.net/crc32 と同じです。
そして、うまくいきません。
0740nobodyさん
04/08/21 17:40ID:???エラー内容くらい書いたら?
STDIN, STDOUT, STDERR という定数は PHP 4.3.0 以降の CLI 版の PHP で使用可能。
>>738 は CGI 版の PHP で実行していると予想してみる。
php -v で確認してみれば分かる。
どうしても CGI 版とか PHP 4.2.x 以下の環境でその定数を使いたければ、スクリプト
の最初で以下のように設定してしまうという方法もあるみたいだけど。
if (!defined('STDERR')) {
define('STDERR', fopen("php://stderr", "r"));
register_shutdown_function(create_function('', 'fclose(STDERR); return true;');
}
詳しくは以下のあたりを参照。
http://jp.php.net/manual/ja/features.commandline.php#22356
>>739
単純に 16進数変換をしていないだけだったりしない?
$crc = crc16($buf);
printf("%04X\n", $crc);
0741nobodyさん
04/08/21 17:57ID:???function crc16($string){
$crc = 0xFFFF;
for($x=0; $x<strlen($string); $x++){
$crc = $crc ^ ord($string[$x]);
for($y=0; $y<8; $y++){
if(($crc & 0x0001) == 0x0001){
$crc = (($crc >> 1) ^ 0x8408);
}
else{
$crc = $crc >> 1;
}
}
}
return $crc;
}
これでどうよ
0743734
04/08/21 17:59ID:???違いますね。。別で取得した値と
fcrc($file) == 0xBD9A
とかして、比較して検証しているんですが、結果異なっていますし。
0746nobodyさん
04/08/21 19:21ID:Ro1xuyZQPEARをつかってます。DAOの部分はDBになるんでしょうか?
userDAOはDBを継承してソメッドをしこしこ書けばよいのでしょうか?
0747nobodyさん
04/08/21 19:36ID:???誰かに PEAR コードの歩き方習うか試行錯誤で身につけろ。
ググれ、英語嫁、ダンプ取れ、コード読め、PHPDoc 嫁
それがイヤならマニュアルの整備されたパッケージ以外使わない方がいい。
DataObject ならマニュアル嫁。
0750Imo ◆.jC7ANgFY.
04/08/22 01:17ID:???いろいろ目を通したけど1つも見当たらなかったです。
というよりかそのCRCコードはファイルデータ以外に
ファイルサイズなども入っているとか…
# っつーかなんか面白いものつくりてー
# N-GRAM全文検索でもつくろっかな
0751736
04/08/22 02:06ID:???おおっ、すばらしい。さんくす。
そうか、マニュアルのこんなところに載ってあったのか。
予想と違うところに書かれてあると、見つけられんわ。修行してくる。
0752nobodyさん
04/08/22 02:10ID:???0753nobodyさん
04/08/22 03:56ID:97mKEXwz>>349とかマニュアルとか読んだ。
・ポインタとリファレンスが違うのはわかった。
・ $a =& で、変数もオブジェクトもリファレンスできるのもわかった。
・ function foo(&$var) の渡し方と返り方もわかった。
けど、結局わからなかったこと。
function定義の時の
<?php
function &foo(){
の関数名の最初の&ってどういう時に必要?
あと、
ttp://mylog.ishinao.net/id/117
の人はなんか偏執狂に見えるのは間違いか?
0754Imo ◆.jC7ANgFY.
04/08/22 09:35ID:???なくてもプログラムは動くっぽいけど、
PHPマニュアル > II. 言語リファレンス > 14章リファレンスの説明
には以下のようなことが書かれている。
注意: パラメータを渡す場合と異なり、ここでは、
通常のようにコピーではな くリファレンスで返り値
を指定し、リファレンス結合を指定するために
両方の場所で&を使用する必要があります。
$fooについて行われたのは、通常の代入ではありま せん。
ここの人はperlから来たてでイライラしてただけじゃない?
0755nobodyさん
04/08/22 10:35ID:???以下のスクリプトで違いが分かるかもしれない。
<?php
function foo1() { static $a = 1; return $a; }
function &foo2() { static $a = 1; return $a; }
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);
$foo1 = 2;
$foo2 = 2;
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);
?>
多分、関数の前に & を付けると関数からの返り値には関数内の変数の
リファレンスが返ってくるということだろう。
よく分からなかったらあまり使わない方が安全かもしれないけど。
0756755
04/08/22 11:21ID:???デザインパターンで使われる singleton などはこの方法を使って実現している。
以下のサイトの説明が分かりやすい。
ttp://www.pat.hi-ho.ne.jp/dimension/sample/sample_class_dp_singleton.shtml
0757nobodyさん
04/08/22 11:59ID:???どうやったらいいのでしょうか。
0758nobodyさん
04/08/22 12:05ID:???height = 200+100 (と入ってると仮定して)
<input type="text" name="height" size="10" value="" />
これでPOSTして
$height = $_POST['height'];
echo $height; //ここが200になる。
のですが、これを300 200+100した値が取れるように出来ないものでしょうか?
POSTのFORMで200/2 や200*2などをやりたいのですが。
よろしくお願いします。
0759nobodyさん
04/08/22 12:23ID:???0760753
04/08/22 13:26ID:97mKEXwzレスthx.
実は、
http://jp2.php.net/manual/ja/language.references.return.php
ココのマヌアルページが理解できなくて......onz
>>755
>> 多分、関数の前に & を付けると関数からの返り値には関数内の変数の
>> リファレンスが返ってくるということだろう。
あぁ、function &foo(){...... return($a); }と $hoge =& foo();と両方とも "&" を
つけた場合にのみ、function foo()の返り値の$aのリファレンスが$hogeにおさめられると。
それ以外の、
・function foo(){...... return($a); }; で定義して $hoge =& foo(); でコール
・function &foo(){...... return($a); }; で定義して $hoge = foo(); でコール
だと、普通に$aが$hogeにおさめられる仕様になるわけですね。
これで、すこし━━━(゚∀゚)━━━━ッ!!って感じだったけど、
>>755でいただいたサンプルスクリプトを実行して???になりました。
最後のvar_dump($foo2)がなんで、int(2)になるんですか?..... onz
function foo2()の返り値$aのリファレンスが返ってくるということは、・・・・$aの実体はなんですか?
static $a = 1;だから、$a の実体は、int(1)じゃないんですか?なんで、int(2)がかえってくるんだろう?
function内のリファレンスを理解できてないな。
# $aはstaticというのは、function foo1とfoo2の$aは自分が呼ばれた記憶を$aに保持していると
# いうことで理解しているんですが合ってますか?それは、function内のリファレンスとは関係ない?
0761755
04/08/22 14:12ID:???static については、マニュアルを参照。
ttp://jp.php.net/manual/ja/language.variables.scope.php
最後の var_dump($foo2) が int(2) になるのは、9行目の $foo2 = 2; を実行したから。
これは、foo2() の中の static $a で定義した $a を変更したのと同じ。
つまり、言いたかったことは、
3行目の $foo1 =& foo1(); で取得した $foo1 は foo1() の static で定義された $a のリファレンスではないけど、
4行目の $foo2 =& foo2(); で取得した $foo2 は foo2() の static で定義された $a のリファレンスということ。
static の変数が単なる変数ではあまり大したことはできないけど、この形でクラスや配列を扱うよう
になると便利さがわかるようになるかもしれない。
PHP のソースを読んで確認した訳でもないのでもしかしたら間違っているかもしれないけど。
0762nobodyさん
04/08/22 15:48ID:E2HwDzLsこれって負荷と同義で考えて問題ナッシングでしょうか?
0763753
04/08/22 16:11ID:97mKEXwzあぁ。理解できました。ありがとうございます。
自分的には、こうしたらわかりやすかったです。
<?php
function foo1(){static $a = 1;return $a;}
function &foo2() { static $a = 1; return $a; }
$foo1 =& foo1();
$foo2 =& foo2();
var_dump($foo1);
var_dump($foo2);
$foo1 = 2;
$foo2 = 8;
$foo1 =& foo1();
$foo2_2 =& foo2();
var_dump($foo1);
var_dump($foo2_2);
?>
$foo2 =& foo2(); で、function foo2 の返り値へのリファレンスを作って
$foo2 = 8; で、function foo2 の返り値に8を入れる。リファレンスなので、function内の$aに影響して$a = 8;
static $a; と、foo2()で定義してるので、そのあとに
$foo2_2 =& foo2(); で呼ばれた時にも$a = 8;が有効なので $foo2_2 には8が入る。
最後の $foo2_2 =& foo2(); は、$foo2_2 = foo2(); でも同じ結果ですね。
リファレンスを得るか値を作るかが違うだけで。
0764753
04/08/22 16:21ID:97mKEXwzhttp://jp2.php.net/manual/ja/language.references.return.php
が理解できなかった原因として、下記のサンプルコードがあるんですが、
<?php
function &find_var ($param) {
...コード...
return $found_var;
}
$foo =& find_var ($bar);
$foo->x = 2;
?>
このfunction find_var()は$found_varを返していますが、
これは次の
$foo->x = 2;
とあることから、....コード....で、作られたオブジェクトと考えていいのでしょうか。
「リファレンスを使う最大の目的はインスタンスの複製を行わないでメモリ消費を抑える」
ということから、あえて自明として....コード....の部分でオブジェクトを作ってると
マニュアルには記述してないのかなと思いますが。
合ってる?
それとも、「->」ってインスタンスのメンバにアクセスする以外の使い方で用いてるのかな?
0766755
04/08/22 17:50ID:???確かに分かりにくいコードだね。そこのマニュアルには、
「この例では、関数find_varにより返されたオブジェクトのプロパティが、設定されます。」
と書かれているので、find_var() はオブジェクトを返すのは間違いないと思うけど。
とりあえず、無理矢理サンプルを考えてみた。
static 変数を使わなくても global 変数でも同じ様にできるということで。
class Foo { }
$bar =& new Foo;
$bar->x = 1;
function &find_var($param) {
$found_var = null;
if (isset($GLOBALS[$param])) {
$found_var =& $GLOBALS[$param];
}
return $found_var;
}
function test1() { $foo =& find_var('bar'); $foo->y = 3; }
function test2() { $foo =& find_var('bar'); $foo->z = 2; }
test1();
test2();
$foo =& find_var('bar');
var_dump($foo);
0767nobodyさん
04/08/22 18:36ID:???変数として保持しながらページを作成していくと、javascriptの
history.back()を使用してページを戻るときに「有効期限切れ」と
なってしまいます。
フォーム入力確認で戻る必要があるのですが、どういった方法で
会員制にするのがよいのでしょうか?
0768nobodyさん
04/08/22 18:45ID:???すいません。セッションのスレで聞きなおします。
0769nobodyさん
04/08/22 19:52ID:a2aIDnS/どうして見れないのでしょうか?
設定の段階で何か失敗しているのでしょうか?
助けてください。
0771769
04/08/22 20:03ID:a2aIDnS/0772nobodyさん
04/08/22 20:13ID:???1)PHPをインストールしていない
2)webサーバの設定をしていない
「インストールってどうやるんですか」とか「設定ってどうやるんですか」なんて聞くなよ
0773769
04/08/22 20:21ID:a2aIDnS/0775nobodyさん
04/08/22 20:26ID:???0776nobodyさん
04/08/22 20:31ID:???0777nobodyさん
04/08/22 20:38ID:???夏になると教えたがり厨も増えて困る
0778nobodyさん
04/08/22 21:17ID:dLrjNlopと表示されるんですけどどのバージョンなら動きますか?
ちなみに今は、「php-4.2.3-0vl5」です
0779nobodyさん
04/08/22 21:26ID:???どのバージョンなら動くってよりも、
どのバージョンだから
Your PHP version does not have support for MySQL
ってでたのか書いた方がよくないんか?
しかもphpが究極にふるいけど。DBはいくつだ?
0781nobodyさん
04/08/22 21:31ID:???PHP4.3.4〜4.3.8
MySql 4.0.2
でNucleus3.0は動いてたよ。
0783nobodyさん
04/08/22 21:35ID:yiZXjncr0784nobodyさん
04/08/22 21:41ID:???0785nobodyさん
04/08/22 22:38ID:???0786nobodyさん
04/08/22 22:52ID:yiZXjncr自分で試したいのは山々なんですが、devenv5個起動してて、
さすがに無理そうです。
0787nobodyさん
04/08/22 23:36ID:???とりあえずやってみ。
0789nobodyさん
04/08/23 03:56ID:???マニュアル読んできますー
これからお世話になるかもしれませんので、
おyろしく
0790nobodyさん
04/08/23 04:04ID:Cbp61B7f基本的なことで申し訳ありません_(..)_
0792nobodyさん
04/08/23 05:01ID:???マッチしたうちの最も大きな文字列が入るという噂もあったんで迷っていたんですが、
そうじゃないみたいですね。ありがとうございました。
0793nobodyさん
04/08/23 11:20ID:mw0a3S3IPHP 内でタグを記述する時に
<br />
見たいな感じで、">" の出前に "/" が付与されてる事が
あるんですが、これの意味って何なのでしょうか・・・?
0794793
04/08/23 11:22ID:mw0a3S3I自分で調べられそうなサイトだけでもご教授くださいマセ orz
0795nobodyさん
04/08/23 11:40ID:???XHTML 入門 でぐぐってみそ。
0796nobodyさん
04/08/23 11:43ID:???0797nobodyさん
04/08/23 16:44ID:???【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/
0799nobodyさん
04/08/23 18:42ID:OxTNe7cI0800nobodyさん
04/08/23 18:55ID:???0801nobodyさん
04/08/23 22:10ID:???サイトを作ろうと思ってるんですが
何か気をつけた方が良いことってありますか?
0802nobodyさん
04/08/23 22:33ID:YOffYGPl2003年4月頃のをいまだに使用しております(`Д´)
0803nobodyさん
04/08/23 22:59ID:???0804nobodyさん
04/08/23 23:00ID:ozJ0+2Jeどのページ?
0805nobodyさん
04/08/23 23:06ID:ozJ0+2Jeずばり、文字コード。EUCとShift-JISね。
あと細かなところでは、ファイルのパスとか(「\」じゃなくて「/」を使ってるよね?)。
あとはファイル名の大文字小文字を区別うんぬんとか。つまりOS依存の部分ね。
>>803
そう思った理由を書いてみないと。
0806nobodyさん
04/08/23 23:08ID:???1文字しか違わないけど、ちょっと思いました。
0807nobodyさん
04/08/23 23:11ID:???GETはURLに埋め込めるんだよ。
↓
ttp://127.0.0.1/~php/index.php?get=get
の場合…
print $_GET["get"];
/* 結果↓ */
get
0809nobodyさん
04/08/23 23:13ID:???0811nobodyさん
04/08/23 23:31ID:???phpinfo()も、ロゴが表示されません。
たぶん、CGIの子プロセス側に与える変数が不足してるような気がするんだけど、
最低限必要な変数の一覧ってどこかに無いですか?
CGI/1.1Specは全く不十分でした。
そもそも変数をどうやって渡すかといった規定すらなく、
色々試してみるしか有りませんでした。
0812nobodyさん
04/08/23 23:34ID:???0813nobodyさん
04/08/23 23:38ID:???SafeModeはmod_phpのみ
0815nobodyさん
04/08/23 23:41ID:???PHP Test Suiteとかないかなぁ?
0816nobodyさん
04/08/23 23:43ID:???System Windows NT XP1 5.1 build 2600
Build Date Jul 13 2004 17:31:56
Server API CGI/FastCGI
Virtual Directory Support enabled
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety enabled
Registered PHP Streams php, http, ftp, compress.zlib
こんなの。
0817nobodyさん
04/08/23 23:51ID:YOffYGPlえー(;´Д`)
もしかしてみんな気付いてないの?
http://www.php.net/download-docs.php
ここの『Japanese chm』てのダウンロードしてみてよ。
もう1年以上も、文字バケバケなまんまですよ?
chmが一番便利だからよく使うのに、困ります(`Д´)
0818nobodyさん
04/08/23 23:53ID:???化けてないよ?
0819nobodyさん
04/08/23 23:55ID:???0820nobodyさん
04/08/23 23:57ID:???0821nobodyさん
04/08/23 23:59ID:???0822nobodyさん
04/08/23 23:59ID:???UTF-8にしろ
0823nobodyさん
04/08/23 23:59ID:YOffYGPlchmを開くと左側に検索フレームが出るべ?
[目次][キーワード][検索][お気に入り]ってさ。
そのキーワードが化け化けだっぺさ。
それが原因かしらんが、検索もできないだっぺさ。
とてとて困る(;´Д`)
2003年4月頃はまだ化けてなかったので
そのとき落としたchmを今だに使用しているよ(;´Д`)
なんとかして > 偉い人
0824nobodyさん
04/08/23 23:59ID:???0825822
04/08/24 00:00ID:???0826nobodyさん
04/08/24 00:00ID:Q8I08UQN>>822
> SJISで化けるだけだろ
> UTF-8にしろ
やりから教えてたもられ
0827nobodyさん
04/08/24 00:03ID:???いまいち意味が・・・
待てって意味なのかな??
0828nobodyさん
04/08/24 00:04ID:???で、こんなページ見つけたから参考にしてみて
ttp://apollo.u-gakugei.ac.jp/~sunaoka/misc/php_manual_ja/
0829nobodyさん
04/08/24 00:07ID:???0830nobodyさん
04/08/24 00:34ID:???ここに圧縮してアップしました。
CGIがさっぱりです。
0834nobodyさん
04/08/24 01:40ID:???PHPマニュアルを使いやすくするパッチ
http://www.vector.co.jp/soft/dl/win95/prog/se321697.html
0836nobodyさん
04/08/24 03:45ID:???test.php内で
<?php include($content); ?>
と記述して
http://xxxx.com/test/test.php?content="content.htm"
としてtest.phpにcontent.htmをインクルードしようとしているのですが、
エラーがでるので何かトンチンカンな間違いをしてるはずです。。
目的として、フレームレスのページを作りたくて、アドレスで変数を書き換えて
メインコンテンツの表示を分岐させたいのです。
どうすれば上手くいきますでしょうか?
宜しくお願いいたします!m(_ _)mm(_ _)m
0837nobodyさん
04/08/24 04:00ID:???echo file_get_contents($_GET['content']);
?>
こんなの?
0838nobodyさん
04/08/24 04:12ID:???例えばWin鯖なら、
http://xxxx.com/test/test.php?content=c%3A%5CDocuments%20and%20Settings%5C....
なんてされると、中身が丸見えになっちゃうよ。
0839nobodyさん
04/08/24 04:31ID:???0840nobodyさん
04/08/24 05:43ID:???ttp://bugs.php.net/bug.php?id=26616
かなり前からバグ報告は上がってるが、ずっとopenのまま。
直す気は無いらしい・・・
>>826
以前試しにchmをUTF-8で作り直してみたことがある
ビュアがSJIS専用に作られているらしく、結局キーワードは文字化け
一部にSJISで表示できない文字もあるのに残念
(>>822は>>825で修正してるけどね)
みんな困っているらしくて、php_manual_ja.chmでググると
直っているファイルが結構見つかる
0841836
04/08/24 11:40ID:???ありがとうございます!以下のようにしましたら上手くいきました!
これでサイドメニュー付きのフレーム無しページが作れそうです。
[test.php内]
<TABLE>
<TBODY>
<TR>
<TD>
<?php echo file_get_contents($_GET['content']); ?>
</TD>
<TD>
<a href="test.php?content=content01.htm">コンテンツ1</a><br>
<a href="test.php?content=content02.htm">コンテンツ2</a><br>
</TD>
</TR>
</TBODY>
</TABLE>
>838さん
>839さん
以上のようなソースのままではディレクトリを見られる危険性はあるということですね。
PHP側で禁止処理とは具体的にどういったものでしょうか?
それとも別な方法で、もっとスマートなやり方があるのでしょうか?
一応はググってみたのですがはっきりとわかりません。
教えて君ですいませんが宜しくお願いいたします。
0842nobodyさん
04/08/24 12:27ID:???index.php?name=うんこ
とか、名前にうんこ入って飛んで来たらいややん、
受け取ったうんこをどうにかしたいよね。
if(ereg("うんこ",$_GET['name'])){$_GET['name']="";}
そこで、名前にうんこが入ったら、名前を空にするとか
0844nobodyさん
04/08/24 12:36ID:???ex)
$content=array('content01'=>'content01.htm','content02'=>'content02.htm');
if(array_key_exists($_GET['content'],$content)){
$view_content=$content[$_GET['content']];
}else{
$view_content='not_found.htm';
}
-snip-
<?php echo file_get_contents($view_content); ?>
-snip-
<a href="test.php?content=content01">コンテンツ1</a><br>
<a href="test.php?content=content02">コンテンツ2</a><br>
-snip-
0845nobodyさん
04/08/24 17:40ID:???0846nobodyさん
04/08/24 18:07ID:???0847nobodyさん
04/08/24 18:12ID:???携帯相手に変換しなくてもいいってぐらいしか思いつかない
0848nobodyさん
04/08/24 18:16ID:???ちゃんと設定していれば同じだろ。
開発環境とか鯖によって使い勝手が違う程度。
エンジン内部はUnicodeだったと思うが。
0849nobodyさん
04/08/24 18:32ID:???だからEUC推奨。
0850848
04/08/24 18:36ID:???古い情報なんだけど、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008149.html
> mbstringは内部的に全ての文字コードをUnicodeに変換しています。
> つまり、UTF-8等を使うともっとも効率良く動作します。
ってあるのだが、変わったのか?
0851nobodyさん
04/08/24 18:47ID:JRjosLZbXHTMLとRSS吐き出させてるから楽なんだけども。。
0852軟式PHP
04/08/24 19:08ID:???0853nobodyさん
04/08/24 19:14ID:???出力はSJISでやってる
0854nobodyさん
04/08/24 19:37ID:???0855nobodyさん
04/08/24 19:57ID:???UTF-8で書くってのは・・・・
どんな設定のことを言うの?
まず、ソースの文字コードだよね?
あとブラウザに吐き出す header だよね?
テンプレートの文字コードだよね?
他には?
0856nobodyさん
04/08/24 20:37ID:???楽だから
0857nobodyさん
04/08/24 20:37ID:???0860nobodyさん
04/08/24 20:47ID:???0861nobodyさん
04/08/24 20:54ID:???fgetsで取得毎に mb_convert_encoding($buffer, "EUC", "JIS") という処理をかませているけども
ヘッダの Subject 部分がどうしても普通の日本語表記になってくれないんです...
Subject: =?iso-2022-jp?B?SVRTUxskQkw1TkE/R0NHJTUhPCVTJTkkTiQ0MEZGYhsoQg==?=
↑こんな感じで
本文及びHTML全体の日本語部分は正常に変換・表示できているのに
ヘッダのこの部分だけなんとも出来ない状態です
もしかして、これは仕様でしょうか?
それとも、変換処理がまだなにか足りないのでしょうか?
どうか神のご加護を
0862nobodyさん
04/08/24 20:57ID:???phpにはこんな関数もあるんだな
便利だよなぁ
0865nobodyさん
04/08/24 21:17ID:???実際にUTF-8で運用するってなったら、
ソースの文字コードだけでなく、色々設定必要だよね?
ってか普通はコーディングのみUTF-8でやるってことなの?
(で、出力はSJISとか)
ってことはEUCで書いたコードを全部文字コード変換でUTF-8に変換すればいいってわけ?
0866Tom
04/08/24 21:19ID:l95C3MHeウェブ上のimageフォルダにアップロードするページを作っています。
しかしimageフォルダにファイルを移すためには、このフォルダの
パーミッションをゆるくしなくてはならず(一応テストでは777に
してます。。。)、セキュリティ面でちょっと心配なのですが、
皆さんはこのようなケースではどのように対策されているのでしょうか?
imageフォルダには一応、トップページにリダイレクトするindex.php
を入れていますが、他にも何かできること、対策がありましたら
是非ご教授いただけると幸いです。
よろしくお願いします!
0870nobodyさん
04/08/24 21:43ID:BjXF/ulZわたしは特に気にしてませんね。
だってプロバイダとかが提供してるスペースにCGIおく場合も
パーミッション777とか755とかがデフォルトだし
0871nobodyさん
04/08/24 21:47ID:G+Zi/Jg+http://www2.ezbbs.net/04/235963
0872nobodyさん
04/08/24 21:53ID:???0873nobodyさん
04/08/24 22:05ID:gv2tQqB7phpでxml宣言(<?xml〜?>)を出力したいときはecho以外にどんな方法があるでしょう?
教えて下さい凄い人。
0874nobodyさん
04/08/24 22:07ID:k28OQysDヒアドキュ
0875nobodyさん
04/08/24 22:42ID:???php.ini で short_open_tag = Off
これを設定すると <? だけでなくて、<?= の形式も使えなくなるので注意が必要。
0876nobodyさん
04/08/24 22:58ID:9mq/YpZu文字列をGETで渡す場合、例えば
test.php?url=http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
とした場合、"&"以下の文字列が受け取れません。
http://www.google.co.jp/search?hl=ja
↑こんな感じ。
理由は分かるのですが、最後まで文字列として受け取れるアイデアは無い物でしょうか?
0877nobodyさん
04/08/24 23:02ID:???0878nobodyさん
04/08/24 23:12ID:???http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=hoge&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
という文字列を受け取りたいみたい
>>876
わざわざGETで渡さなくてもPOSTで渡せばいいじゃん
その方がユーザにも悪戯されにくいし(気休め
0879nobodyさん
04/08/24 23:16ID:???ああそういうことか。
&を何か別のセパレータに変えてGETで渡して
もらったところで、$_GET['url']を先ほどのセパレータで分割
とか?
0880nobodyさん
04/08/24 23:19ID:???0881nobodyさん
04/08/24 23:20ID:???0882879
04/08/24 23:20ID:???http://google(ryの中の&を\tにでも変える。
んで、GETで渡す。
もらった奴の\tを&にもどす
つーのでいいのでは?
0883nobodyさん
04/08/24 23:23ID:???0887876
04/08/25 00:25ID:N00bMw4b$_SERVER['QUERY_STRING']で解決できました。
もう一つ、恥ずかしいのですが、"url="以下を取り出す際、
$URL = $_SERVER['QUERY_STRING'];
$URL = strstr($URL,"url=");
$length = strlen($URL);
$URL = substr($URL,4,$length);
としています。
なんか不恰好な気がするのですが、もう少しスマートなアイデアありませんか?
0889nobodyさん
04/08/25 00:57ID:???$URL = $_SERVER['QUERY_STRING'];
$URL = substr($URL, strpos($URL,"url=")+4);
とか
preg_matchとか。
0890nobodyさん
04/08/25 00:59ID:hWDzpod0おれならこうする。
$URL=preg_replace("/^url=/,"",$_SERVER['QUERY_STRING']);
0892nobodyさん
04/08/25 01:06ID:???発想がちょうど逆だったw
preg_replace('/url=(.*)$/','$1',$_SERVER['QUERY_STRING']);
0893876
04/08/25 01:12ID:N00bMw4bもやもやがすっきりしました。よく眠れそうです。
>>891
長さを指定しなきゃいけないもんだと思い込んでました。
ありがとうございました。
0894nobodyさん
04/08/25 16:29ID:???やっぱりPearは最新版に更新してから使った方が無難?
0895nobodyさん
04/08/25 16:37ID:???つい先日php(rpm形式)をupdateしたら、
DB::DataObject pgsql.php のLIMITの扱いが LIMIT $count,$from になってて、
チョロっと2,3滴出てしまった。
(ある時期以降、PostgreSQLは LIMIT $count OFFSET $from しか受け付けないようになった)
0897nobodyさん
04/08/25 17:00ID:???教えてエロイ人。
普通にSmartyとかでテンプレート作っといて、
assignするだけでもいいような気もするけど・・・。
0898nobodyさん
04/08/25 17:04ID:hvemyQ1Yphpのテキストカウンターで。
xxx.phpで使うのなら
include("./count.php");
などで読み出しできるけど、
これをjavaスクリプトを使わないで
xxx.htmlで読み出し出来ないかなと思ってるのだけど、
何か方法ないですか?
本体ページがhtmlのみでCGI使えないサーバ−でphpは他サーバーで使ってるのだけど。
0900nobodyさん
04/08/25 17:24ID:???どこが板違いなんだよw
なんでもかんでも板違いって言えばいいってもんじゃないだろが。
iframe&ilayerか。さんきゅ。やってみるよ。
でも。それだと、BGに画像がある場合はその部分だけおかしなことになるかな。
ま。ありがとね。
0901nobodyさん
04/08/25 17:38ID:???夏休みもあと1週間ですよ
もう少しの辛抱です
0902nobodyさん
04/08/25 17:51ID:???0903899
04/08/25 18:38ID:???0904nobodyさん
04/08/25 18:55ID:???夏厨っていう蚊に刺されただけさ。
0905nobodyさん
04/08/25 19:01ID:???0906nobodyさん
04/08/25 19:05ID:???分からないからこそ聞いてるわけだし。
0908nobodyさん
04/08/25 19:10ID:JWj1Ppy80909nobodyさん
04/08/25 19:19ID:???この板が何処までサポートするかだな
0911nobodyさん
04/08/25 19:49ID:???0912nobodyさん
04/08/25 20:46ID:6+AB4ycNまでなんとなく理解したのですが、作って覚えるphpみたいな
サイトって無いですか?
0913nobodyさん
04/08/25 20:49ID:???0915Tom
04/08/25 21:13ID:dCL2qLIsレスどうもありがとうございました。
ウェブ上のディレクトリのパーミッションに関して、ちょっとナーバスに
なりすぎてますかね?
一応、ファイルをアップロードするページ自体はパスワードを必要とする
ディレクトリに入れているのですが、パーミッションを低くしている
Imageフォルダになんらかの方法で外部からアクセスされて悪さを
されやしないかと、心配だったんですけど。。
ところでBASIC認証について、恥ずかしながらはじめて知りました。
自分でちょっと調べてみましたがそんなこともできるんですね。
勉強になりました。
どうもありがとうございました!
0916nobodyさん
04/08/25 21:19ID:???ここにいるやつって他の板もだけど、
自分の思う事言えないやつがおおいよな。
集団でないと何も出来ないってやつか。
0917nobodyさん
04/08/25 21:20ID:BWOwaHCo$a[0]="a";
$a[1]="b";
$a[2]="c";
$_SESSION['a'] = $a;
のようにしてセッションに配列を入れた時、
セッションからの取り出し方が解りません。
別ページで
print($_SESSION['a']);
とhtmlに表示したら"Array"とかでてきました。
print($_SESSION['a'[0]]);
では何にも出てきませんでした。
ご教授お願いします。
0921nobodyさん
04/08/25 22:07ID:Qso0P8lzhttp://smile.poosan.net/ennetu/index2.htm
なんですが、「こんなんでいばんな」と少しでも思ったら掲示板に書き込んであげてください。
あとそれだけ威張っておきながら「ページとの一致はヤフー登録なんだよ!」とか言ってましたのでそこらへんも考慮してあげてください。
0924nobodyさん
04/08/25 23:34ID:Qso0P8lz復讐中さw
0925nobodyさん
04/08/25 23:37ID:4zCbnYMx0926nobodyさん
04/08/25 23:45ID:???0927912
04/08/26 02:18ID:Xl1ki6wyありがとうございます。
LetsPHPはチュートリアルが結構早く終わりました。
あとは配布しているソースの中身を見たりしたら
良いのでしょうか?
0928nobodyさん
04/08/26 04:21ID:???お前アホだろ
何でも良いからやれっつのw
やればやるほど知識になるんだから
0929912
04/08/26 04:32ID:Xl1ki6wyアホだから質問しているんだよ、ボゲ。
ありがとうございました。
0930nobodyさん
04/08/26 04:48ID:???わからんよな。
基本を押さえたら、実際に作りたいものを作り始めたり、
他の人のソースを丸写ししたりするのがいいんじゃないの?
0931nobodyさん
04/08/26 05:27ID:???pear Auth のauth_container_db *RECURSION*気になりませんか?
0932nobodyさん
04/08/26 13:47ID:p2TSxF3Gデザイナに手を入れてもらいたいのでHTMLエディタを検討しています。
PHPのコードが壊れないようなエディタって何があるのでしょうか?
フロントページはダメですよね。DreamWeaver とかどうなのでしょうか?
0933nobodyさん
04/08/26 13:48ID:luvI+xpD可能かどうかという点で質問します。
フォームを使って、
アクション先のURLを変更したいんですが、むりぽでしょうか?
PHP使用しなきゃむりぽですか?
麗:
<form action=http://(ここにvalue=URLの値)/>
<input type=text name=URL></form>
みたいな感じで。
0934nobodyさん
04/08/26 13:49ID:???0936nobodyさん
04/08/26 13:51ID:???<input type=text name=URL></form>
0937nobodyさん
04/08/26 13:52ID:???0939nobodyさん
04/08/26 13:54ID:???うちじゃDreamweaverでやってるべ。
とりあえず*アプリが*壊すことはない。
っていうかね、うちじゃPHP以前の問題で、フォームのnameを好き勝手変えといて
「動かなくなりました」とか言うんだよ?
PHP理解しろとはいわない。せめてHTML理解して組んでくれ。
いや悪い、つい愚痴を...
0940933
04/08/26 13:55ID:luvI+xpDマジスイマセン&助かりました。
ありがとうございますm(_ _)m
0941nobodyさん
04/08/26 14:26ID:???テキストエディタ使ってコード書く PHP プログラマに、
テキストエディタで対処出来ない web デザイナー& HTML コードでつか。
がくぶる。
0946nobodyさん
04/08/26 15:03ID:???unset($arr[1],$arr[2],$arr[3]);
としますが、削除したい要素の添え字が配列に入っているときは、どうすればいいでしょうか?($unsetlist = array(1,2,3);)
0947nobodyさん
04/08/26 15:26ID:???unset($arr[$value]);
}
テストしてない。
0949nobodyさん
04/08/26 15:31ID:???0950nobodyさん
04/08/26 15:35ID:???そういう時にはテンプレートですよ。
有名所だとsmartyってのがあるし、pearにも幾つか転がってる。
オイラはシンプルさから http://hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=htmltemplate
のを使わせてもらってる。
html中にPHPの命令文が入り込まなくなるので、デザイナさんに壊されることも無いし。
>>939のような事態は起こりえるけど、、、というか頻発するんだよなぁ。。_ト ̄|○
0951nobodyさん
04/08/26 15:36ID:???0952947
04/08/26 15:38ID:???うーん。俺はわからん。
もっと短い記述はあるのかもしれんが、
それはスマートじゃなくて、変態チックな予感がする。
あくまで憶測だが。
0953nobodyさん
04/08/26 15:44ID:???1行にまとめてみた
意味無いな・・・
0954946
04/08/26 16:08ID:???0955nobodyさん
04/08/26 16:10ID:???無理矢理考えて 2つくらい思い付いた。
array_walk($unsetlist, create_function('$v, $k, $c', 'unset($c[0][$v]);'), array(&$a));
とか、
call_user_func_array(create_function('$x', 'unset($x[' . implode('], $x[', $unsetlist) . ']);'), array(&$a));
とか。
>>952 の言う通り変態的にしか見えない。
0956946
04/08/26 16:11ID:???素直にforeach使います。
どうもありがとうございました。
0957955
04/08/26 16:18ID:???eval('unset($a[' . implode('], $a[', $unsetlist) . ']);');
0958nobodyさん
04/08/26 16:21ID:g+Sdupz+こういう書き方をするとエラーになりますが、( $hoge )はダメなのですか?
0960nobodyさん
04/08/26 16:37ID:???0961nobodyさん
04/08/26 17:00ID:???PHP4.3.8 で使う場合、該当バージョンがありません。
4.3.0版をダウンロードすればよいでしょうか?
0962932
04/08/26 17:24ID:p2TSxF3Gありがとうございました。
0963nobodyさん
04/08/26 17:56ID:???裕福な会社でつね_| ̄|○
0964nobodyさん
04/08/26 18:05ID:???その方がいい物が出来るけどね。
といいつつ俺も全部一人でやってまつ。
本物のデザイナーなら欲しいな。
プライドと給料だけ一人前で能力付いてこないヤツ大杉なのよ。
0965nobodyさん
04/08/26 18:07ID:???0966軟式PHP
04/08/26 18:09ID:???チェックしたほうがいいかもしれませんね。
0967961
04/08/26 18:27ID:???ところが・・・。
Failed loading /usr/.../php_accelerator_1.3.3r2.so:
/usr/.../php_accelerator_1.3.3r2.so:
cannot open shared object file: No such file or directory
そんなファイル無いよ?って言われます。
lsではちゃんと表示されるのに・・・。
# ... は 省略したところ。
$ ls /usr/.../php_accelerator_1.3.3r2.so
/usr/.../php_accelerator_1.3.3r2.so*
0970nobodyさん
04/08/26 18:46ID:???「php_accelerator "Failed loading" "cannot open shared object file"」でググっても
1件しかヒットしない。
世界で2番目だよ。
銀メダルみたいな?
ってゆーか、そんなエラーが出る可能性って言ったら、
ディレクトリの読み取り権限しか思いつかないや。
0971nobodyさん
04/08/26 19:02ID:???権限は色々といじってみているんですがニンともカンとも。
PHPをインストールするにもライブラリのリンクで苦労した
64ビットサーバにはPHPAは無理かなぁ・・・
0972軟式PHP
04/08/26 19:16ID:???0973nobodyさん
04/08/26 20:45ID:???配列bの数字の中に、配列aの数字がいくつ含まれているか、というのを調べる場合
1.配列aに配列bをpushして追加、12個にする。array_uniqueで重複を消し、countで要素数を調べ、12からその要素数を引く。
2.配列aを順番に見ていき、配列bの数字が含まれていたらunsetする。そしてcountで要素数を調べる。
というのを考えたのですが、どっちがいいですか?
それとも他に良い方法ありますか?何か、みなさんの言う”変態的”のやり方なようなのような気がして・・・
0974nobodyさん
04/08/26 20:46ID:???○10〃
でした、すいません。
0975nobodyさん
04/08/26 21:31ID:???とか。知らんけど。
0976nobodyさん
04/08/26 22:14ID:???0978nobodyさん
04/08/26 23:33ID:???0979nobodyさん
04/08/26 23:43ID:???0980nobodyさん
04/08/27 00:01ID:???$ts = microtime();
$te = microtime();
$tr = $te - $ts;
echo $tr."秒";
こんなんでいかが?
$ts = explode(' ', microtime());
$te = explode(' ', microtime());
$tr = array_sum($te) - array_sum($ts);
echo $tr * 1000 ."ミリ秒";
0982nobodyさん
04/08/27 03:59ID:VDNxy0Veこういう感じのwhois情報を取得するスクリプトの
書き方を紹介しているページはありますか?
0983nobodyさん
04/08/27 06:28ID:???whoisコマンドの結果をそのまま表示しているにすぎないようだが。
echo `/usr/bin/whois -h whois.nic.ad.jp $_GET['domain']`;
0984nobodyさん
04/08/27 08:15ID:???があったような気がします。
0986軟式PHP
04/08/27 11:55ID:???現状のベンチ結果みせてーおくれーよ。
モジュールにしてない、とか?
0989nobodyさん
04/08/27 13:13ID:???SQL が腐ってるとかな。
パフォーマンスのボトルネックを挙げて長所短所を調べた上で何から行っていくかを見極めるべきだと思うが。
昔、リスト表示を行うのに while でループかけていちいち SELECT 文を実行し一行づつ拾うプログラムを書いた業者がいて、
その後パフォーマンス改善を要求したらハードウェアへの再投資を求めてきたとかあったよ。
0990nobodyさん
04/08/27 13:28ID:???つか次スレ
0991nobodyさん
04/08/27 15:11ID:???Smartyだし、色々やってるからコードは確かに重い。
ab -n 1000 -c 10
で
Requests per second: 10.32 [#/sec] (mean)
ちなみにテスト用の32ビットサーバでは
PHPA無し 6 access/sec
PHPA有り 25 access/sec
0992nobodyさん
04/08/27 15:33ID:???まぁバカっぱやくなるよな。PHPA 以外にも色々あるよ。
んで Smarty 使ってるならキャッシュとか有効活用してる?全然違うぞ。
0993nobodyさん
04/08/27 16:42ID:XbK7BqmO{{ぽぽたん,萌え系},{花右京メイド隊,メイド系}}
ってな感じで、{{ }} 付で引っ張ってくるんですが、
配列関数を利用して、
[0]=>ぽぽたん
[1]=>花右京メイド隊
[0]=>萌え系
[1]=>メイド系
みたいに、{} を除いて入れたいんですが、可能でしょうか?
0995992
04/08/27 16:59ID:XbK7BqmO$moe_list=LTrim($moe_list,"\x7b..\x7d");
とかやって、$moe_arr=array($moe_list);
とかやろうと思ったんですが、{}が全部消えてくれません;;
考え方はあってるでしょうか?
0996995
04/08/27 17:34ID:XbK7BqmO0998nobodyさん
04/08/27 18:02ID:???【PHP】質問スレッドpart21【php】
http://pc5.2ch.net/test/read.cgi/php/1093597222/
0999nobodyさん
04/08/27 18:23ID:???1000nobodyさん
04/08/27 18:24ID:6DtrpXemおめでとう 自分
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。