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

【PHP】くだらねぇ質問はここに書き込みやがれpart7

■ このスレッドは過去ログ倉庫に格納されています
00019662005/07/12(火) 01:47:09ID:qOoYFCn7
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/

立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0164軟式PHP2005/07/15(金) 21:14:31ID:???
>>163
161のコードを通すと、連結した絵文字を分離するから、
それに対して、>>160のコードを通したらイけると思うけど。
あと
>>\x1b\$G\x21\x0fabc
は1個の絵文字だから意味ないよ。
0165nobodyさん2005/07/15(金) 21:39:08ID:???
取ってきたデータが、"1"とか"2"だったら、"01"とか"02"にしたい時は
どうしたらよい??
0166nobodyさん2005/07/15(金) 21:40:50ID:???
http://jp2.php.net/sprintf
0167nobodyさん2005/07/15(金) 21:45:48ID:???
stripslashes()したいんだけど値段表記などの\マーク(バックスラッシュ)だけは表示したいという時は
正規表現にかけるしかないのでしょうか?
0168nobodyさん2005/07/15(金) 21:49:44ID:???
同じnameのチェックボックスに、複数チェックを入れると、
PHPだと最後のチェックボックスの値しか取らないみたいなんだけど…

ASPなら自動でカンマ区切り、
Perlなら区切るモジュールで、
PHPは?
0169nobodyさん2005/07/15(金) 21:55:15ID:???
×
<input type="checkbox" name="test" value="test1">
<input type="checkbox" name="test" value="test2">
<input type="checkbox" name="test" value="test3">

○
<input type="checkbox" name="test[]" value="test1">
<input type="checkbox" name="test[]" value="test2">
<input type="checkbox" name="test[]" value="test3">
0170nobodyさん2005/07/15(金) 22:00:21ID:???
>>169
配列にするっつーことですかい?
0171nobodyさん2005/07/15(金) 22:04:07ID:???
>>170
ttp://www.stackasterisk.jp/tech/php/php02_06.jsp
このあたりを見てください
0172nobodyさん2005/07/16(土) 02:36:41ID:???
implodeってムチャクチャ便利じゃん、ぽまえら知ってた?
0173nobodyさん2005/07/16(土) 02:53:22ID:???
知らないのはお前だけです。
0174nobodyさん2005/07/16(土) 06:55:00ID:6rljT00v
swfを生成するmingを使いたいのですが
yumでインストールはできないですよね?

makeしてPHPもコンパイルして構築しないとだめですか?
0175nobodyさん2005/07/16(土) 09:45:29ID:???
>>167
stripslashesが必要な文字列なら\は\\になってるはずだから問題ない
01761582005/07/16(土) 11:16:40ID:???
>>161
すぐ結果報告できなくてすみません。
V603SHから絵文字を入力して試してみました。

$strWrk = $_POST['body']; //$_POST['body'] = (男の子のマーク)(女の子のマーク)
do{
$tmp = $strWrk;
$strWrk = preg_replace("/(\x1b[\x24][\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)([\xF])/im","$1$2$4$1$3$4",$strWrk);
}while( $strWrk != $tmp );


$str = $strWrk;// 絵文字入り文字列
$regex = '/\x1b\$([E-G])([\x21-\x7a])+\x0f/e'; // 絵文字にマッチする正規表現
$str = preg_replace($regex, 'sprintf("<img src=\'%02X%02X.gif\'>",ord("$1"),ord("$2"))', $str); // 絵文字をイメージタグに変換して出力
echo $str;

結果↓
<img src='4721.gif'><img src='475C.gif'><img src='4722.gif'>
男の子と女の子の絵文字を入れると間に違うのが入ってしまうのですが、このほかには何個ならべても
おかしな点はありませんでした。完全ではありませんが私としては満足できるレベルになりました。
ありがとうございました。

どこ調べてもDOCOMOの絵文字についてはたくさん書いてあるのですが、VODAFONEの絵文字については
ネット上でどのように書かれてるかなどみつけられませんでした。絵文字について書いてる本がもう一冊あったので買ってみます。
0177nobodyさん2005/07/16(土) 11:19:08ID:???
細菌描画の表示が遅く感じる

<html>
<body>

<?php ほにゃらら ほにゃらら ?>

</body>
</html>

こんな感じでhtmlのなかにスクリプト書きまくってるからかな。
DBの接続とかしてるし。

ob_startとか使ったほうがいいのでしょうか。
0178nobodyさん2005/07/16(土) 12:29:36ID:???
APCを使えば倍以上早くなるっぽい
ttp://acapulco.dyndns.org/mod_uploader/#performance
0179nobodyさん2005/07/16(土) 16:26:26ID:6tLNOCU8
http://script.maikfan.com/
0180nobodyさん2005/07/16(土) 16:30:44ID:???
スマソ、誤爆った
0181nobodyさん2005/07/16(土) 18:18:31ID:mgfMVhVU
色んな場所で使うモノを、
関数かサブルーチンにしようとおもってるんだけど
どやってするの?

<本プログラム>
&GetDate;

<呼び出しプログラム>
sub GetDate{
$date = date('Y/m/d H:i:s', time());
}

とやってみたら、エラーが出たよ。
0182nobodyさん2005/07/16(土) 18:18:36ID:wfLNoi6t
ホームページのヒット率の上げ方教えてください。Yahoo登録以外で。
0183nobodyさん2005/07/16(土) 18:22:01ID:???
認証ページをsslにしてみたんだけど、セッションが切れてしまいます。
どうやったら切れませんか?
0184nobodyさん2005/07/16(土) 18:27:08ID:???
PHPとMySQLでデータベースを作っているのですが、入門書には、
SQL文を発行した際に、例えば
 $sql = "select * from tbl_hoge";
 $rst = mysql_query($sql);
 if(!$rst) print "だめぽ";
といったカンジでMySQLのエラーが出た際にエラーメッセージを表示させていました。
ところがPHPのマニュアルのmysql_queryの部分を見ると
$rst = mysql_query($sql) or die("だめぽ");
というような例文を挙げています。
これらは同じものなのでしょうか?

また、クエリーの結果falseが返ってくるケースとしては
クエリーが文法的に間違っているので撥ねられた場合のみ考えておけばいいのでしょうか?
例えばクエリーに問題がなくともサーバーが不調でMySQLがうまく機能していないとかにも
falseが返ってくることはありえるのでしょうか?
0185nobodyさん2005/07/16(土) 18:49:05ID:???
>>182
落語を見に行った後、SEOでぐぐれ。
0186nobodyさん2005/07/16(土) 18:50:52ID:???
>>181
つPerl
0187nobodyさん2005/07/16(土) 19:02:16ID:???
>>184
orはif文などに出てくるorと同じ
左がfalseなら右を実行するので、
mysql_queryがfalseならdieを実行する。
01881812005/07/16(土) 19:24:56ID:mgfMVhVU
>>187

Perlでしか出来ないってこと?
PHPでやりたいのです…。

Callしなくても、includeするだけで変数使えるとか!?
でも、呼び出しプログラムの方のエラーが出るの。
0189nobodyさん2005/07/16(土) 19:31:11ID:???
>>188
$date = _GetDate();
function _GetDate() { return date('Y/m/d H:i:s'); }

まず調べれ
0190nobodyさん2005/07/16(土) 19:39:24ID:???
>>188
お前が書いてるのはほぼPerlだってこと。
↓くらい読んでから質問しようね。
ttp://www.php.net/manual/ja/language.functions.php
01911812005/07/16(土) 20:11:53ID:???
<本プログラム>
$date = GetDate();

<呼び出しプログラム>
function GetDate(){
$date = date('Y/m/d H:i:s', time());
return $date;
}
としてみたけど、やっぱりえらーが出る。
Fatal error: Cannot redeclare getdate() in ......

呼び出しプログラムの2行目ってなってるけど
2行目は呼び出しの所。
何故〜
0192nobodyさん2005/07/16(土) 20:24:41ID:???
>>191
エラーメッセージを嫁。頭弱いのか?

ttp://jp.php.net/manual/ja/function.getdate.php を読んで
>>189氏が何故_を先頭に付けたか考えろ。
01931812005/07/16(土) 20:30:19ID:???
あ、そか。
getdateて組込関数が既にあるからか…
ごめんなさい、できました。

ついでに、すごく馬鹿な質問なのですが、
呼び出しプログラムの中で書いてある1個の関数の中に、
本プログラムで使いたい変数がたくさんある場合は
一つ一つreturnしないと、やっぱり無理?
0194nobodyさん2005/07/16(土) 20:35:41ID:???
お前はマニュアル読む気がないのか。
0195nobodyさん2005/07/16(土) 20:52:26ID:???
何を言っているのかワケワカラン
関数から複数の値を返したい、ってことを
言っているのか?
0196nobodyさん2005/07/16(土) 21:07:29ID:???
>>184
>or die("だめぽ");
このパターンの例文に関してなんだけど・・・

<html>から<body>と
</body></html>を、自分で作った関数で吐かせてる場合は
dieしちゃうと、そのエラーメッセージより後ろは表示してくれなくなるんで困ってます。この辺は皆さんはどんな風にしょりしてますか?

エラーメッセージの後ろに</body></html>をくっつけておくしかない?
01971842005/07/16(土) 21:16:59ID:???
>>187
なるほど。
エラー表示が1行で済みそうです。
どうもありがとうございました。

>>196
自分はエラー表示用関数を作ってます。
コンテンツを適当なヘッダとフッダではさむ通常の表示用関数に、
最後にexit()をつけたものをエラー表示用関数として使ってます。
01981812005/07/16(土) 21:17:45ID:???
やりたいことは、元々本プログラム内で書いていた、

$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);

を外部ファイルに記述し、色んな処理で手軽に$dateや$date_yyyyを使いたいのです。

ただのincludeしただけでも、
print $date;
print $date_yyyy;
のように使えるとは思うのですが、そうすると、外部ファイルの処理を全て動かすことになるので
よくないかな…と。

すみません、何言ってるかわからなくて…。
あと、マニュアルも一応読んでるんですが、よくわからなくて…。
ごめんなさい(´・ω・`)
0199nobodyさん2005/07/16(土) 21:56:37ID:???
>>198
外部ファイルの処理を全て。。。という部分が判るようで
判らないんだけど、その部分だけを外部ファイル、他の部分は
別の外部ファイルでいいのでは?

--- date.inc.php ---
<?php
$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);
?>

--- etc.inc.php ---
<?php
//その他の処理
?>

--- 本プログラム ---
<?php
require_once('date.inc.php');
require_once('etc.inc.php');

echo $date;
echo $date_yyyy;
?>

次レスに続けるね。
0200nobodyさん2005/07/16(土) 22:00:19ID:???
続きね。
元発言だと関数化したい、という話みたいだけど、関数や引数、戻り値が
あまり判っていないようなので、参考までに。
なるべく元のままで関数化しているので、あまりキレイなコードではないけど。

--- date.inc.php ---
<?php
function _GetDate() {
 return date('YmdHis', time());
}

function _GetDate_yyyy($date) {
 return mb_strcut($date, 0, 4);
}

以下、同様
?>

--- 本プログラム ---
<?php
require_once('date.inc.php');

$date = _GetDate();
$date_yyyy = _GetDate_yyyy($date);

echo $date;
echo $date_yyyy;
?>
02011962005/07/16(土) 22:36:12ID:???
>>197
なるほど。
いいのか悪いのか解らんけど、基本的にスクリプトは最初から最後まで<?phpと?>で囲んでしまって、getメソッドで飛ばしたモード判別変数でcaseで切り替え。
たいていはこんな作りなんで、どうしたものかと、思ってました。
エラーメッセージを引数にした関数を自分で作ってそこで実行すれば便利ですね。
02021982005/07/16(土) 22:49:02ID:???
>>199-200
レス、ありがとう(;_;)

>外部ファイルの処理を全て。。。
出来れば、共通で使うものは同じ外部ファイルにまとめて書きたくて
日付取得以外の処理も色々書いた場合、
ただのincludeだと、必要ない処理部分も読み込むことになるのかな、と思ったのです。

関数化にすれば、同一ファイル内に色々な処理が書かれていても
呼ばれたモノだけを読み込むのかなと思ってるのですが、
考えはあってるのでしょうか…。


>>200は、>>198を元に書いていただいたんだと思うのですが、
キレイにするとどんな感じになるのでしょうか?

一つの関数内で
return $date;
return $date_yyyy;
return $date_mm;
return $date_dd;
return $date_hh;
return $date_ii;
return $date_ss;
てしたら、案の定おかしい事に(-_-;)
0203nobodyさん2005/07/16(土) 22:54:51ID:trCc1XOq
PHP5を使っているのですが

定数宣言をすべて
interfaceに任せてそこでconstで定義しているのですが

PHP5のinterfaceを
Javaのinterfaceのように

public interface Constant {
 public static final String CONSTANT_STRING = "test";
 public static final String CONCATINATEED_CONSTANT_STRING = "This is a " + CONSTANT_STRING;
}
のような定義をしたいのですが

これをPHPでやろうとすると

interface Constant {
 public const CONSTANT_STRING = "test";
 public const CONCATINATEED_CONSTANT_STRING = "This is a ".CONSTANT_STRING; //<-ここでエラー
}

三行目のところでエラーが出てしまいます。
どうしてもJavaのような手法を使いたいのですができる方法はないでしょうか?
Javaのfinal(最初の一回しか代入が許されていない定数)に相当するものが
PHPにもあるかと思ってPHPのfinalを使ってみましたが残念ながらJavaのような定数宣言には使えず、
メソッドのオーバーライド禁止、クラス継承禁止程度にしかつかえないことに気付きがっかりしました。
もしくは私の知識不足かもしれません。

このように、Javaのinterfaceのような定数宣言を実装できる方法はないでしょうか?
もし知っている方がございましたらご教授願います。
0204nobodyさん2005/07/16(土) 22:58:16ID:???
さらに質問ですが
PHPにも、
Javaでよく使われているO-Rマッピングツール Hibernate, Cayenne, Jakarta Torque
などといったもの、
データバインディングツール Castor, Relaxerといったもの
はございますでしょうか?

PHPで複雑なRDBMSやXMLを弄るとき、どうしても煩雑に
なりやすいのでできればこういうソースコード自動生成ツールを使いたいのものです。
0205nobodyさん2005/07/16(土) 23:03:05ID:trCc1XOq
たびたびすみませんが
さらに質問をさせて頂きます。

PHP5ではnamespaceが利用可能であるとどこかのサイトで知ったのですが
2chのあるスレをみると使えなくなったというレスを見つけました。
Facadeパターンなどのようなデザインパターン実装しにくく非常に残念です。

namespaceの概念が無いのでnamespac名.クラス名と指定していたものを
一つのクラス名にnamespace名_クラス名という長い名前にすることで
クラスの重複を避けるという手法があるみたいですが
これではクラス名が長すぎでかつamespace特有の利便性があるからこそ
実現しやすいデザインパターンも実現しにくくなっています。

PHP5では標準ではnamespaceを実現できないみたいですが、
他の方法、ツールやライブラリなどを使ってnamespaceを実現する方法はあるでしょうか?


0206nobodyさん2005/07/16(土) 23:33:38ID:???
Java使え
0207nobodyさん2005/07/16(土) 23:50:26ID:trCc1XOq
>>206
そうしたいのですが仕事上どうしてもPHPを使わないといけないのです。
ミッションクリティカルも少ない単純なアプリケーションですので。
プロジェクトマネージャの判断でPHP5を使うことになりました。
0208nobodyさん2005/07/17(日) 00:04:49ID:???
うんこリーダーだな
0209nobodyさん2005/07/17(日) 00:17:03ID:B/lkcUpB
UTF-8で設定したMySQL4.1に、UTF-8の2バイト文字を登録して、PHPで表示させたら
「?????????????????」と文字化けしてしまった。
同じサーバ上のphpMyAdminだとちゃんと表示される。

$query = 'select * from table';
$result = mysql_query($query);
while($row = mysql_fetch_array($result){
print_r($row);
}

なにか特別なことって必要でしたっけ?
0210nobodyさん2005/07/17(日) 00:32:04ID:???
>>202
昔ながらのこんなテクニックもある。

function a(){
return array($a,$b,$c,$d);
}

list($a,$b,$c,$d) = a();
0211nobodyさん2005/07/17(日) 01:35:35ID:???
>>209
自分で書いたコードの方にはMySQLにコネクション張った後に、
「接続クライアントの文字コードはUTF-8だよ」って
MySQLサーバに送ってないから、デフォルトのlatinだって
思われてるんで、latinで表現できないのが?になってるんでね?
0212nobodyさん2005/07/17(日) 04:38:53ID:???
>>202
includeするとファイルの内容全てが読み込まれるから、関数にする、しないは
関係ない。
includeファイルの中で関数にしなかった部分はincludeされた時点で実行される。
関数にした場合はその関数を呼び出した段階で実行される。
そもそも関数そのものが理解できてないんぢゃないかと思われ。
0213nobodyさん2005/07/17(日) 06:53:32ID:???
本当にくだらない質問だと思われるかもしれないのですが、
1週間前にPHPをインストールして始めた初心者なので、お許し下さい。

$a = "あああ";
echo $a;

この"あああ"の部分ですが、ダブルクォーテーションがなくても
表示されるのですが、なくてもいいんでしょうか?
どういう条件で""で囲むのでしょうか。

数字はつけない、文字列はつける、変数には付けない でやっているのですが
このままでいいのでしょうか?
0214nobodyさん2005/07/17(日) 07:09:58ID:???
$a = あああ;
ってこと?
その場合、「あああ」の部分はPHPのパーサが未定義の定数とみなして、"あああ"に再解釈する。
危ないので文字列にはきちんとクォーテーション(ダブルorシングル)つけるべし。
とりあえずマニュアルじっくり読んでガンガレ
http://www.php.net/manual/ja/
0215nobodyさん2005/07/17(日) 07:46:41ID:???
>>213 >>214
あのマニュアルの中から探すのはチト困難かも。
この辺りを参照汁。
http://www.php.net/manual/ja/language.constants.php

ついでに " で囲った場合と ' で囲った場合の動作の違いも理解汁。
http://www.php.net/manual/ja/language.types.string.php
0216nobodyさん2005/07/17(日) 09:11:30ID:???
認証ページをsslにしてみたんだけど、普通ページに戻ったときに
セッションが切れてしまいます。

どうやったらセッションを切らずにできますでしょうか。
0217nobodyさん2005/07/17(日) 12:46:10ID:???
>>208
メモリやパフォーマンスの都合上、
データを定期的に渡すだけの
簡単なものにはJavaを使いたくないそうです。
本当に簡単なプログラムなんですよ。
そのかわりXMLデータとRDBMSのテーブルの数が
多すぎですが。橋渡しをするだけです。
0218nobodyさん2005/07/17(日) 14:07:36ID:???
投稿したデータをデータベースに登録する際に
下記(入門本そのままのやり方)のようにエスケープ文字の除去・タグ無効化・カナ変換を行っているのですが、
 $comments = htmlspecialchars(stripcslashes($comments));
 $comments = mb_convert_kana($comments, "KV", "SJIS");
改行のみ維持させたいのでぐぐってみたところ http://php.s3.to/tt/tt5.php の「複数行の入力」という記事が見つかり、
要はタグを無効にした後で、 改行コードを<BR>に変換するというやり方であると理解したのですが、
 $comments = htmlspecialchars($comments);
 $comments = str_replace("\r\n","\r",$comments);
 $comments = str_replace("\r","\n",$comments);
 $comments = str_replace("\n","<BR>",$comments);
 $comments = stripcslashes($comments);
でいいのでしょうか?
「Shift-JISの場合バッククォートを除去」とかstripslashesとstripcslashesの違いがよく分かりません。
また、このURLにある参考ソースを見ると上記のstripcslashes()を行っていないようなのですが必要ないのでしょうか?
文字コードに関しては「データの文字コードと見る際(ブラウザ)の文字コードが一致してないと化ける」くらいの認識しかありません。
どなたかアドバイスよろしくお願いします。
0219nobodyさん2005/07/17(日) 18:49:47ID:5K+3/9Xz
PHPを使ってRSSの画像もサイトに表示できるコード載せてるサイトありませんか?
0220nobodyさん2005/07/17(日) 20:26:12ID:???
>>214
ありがとうございます。なるほど、PHPで再解釈してくれてるだけなんですね。

>>215
助かります。このマニュアルは、辞書的な使い方がいいのでしょうか。
恥ずかしながら、今のスキルでは理解するまでかなり時間が掛かってしまいます。

購入した本を元に勉強しているのですが、初心者向けに解説しているPHPサイトで
定番的なところとかあるのでしょうか?お勧めがあればどなたか教えてください。
0221nobodyさん2005/07/17(日) 21:11:28ID:???
徹底攻略のPDFは初心者向けだと思う。
0222nobodyさん2005/07/18(月) 00:14:57ID:tJQ/fctA
質問させてください。
ある文字列中の特定の文字がマルチバイトかどうかを判定するにはどうすればいいでしょうか?

具体的には、
abcdefgあいうえお0123456789
という文字列があった場合に、10バイト目がマルチバイトかどうかを判定したいです。

substrを使って切り取る場合に文字化けして困ってます。
全角を1文字としてカウントするmb_substrでは都合が悪いです。

よろしくお願いします。
0223nobodyさん2005/07/18(月) 00:34:05ID:???
>>221
ありがとうございます。マンモスのやつでしょうか?
やはり、あれは良いのですね。
pdfだと見辛いので書籍購入してしまいました。
0224nobodyさん2005/07/18(月) 01:38:51ID:???
>>222
mb_substrのかわりにmb_strcut
0225nobodyさん2005/07/18(月) 02:00:26ID:tJQ/fctA
>>224
ありがとうございます。
mb_strcutも一度試したのですが、使い方が間違っていたようです。
おかげさまでばっちり動作しました。
感謝感激です。
0226nobodyさん2005/07/18(月) 02:29:09ID:???
$a=1; $b=&$a; = ハードリンクだと思うのですが、
この後 unset($a); で、$bも空になるような、シンボリックリンクの様に扱うことは出来るでしょうか?
0227nobodyさん2005/07/18(月) 04:04:16ID:???
>>226
ない。が
NULLを代入すると全部NULLにはなる。
0228nobodyさん2005/07/18(月) 10:10:47ID:???
初心者向けのPHP本としては、紙谷さんの本がオススメ。
0229nobodyさん2005/07/18(月) 10:18:15ID:???
PHPの変数代入をハードリンク、シンボリックリンクと表現する>>226に萌
0230nobodyさん2005/07/18(月) 10:40:28ID:???
>>229
ttp://jp.php.net/manual/ja/language.references.php

マニュアルにも萌えてください。
0231nobodyさん2005/07/18(月) 13:02:11ID:8pn6XAVH
$a = "あいうえおaaa";
echo mb_strlen($a);

13が結果として出るのですが、マルチバイト文字を1として数えされるにはどうすればよいでしょうか?
02322312005/07/18(月) 13:06:37ID:???
すみませんエンコーディングの指定を間違えてました。
0233nobodyさん2005/07/18(月) 23:58:39ID:Mt/K/zKf
全てのリンクURIにあるクエリを付加させたいとします。
たとえばセッションIDとか。この場合、リンクタグを書く際にいちいち
<a href="〜/?sid=<?= $sid ?>">次のページへ</a>
のように書くか、関数かなにか作って
<?= generateLink("http://〜/", "次のページへ", $query) ?>
↓ 下のように出力される
<a href="http://〜/?sid=xxx&name=xxxx">次のページへ</a>
のように書くかのどちらかくらいしか思いつきません。

前者はいちいち書くのが面倒だし、書き忘れると大変です。
後者はデザイン担当の人が使い方を覚えるのを嫌がるのでできれば避けたいです。
皆さんはどちらを使ってますか。あるいは他のやり方で解決してたりしますか?
0234nobodyさん2005/07/19(火) 00:12:35ID:???
>>233
セッションidの自動付加(session.use_trans_sid)以上の機能が必要なのかな?
0235nobodyさん2005/07/19(火) 02:50:03ID:???
xslファイルをメモリ上に生成してxmlに適用するのってどうやればできるんですか?
0236nobodyさん2005/07/19(火) 03:20:15ID:???
例えば echo $_GET["hoge"]; とだけ書いてある get.php に
http://php.domain/get.php?hoge=a+b+c
でみたいにアクセスすると、表示されるのは
a b c
と + (プラス)が (空白)に置き換わるのは仕様??
マニュアルのどっかに書いてある?それとも RFC かしらん?
0237nobodyさん2005/07/19(火) 03:45:17ID:???
>>235
DOMDocument::loadXML()を使うんだ

>>236
PHPの仕様。URLデコード済みのデータが入る
0238nobodyさん2005/07/19(火) 05:52:32ID:IezOVCMv
PHP+MySQLでwebアプリを作っておりますが、DBについての基礎知識や経験が無いため、
いつもデータ型の決定やテーブルのレイアウトで悩みます。

データ型などを決定するにあたっての「原則」というか「常識」みたいなのはありますでしょうか?
リファレンスなどを見てもそれぞれのデータ型に関する教科書的な説明しかなくて、
もっと実用的に「実際にはこういうデータの時にこの型を使う」みたいなTipsを知りたいのですが、
そういうのをまとめたサイトもしくは書籍ってありませんでしょうか?

ド素人の状態から一人でゼロから学んで一人で開発してるので、
周りに誰にも質問できる人がいなくて困っております。。。
0239nobodyさん2005/07/19(火) 06:00:58ID:???
PHPと関係ないようだし、DBの質問としても理解しがたい部分があるなあ
0240nobodyさん2005/07/19(火) 07:05:03ID:???
>>239
後々のことを考えると、DBの初期設計はかなり重要だぞ。
MySQLならPHPとの連携も深いしな。

まあ趣味程度のヤツならあまり気にしなくてもいいかもしれんが。
0241nobodyさん2005/07/19(火) 07:10:19ID:UElzZYBi
         ,/””   ”ヽ
        ,/   __ _ ゛
        /   /““  “” ヽ |
        |   / -━  ━.| |
        |   |.  “” l “ .|.|   
        (ヽ |   r ・・i.  ||   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        りリリ  /=三t. |  <  その駄レス! 0円!! 
        |リノ.      |            ,、‐''""''、
         |   、  ー- " ノ           ,、‐゙     ',
.   _,r''''''ー/   ”ー-- "  ヽ         ,、-'"       j
  /   、 ,,,_ヾ ヽ───、;;;;;::.;、-'" ̄~~~゙゙゙"          /
 /   、` ~  ~゙''''''''''"~´  ゙'ソ.      ',        ....::::::::::::/
./   ... ´        .::::;/       ゙、..... ........:::::::::::::::::::::/
 '、:....:::::",         .:;rj゙         ゙、;;;;::::::::::::::::::;;;;、-''゙     ビシィッ!
.  ヽ;:::::"._      .:::i';/     ゙、      ゙、`~~~゙゙~ 、、、..,,_
.    ヽ、;;;;;>、:::...  ::::r'        ゙、     ゙、::::::         ヽ
       ',:::::::::゙i'r、;:::::::!.  ヽ      ゙、    .::〉::::::....      }
.       ',::  l:/;;;::゙'ーr゙、   ヽ    ゙.、.:::::;/'ー 、、;;;;____;;::、-'"
        }、 l:::::::~゙''''! i .........ヽ........:::::;r゙''"
        |  l::::::::::::::l  .〉、;;;;;;::、-'rーi''゙
        ノ  i;;;;;;;;;;;;;j::::/;;;;;;;;ノ:..  |: j
0242nobodyさん2005/07/19(火) 08:07:48ID:???
>>238
逆に言えば教科書的な説明で十分なくらいしかルールがないと思った方がいいんでは。
ド素人がいきなりカッチリしたもの作ろうって方が間違いでしょう。
0243nobodyさん2005/07/19(火) 08:18:32ID:???
>>238
俺も同じ境遇だったから(一人で開発、ド素人でゼロからって点で)、かなり共感。
DBのレイアウトは最初とまどった記憶がある。
まーでも「DB レイアウト」とかキーワードにググればけっこうでるんじゃない?

あとはあんまり考えすぎないほうがいい。
DBの場合、運用し始めてからでは変更が加えづらい
ってのが気になると思うけど(実際そうだけどさ)、
まったく変更できないわけじゃないし、
気に食わなかったら最初からやり直せるのも自分だけでやってることの利点。
もしくは気に食わない部分をいかに少ない変更でやりくりするかってのも抑えるべきポイント。

特に一人でやってると、期限がないし、プッシュしてくれる人がいないから、
こだわり始めると立ち止まりがちになる。
それよりはちょっと思い切ってさっと進んだ方がいいものができる。
ある程度こだわるのも重要なことなんだけどな。
ガンガレ!
0244nobodyさん2005/07/19(火) 08:36:23ID:???
ぐぐるならそんな微妙な単語じゃなくて「データベース 設計」だろ。
0245nobodyさん2005/07/19(火) 08:46:16ID:???
上のキーワードはネタだろ。
phpスレ的に言えることはパクれってことかな。
0246nobodyさん2005/07/19(火) 11:23:54ID:???
スレ違いには違いない
むしろ板違い
0247nobodyさん2005/07/19(火) 17:34:07ID:QxSJ/3p1
抽象クラスとインターフェイスを継承・実装する場合、
その2つで同じメソッドを宣言(抽象クラスでは抽象メソッドとして)するのはダメなのでしょうか?
またダメな場合どちらで宣言した方がいいのでしょうか?
0248nobodyさん2005/07/19(火) 17:59:05ID:Kj4TO5G6
COBOL詳しい人にPHPを覚えてもらおうと思うのですが、
どうでしょう?すんなりなじんでくれるでしょうか?
02492382005/07/19(火) 18:12:44ID:IezOVCMv
>>242、>>243
ありがとうございます。
そんなに気にしなくてもいいものなんでしょうか。。。
一人で開発してるとは言え、いちおう事業としてシステム提供しようと
思っていますので、スケーラビリティとかメンテナンスとかも考慮しなければ
いけないのかな、とかなり悶々と悩んでおります。

たとえば、ある数字(たとえば何かの通し番号)ひとつ格納するにしても、
「TINYINT」にしようか「SMALLINT」にしようか、それとも「VARCHAR」でいいのかな?とか…。

あるいは、数十文字程度しか入力されないであろう文字列用のフィールドでも、
念のために「TEXT」にしておこうかな…とか。たとえばVARCHAR(50)よりもTEXTにした場合、
領域が無駄に消費されるとか、レスポンスが悪くなるとかってあるのでしょうか?
効率が悪くなるとか・・・そういうの悩みはじめるともう尽きません。
0250nobodyさん2005/07/19(火) 18:15:33ID:???
>>249
だから板違い。
データベース板に行け
0251nobodyさん2005/07/19(火) 18:18:36ID:???
>>249
心配するな。
その程度のことも判断できない、勉強もしない、勉強の仕方も判らないヤツが
作ったシステムに銭を払おうとは誰も思わん
0252軟式PHP2005/07/19(火) 18:20:03ID:???
>>248
学生レベル程度にCOBOLを組めるけど、COBOLは忘れて
心機一転で覚えてください。というしかないw

0253nobodyさん2005/07/19(火) 18:22:57ID:???
>>248
そのお方はCOBOL以外の別の言語は知っているのかな。
知っているのなら、そう心配することはないと思う。
COBOLしか知らないのなら、そんな方は相手にせずに
アルバイトでも雇ったほうが効率はいいと思うよ。
02542382005/07/19(火) 18:32:09ID:IezOVCMv
>>251
というか、もう第一弾で作ったシステムには既に数十社の顧客がおりますが…。
月商もあなたの給料の3〜4ヶ月分くらいはあると思います。

今のところシステムには特に問題は出てないですが、より良いものにしたいのです。

>>250
>WEBプログラミング@2ch掲示板
>Oracle, PostgreSQL, MySQL といったデータベースの話などをテーマにしています。
0255nobodyさん2005/07/19(火) 18:37:43ID:???
そろそろ失せろやカス
0256nobodyさん2005/07/19(火) 18:40:47ID:???
>>255
喪前は>>251か?ww
偉そうに上に立ったつもりが思わぬ反撃されて逆ギレするのはダセーよ(藁

>>238
とりあえずDB関連の本を何冊か読んでみろ。そんでもう一回質問しる。
0257nobodyさん2005/07/19(火) 18:43:00ID:???
自演乙
0258軟式PHP2005/07/19(火) 18:44:27ID:???
ageてたら自演の匂いがするからsageたほうがいいよ。
0259nobodyさん2005/07/19(火) 18:45:06ID:???
>>251=>>255=>>257=見てて恥ずかし過ぎる・・・カコワルイ
0260nobodyさん2005/07/19(火) 18:46:50ID:???
>>249
うわ、2〜3年前の自分を見るようだ。
とりあえず、数値以外は
全 部 テ キ ス ト に し て お け

変に設計勉強してテーブル分けると自分でどうにもならなくなる。
困ったらフィールド追加で免れろ。

そんな感じで作った奴もトラブルなくちゃんと動いてるし、なによりメンテしやすい。零細企業が立派な決めごと作ってもしかたないのと一緒。

0261nobodyさん2005/07/19(火) 18:48:58ID:kS82naWb
PHPのマニュアルを読んでいて気になったんだけども、
UNIX/WindowsともにApache2.0.xでPHP4を実運用するなって旨の
文書を見つけた、これって今のVersionのApache2.0.x+PHP4.4でも
云えることなのかな?

#参考URL
http://php.s3.to/man/install.apache2.html
>"Apache 2.0とPHPの組み合わせを(Unix、Windows
>どちらのプラットフォームでも)実運用環境で使用しないでください。"
0262軟式PHP2005/07/19(火) 18:52:49ID:???
スレ違いだとは思うけど俺も一言。
全部テキストってのは俺はしないけど、260の言うようにある程度冗長性を持たせて
データ型は作った方がいいと思われ。MySQLは途中で型変更出来るが
PostgreSQLなんかは途中で型変換出来ないので。
あと、最低限の正規化はやっといたほうがいいと思う。関数を作らないプログラムみたいに保守性・拡張性がガクンと落ちる。
0263nobodyさん2005/07/19(火) 18:55:48ID:???
>>238
つ[ http://allabout.co.jp/career/database/subject/msub_sekei.htm ]
■ このスレッドは過去ログ倉庫に格納されています