【PHP】質問スレッドpart27【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/03/03 22:41:23ID:???・新規質問の方は上げてください。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-10辺り
0002nobodyさん
05/03/03 22:44:18ID:???【PHP】質問スレッドpart26【php】
http://pc5.2ch.net/test/read.cgi/php/1103636095/l50
関連スレ
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
PHP + PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50
0003nobodyさん
05/03/03 22:44:40ID:???http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/l50
【PHP】処理能力向上テクニックスレ
http://pc5.2ch.net/test/read.cgi/php/1088823837/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
0004nobodyさん
05/03/03 22:45:14ID:???1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。
「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0005nobodyさん
05/03/03 22:46:04ID:???補足ヨロ
0006nobodyさん
05/03/04 01:00:13ID:3xlEv0k9下記のように、プロパティでpublic宣言してないものを、コンストラクトしても、別に問題ないのでしょうか?
一応、エラーは出ないのですが、気持ち悪いような気がして。。。
// クラス
class Category{
// プロパティ
public $aCategory;
// コンストラクタ
function __construct()
{
global $g_hDB;
while(1){
$sSQL = "select * from category where categoryname = '" . $_REQUEST['categoryname'] . "'";
$result = pg_exec ($g_hDB, $sSQL);
$pg_num_rows = pg_num_rows($result);
if ($pg_num_rows >= 1){
$this->aCategory = pg_fetch_array ($result, 0, PGSQL_ASSOC);
break;
}
else{
$_REQUEST['categoryname'] = "top";
}
}
//★★★↓ここが気持ち悪い・・・★★★
foreach ($this->aCategory as $key => $val){
$this->{$key} = $val;
}
unset($this->aCategory);
}
(後略)
0007nobodyさん
05/03/04 01:27:42ID:???おれとしては
>$_REQUEST['categoryname'] = "top";
ってスーパーグローバル変数に代入しちゃってるのがきもちわるい。
0009nobodyさん
05/03/04 09:10:17ID:JryQONc+桁数の制限ってあるんでしょうか?
変数に格納できる桁数の制限も知りたいです。
0010nobodyさん
05/03/04 10:49:45ID:???0011nobodyさん
05/03/04 11:39:10ID:???001211
05/03/04 11:40:07ID:???0013nobodyさん
05/03/04 13:12:11ID:???0014nobodyさん
05/03/04 13:24:43ID:???0015nobodyさん
05/03/04 13:49:05ID:???0016nobodyさん
05/03/04 13:56:36ID:???よーしパパへそくりしちゃうぞー
$i=2;
while(1){
$i*=2;
echo$i,"\n";
if(is_infinite($i))break;
}
0018nobodyさん
05/03/04 15:44:14ID:???INF
で終了。@32bitなLinux
0019nobodyさん
05/03/04 16:29:47ID:???Fatal error: Call to undefined function: is_infinite()
自分には、かみさんがいませんから。
残念!
0020nobodyさん
05/03/04 16:35:56ID:???妊婦
で終了。予定日:3月12日
0021nobodyさん
05/03/04 18:28:58ID:???0022nobodyさん
05/03/06 03:31:13ID:pz614Rae具体的には、ブラウザでサーバー内ファイルの圧縮・解凍操作を行いたいと思っています。
どうすればよいのでしょうか?
【実際のテスト結果】
phpファイルと解凍したいファイルは同じフォルダ内で以下のようにすると・・・
<?php
echo system("pwd\n");
echo system("unzip file.zip\n");
?>
-->(phpファイルの置かれた場所がちゃんと表示される)
-->127
(unzipコマンドの返り値が”127”のみでで解凍されている様子はない)
<?php
echo system("echo hello\n");
?>
-->hello
(正常)
<?php
echo system("rm file.zip\n");
-->0
(正常に削除される)
【環境】
FreeBSD 4.7
PHP4.3.9(apacheのモジュールとして動作)
Apache/1.3.33
0023nobodyさん
05/03/06 04:30:41ID:???アクセス権限を確認しる。
0024nobodyさん
05/03/06 04:37:48ID:???system('unzip file.zip 2>&1')
みたいにして標準エラーの内容を見る、とかしてみたら?
あとはエラーが127だからunzipがちゃんとパスの通った場所にあるのか確認
002522
05/03/06 05:19:00ID:pz614Rae答えになってないかもしれませんが・・・
とあるレンタルサーバーのVPSプランを利用しているんですが、ユーザー名を username とすると
phpinfo()で見る限り、apacheのユーザーと _SERVER["USER"] は usernameになっています。
sshで usernameでログインした場合、 unzip , zip ともに可能です。
念のためですが、 >>22 の 【実際のテスト結果】 はブラウザからのアクセスでの結果です。
>>24
> system('unzip file.zip 2>&1')
を実行すると 1127が帰ってきました。
googleで検索してるんですが検索の仕方が悪いのか このエラーの意味がわかりません。
unzipのパスについては、sshでログインした場合にunzipは可能なのですが、それとはまた違うのでしょうか?
0026nobodyさん
05/03/06 05:48:59ID:???>unzipのパスについては、sshでログインした場合にunzipは可能なのですが、
>それとはまた違うのでしょうか?
違う。両方でwhoamiしてみ。
002722
05/03/06 08:33:52ID:pz614Rae>>24
>>26
感謝!解決しました!
実行権限、コマンドのパス、VPSであることあたりがからんでたようです。
(VPSがからんでるかは微妙ですが)
【結果報告】
whoamiも両方試すと ブラウザからはwhoamiができませんでした。
よく確認してみると、同じディレクトリでもブラウザからとSSHではpwdの出力が違うことに気づきました。
apacheで見えてない(ブラウザからのpwdでは見えてない)上位のディレクトリに whoamiとunzipの実行ファイル(?)があったのでそれをapacheで見えるディレクトリにコピーして、権限設定。
phpのsystemでそのコピーした実行ファイルのパスを指定したら、実行できました。
*表現がおかしいところがあると思いますが、そこはごめんなさい
皆様の助言のおかげで解決しました、ありがとうございました!
0028nobodyさん
05/03/06 18:14:42ID:pWV0LcHNname=AAA&from=BBB&age=CCC
というようになっているのですが
これをPHPで各値を取得するために
$yomi = mb_split("&", $text);
for($i=0;$i<5;$i++){
if(mb_ereg("name=", $yomi[$i])) $ad_name = mb_ereg_replace("name=", "", $yomi[$i]);
if(mb_ereg("from=", $yomi[$i])) $ad_from = mb_ereg_replace("from=", "", $yomi[$i]);
if(mb_ereg("age=", $yomi[$i])) $ad_age = mb_ereg_replace("age=", "", $yomi[$i]);
}
というようにしてます・・
がこれだとスマートじゃないですよね・・
皆様はどうやっていますか?m(_ _ )m
0030nobodyさん
05/03/06 23:18:40ID:???if(ereg("[^._0-9A-Za-z]+", $_FILES['userfile']['name'][0])) {
と記述されている部分があるのですが、
この場合、「ハイフン」も含めるにはどう書けばいいでしょうか?
0031nobodyさん
05/03/06 23:25:13ID:???くだらない質問スレに行ってきます。
0032nobodyさん
05/03/07 09:34:01ID:???としたときに hoge.inc が自分のいるパスを知ることができますか?
0035nobadyさん
05/03/07 15:33:31ID:???session_start();
と記述した後に
header("Content-type: application/octet-stream;");
を使用したいのですが思うように使用できません。
ダウンロードダイアログが表示されるのですが、
"開く"を選択してもファイルを開くことができません。
sessionとheaderは同時には使用できないのでしょうか?
よろしくお願いします。
0036nobodyさん
05/03/07 15:55:21ID:???0037nobodyさん
05/03/07 16:05:42ID:???session_start();
if($_SESSION[go] == 'ok'){
header("Content-type: application/octet-stream");
print "session value is ".$_SESSION[go];
}else{
$_SESSION[go] = 'ok';
print "<a href='$_SERVER[PHP_SELF]'>a</a>";
}
0038nobodyさん
05/03/07 16:34:18ID:???0039nobadyさん
05/03/07 16:38:54ID:???保存は正常にすることができました。
保存したファイルを開くこともできました。
>>37
session_start()で取得した情報に基づきファイルをreadfile()で出力し、
それらを保存、及び開こうとしているのですが、
session_start()を使用した後にheader()を使用すると
保存ができて、開くことができません。
session()とheader()はなにか相性が悪いのでしょうか?
ご教授いただきたいです。
0040nobodyさん
05/03/07 16:46:42ID:???PHP関係無い
0042nobodyさん
05/03/07 17:39:59ID:???マニュアルのheader()の項を読む。
session_start()時にどんなパケットが流れるか見てみる。
対策は確かマニュアルにあったと思うし、メーリングリストに回答がある。
0043nobodyさん
05/03/07 23:17:18ID:PL7b7WJgPHPエディターを使ってWebサイトでの使用を目的としたPHPの勉強をしようとしているのですが、
文字コードについてよく判りません。
エディタでEUCを指定するとブラウザがISOの欧州フォントなどに切り替わり日本語部分が文字化けし、
Shift_JISで保存すると今度は自動的にEUCに変わり文字化けします。
動作確認をIE6.0とFirefox1.0で行っているのですがどちらも同様の反応が出ます。
PHPの保存時の文字とPHPをhtml内で表示させる場合のmeta内での文字コードなどはどのような関係になっているのでしょうか?
どなたか御教授お願いします。
0044nobodyさん
05/03/07 23:29:30ID:???0045nobodyさん
05/03/07 23:38:41ID:???PHPで文字エンコーディングを意識する必要があるのは3個所あって、
1. HTTP入力 - POST,GET等
2. 内部文字エンコーディング - スクリプト自体の文字エンコーディング
3. HTTP出力 - 結果の出力時の文字エンコーディング
詳しい内容は、ttp://www.php.net/manual/ja/ref.mbstring.php
その他に、apacheが付加するcharsetも関係してくる。AddDefaultCharset等。
0046nobodyさん
05/03/08 00:08:13ID:zgtI7JIE>>45
回答有難うございます。
示されたリンク先を見ましたが、ISO-8859-*, EUC-JP, UTF-8の何れかで記述して、
php.iniを書き換えれば良いということなのでしょうか?
0048nobodyさん
05/03/08 01:05:36ID:/emJr0GT以下の3行が書き込まれている test.txt
あいうえお
かきくけこ
さしすせそ
からデータを読み出す際は、$data = file("text.txt"); で読み出せたのですが、末尾の改行が邪魔です。
Perl でいうところの、
open(IN,"text.txt"); chomp(@data = <IN>); close(IN)
を実現しようとすれば、
$fp = fopen("test.txt","r");
while( ( $x = fgets($fp) ) ){
$data[] = chop($x);
}
とするしかないのでしょうか?
0049nobodyさん
05/03/08 01:09:06ID:???(エラーメッセージを画面に出さない)
0050nobodyさん
05/03/08 01:09:15ID:???見て読んで理解しろ。(貴方の既存の知識量等により)場合によっては
理解には別の情報が必要かもしれん。その場合はまたWebとか本から入手。
答えのひとつとして
「理解できなければ、全部'EUC-JP'に統一する」
を挙げておく。
0053nobodyさん
05/03/08 05:23:03ID:???submitで計算をさせるページを作っています。
cookie?などでこの$a〜$eを保存・読み込みをしたいのですが
(出来れば過去数回分を記憶してテキストフィールド以外の場所に表示させたい。)
php初心者で計算させるので精一杯で・・・
検索してもカウンターとかは見つかるんですがこういう手法がみつかりませんでした。
どのような記述で出来るのかご教授お願いします。
0054nobodyさん
05/03/08 06:37:29ID:???0056nobodyさん
05/03/08 07:55:52ID:???マニュアルには使い方の例も結構載ってるので悩むことは無いかと。
ttp://jp2.php.net/manual/ja/function.setcookie.php
005728
05/03/08 13:05:07ID:QMVO20O7返答遅くなってすいません。
そんな便利なコマンドがあったなんて・・有難う御座いますm(_ _)m
0058nobodyさん
05/03/09 01:11:34ID:???id,name
1,a born
MySQLに以上のデータが入っているとして、
$sql="select * from hoge where id=1";
$result=$db->query($sql);
$row=$result->fetchRow(DB_FETCHMODE_ASSOC);
でデータを呼び出すと、name列がaしか出てきません。
半角スペース以降も認識させる方法を教えてください。
必要な情報があれば出しますので!
006058
05/03/09 01:35:32ID:???×でデータを呼び出すと、name列がaしか出てきません。
○でデータを呼び出すと、name列が正しく出てきますが、フォームのtextエリアに入れるとaしか出てきません。
でした。ごめんなさい。よろしくお願いします。
0061nobodyさん
05/03/09 02:01:08ID:???<input type=text value=a born>
0062nobodyさん
05/03/09 02:24:45ID:???0063nobodyさん
05/03/09 02:32:54ID:???その通りでしあ
<input type=text size=50 name=\"name\" value=\"",$row["name"],"\">
ダブルクォーテーションで囲えば正しくフォーム部分にも出てきました。
でもこれで正解なんです?なんか野暮ったい気もするんですが
0065nobodyさん
05/03/09 10:29:04ID:???&を使用する事はできないのでしょうか?
<link>http://〜/a.php?abc=1&def=b</link>
0066nobodyさん
05/03/09 10:39:24ID:???& そのものを書くなら & と書かなければならない。
これは HTML でも同じ事
■ このスレッドは過去ログ倉庫に格納されています