トップページ⇒php
1001コメント403KB

■PHP板 質問専用スレッド■

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 NGNG
一応たててみた。
レスは気長に待つのが良い感じかも。

答えられる方、返答よろしくお願いします。

参考リンク
■本家
http://www.php.net/

■Japan PHP Users Group
http://www.php.gr.jp/

■PHP 日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html

■PHP日本語マニュアル
http://www.asakawa.ne.jp/doc/php/ja/sjis/
0549名無しさん@お腹いっぱい。2001/07/25(水) 02:51ID:???
---ML から引用---
> PHP4.0.6では、PHPファイルと、内部コードは、合わせないとなりません
> また、内部コードをSJISにすることはできません
> (\が2バイト目にこない文字だけつかうなら大丈夫だけど)

'PHPファイル' と '内部コード' とは何を指すのでしょうか?

また、SJIS で記述した場合はどうなるのでしょうか?
0550教えて君2001/07/25(水) 05:06ID:/ngu5PCE
>>549
WEB+DB Press Vol.3 読みなはれ
0551名無しさん@お腹いっぱい。2001/07/25(水) 11:48ID:???
>>548
例外を捕まえられるようになれば嬉しいんだけどね〜
VBやRubyでさえできるのに…
0552名無しさん@お腹いっぱい。2001/07/26(木) 17:15ID:???
PHPの\B=通常の\bってことありません?
\bの意味で\B使ったら上手くいったんですけど・・・。
0553Thanks2001/07/27(金) 12:32ID:Mtq49UWA
こんにちは。ワタシハCGI初心者デス。
今、掲示板のような情報登録&検索システムを作ろうと思っています。
http://world.gokinjo.net/
↑こんなかんじのです。

情報を登録してもらう件数が、1000件程度なら、Perlのみで作ればいいのかなと思ってます。(=DBは使わない)
しかし、1万件以上の登録数になったら、PHP+DBでないと検索が遅くなってしまうのかなと心配しています。

今、オライリーのプログラミングPerlを17ページまで読んだだけですが、できればPerlで作りたいと思っています。
もし、PHP+DBを使う場合は、Perlに比べてどのような優位性がありますか?
よく知らないのですが、Java+DBとPHP+DBではどんな違いがありますか?
(=プログラム作成や改変の容易性、動作の速さ、コスト等)

(他の板に書いたら、板違いとのことで、ここに書かせていただきました。。。)
0554名無しさん@お腹いっぱい。2001/07/27(金) 17:00ID:uC6ed62c
>>553
PerlとPHP、Javaを比べると、PHP,Javaの方がサーバの負荷が低いです。
でもJavaはブラウザを選ぶので、不特定多数のユーザが利用するなら
PHPがお勧めです。
0555名無しさん@お腹いっぱい。2001/07/27(金) 18:07ID:TfpoiEN6
>>553
今後の拡張を考えるなら、何かしらのDBを置いておいた方が
吉かも。
言語に関しては、規模によるけど、それほど大きな規模でなければ
好みの問題になるのかな。
Perl・PHP・Javaなら、どれでもフリーで環境構築できるしね。

Perlに慣れているなら、Perl+DBで良いかと。

>>554
>でもJavaはブラウザを選ぶので
なぜ?サーバ側で動くから関係ないよね。
アプレットと勘違いしてない?
0556名無しさん@お腹いっぱい。2001/07/28(土) 10:32ID:VMQSoJQc
CGI版のPHPにコマンドラインから引数を渡すことってできないんすか?
0557名無しさん@お腹いっぱい。2001/07/28(土) 10:45ID:sgB6IwE.
できるでしょ
0558電動ナナシ2001/07/28(土) 19:39ID:???
>>556
>>357 参照
0559名無しさん@お腹いっぱい。2001/07/29(日) 12:04ID:???
PHP書く上でセキュリティー面で気をつける事って何がありますか?
はじめてCGIやるのでよく分からないんですが、
perlだとJPNICをハックした時に使われたとかいうやつが
があるじゃないですか?
それの対処法は「ユーザーからの不正な入力排除する処理ををする。」
と解釈したんですがそれはPHPでも起こるんでしょうか?
UNIXとかLINUXとかが分からないので本質的なものが理解できなくて
わからん。
0560教えて君2001/07/29(日) 16:48ID:emkJF2Ac
>>559
PHP 勉強する前に
UNIXとかLINUXとか勉強しなはれ

そういうこと聞いてる時点でいくら気をつけても無駄だと思うよ
0561名無しさん@お腹いっぱい。2001/07/29(日) 17:35ID:???
ハンドルの割にいいこと言うな
0562名無しさん@お腹いっぱい。2001/07/29(日) 19:47ID:a3gXH7sI
30秒制限て無いですか?外す方法は?
0563名無しさん@お腹いっぱい。2001/07/29(日) 23:10ID:qtl7W5xk
>>559
セキュリティとかで気をつけるのは、
掲示板とかでGETで書き込めないようにするとか?
includeするファイル名を外部から直接渡さないとか?
http://www.securereality.com.au/studyinscarlet.txt
0564名無しさん@お腹いっぱい。2001/07/29(日) 23:27ID:BpCjvsHM
>>559
touch index.html
0565Thanks2001/07/30(月) 15:21ID:n55Ttkok
553です。DBには、MySQLとかPSQLが一般的なようですが、InterbaseっていうDBもフリーで使えるものとしては良い方ですか?
(Interbaseが使えるレンタルサーバーがあったもので。。。)
http://www.inprise.com/devsupport/interbase/opensource/
0566名無しさん@お腹いっぱい。2001/07/30(月) 18:29ID:???
>>559
http://www.japu.org/cgi/security/
0567ドメイン名がみつかりません2001/07/31(火) 04:06ID:fBm.6Z4Y
>>559
PHP=CGIということを書くと敏感に反応されるぞ。
0568名無しさん@お腹いっぱい。2001/08/01(水) 14:57ID:???
例えばフォームによる会員登録ページを作成して、フォーム内
に氏名 ($name)とパスワード($password)という項目を作成した
場合、データベースに登録する前にこれら2つの項目がちゃんと
入力されているのか?、また入力されていた場合に指定の正規
表現であるのかどうかをチェックしたいと思います。

この場合、
if ($name != "") {
print ("名前がありません。");
{
elseif (名前の正規表現をチェック) {
print ("名前の入力が正しくありません。");
}
elseif ($password != "") {
print ("パスワードがありません。");
}
elseif (パスワードの正規表現をチェック) {
print ("パスワードの入力が正しくありません。");
}
みたいな処理でいいのでしょうか?。

この例のようにフォームの欄が2つならこれくらいの項目を書く
のは楽ですが、もし項目があと10、20と増えてチェックをしてい
かなければならないようば場合も同じようにスクリプトを書いて
いかなければならないものなのでしょうか?
0569名無しさん@お腹いっぱい。2001/08/01(水) 15:13ID:XIFRUU8I
>568
perl互換の正規表現関数でパターンと文字列に配列を使ったのをみたことあるよ。
0570教えて君2001/08/01(水) 15:44ID:T8OlEVZk
>>568
ちゅーか入力項目が10も20もある時点で客は去っていくと思われ
0571電動ナナシ2001/08/01(水) 20:46ID:8IuXT3SQ
>>568
モジュールに分割せよ。アプリケーションを作っていく上で、変更が入り
やすい部分(例えば認証方法とか)とそうでない部分(処理の大まかな
流れとか)とに分けるのは基本中の基本。これ以上は「アプリケーションの
設計」とかをテーマにした書籍にあたると吉。

モジュールって何かって話なら、
・チェック用関数を定義した、include 可能なファイル
・チェック関連のメソッドを保持している、include 可能な Class 定義ファイル
くらいのことだと思ってほしい。
0572名無しさん@お腹いっぱい。2001/08/01(水) 23:54ID:???
あるファイルを逆にして、それを書き戻す場合に
・ファイル全体を配列に読んで、それを逆にしたものを戻す
・全体を読みながら行頭アドレスを配列に保存
 配列の後ろから1行読んでtmpfile()で作った所に書く
 tmpfile()で作った所の先頭からファイルに書き戻す
このくらいしか思いつかないんですが、いい方法はないですか?
0573名無しさん@お腹いっぱい。2001/08/02(木) 00:27ID:DguDE1y6
>>570
禿同!
0574教えて君2001/08/02(木) 00:52ID:B.cUN3ZE
>>572
何? 掲示板とかチャットでも作ってんの? それによるんちゃうん?
05755722001/08/02(木) 02:10ID:???
>>574
掲示板を作ってます
それで、上の場合はメモリ量が
下の場合は作業時間がやばいなと思ったんです
0576電動ナナシ2001/08/02(木) 02:19ID:VM7b3lbg
>>572
ファイルに保存するという前提なのか?

それなら、
・保存は正順、読み出しは逆順 -> 配列方式
・保存は逆順、読み出しは正順 -> tmpfile 方式
という関係になると思う。>>572 以外にもやり方はあるが、基本的には
>>572 のバリエーションになると思われる。

で、
・保存の回数が非常に多いとか、保存処理に負荷がかかる
 -> 保存処理はなるべくシンプルに
 -> 正順で保存し、読み出し時に工夫
 -> 正順パターン
 -> (゚д゚)ウマー
・保存回数が読み出し回数に比べてかなり少ないとか、保存処理の負荷より
 読み出し処理の方が負荷がかかる
 -> あらかじめ逆順で保存し、読み出し時の処理の負荷を軽減する
 -> 逆順パターン
 -> (゚д゚)ウマー
という関係になると思うが?
0577教えて君2001/08/02(木) 02:20ID:???
>>575
せっかくの PHP なんやから RDBMS と絡めてみたら?
掲示板程度だったら mySQL あたりでええんちゃう?
一発やで
0578困ってます。2001/08/02(木) 19:41ID:o1n3hnSU
phpでfor文等を使うと思うのですが
分からないので教えてください。

以下のテーブルがあるとします。

tableAAA
colX colY
---- ----
1 A
2 B
3 B
4 C
5 B


tableBBB
colX colQ
---- ----
1 BI
2 AG
2 CD
3 SR
4 YE
5 WU
5 AO

tableAAAでcolYが「B」の行を削除する事によってcolXが「2,3,5」が削除されます。
そして、tableBBBでcolXが「2,3,5」の行を削除したいのですが
PHPではどのように書けばよいのでしょうか?

PHP3.0.6で、データベースはsybaseを使っています。
よろしくお願いします。
0579教えて君2001/08/02(木) 20:19ID:???
>>578
ずれ�р�
ひょっとしてPHPの質問ちゃうんちゃうん...

サブクエリー使えば SQL だけで解決するんやないの?
0580困ってます。2001/08/02(木) 20:33ID:o1n3hnSU
PHPで、ボタン一発で「B」の行削除 & tableBBBの「2,3,5の行」の行削除
ってやりたいんです。。
0581電動ナナシ2001/08/03(金) 00:44ID:Oa5aY4k6
>>578
SQL 的解法:
Table AAA の ColX を Table BBB の ColX の外部キーにし、削除が
CASCADE するように定義する。例えば、PostgreSQL なら
CREATE TABLE bbb (
 colx int2,
 varchar coly,
 CONSTRAINT fk_aaa FOREIGN KEY (colx) REFERENCES aaa(colx) ON DELETE CASCADE
);
とする。

別解:
pg_Exec("BEGIN");
pg_Exec("DELETE FROM bbb WHERE colx IN (SELECT colx FROM aaa WHERE coly = '" . ${Key} . "')");
pg_Exec("DELETE FROM aaa WHERE coly = " . ${key} . ";");
pg_Exec("COMMIT");
0582電動ナナシ2001/08/03(金) 00:48ID:???
ああ、未修正のまま書いてしまった
CREATE TABLE bbb (
 colx int2,
 coly text,
 CONSTRAINT fk_aaa FOREIGN KEY (colx) REFERENCES aaa(colx) ON DELETE CASCADE
);
0583困ってます。2001/08/03(金) 11:14ID:UwPOu2zo
電動ナナシさん、レスありがとうございます。
うちはSYBASEなんですが、同じような事が出来ると思うので
これからがんばってみます。
0584困ってます。2001/08/03(金) 11:15ID:???
教えて君さんもありがとうございます。
0585教えて君2001/08/03(金) 11:35ID:???
>>584
俺、別に何もしてないで
だと情報量 0 なので
>>581 >電動さん
別解の方やけど、なんで一行ずつ pg_exec() するのん? もったいなくない?
0586コメント無しさん2001/08/03(金) 13:45ID:DhQExyss
>>585
581じゃないけど、結局エラー処理がはさまってrollbackしたりするから
まとめてpg_execしないほうがいいんじゃない?
0587電動ナナシ2001/08/03(金) 13:56ID:???
>>585
単純に SQL 文を書こうと思ったんだけど、何となく PHP スレだから
PHP のコードの方がいいかなと思って pg_Exec をつけただけ。
特に意味は無いよ。
0588電動ナナシ2001/08/03(金) 13:59ID:???
>>586
そうそう。少なくとも COMMIT だけは除外しないと。
本気で書くのだったら commit の前に pg_Exec の戻り値を拾って
エラーだったら rollback という手順が必要だよね。
0589困ってます。2001/08/03(金) 15:04ID:UwPOu2zo
578で質問させてもらって、581の別解の考え方でやろうと思うのですが
今度はPHPの書き方でつまずいています。。

SQL文が1文だけの時は、以下のように書いてきましたが

<?
:
:
$CONN=sybase_connect("SERVER","USER","PASS");
$SQL="SELECT column FROM table WHERE column = 'hoge'";
$RES=sybase_query($SQL,$CONN);
:
:
?>

BEGIN
DELETE FROM bbb WHERE colx IN (SELECT colx FROM aaa WHERE coly = '" . ${Key} . "
DELETE FROM aaa WHERE coly = " . ${key} . "
COMMIT

このようなトランザクションとか複数のSQL文を実行させるためには
PHPはどのように記述すれば良いのでしょうか?
よろしくお願いします。
05905682001/08/03(金) 18:40ID:aNOrs4Vo
>>569
>>570
>>571
皆さん、ありがとうございます。

>電動ナナシ様
当方、プログラミングはHTML以外でPHPが始めてなんです。
もし宜しければお書きいただいております「アプリケーショ
ンの設計」関連で初心者を対象とした良い書籍などを教えて
いただけませんでしょうか。
0591教えて君2001/08/03(金) 22:26ID:???
>>589
どうなるかわからんけど試しにちょっと書いてみようかとか思わん?

>$SQL="SELECT column FROM table WHERE column = 'hoge'";

の中をそのまま置き換えればええだけ。

あと、>>588
COMMIT も含んでええんちゃうん?
エラーが発生した時点でそのトランザクション成立してないわけやし。
あ、でも RDBMS によってはマズいやつもあんのかな?
0592電動ナナシ2001/08/04(土) 00:22ID:yWM3EPUw
>>590
自分はオブジェクト指向から入った人間なので、テーマがオブジェクト
指向分析・設計になってしまうけど、
「オブジェクト指向とコンポーネントによるソフトウェア工学」
 http://www.ogis-ri.co.jp/otc/hiroba/OoBook/BookRanking/UMLBooks/UsingUML.html
とか
「憂鬱なプログラマのためのオブジェクト指向開発講座」
 http://www.seshop.com/bm_detail.asp?sku=56190
とかがよかったと思う。ただ後者については C++ の基礎知識がないと
読むのが面倒かもしれない。

英文を読めるなら
"The CRC Card Book"
 http://cseng.aw.com/book/0,3828,0201895358,00.html
もいいと思う。翻訳が出るという噂もあるが、いつ出るかは不明。
0593電動ナナシ2001/08/04(土) 00:27ID:yWM3EPUw
>>591
begin して処理が中断されたときに勝手に commit するような実装は
まずないと思うけど、なるべく後始末を明示的にきちんとやる習慣を
つけた方がよいと思ってああ書いた。それにほかの人がコードを見た
ときに何をしているかを明らかにするという効果もあるだろう。

きちんと分かっている人どうしでなら省略してもいいだろうね。
0594名無しさん@お腹いっぱい。2001/08/04(土) 01:12ID:h7D7YGic
●php特有の話じゃないかもしれないですが、echoとprintの違いってなんですか?

●ヒアドキュメントで格納した変数を表示しようとしたら、
printだといけて、echoだとエラーになりました。上記と関係あるんかな?
0595名無しさん@お腹いっぱい。2001/08/04(土) 02:07ID:???
http://www.php.net/manual/ja/function.echo.php

ここに書いてあることがすべて
0596コメント無しさん2001/08/04(土) 02:37ID:5S9xJi7Q
>>590
プログラム知らない人間にそれは無謀と思われ。
0597コメント無しさん2001/08/04(土) 02:48ID:5S9xJi7Q
まちがえた。
>>592ダタヨ。

>>590
とりあえず、ソフトウェア設計初心者向けの本はあってもプログラム
の知識が一通りあることが暗黙の了解。
プログラムがソフトウェア作成の1工程にすぎない&もっとも重要な
工程であることを意識しつつ、まずはプログラムをがしがし組んで見
るのが良いと思うよ。
>>592の本の中では「憂鬱な〜」が一番平易な表現で読みやすいと思う。
C++の知識が無くてもCの知識で充分なはず。
というか、Cの知識しかない人向けだったと思うが。
とはいえプログラムの知識がなくて読めるオブジェクト指向の本はこれ
だけだと思うよ。
0598コメント無しさん2001/08/04(土) 06:17ID:5S9xJi7Q
>>594
ステートメントと関数の違い
0599名無しさん@お腹いっぱい。2001/08/04(土) 16:12ID:h7D7YGic
関数のなかでヒアドキュメントを使うと
expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
といわれてしまうのですが、なぜですか?
06005992001/08/04(土) 16:40ID:???
ちなみに4.0.6
0601電動ナナシ2001/08/04(土) 17:49ID:yWM3EPUw
>>599
これで動いたけど?そういう話ではない?

<html>
<head><title>Test</title></head>
<body>
<?php
function heredoc($str) {
 echo <<<EOT
 <b>
 TEST OF HERE DOCUMENT IN FUNCTION<br>
 $str
 </b>
EOT;
}
heredoc("hoge");
?>
</body></html>
0602電動ナナシ2001/08/04(土) 17:59ID:yWM3EPUw
>>597
やっぱり敷居が高い?
モジュール化、凝集度、結合度って概念を理解してほしいなって思った
んだけどね。

プログラミング言語の知識なしに読める本なら、これもいいかもしれない。
「オブジェクト指向プログラミング入門」Timothy Budd 著
 http://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/books/4795297088/
 http://www.google.com/url?sa=U&start=4&q=http://home1.infonia.ne.jp/~delphian/delphi/history/bookrank2/bookrank/30.htm&e=642
ただ版元品切れかもなあ。大き目の本屋にいけば在庫があるはず。
06035992001/08/04(土) 18:12ID:h7D7YGic
すいません、関数の内外の問題ではないみたい。

●エラーのでるスクリプト:
<html>
<head><title>Test</title></head>
<body>
<?php
echo <<<EOT
<b>
TEST OF HERE DOCUMENT IN FUNCTION<br>
</b>
EOT;
?>
</body></html>

Parse error: parse error in /。。。。/test-here.php on line 11
(11行目は、</body></html>の行)

●↑で、ヒアドキュメントをやめたら動いた例<html>
<head><title>Test</title></head>
<body>
<?php
echo
"<b> ".
"TEST OF HERE DOCUMENT IN FUNCTION<br> ".
"</b>";
?>
</body></html>

・・・ヒアドキュメントを可能/不可能にする設定なんてありましたっけ?みつからないのですが。。。
ちなみに、phpinfoでちゃんと、バージョンは4.0.6でした。
0604コメント無しさん2001/08/04(土) 18:19ID:5S9xJi7Q
>>602
まずモジュール1個強がまともに作れないと。
分割もなにも無いと思う。

漏れのプログラムってだらだら長くて見にくいな〜とまず思わなければ
実感できないんじゃない?
0605電動ナナシ2001/08/04(土) 19:45ID:???
>>604
まあそうだよね。それじゃ >>568 さんがそういうことを実感した頃に
また改めて質問してもらうことにしよう。

つうことで、まずはガシガシコードを書いてみなさいな。>>568
0606電動ナナシ2001/08/04(土) 19:50ID:yWM3EPUw
>>603
EOT; の行の先頭に空白とか入っているんじゃない?
EOT; はその行の先頭にないと機能しないよ。
0607599=6032001/08/04(土) 20:16ID:???
>>603
いやぁ、どうみてもなにもはいっていないのですが。。。
おかしいな。。。
0608名無しさん@お腹いっぱい。2001/08/04(土) 21:28ID:???
Version は?
0609名無しさん@お腹いっぱい。2001/08/05(日) 18:07ID:???
「コードコンプリート」 ISBN4-7561-0210-7
STEVE McCONNELL著、アスキー刊
厚くて高いけどオススメ
0610電動ナナシ2001/08/06(月) 00:44ID:???
>>607
改行コードは?
06115682001/08/06(月) 12:04ID:sqMOPgc.
皆様、お勧め書籍の件ありがとうございます。
604さんのおっしゃる通りかもしれません。

まだ自分でこれだ!っていうスタイルもないのに、楽することを考えて
おりました。
実際に色々なプログラムを作成してみて、初めてこのプログラムを何と
かできないかなぁ〜、が正しい姿でしょうね。

こんどはプログラム自体で判らないことがありましたら、また改めて質
問させていただきます。
0612電動ナナシ2001/08/06(月) 16:17ID:???
>>609,>>611
「プログラム書法」B.W.Kernighan 他著
 http://kyoritsu-pub.topica.ne.jp/bookhtml/0306/000603.html
も手元に置いておくといいんじゃないかな。よいコードを書くにはどうすれば
よいのかという点に焦点を当てた本。古いけど、読みやすいし、初心者には
いいんじゃないかと思う。
0613名無しさん@お腹いっぱい。2001/08/06(月) 21:55ID:jVbx6/lY
Win98SE + Apache 1.3.20 + PHP 4.0.5 で社内向けの
システムの開発をしています。

Apacheが動いている状態で、ExcelやPDFのファイルをクリックしても
関連付けされたアプリが立ちあがらなくなってしまいました。
(正確には、5分後ぐらいに立ちあがる)

PHP 3.0.18-i18n-jaだとこのような現象はなかったのですが、
なんとか回避する方法はないでしょうか?

それとも素直に Linux や FreeBSD にするか、PHP3 に
戻すしかないのでしょうか。

httpd.confに以下は記述してあり、PHP自体は問題なく動いています。
LoadModule php4_module C:/php4/sapi/php4apache.dll
ScriptAlias /php4/ "C:/php4/"
AddType application/x-httpd-php4 .php
AddHandler cgi-script .cgi .pl
Action application/x-httpd-php4 "/php4/php.exe"

マニュアル読んで、半日検索してみたのですが解決策不明…
よろしくお願いします。
0614電動ナナシ2001/08/07(火) 01:36ID:hmQtM6Yc
>>613
どういうシチュエーションなのかよく分からないのだが。

・Apache を起動していると、エクスプローラ等で普通に Excel ファイルなどを
 ダブルクリックして起動させるのに時間がかかる。Apache を終了させると
 すぐに立ち上がる

・HTML ページ上に Excel や PDF ファイルに対するリンクがあるが、その
 リンクをクリックしても数分間応答がない。

後者の場合、リンク右クリックで「対象をファイルに保存」するとどうなる?
0615教えて君2001/08/07(火) 02:22ID:xDDaQDl.
PEAR の Integrated Template クラスで {変数名} とかって書けるけど
配列の時ってどうやるか誰か知ってる?

{hoge[0]}

なんてやっても認識してくれないみたいなんやけど...
ソースちらっと見ただけではようわからんかった...
0616ナナ萌え(゚д゚)ウマー2001/08/07(火) 02:43ID:???
$
0617教えて君2001/08/07(火) 03:10ID:xDDaQDl.
>>616
えーと... これって俺のに対するレスだよな?
ありがたいけど違うみたいっちゅーか
ソースもうちょっと見てみたらどうもやっぱり無理っぽいような
気がすんのは俺だけ?

foreach ($this->variableCache as $name => $value) {
$regs[] = "@" . $this->openingDelimiter . $name . $this->closing
Delimiter . "@";
$values[] = $value;
}

ここと違う?
06186132001/08/07(火) 08:42ID:sBm9S5Ck
>>614
レスありがとうございます。相談したケースは前者です。

後者を試してみたら、リンクから起動も「対象をファイルに保存」も
普通の速度でできたんですが…
0619名無しさん@お腹いっぱい。2001/08/07(火) 10:16ID:B/Zo5TSw
日本語と英数文字を区別する関数ってありますかね?
0620JAPU@エアコン直った...2001/08/07(火) 11:39ID:???
区別するって、日本語 (ここではASCII以外という意味) が含まれているかそうじゃないかってこと?
たとえば、EUC-JP ならこんなかんじで、

sub iskanji
{
return shift =~ /[\x8e\x8f\xa0-\xfe]/;
}

ASCII 以外の文字が含まれていれば真を返します。
0621JAPU2001/08/07(火) 12:30ID:???
正確には EUC-JP の JISX 0201 Kana, 0212, 0208 が含まれていれば、だけど。
0622名無しさん@お腹いっぱい。2001/08/07(火) 13:48ID:???
ここは PHP スレです。
0623名無しさん@お腹いっぱい。2001/08/07(火) 15:06ID:Ny4LYuIY
if(eregi("[:alnum:]",$esumoji))
{
print_r $esumoji;
}
else{
echo "(゚д゚)マイウー";
}
0624名無しさん@お腹いっぱい。2001/08/07(火) 16:59ID:???
JAPUたんPHP出来るのか?(藁
0625JAPU2001/08/07(火) 19:01ID:???
PHPスレッドだったのねスマヌ...
氏んできます。
0626電動ナナシ2001/08/07(火) 19:17ID:???
>>622,>>624
せっかくの知識を生かさない手はないと思う。

Perl から PHP に翻訳可能なコードだったらどんどん出してもらって
いいと思う。翻訳可能かどうかはこっちが判断することにして、もし
翻訳不能なら、これは翻訳できないってフィードバックを返せばいいのでは
ないかな。そのうえでコミュニケーション不能って判断になるのだったら
それはそれで仕方が無い。
0627名無しさん@お腹いっぱい。2001/08/07(火) 19:56ID:???
>>626
良い事言うね。
0628Untitled2001/08/07(火) 20:28ID:???
 最近PHPの開発ばっかやってたので、=~のperl正規表現が懐かしかったり(笑)
0629名無しさん@お腹いっぱい。2001/08/09(木) 18:16ID:TsBLqvp.
PHPLIBを使ってユーザー認証してるHPを作ってるんだけど、
i-modeに対応させようとi-mode用のHPも作ろうと試行錯誤してます。

PostgreSQLとphpを連動させてるんで、phpファイルなどの文字コードは
当然EUC-JPなんで、i-mode用のHPはファイルの出力の前にバッファリングして、
バッファの内容を一度変数に入れ、その変数をSJISにコンバートして出力してます。

で、フォームなどから入力されたデータは、$HTTP_POST_VARS、$HTTP_GET_VARSの
データを分解して、SJISからEUC-JPにコンバートしてデータを渡すようにしてます。


で、何故かi-mode端末からログインできません。
ユーザー認証が失敗した画面になります。

ちなみに、パソコンからは問題なくログインできます。

認証のIDやパスワードは英数字を使っているんで、文字コードの問題としても
通りそうなもんなんだけど。

ちなみに、ID、ユーザー名を空、つまりnull(という表現で合っているのか?)で
あらかじめ登録しておいて、認証画面の際に何も入力しないでログインボタンを押しても
行けるようにやってみたけど、やはりi-mode端末からはダメ。

考えられる原因があれば教えてください。
0630微笑2001/08/09(木) 19:08ID:???
__
         〃 _`__
     ,,-=-、、l{,_'´..._ `ヽ、、
   〃. ',.´二W´- ‐-`\ \ヽ、___
   _{l,'.'´      、 ヽ ヽ ヽ彡k、ヽ\
  .//`/   i l.    \ 、ヽ `、 i彡}ヽ`' ´ ▲女優,アイドル、脱がしました▲
. /| / i {  |l {\ {ヽ、_!..ヽ」_/} .}./ |__〉、
 \l.{. l.ヾ _.ゝ_土. ゝ -'fT;;ヽ,| lテ}| ||__〉
   /iヽゝヽ/{~);;:l     {:..''ノ'ノノ|{ノ |_!!女優,女子高生のエッチ画像ばかりを厳選収集!スクール水着,女優,画像ばかり。
  .|_|l」ヽ. ヽ ゞ‐'   、   ̄`ノレヽソ|  
     (.ソ.ゝ     --    /' {=}ノ ◆アイドル画像秘宝館◆
     (=| l へ、      /ノノ((.)). http://www.futomomo.com/netidol/idolhappy/maki/ 
     ((!)ヾヽヽ` ;.- ' ´ |'' ''"'´◆アイドラー◆
         `~^``/'l    ゜>\_ http://www.futomomo.com/netidol/idoler/megu/
     , -‐〃"´ |___/   >- 、 ◆セーラー服◆
   / ./〃    |=/    〃/  \ http://www.futomomo.com/netidol/sailor/miku/
  /   | ||, ‐-、_,...!、/_ ,..、 .〃/      ヽ ◆人妻◆
  〈   / -ー.{ { {.=  ヽ、|| l      | http://www.futomomo.com/netidol/waif/mai/
  |   ヽ  /| |\   / i 〉        | ◆スイート倶楽部◆
  〈  ∧ l_/./ |  | \ _/  /       / http://www.futomomo.com/netidol/sweetclub/miyuki/

asfvbgbh
0631名無しさん@お腹いっぱい。2001/08/10(金) 02:13ID:???
sage
0632名無しさん@お腹いっぱい。2001/08/10(金) 15:20ID:mgFNCq6A
PHPってライセンス体系はどうなってるんでしょう?
0633名無しさん@お腹いっぱい。2001/08/10(金) 15:46ID:DFraO..k
PHP3+GD+freetypeで日本語出力しているのですが、
フォントのディセンダ、アセンダは求められます
でしょうか?
0634名無しさん@お腹いっぱい。2001/08/11(土) 14:39ID:???
PHPとは特に関係ないのですが、今こんなのやってます。

クライアント(ActiveX)からサーバ(PHP)にファイル名をEUC変換
してPOSTする。
クライアントからサーバにPOSTしてさっきアップしたファイル名を取得する。
取得方法はPHPの吐いたHTMLを見て<FILENAME>xxx</FILENAME>
の部分のxxxを取り出しEUC→SJIS変換

ここでアップするファイル名が全角のdで終わる場合、なんか↓のように
「<」が見えなくなってしまいます。
<FILENAME>〜EUC文字〜/FILENAME>

ほんとウンコな質問ですみません。
06356342001/08/11(土) 14:48ID:???
今思ったけど、これってPHPの吐いたHTMLを一度SJIS変換してから
みればいい。。。(のかな?)
0636名無しさん@お腹いっぱい。2001/08/16(木) 15:21ID:WXA1sEiA
昨日からあれこれ試しているのですがうまくできないので教えてください。

PHPで作っているFORMからatコマンドで予約をしようと考えています。
実際はメールニュースの配信予約をしようと考えています。

以下はテストで作っているスクリプトの一部です。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 配信予約
$command = "/bin/ls -l /tmp |at 1500 2001-08-16";
$command = escapeshellcmd($command);
exec("$command") or Error("配信予約に失敗しました。");

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
※Function Error()は別途作っています。

コマンドラインから
$ /bin/ls -l /tmp |at 1500 2001-08-16
と入力すると
warning: commands will be executed using /bin/sh
job 15 at 2001-08-16 15:00
というようにワーニングは出るものの登録されます。

$ atq
でも表示されるのですが、ウェブから実行しても登録されません。
exec()関数の使い方が間違っているのでしょうか?
0637名無しさん@お腹いっぱい。2001/08/16(木) 16:32ID:???
シェル(コマンドライン)とWebではユーザーが違うと思われ。
登録の確認はWebのユーザー (nobodyとか。サーバーの設定によって違う)でやってる?
0638電動ナナシ2001/08/16(木) 16:36ID:byTTeF5o
>>636
exec() する前の $command の内容を見てみな。

$command = escapeshellcmd($command);
echo "\$command is '" . $command . "'<br>\r";
exec("$command") or Error("配信予約に失敗しました。");
06396362001/08/16(木) 17:31ID:WXA1sEiA
>>637
ユーザの確認はしました。最初忘れてましたけど(^^;
ご指摘ありがとうございます。

>>638
電動ナナシさん

$command = escapeshellcmd($command);
を消したらうまくいきました。パイプが\回避されてるのがダメだったみたいです。
どうもありがとうございます。
0640電動ナナシ2001/08/16(木) 20:23ID:byTTeF5o
>>632
PHP3 までは GPL、PHP4 からは PHP ライセンス + Zend ライセンス
詳しくは以下を参照。
http://www.php.net/license/

>>633
無理そうだなあ。
# Ascent, Descent の意味は以下の通りでいいんだよね?
 http://www.aceprocess.com/pro_tips2.html

>>634
なぜファイル名を 2 バイト文字で保存する必要が?
0641さる2001/08/17(金) 04:31ID:???
$var = Null; (<php4の関数)
と同じことをphp3で実現するにはどうすればいいのでしょうか?
0642電動ナナシ2001/08/17(金) 05:56ID:YqYraPdc
unset($var);
06436292001/08/17(金) 10:27ID:yJr7QHdU
自己レス。
原因は「local.inc」中の「Example_Sesson」クラスの「$fallback_mode」を
「"post"」にしていたから、みたい。
なんで「"post"」にしてたかっていうと、URLにセッションのID(?)みたいなのが
表示されるのがイヤだったからなんだけど。

でも今度は認証かけてある各ページに行く度にログイン画面になるし。
これもi-mode端末のみの現象なんだけど。

なんでだろうなぁ。
0644名無しさん@お腹いっぱい。2001/08/17(金) 22:58ID:h5Ic9dxw
>>640
え?フリーじゃないってこと?よくわかんないや
0645名無しさん@お腹いっぱい。2001/08/18(土) 00:37ID:???
>>644
そういう分からない人の為にわざわざURI書いてくれてんのに、
よくそんな発言出来るよな・・・。(;´д`)シンジラレネーヨ
0646名無しさん@お腹いっぱい。2001/08/18(土) 08:25ID:???
こめんなさい
英語も読めないしGPLやZendの意味もわからない僕がPHPを
始めようとすること自体間違いだったのかもしれないです
ライセンスに関する日本語ドキュメントどこにも無いんですよね、、、
ということで失せます
0647電動ナナシ2001/08/18(土) 17:38ID:0Aevniqc
>>646
まあ基本的にフリーだが、一部制限つきということだ。
FAQ より引用。

Q. なぜ PHP4 は PHP3 がそうであったように GNU Public License (GPL) の
もとで二重ライセンスとしなかったのでしょうか?

A. GPL はライセンスされたコードに対し、何が可能で何が不可能かについて
 厳しい制約を強制します。PHP の開発者は、PHP をできるかぎり普及させる
 助けとするために、より緩やかなライセンス(Apache スタイルの)のもとで
 PHP をリリースすることを決断しました。

Q. 端的に言って、PHP ライセンスは何を意味しているのでしょうか?

A. (注意: この回答はいかなる意味においても PHP ライセンスを変更するもの
 ではなく、ライセンスが意味するところについて概要を提供することを
 意図しています) 本質的には、PHP ライセンスは、商用・非商用に関わらず、
 あなたが望むように利用し配布し修正する権利を与えるものです。あなたは
 ユーザーに対してあなたの配布物が PHP を含んでいることを明確にする
 必要があります。
0648電動ナナシ2001/08/18(土) 17:39ID:0Aevniqc
Q. Zend ライセンスには Zend 込みで販売するものについて料金を請求
 してはいけないと書いています。これは私が構築した PHP スクリプトや
 ウェブサイトを販売できないということを意味するのでしょうか。

A, いいえ、まったく違います。この条項は Zend Scripting Engine ライブラリを
 用いて作成したソフトウェアのことを言っており、このライブラリを利用した
 PHP が実行するスクリプトは該当しません。あなたは、PHP ないし Zend ライセンスを
 気にすることなく、自由に、あなたが書いた PHP ソースコードをフリーまたは
 商用で配布できます。あなたは望むだけあなたの商用アプリケーションに PHP
 全体をパッケージすることができます。Zend Scripting Engine ライブラリを
 直接利用する商用アプリケーションを作ることができないということです。

Q. それで、Zend ライセンスのポイントは何ですか?いつそれを考慮すべき
 なのでしょうか?

A. あなたは以下の二つの場合に Zend ライセンスを意識するべきです。
 まず最初に、Zend Scripting Engine ライブラリにパッチを当てて公表
 する場合です。Zend ライセンスは Zend Technologies, Ltd. がこれらの
 パッチを使用料を払うことなく(詳しくはライセンス本文を参照)使うことを
 許可しています。次に、このライセンスは、商用アプリケーションを構築する
 ために Zend scirpting engine を商用で利用することを禁じています。
 もし Zend scripting engine を商用で利用したい場合には(例えば、
 あなたが書いているワープロのマクロ言語として)、ライセンスの情報を
 Zend Technologies, Ltd. に問い合わせなければなりません。
0649名無しさん@お腹いっぱい。2001/08/19(日) 12:48ID:???
PHPって便利ですねぇ。
■ このスレッドは過去ログ倉庫に格納されています