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

【PHP】下らねぇ質問はここに書き込みやがれpart10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/25(日) 02:03:45ID:nLUfPXhD
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/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
03133072005/10/03(月) 11:31:48ID:???
>>312
合ってましたか。どうもありがとうございます。
0314nobodyさん2005/10/03(月) 12:11:14ID:???
参照で返す時の&をつける場所についての質問なんですが、

function & bbb() {
// 色々な処理
return $aaa;
}

function bbb() {
// 色々な処理
return & $aaa;
}

function & bbb() {
// 色々な処理
return & $aaa;
}

のなかでどう書くのが一番良いでしょうか?
PHP4でクラスを返す場合は参照にしないと無駄なコピーができるということなのですが。
0315nobodyさん2005/10/03(月) 12:25:35ID:???
Cと異なり、PHPの場合、参照渡し・値渡しの違いは、値が変更された時に初めて起こる。
関数に渡した時点では、どちらもアドレスが渡されており、実行速度に差はなく、違ってくるのはその値が変更される時で、値渡しの場合に、関数内で変更された値が、関数内のローカル変数にコピーされるよう。つまり、値を変更しない関数ならば、値渡しと参照渡しの差はない。
0316nobodyさん2005/10/03(月) 12:32:08ID:???
>>314
参照で返すってどういうこと
引数に渡す変数には値渡しとか参照渡しとかあるけど

実際にやってみればわかるけどreturn & $aaa;でエラーがでる
03173142005/10/03(月) 12:47:03ID:???
>>315 >>316
すみません、とんだ勘違いなコード書いてました。
呼び出す方で
$aaa = & bbb();
とやるのと、
function & bbb() {
}
とやるのと、もしくは両方&をつける場合の違いについてでした・・・

あと、自分はCがわからないので、ちょっとイメージがつきにくいのですが、違いは全くないということなのでしょうか?
よく$x = new class()は$x = & new class()と書くほうがいいというのとはまた別の話ということなのでしょうか?
0318nobodyさん2005/10/03(月) 12:54:34ID:???
>>294
後者のやり方でやってみたのですが、属性が必要なタグ(font color=〜等)の場合は
どうすればよいのでしょうか?
0319nobodyさん2005/10/03(月) 12:59:11ID:???
>>318
正規表現。
後、後者だと誤爆が多くなる気がするけど・・・
0320nobodyさん2005/10/03(月) 14:09:15ID:???
>>317
http://www.php.net/manual/ja/language.references.return.php
03212942005/10/03(月) 14:44:59ID:???
>>318
俺としては、前者 + 正規表現 (最小限ならば str_replace だけでも) を推奨。

後者でやろうとすると、色々とボロが出てしまわないだろうか?以下の色々と
ボロが出てしまっている、小汚いソースの様に。

<?php

header("Content-Type:text/html; charset=".mb_detect_encoding("ほげ"));

$str = "<Font color=red>文字列</fonT> <font color=\"red>文字列</font> <font color=\"red\">文字列</font> <span style=\"font-size:500%;\">文字列</span>";

$bef = array("/<font(\s+color\s*=\s*(\"(#?[a-z0-9]*)?\"|(#?[a-z0-9]*)?))*>(.+)<\/font>/iU");
$aft = array("<font$1>$5</font>");

echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("<",">","?"),stripslashes($str)));
exit;

?>
03222942005/10/03(月) 14:49:56ID:???
修正。&記号は "半角" 扱いでよろ。

echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("&lt;","&gt;","&#64;"),stripslashes($str)));
03233142005/10/03(月) 15:14:40ID:???
>>320
なるほど。両方に&をつけなければいけないのですね。了解です。
関数の中でnewしてるんで、3箇所に&を書かないといけないんですね。
しかし、そうなるとやっかいです。
クライアントコードの側にも&をつけなければならないのはドキュメントで明示しておくしか方法はないということなのでしょうか?
0324nobodyさん2005/10/03(月) 15:40:51ID:yF4zapvk
今PHPを勉強しています。
プログラミングは初心者で、htmlがちょっとできる程度なので、基本的な疑問があります。
メールフォームなどを作っているのですが、いくつかのテキストボックスなどを作成するときに、
エラーチェックのプログラムなどは、なにも考えずにテキストボックスの項目の順番に記述すればいいのですか?
0325nobodyさん2005/10/03(月) 16:19:47ID:???
>>324
プログラミングの初心者を脱出してからやりましょう
0326nobodyさん2005/10/03(月) 16:41:05ID:???
>>323
その場合、呼び出し側で参照つけ忘れても大丈夫。
むしろ最初からその3つとも&をつけなくても無問題。

>>324
テキストボックスの順番自体に何か意味があるならそれなりに考える必要あるんだろうが、そうでないなら別に気にしなくてよし。
とりあえず状況詳しく書かないと、何でそんな疑問がわいたのかすら想像つかないんだけど。
0327nobodyさん2005/10/03(月) 17:08:30ID:???
>>325
     ∧_∧
    ( ´∀`) <(オマ(ry
    (    )
    | | |
    (__)_)
0328nobodyさん2005/10/03(月) 17:16:50ID:7v8t3+9l
セッションについて質問です。

login.php にてログイン認証し、その際にニックネームをセッション登録しています。
認証後にトップページ index.php に戻り、トップページではサイドメニュー menu.phpを include にて読み込んでいます。
このサイドメニューでニックネームを表示させたいのですが、うまく取得してくれません。

index.php の方で呼び出すときちんと表示してくれるのですが。
原因が分かる方、教えてください。
0329nobodyさん2005/10/03(月) 17:44:51ID:???
>>328
index.phpの先頭にsession_start()が必要
0330nobodyさん2005/10/03(月) 19:44:46ID:???
>>329
違うだろ。menu.phpでsession_start()だろ。
0331nobodyさん2005/10/03(月) 19:45:28ID:???
includeしてんのに?
03323282005/10/03(月) 20:44:44ID:???
index と menu の両方で session_start() をしたところ、
index は呼び出せましたが、menu のほうだと呼び出せませんでした。

なんでだろう…。
03333282005/10/03(月) 22:29:49ID:???
しばらく格闘していますが未だに解決しません。

menu.php に直接アクセスすると表示されるのですが
include(requireも試した)で読み込んだ時は表示されません。

原因が分かる人いませんかー?! orz
0334nobodyさん2005/10/03(月) 22:36:36ID:???
連続カキコすみません。解決しました。

include のパスをURLで指定していました。
絶対パスにしたところ、きちんと表示されるようになりました。

別のサイトと認識されてしまったのでしょうか…。

何にせよ、ご迷惑おかけしました。
0335nobodyさん2005/10/03(月) 22:39:14ID:???
普通URLで指定しねぇよ・・・
0336nobodyさん2005/10/03(月) 22:41:05ID:???
どっかで間違ってるだけじゃないの?
単純化するとこんな感じになると思うけど問題なく動くよ。
って、再読込したらそんなオチかよ。。。
テストスクリプトまで書いたので送信ポチっとな。

1.php - セッションの設定、 2.php - includeする、 3.php - includeされる

1.php
session_start();
$_SESSION['name']='hoge';
<a href="2.php">link</a>

2.php
include("3.php");

3.php
session_start(); // 2.phpでsession_start(); しても動作する
echo $_SESSION['name'];
0337nobodyさん2005/10/03(月) 22:42:00ID:???
>>335
ですよね…汗
ローカルでテストするとき用にURLで指定していたのを忘れていたのです。
0338nobodyさん2005/10/03(月) 22:51:58ID:+uOrbyCW
手を尽くしたのですが分かりませんでしたので、すいませんが質問させてください!

メモリが足りなくなってプログラムが途中で止まってしまいます。
unsetを使っても、$var = NULLとしても
全然メモリが解放されないんですがどのようにしたら良いでしょうか?
0339nobodyさん2005/10/03(月) 22:55:15ID:???
>>338
せめて、何をして足りなくなったのかを書いた方が良いと思うが。
0340nobodyさん2005/10/03(月) 23:35:50ID:???
>>338
php.iniでメモリの上限を増やす。
0341nobodyさん2005/10/03(月) 23:38:39ID:+uOrbyCW
すいません、かなり焦っています
PEARのMail.phpを使って、
SMTPでメールを送っている時にメモリがみるみる内になくなっていきます。
一万通くらい送ると250MBくらい減ります。

require( "Mail.php" );
$param["host"] = "127.0.0.1";
$mail = Mail::factory('smtp', $param);
for( $i = 0 ; $i <= 10000 ; $i++ ){
$mail->send("[email protected]", $head, $body);
}

このような感じになります。
送信の後にunset($mail);としてみたり、
$mail = NULL;としてもメモリが解放される様子はありません。
分かる人助けてください!
0342nobodyさん2005/10/03(月) 23:41:34ID:+uOrbyCW
>>340
なるほど。メモリ上限は設定していませんが
設定してやってみます。

プログラムではメモリ解放できないですかね。
0343nobodyさん2005/10/03(月) 23:47:31ID:???
SPAM業者の手伝いは、しない!
0344nobodyさん2005/10/03(月) 23:49:26ID:+uOrbyCW
スパムじゃないです!
登録してる人だけに送ってます
0345nobodyさん2005/10/03(月) 23:52:51ID:???
だな。1万通送るやつのスキルとも思えん。
0346nobodyさん2005/10/04(火) 00:08:26ID:???
よくさ、携帯で空メール送ると自動返信メールが送られてきて
そこに専用URLが載ってたりするのありますよね。

あれの仕組みってPHPで出来るんですか?教えてくだされ。
0347軟式PHP2005/10/04(火) 00:21:10ID:???
メール送られてきたらキックすれば良いだけ。
0348nobodyさん2005/10/04(火) 02:31:28ID:???
>>346
[ヒント]
.forwardには起動(キック)するコマンドが記述できる。
0349nobodyさん2005/10/04(火) 08:15:26ID:???
PHPにはメモリ解放は無いんじゃなかったっけか
0350nobodyさん2005/10/04(火) 08:39:28ID:???
よくそんな技術でスパム送ろうと思ったもんだ(´_ゝ`)
03513462005/10/04(火) 11:05:37ID:???
forwardとキックについて調べました。
こんな便利な機能があることに驚きです。

しかし、xreaでは使えないようでした…。
残念ですが諦めます。
0352nobodyさん2005/10/04(火) 11:24:24ID:???
>>351
XREAはスパムのおかげでメールトラブル中
くれぐれも共有サーバでやらないでくれ
0353nobodyさん2005/10/04(火) 11:27:17ID:???
>>294
>>319
ありがとうございました。
あと、礼を言うのが遅くなりまして申し訳ありませんでした。
0354nobodyさん2005/10/04(火) 11:53:41ID:???
copyとrenameどちらが早い?誰か検証した人いないかしら?
0355nobodyさん2005/10/04(火) 11:59:09ID:???
>>352
最近、XREAで使ってるドメインのメアドで送受信したメールが
届かないことがあるな〜と思ったら、やっぱりトラブル発生してんの!?

でも公式サイトの障害情報見ても何も載ってないんだが・・・
0356nobodyさん2005/10/04(火) 12:02:52ID:JKocPbjB
>>354
copyはファイル全体をコピーする。
renameはディレクトリ構造とファイル名のみを書き換える。
検証するまでもない。
0357nobodyさん2005/10/04(火) 12:32:57ID:oyC3QmoS
>>356
ありが�d
0358nobodyさん2005/10/04(火) 13:09:49ID:ogSOlTW8
今、XP HomeでPHPで書いたコードの動作確認ができるように
Apacheをインストールするところなんだけど

インストールする際に出てくるウィザードに
Network Domain, Server Name, Administrator's Email Address
の3項目を入力する画面が出てきた。

Email Addressは適当なものを入れるとして
Network Domain, とServer Nameは適当に決めちゃっていいもんなんでしょうか。

XP Homeのローカルで実験するんだから
Network Domainは、C:\ でいいのかな。
それとも適当に、test.com とか書いちゃっていいんですかね。

Server Nameなんかは適当にPCがdynabookだからdynabookとか入れとこうかと思ってるのですが
これでいいんでしょうか。
0359nobodyさん2005/10/04(火) 13:13:30ID:???
C:\がドメインだと思うか?

ローカルなんだから適当なドメインを考えて入れればいい
サーバーネームは自分のマシン名でも入れとけ
どうせ、アクセスするときの指定はlocalhostか127.0.0.1でやるんだからよ
03603582005/10/04(火) 13:30:08ID:ogSOlTW8
>>359
>C:\がドメインだと思うか?
いや、思いません。思わないけど。ローカルのアドレスを入れとかないと、PHPのコードを実行するときに困るんじゃないかなと
ちょっと思っちゃった。

ドメインもサーバネームも適当でOKということなので安心しました。
アクセスはlocalhostか127.0.0.1で指定するからこの画面で設定しなくてもいいんですね。

どうもありがとうございます。助かりました。
0361nobodyさん2005/10/04(火) 15:38:29ID:???
localhostって入れりゃいいじゃん。
0362nobodyさん2005/10/04(火) 15:39:37ID:???
>>361
m9(^д^)
0363nobodyさん2005/10/04(火) 18:02:46ID:???
>>ALL
m9(^Д^)プゲラッチョ!
0364nobodyさん2005/10/04(火) 20:36:23ID:F0xENNek
エイベックス抗議オフでは、ちらしに載せるPC、携帯用サイトを作る計画があります。
サイト作りのノウハウがある方は、ご協力お願いします。
デザイン関係、サイトに載せる文章を書ける方も募集中です。

http://off3.2ch.net/test/read.cgi/offmatrix/1128239507/
  (過疎スレのリサイクルです)

0365nobodyさん2005/10/04(火) 21:06:50ID:???
>>364
企業脅迫ゴロツキは氏んでしまえ。
0366nobodyさん2005/10/04(火) 21:33:09ID:???
ま、相手もゴロツキ企業なわけだが
0367nobodyさん2005/10/04(火) 22:42:10ID:TMWi83Dv
¥(半角の¥)を出力するにはどうしたらいいですか?
firefoxで見るとバックスラッシュになってしまいます。
$str = "123あいう¥¥";
echo ($str);
こんな風に書いたりしてます。
0368nobodyさん2005/10/04(火) 23:02:00ID:???
>>367
¥が表示されるかどうかは環境依存
0369nobodyさん2005/10/04(火) 23:07:08ID:TMWi83Dv
レスありがとうございます。そうなんですか。ちなみに
$str = "¥¥1200";
echo ($str);
は¥1200と出力されますが、
$str = "¥¥えんまーく";
echo ($str);
は¥えんまーくと出力されます。
こういうもんなんですか?¥付の値段を出力したいときはどうすればいいのでしょうか?
0370nobodyさん2005/10/04(火) 23:08:05ID:???
>>369
全角円マーク
0371nobodyさん2005/10/04(火) 23:12:18ID:???
HTMLの中だけでよいなら、数値文字参照や文字実体参照を使うのもありかと。
&#165; &yen; (&は半角)
0372nobodyさん2005/10/04(火) 23:13:46ID:???
>>367
文字コードを適正な指定にするか、
&yen;って書け。
03733692005/10/05(水) 01:56:22ID:oPPZGTrS
>>370,371,372
レスありがとうございます。
やりたいことは、Accessで出力したCSVファイルを分解してhtmlで出力したいだけなんです。CSV上で既に半角¥マークになってしまっているのでどうしたものかと。
IEでは問題ないのですが...。

>>372
文字コードをいろいろ試していたんですが、いまいちうまく行かないんですよねー。もうちょっと悩みます。ありがとうございました。
0374nobodyさん2005/10/05(水) 02:01:17ID:???

uid     名前

0      高橋
1      伊藤
2      鈴木

というテーブルがあるとします。
そしてuidをGETで取得し、名前を表示するプログラムを作るとします。
もしテーブルに無い番号が入力されたら、エラーメッセージを表示させます。

ここで質問ですが、
「GETしたuidがテーブルのuidに含まれていなかったら」という内容の文は
どのように書くべきでしょうか?

自分で調べて、
if ($_GET['uid'] != $row_Recordset['uid']) { echo "不正なIDです"; exit; }
というのを作ったのですが、
これだとテーブルに含まれるuidも全て"不正なIDです"となってしまいました。
どうしたら良いでしょうか・・・?

ちなみにこの質問内容は、DB板じゃなくてココでOKですよね??
0375nobodyさん2005/10/05(水) 02:12:49ID:???
DB使ってるなら
SELECT ------ WHERE uid = 「GETのuid」
で結果0件ならエラーじゃだめなん?
03763742005/10/05(水) 02:30:01ID:???
>>375
sqlのクエリ部分ではなく、phpの部分でやりたいのです・・・。
自分でも今色々と調べてる所ではあるんですが、
なかなかどうして難しいですね。
0377nobodyさん2005/10/05(水) 03:03:19ID:???
>>376
なんか凄まじい勘違いというか、無駄なことをやろうとしていないか?
0378nobodyさん2005/10/05(水) 03:30:00ID:???
>>373
Firefox(Winodws)で試したけど、x5cを円マークで表示すべき
EUC-JP、SHIFT_JISあたりはちゃんと円マークになってたぞ。
(\と&yen;で違うフォントになるのは知らなかったが)
マッピングが変なフォント使ってるんじゃないの?
03793742005/10/05(水) 03:37:13ID:???
>>377
えっ、マジっすか!?
無駄無駄ァ、な事だったとは・・・。
要は、「GETしたuidが、テーブルの中に実在するuidに含まれていなかったら」という
内容の文がうまく記述出来ればOKなのです。
無理というか、無駄な事なのでしょうか・・・。
とりえあず今宵は寝ます。
0380nobodyさん2005/10/05(水) 03:38:25ID:???
>>374
uidってやつがテーブル内にあるかどうかの判別って結局SQLで問い合わせてからじゃないと無理じゃん。
だったら、>>375にするのがベストだし、それが普通。
他に複雑な事情があるならそれも書かんとわからんよ。
0381nobodyさん2005/10/05(水) 04:55:34ID:???
>>379

>sqlのクエリ部分ではなく、phpの部分でやりたいのです・・・。

だから、SQLで該当するuidが何件あるかを読んで
phpで件数を確認すればいいやん

>なかなかどうして難しいですね。
379の頭の中のほうが難しい。

380氏のいうようにそれが普通というか定石ってもんだ
phpのマニュアルに結構ためになるサンプルあるで。
0382nobodyさん2005/10/05(水) 05:19:45ID:???
マジっすかとか驚くほどのことでもないだろうが・・・
0383nobodyさん2005/10/05(水) 05:55:55ID:SZgLc6+c
【PHP Version】5.0.4
>PHPマニュアル print_r より
>print_r() と var_export() はvar_dump()と違い、 PHP 5においてオブジェクトのprotected及びprivateのプロパティも表示します。
と書いてあり、「var_dump()はpublicしか表示しないのだろう」と思って試してみた。

結果:var_dump で protected・private が出力されている。
<var_dump>
object(obj)#1 (3) {
["a"]=>
string(6) "public"
["b:protected"]=>
string(9) "protected"
["c:private"]=>
string(7) "private"
}

<print_r>
obj Object
(
[a] => public
[b:protected] => protected
[c:private] => private
)

<var_export>
class obj {
public $a = 'public';
protected $b = 'protected';
private $c = 'private';
}
0384nobodyさん2005/10/05(水) 05:56:30ID:SZgLc6+c
質問:
・var_dump()はpublicしか表示しないのだろうと思ったけど、私の勘違い?
・各関数の違いは以下の通り?
print_r : 簡素に出力。第二引数がTRUEの場合、結果を返す。
var_dump : 型などの詳細も出力。
var_export : PHPコードの形で出力。第二引数がTRUEの場合、結果を返す。
0385nobodyさん2005/10/05(水) 07:47:03ID:???
>>384
var_dump(英語)には
In PHP 5 only public, private and protected properties of objects will be returned in the output.
と書いてあるから
03863692005/10/05(水) 10:22:41ID:Qlmr5ADv
>>378
わざわざすみません。もっと勉強します。
ちなみにfirefox(mac os X)です。
osXとMAMPという環境でphpを勉強中です。
0387nobodyさん2005/10/05(水) 10:44:16ID:hgIawq/C
<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

上はsortを用いて配列をアルファベット順に並べたものですが、
配列をランダムに並ばせるものを作る簡単な方法はありますか?


つまり、やりたい事はアクセスするたびに4つの画像の順番がランダムに入れ替わり表示されるようにしたいのです。
0388nobodyさん2005/10/05(水) 10:45:58ID:???
つ array_rand
0389nobodyさん2005/10/05(水) 10:46:21ID:???
つ shuffle
0390nobodyさん2005/10/05(水) 11:29:52ID:???
コンピュータに完全にランダムの数字を作らせるのは難しいみたいね。
0391nobodyさん2005/10/05(水) 11:35:44ID:rxjtKeLJ
ストップタグって何ですか?
0392nobodyさん2005/10/05(水) 11:45:40ID:hgIawq/C
>>388-389
ありがとう
できました
0393nobodyさん2005/10/05(水) 12:27:36ID:???
>>390
擬似乱数で不都合なシチュエーションって何よ?
0394nobodyさん2005/10/05(水) 12:35:29ID:iJ3zhQF9
<?php
for($i = 0; $i < count(@$_POST["check1"]); $i++)
{
echo "<p>".$_POST["check1"][$i]."にチェックが入っています";
}
?>

<form method = "POST" action = "<?=$_SERVER["PHP_SELF"]?>"
<table>
<tr>
<td>
<input type = "checkbox" name = "check1[]" value = "PHP">PHP
<input type = "checkbox" name = "check1[]" value = "Perl">Perl
<input type = "checkbox" name = "check1[]" value = "ASP">ASP
<input type = "checkbox" name = "check1[]" value = "JSP">JSP
</td>
</tr>
<tr>
<td>
<input type = "submit" value = "送信" name = "sub1">
</td>
</tr>
</table>

ちょっと確認したいのですが。
この場合、チェック入れたものだけが配列に入って送られるで合ってるでしょうか。
仮にPHP,JSPにチェック入れたとしたら、配列番号0には"PHP"が、配列番号1には"JSP"といった
具合に入れられて送られるといったイメージで合ってますか。
何か勘違いしていたら指摘していただけるとうれしいです。
0395nobodyさん2005/10/05(水) 12:40:36ID:???
>>394
合ってる。
次からは、まずprint_r($_POST)とかしてみてから書き込もうな。
0396nobodyさん2005/10/05(水) 12:44:55ID:???
>>394
つ foreach
03973942005/10/05(水) 12:47:08ID:iJ3zhQF9
>>395
回答ありがとうございます。
PHP初めてなもので、このイメージで合ってるのか不安だったので質問しました。

配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね。
どうもアドバイスありがとうございます。

>>396
PHPもforeach使えるんですね。覚えときます。どうもありがとうございます。
0398nobodyさん2005/10/05(水) 13:18:45ID:KahEav2g
jpgraph + PHP4 を使用しています。
グラフで、左Yのスケールと右Yのスケールが違う複合グラフは作成出来るのでしょうか?
例えば、左Yのメモリは最大値100で棒線グラフ。
右Yのメモリは最大値10000で折れ線グラフといった感じです。
0399nobodyさん2005/10/05(水) 13:25:55ID:???
>>397

>配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね
そういう意味ではなく、print_r($_POST) してみればワザワザ聞かなくても判るでしょ?
という意味だろ。
0400nobodyさん2005/10/05(水) 13:31:47ID:???
phpスクリプトの不具合に対する丸投げに近い質問(というか要望)を投げたいのですが、
ダメでしょうか?
0401nobodyさん2005/10/05(水) 13:44:26ID:???
内容によるんじゃない?
取り敢えず書く。
叩かれるのを恐るべからず。
0402nobodyさん2005/10/05(水) 13:57:32ID:???
ありがとうございます。

http://nekomimi.s91.xrea.com/_database_test/stock/extract_php.zip
”extract.php”
これはWeb制作板のCGI探索スレで作っていただいたスクリプトなんですが、
作成者さまのPCが飛んでしまったということでサポート対象外になってしまったので、こちらに投書させていただきます。

概要としては、csvファイルの「ランダムに選択された行」から、「指定した列の文字列」を抽出し、表示するというものです。
csvファイルは1行1データという形で収束されています。
このスクリプトで若干不具合があり、
・csvの行が10行以上ある場合、それ以降の行が選択候補から除外される(9行までしか認識しない)
・逆に、9行未満の場合、文字列が表示されない場合がある
というものです。

希望としては、
・行が何行であってもその中から選択し、確実に文字列表示する
というようにして頂きたい次第です。

実際に動いているイメージとしては、このページのようになります。
http://nekomimi.s91.xrea.com/_database_test/stock/
0403nobodyさん2005/10/05(水) 13:58:54ID:???
別にいいのでは?
ボロカスに言われるかもしれないけど、それなりに相手してくれると思うよ。
矢継ぎ早に同じレベルの質問を繰り返すと嫌われるかもしれないけれど。
ボロカスに言われても、指摘内容は正しいことが多いから、ムカつかずに今後に生かせばいい。
04043942005/10/05(水) 14:05:38ID:???
>>399
そうか。
print_r($_POST)すれば配列の中身が見れるから、それをしていたら質問するまでもなかったよねという意味でしたか。
配列だったら、こう書いたほうが便利だよといった意味かと思いました。

まだ基礎的なコードいじって学習してる段階なのでechoばっかり使ってました。
最初の方にちらっとprint_r関数も出てきてたなあ程度だったのでそこまで考えが回らなかったようです。

まあ、もやもやしたイメージが確かなものになったので感謝です。ありがとう。
0405nobodyさん2005/10/05(水) 15:13:04ID:???
>>402
<?
#データファイル
$data_file = "dataedit.csv";
#取り出す列-1(「$row = array("0", "1", "2")」とすれば1列目と2列目と3列目を取り出します。)
$row = array("0","3");
$num = count($row);
$data = file($data_file);
for($j = 0; $j < $num; $j++)
{
$result = $data[array_rand($data)];
$val = explode("\t", $result);
echo $val[$row[$j]] . "<br>";
}
?>
0406nobodyさん2005/10/05(水) 15:13:52ID:???
>>402
試してないけど

<?
$data = ---- の行以降を以下に変更

$tmp = file($data_file);
$rand_keys = array_rand($input, 10);
foreach($rand_keys as $i) {
 $rec = explode("\t", $tmp[$i]);
 foreach($row as $j => $k) {
  echo $rec[$k] . "<br>";
 }
}
04074062005/10/05(水) 15:16:15ID:???
あ、かぶった

1行訂正
foreach($rand_keys as $a => $i) {
04084052005/10/05(水) 15:18:29ID:???
>>405ではfile_get_contentsをfileに直したけど
$tmp = explode("\t\n", $data);
を
$tmp = explode("\n", $data);
にすれば不具合はなくなるのではないかと思う
0409nobodyさん2005/10/05(水) 15:24:21ID:???
つか、fgetcsv($fp,1024,"\t",'')とかでやったほうが効率的だと思う
0410nobodyさん2005/10/05(水) 15:37:15ID:Cp2lANiy
サーバ:Linux
PHPバージョン:4.3.8
APACHE:1.3.28
DBサーバ:Windows2000Server・SQLServer2000

LinuxのPHPからDBサーバにアクセスを行い、データを取得したいのですが
方法が分かりません。
マニュアルには、プラットフォームが違う場合はコンパイル時に
「Sybase拡張モジュール」を使用して下さいとあるのですが、
Sybaseをインストールしなければならないのでしょうか。
04113832005/10/05(水) 16:02:58ID:???
>>385
疑問が解けたよ Thx!

(英語版のマニュアルも見るべきだな orz )
0412nobodyさん2005/10/05(水) 16:04:46ID:Wy1EjQwZ
Smartyの質問なんですがよろしいでしょうか?

{$user.id} みたいな変数(連想配列)は普通に展開されて表示できますが、
{include file="header.tpl" user_id="$user.id"}
のような感じでやると、header.tplには$userが渡されているようです。
$user.idを渡したい場合はどうすればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています