■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/
0581電動ナナシ
2001/08/03(金) 00:44ID:Oa5aY4k6SQL 的解法:
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:???俺、別に何もしてないで
だと情報量 0 なので
>>581 >電動さん
別解の方やけど、なんで一行ずつ pg_exec() するのん? もったいなくない?
0586コメント無しさん
2001/08/03(金) 13:45ID:DhQExyss581じゃないけど、結局エラー処理がはさまってrollbackしたりするから
まとめてpg_execしないほうがいいんじゃない?
0587電動ナナシ
2001/08/03(金) 13:56ID:???単純に SQL 文を書こうと思ったんだけど、何となく PHP スレだから
PHP のコードの方がいいかなと思って pg_Exec をつけただけ。
特に意味は無いよ。
0588電動ナナシ
2001/08/03(金) 13:59ID:???そうそう。少なくとも COMMIT だけは除外しないと。
本気で書くのだったら commit の前に pg_Exec の戻り値を拾って
エラーだったら rollback という手順が必要だよね。
0589困ってます。
2001/08/03(金) 15:04ID:UwPOu2zo今度は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はどのように記述すれば良いのでしょうか?
よろしくお願いします。
0590568
2001/08/03(金) 18:40ID:aNOrs4Vo>>570
>>571
皆さん、ありがとうございます。
>電動ナナシ様
当方、プログラミングはHTML以外でPHPが始めてなんです。
もし宜しければお書きいただいております「アプリケーショ
ンの設計」関連で初心者を対象とした良い書籍などを教えて
いただけませんでしょうか。
0591教えて君
2001/08/03(金) 22:26ID:???どうなるかわからんけど試しにちょっと書いてみようかとか思わん?
>$SQL="SELECT column FROM table WHERE column = 'hoge'";
の中をそのまま置き換えればええだけ。
あと、>>588
COMMIT も含んでええんちゃうん?
エラーが発生した時点でそのトランザクション成立してないわけやし。
あ、でも RDBMS によってはマズいやつもあんのかな?
0592電動ナナシ
2001/08/04(土) 00:22ID:yWM3EPUw自分はオブジェクト指向から入った人間なので、テーマがオブジェクト
指向分析・設計になってしまうけど、
「オブジェクト指向とコンポーネントによるソフトウェア工学」
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:yWM3EPUwbegin して処理が中断されたときに勝手に commit するような実装は
まずないと思うけど、なるべく後始末を明示的にきちんとやる習慣を
つけた方がよいと思ってああ書いた。それにほかの人がコードを見た
ときに何をしているかを明らかにするという効果もあるだろう。
きちんと分かっている人どうしでなら省略してもいいだろうね。
0594名無しさん@お腹いっぱい。
2001/08/04(土) 01:12ID:h7D7YGic●ヒアドキュメントで格納した変数を表示しようとしたら、
printだといけて、echoだとエラーになりました。上記と関係あるんかな?
0595名無しさん@お腹いっぱい。
2001/08/04(土) 02:07ID:???ここに書いてあることがすべて
0596コメント無しさん
2001/08/04(土) 02:37ID:5S9xJi7Qプログラム知らない人間にそれは無謀と思われ。
0597コメント無しさん
2001/08/04(土) 02:48ID:5S9xJi7Q>>592ダタヨ。
>>590
とりあえず、ソフトウェア設計初心者向けの本はあってもプログラム
の知識が一通りあることが暗黙の了解。
プログラムがソフトウェア作成の1工程にすぎない&もっとも重要な
工程であることを意識しつつ、まずはプログラムをがしがし組んで見
るのが良いと思うよ。
>>592の本の中では「憂鬱な〜」が一番平易な表現で読みやすいと思う。
C++の知識が無くてもCの知識で充分なはず。
というか、Cの知識しかない人向けだったと思うが。
とはいえプログラムの知識がなくて読めるオブジェクト指向の本はこれ
だけだと思うよ。
0598コメント無しさん
2001/08/04(土) 06:17ID:5S9xJi7Qステートメントと関数の違い
0599名無しさん@お腹いっぱい。
2001/08/04(土) 16:12ID:h7D7YGicexpecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
といわれてしまうのですが、なぜですか?
0600599
2001/08/04(土) 16:40ID:???0601電動ナナシ
2001/08/04(土) 17:49ID:yWM3EPUwこれで動いたけど?そういう話ではない?
<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やっぱり敷居が高い?
モジュール化、凝集度、結合度って概念を理解してほしいなって思った
んだけどね。
プログラミング言語の知識なしに読める本なら、これもいいかもしれない。
「オブジェクト指向プログラミング入門」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
ただ版元品切れかもなあ。大き目の本屋にいけば在庫があるはず。
0603599
2001/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まずモジュール1個強がまともに作れないと。
分割もなにも無いと思う。
漏れのプログラムってだらだら長くて見にくいな〜とまず思わなければ
実感できないんじゃない?
0605電動ナナシ
2001/08/04(土) 19:45ID:???まあそうだよね。それじゃ >>568 さんがそういうことを実感した頃に
また改めて質問してもらうことにしよう。
つうことで、まずはガシガシコードを書いてみなさいな。>>568
0606電動ナナシ
2001/08/04(土) 19:50ID:yWM3EPUwEOT; の行の先頭に空白とか入っているんじゃない?
EOT; はその行の先頭にないと機能しないよ。
0608名無しさん@お腹いっぱい。
2001/08/04(土) 21:28ID:???0609名無しさん@お腹いっぱい。
2001/08/05(日) 18:07ID:???STEVE McCONNELL著、アスキー刊
厚くて高いけどオススメ
0611568
2001/08/06(月) 12:04ID:sqMOPgc.604さんのおっしゃる通りかもしれません。
まだ自分でこれだ!っていうスタイルもないのに、楽することを考えて
おりました。
実際に色々なプログラムを作成してみて、初めてこのプログラムを何と
かできないかなぁ〜、が正しい姿でしょうね。
こんどはプログラム自体で判らないことがありましたら、また改めて質
問させていただきます。
0612電動ナナシ
2001/08/06(月) 16:17ID:???「プログラム書法」B.W.Kernighan 他著
http://kyoritsu-pub.topica.ne.jp/bookhtml/0306/000603.html
も手元に置いておくといいんじゃないかな。よいコードを書くにはどうすれば
よいのかという点に焦点を当てた本。古いけど、読みやすいし、初心者には
いいんじゃないかと思う。
0613名無しさん@お腹いっぱい。
2001/08/06(月) 21:55ID:jVbx6/lYシステムの開発をしています。
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どういうシチュエーションなのかよく分からないのだが。
・Apache を起動していると、エクスプローラ等で普通に Excel ファイルなどを
ダブルクリックして起動させるのに時間がかかる。Apache を終了させると
すぐに立ち上がる
・HTML ページ上に Excel や PDF ファイルに対するリンクがあるが、その
リンクをクリックしても数分間応答がない。
後者の場合、リンク右クリックで「対象をファイルに保存」するとどうなる?
0615教えて君
2001/08/07(火) 02:22ID:xDDaQDl.配列の時ってどうやるか誰か知ってる?
{hoge[0]}
なんてやっても認識してくれないみたいなんやけど...
ソースちらっと見ただけではようわからんかった...
0616ナナ萌え(゚д゚)ウマー
2001/08/07(火) 02:43ID:???0617教えて君
2001/08/07(火) 03:10ID:xDDaQDl.えーと... これって俺のに対するレスだよな?
ありがたいけど違うみたいっちゅーか
ソースもうちょっと見てみたらどうもやっぱり無理っぽいような
気がすんのは俺だけ?
foreach ($this->variableCache as $name => $value) {
$regs[] = "@" . $this->openingDelimiter . $name . $this->closing
Delimiter . "@";
$values[] = $value;
}
ここと違う?
0618613
2001/08/07(火) 08:42ID:sBm9S5Ckレスありがとうございます。相談したケースは前者です。
後者を試してみたら、リンクから起動も「対象をファイルに保存」も
普通の速度でできたんですが…
0619名無しさん@お腹いっぱい。
2001/08/07(火) 10:16ID:B/Zo5TSw0620JAPU@エアコン直った...
2001/08/07(火) 11:39ID:???たとえば、EUC-JP ならこんなかんじで、
sub iskanji
{
return shift =~ /[\x8e\x8f\xa0-\xfe]/;
}
ASCII 以外の文字が含まれていれば真を返します。
0621JAPU
2001/08/07(火) 12:30ID:???0622名無しさん@お腹いっぱい。
2001/08/07(火) 13:48ID:???0623名無しさん@お腹いっぱい。
2001/08/07(火) 15:06ID:Ny4LYuIY{
print_r $esumoji;
}
else{
echo "(゚д゚)マイウー";
}
0624名無しさん@お腹いっぱい。
2001/08/07(火) 16:59ID:???0625JAPU
2001/08/07(火) 19:01ID:???氏んできます。
0626電動ナナシ
2001/08/07(火) 19:17ID:???せっかくの知識を生かさない手はないと思う。
Perl から PHP に翻訳可能なコードだったらどんどん出してもらって
いいと思う。翻訳可能かどうかはこっちが判断することにして、もし
翻訳不能なら、これは翻訳できないってフィードバックを返せばいいのでは
ないかな。そのうえでコミュニケーション不能って判断になるのだったら
それはそれで仕方が無い。
0627名無しさん@お腹いっぱい。
2001/08/07(火) 19:56ID:???良い事言うね。
0628Untitled
2001/08/07(火) 20:28ID:???0629名無しさん@お腹いっぱい。
2001/08/09(木) 18:16ID:TsBLqvp.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:???0632名無しさん@お腹いっぱい。
2001/08/10(金) 15:20ID:mgFNCq6A0633名無しさん@お腹いっぱい。
2001/08/10(金) 15:46ID:DFraO..kフォントのディセンダ、アセンダは求められます
でしょうか?
0634名無しさん@お腹いっぱい。
2001/08/11(土) 14:39ID:???クライアント(ActiveX)からサーバ(PHP)にファイル名をEUC変換
してPOSTする。
クライアントからサーバにPOSTしてさっきアップしたファイル名を取得する。
取得方法はPHPの吐いたHTMLを見て<FILENAME>xxx</FILENAME>
の部分のxxxを取り出しEUC→SJIS変換
ここでアップするファイル名が全角のdで終わる場合、なんか↓のように
「<」が見えなくなってしまいます。
<FILENAME>〜EUC文字〜/FILENAME>
ほんとウンコな質問ですみません。
0635634
2001/08/11(土) 14:48ID:???みればいい。。。(のかな?)
0636名無しさん@お腹いっぱい。
2001/08/16(木) 15:21ID:WXA1sEiAPHPで作っている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のユーザー (nobodyとか。サーバーの設定によって違う)でやってる?
0638電動ナナシ
2001/08/16(木) 16:36ID:byTTeF5oexec() する前の $command の内容を見てみな。
$command = escapeshellcmd($command);
echo "\$command is '" . $command . "'<br>\r";
exec("$command") or Error("配信予約に失敗しました。");
0639636
2001/08/16(木) 17:31ID:WXA1sEiAユーザの確認はしました。最初忘れてましたけど(^^;
ご指摘ありがとうございます。
>>638
電動ナナシさん
$command = escapeshellcmd($command);
を消したらうまくいきました。パイプが\回避されてるのがダメだったみたいです。
どうもありがとうございます。
0640電動ナナシ
2001/08/16(木) 20:23ID:byTTeF5oPHP3 までは 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:???と同じことをphp3で実現するにはどうすればいいのでしょうか?
0642電動ナナシ
2001/08/17(金) 05:56ID:YqYraPdc0643629
2001/08/17(金) 10:27ID:yJr7QHdU原因は「local.inc」中の「Example_Sesson」クラスの「$fallback_mode」を
「"post"」にしていたから、みたい。
なんで「"post"」にしてたかっていうと、URLにセッションのID(?)みたいなのが
表示されるのがイヤだったからなんだけど。
でも今度は認証かけてある各ページに行く度にログイン画面になるし。
これもi-mode端末のみの現象なんだけど。
なんでだろうなぁ。
0644名無しさん@お腹いっぱい。
2001/08/17(金) 22:58ID:h5Ic9dxwえ?フリーじゃないってこと?よくわかんないや
0645名無しさん@お腹いっぱい。
2001/08/18(土) 00:37ID:???そういう分からない人の為にわざわざURI書いてくれてんのに、
よくそんな発言出来るよな・・・。(;´д`)シンジラレネーヨ
0646名無しさん@お腹いっぱい。
2001/08/18(土) 08:25ID:???英語も読めないしGPLやZendの意味もわからない僕がPHPを
始めようとすること自体間違いだったのかもしれないです
ライセンスに関する日本語ドキュメントどこにも無いんですよね、、、
ということで失せます
0647電動ナナシ
2001/08/18(土) 17:38ID:0Aevniqcまあ基本的にフリーだが、一部制限つきということだ。
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してはいけないと書いています。これは私が構築した 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:???0650名無しさん@お腹いっぱい。
2001/08/20(月) 15:37ID:YTYQxxuA文字列(UNICODE)をPHP3でデコードするには、どのよう
にしたらよいでしょうか。
�@IEのJavaScriptのescape()を使用して文字列「ほげ」をエンコード
した結果 →「%u307B%u3052」
�APHP3のi18n_internal_encoding()の結果 → 「EUC-JP」
�B�@をi18n_discover_encoding()で調べた結果 → 「ASCII」
i18n_convert()を使っていろいろ試しましたが、どうもうまく
いきません。解決策をご存知の方教えてください。
0651名無しさん@お腹いっぱい。
2001/08/21(火) 12:12ID:rddG09uEPHPの過去のメーリングリストをあさって解決しました。
解決方法は勝手に転載してよいのか分からなかったので、
知りたい方は、とりあえず知らせてください。
0652みやた
2001/08/21(火) 15:19ID:jSRLzhwMフォームから書籍の出版日の年、月、日を
ユーザに入力してもらい、
($publish_year,$publish_month,$publish_day)
それを登録する以下のphpがあります。
=======================================
//出版日を8ケタ化
$publish_date = sprintf("%04d%02d%02d",
$publish_year,
$publish_month,
$publish_day);
//登録
$SQL = " INSERT INTO BOOK_MASTER(PU_DATE)
" VALUES(TO_DATE(:book_publish_date, 'YYYYMMDD'));\n".
OCIBindByName($rs, ":BOOK_PUBLISH_DATE", &$publish_date, -1);
=======================================
ここで、もし 出版日ナシのフラグ「$no_publish」がTRUEなら、
TO_DATE(:book_publish_date, 'YYYYMMDD')の代わりにNULLを入れたいのですが、
通常、どうするのがスマートなのでしょう?
$publish_date = sprintf のあとに、
unset($publish_date);
として見たのですが、
OCIBindByName bitelength is 0 in ...
の警告がでてしまうもので。(insert自体はうまくいっているようなのですが)
構文を組み替えてもかまいません。
==================
他人が作ったものを、
事情により普段Oracleなどいじらない私がいじっているもので、
かなりお恥ずかしい話で恐縮です。
0653名無しさん@お腹いっぱい。
2001/08/21(火) 17:09ID:Ttfz/Erwどうしたらよいのでしょうか?
rand()だと数字のみなので・・・。
例えば、「7fg47」のような感じです。
0654名無しさん@お腹いっぱい。
2001/08/21(火) 18:03ID:???PHPの質問じゃないな
関数自分で作れば?
0655質問
2001/08/21(火) 18:18ID:R2s3AHtIのようになってしまいます。これを回避するにはどうしたらよいのでしょうか?
0656電動ナナシ
2001/08/21(火) 21:05ID:1TWjFS4w$publish_date が空なら、INSERT 文の実行を行わないか、日付の挿入を
行わない INSERT 文を発行する。どちらにするかは、日付以外に挿入する
値の有無に依存する。
例)
if ($no_publish) {
$SQL = "INSERT INTO bookmaster(hoge, publishdate)
VALUES ($hoge, TO_DATE(:bookpublishdate, 'YYYYMMDD'))";
OCIBindByName(....
} else {
# publishdate が DEFAULT NULL なら hoge だけ INSERT
$SQL = "INSERT INTO bookmaster(hoge, publishdate)
VALUES ($hoge, NULL)";
}
>>655
stripslashes();
0658652
2001/08/21(火) 21:31ID:???ありがとうございます。
感謝いたします。
0659電動ナナシ
2001/08/21(火) 21:35ID:1TWjFS4w<?
function getRandomString($length) {
$result = "";
# Base Strings
$base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$baselength = strlen($base) - 1;
for ($i = 0; $i < $length; $i++) {
$pos = rand(0, $baselength);
$result .= substr($base, $pos, 1);
}
return $result;
}
$randomString = getRandomString(5);
echo "\$randstr -> [" . $randomString . "]<br>\r";
?>
0660電動ナナシ
2001/08/21(火) 21:38ID:1TWjFS4w"_" 記号は SQL では 1 文字のワイルドカードを意味するから
(正規表現でいえば "." に相当)、あまり使わないほうがいいと思う。
0661653
2001/08/22(水) 13:09ID:dChLBg7w大変参考になりました。
ありがとうございました。
0662名無しさん@お腹いっぱい
2001/08/22(水) 17:44ID:ym3V.COkPHPにて正規表現でチェックを行いたいのです。
まずは、メールアドレスなどのチェック(半角英数字&記号のチェック)です。
あとは、全角文字のチェック。カタカナチェック。です。
一応半角数字はチェックできるのですが・・・
誰か教えていただければ光栄です。宜しくお願いします。
0663テストさん
2001/08/22(水) 22:14ID:???PHPマヌアルからの引用だけど
$token = md5( uniqid( rand() ) ); // 推測が困難であり、より優れている。
$randval = substr($token, 0, 5);
じゃだめなん?
この例は、極めて予測困難な 32 文字のID(128ビット16進数)を 作成します。
らしいし。短くてきれいだし。
0664電動ナナシ
2001/08/22(水) 22:23ID:???それも考えたんだけど、先頭 5 文字がどのくらいランダムに分布するか
分からなかったので(単なる勉強不足)今回はあえて別解を考えてみた。
0665名無しさん@お腹いっぱい。
2001/08/22(水) 23:11ID:???んぐらい自分で調べろよ。
うざい。
0666教えて君
2001/08/22(水) 23:12ID:???そうじゃな、こちらの方が例えば 0 と O とか I と l が
紛らわしいので使いたくない向きにもよろしそうじゃしな。
ところで最近の若者は mt_rand() なんぞは使わんもんなんじゃろか?
0669名無しさん@お腹いっぱい
2001/08/23(木) 15:47ID:cRebnFX2FとM以外はダメだよって言うソースの書き方って
if(ereg("[^F|M]{1}",$in_Hensu)){
echo "error";
exit;
}
だよね?それとも書き方違う?
0670new
2001/08/23(木) 16:16ID:MmYN4CjYphp3って配列に要素を追加することは出来ないのですか?
perlでいうpushみたいな感じ。
php4ではarray_pushがあるそうですが。
今の環境では3しか使えないので・・・。
0671名無しさん@お腹いっぱい
2001/08/23(木) 16:27ID:cRebnFX2なかったら自分でfuction作れ
作ったソースを俺に教えろ!
0672名無しさん@お腹いっぱい。
2001/08/23(木) 18:56ID:GljfP/6Mある鯖では動いて、もう一つの鯖では
「open_basedir restriction in effect. File is in wrong directory…(省略」
と、文句を言われ、「/tmp/****」からコピーできません。調べてみるとセーフモードというものに引っかかってるみたいなんです。
この鯖でアップロードは無理なのでしょうか?
0673名無しさん@お腹いっぱい
2001/08/23(木) 19:55ID:cRebnFX2正規表現の表し方ってどうやるの?
if (!ereg ("[0-9]{4}", $Hensu)){
echo "error";
}
だと5桁以降は、何を書いてもエラーにならない
だから、
if (!ereg ("[0-9]{4}[^.]", $Hensu)){
echo "error";
}
にしたんだけど 全然ダメ・・・・
だれかマジ教えてよ。正規表現むずかしい
0674672
2001/08/23(木) 20:18ID:GljfP/6Mじゃないのかな?
0675673
2001/08/23(木) 20:29ID:cRebnFX2自分も試しにやったけどダメだったんだよね。
でもアドバイスありがとう
0676674
2001/08/23(木) 21:05ID:GljfP/6M文頭のやつ忘れてた。
これでもダメかな?
0677673
2001/08/23(木) 21:28ID:cRebnFX2で・・・できたよ!!!(喜)
でも、これと同じく
1桁以上5桁以下指定で0〜9以下の数字しか記入できない
正規表現でやったんだけど無理だった・・
if (!ereg ("^[0-9]{1,5}$", $Hensu)){
すげーくやしいっ!!
0678echo"名無しさん";
2001/08/23(木) 23:51ID:???$array[] = $var;
マニアルにあるこれじゃなくて?
>>672
所有者が違うからだね。
copy("a.php","b.php");かrenameするとアップロードできるかも
0679名無しさん@お腹いっぱい。
2001/08/23(木) 23:58ID:cvwLP0MEこんな感じ?
function _array_push($array, $value){
$array[count($array)+1] = $value;
return $array;
}
0680名無しさん@お腹いっぱい。
2001/08/24(金) 00:01ID:FYzqPGzMあ・・そんなのでできたのか。
鬱だ逝ってきます。。。
0681E_ERROR
2001/08/24(金) 01:11ID:???どんな風に無理だったのですか?
『00001』の様に零が付くのが問題?
もしそうだったらその判定前に
$Hensu=sprintf("%d",$Hensu);
として零を削ってあげると良いかも。
ただ『00000』とかは『0』になりますけど。
■ このスレッドは過去ログ倉庫に格納されています