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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/11/02 00:15:41ID:???
PHPに関するくだらない質問用すれです。
065465304/12/29 13:40:43ID:61b8nv/Z
すみません。環境を書き忘れました。
環境は、WBEL3(RHEL3)のデフォルト状態です。

httpd-2.0.46-44.ent.WB1
php-4.3.2-19.ent
文字コード:EUC-JP
phpinfo()による、mbstringの項目

Multibyte Support enabled
Japanese support enabled
Multibyte (japanese) regex support enabled

mbstring extension makes use of "streamable kanji code filter and converter",
which is distributed under the GNU Lesser General Public License version 2.1.

Directive Local Value    Maste Value
mbstring.detect_order no value  no value
mbstring.encoding_translation  Off    Off
mbstring.func_overload    0    0
mbstring.http_input  pass    pass
mbstring.http_outputpass    pass
mbstring.internal_encoding    none    none
mbstring.language   Japanese    Japanese
mbstring.substitute_character  no value  no value
0655nobodyさん04/12/29 15:43:08ID:IA0GuuO9
phpinfo()のinclude_pathのところに〜/pear/がないとpearは使えませんか?
自分のプロバイダの鯖がpearが使えるかどうかわからないもので。
0656nobodyさん04/12/29 16:55:29ID:???
>>655
プロバイダに聞けば一発で分かるんだけどね。
もしインストールされて無くても、pearはPHPだけで作成されているので、
利用したいpearを適切に修正してアップロードすれば使える。
0657nobodyさん04/12/29 16:56:57ID:???
ヒアドキュメントの中で計算式って使えないでしょうか?

例えば、こんなイメージ
$aaa = 100;
$bbb = 200;

print <<<_CALC_
計算はこうやる。<br>
{$aaa} + {$bbb} = {$aaa + $bbb}
_CALC_;

ちなみに、↑はエラーになりますた。
0658nobodyさん04/12/29 16:59:43ID:???
>>654
ttp://www.php.net/ChangeLog-4.php#4.3.10
Version 4.3.3
Fixed corruption of multibyte character including 0x5c as second byte in multipart/form-data
0659nobodyさん04/12/29 19:16:36ID:???
>>658
くはぁ〜バグだったんですね。
もうrpmには、見切りを付けてソースから導入し直します。
0660nobodyさん04/12/29 20:40:30ID:???
期間内と期間外で表示するものをかえるように」したいのですが、
function Timer(){ }でかこったら条件に関係なく期間外が表示されてしまします。
記述自体あまり自身が無いのでアドバイスとかもらえると嬉しいです

$startdate = "2004-12-28"; //開始日付
$limit = "5"; //表示日数

$n = date("H:i:s");
$now = date("U");
$start = strtotime("$startdate $n");
$end = date($now+$limit*60*60*24);
function Timer(){
  if($start < $now && $end > $now){
    echo "期間内";
  }else{
    echo "期間外";
  }
}
0661nobodyさん04/12/29 20:53:20ID:???
>>660
マニュアルの関数の部分ぐらい読みましょう
066266004/12/29 21:11:23ID:gc8v5X4n
>>661
ここですか? ttp://www.php.net/manual/ja/language.functions.php
読みましたがよくわかりませんでした、すいません
0663nobodyさん04/12/29 21:20:19ID:???
>>662
17章全部な。
そのページだけじゃないぞ。
066466004/12/29 21:25:22ID:gc8v5X4n
はい、読みました。
もう1度読み返してみます
0665nobodyさん04/12/29 22:48:25ID:???
ttp://www.php.net/manual/ja/language.variables.scope.php
の方がよいよ。つか、17 章だけじゃなく、他の章も読もうね。
0666nobodyさん04/12/29 23:31:23ID:ZtiJWjsG
携帯のサイト制作依頼したらいくらくらいかかるの?
0667nobodyさん04/12/29 23:37:00ID:???
君の家の値段と瀬戸大橋の値段を一緒と思ってもらっては困る
0668nobodyさん04/12/29 23:40:05ID:???
>>666
それこそピンキリ。
4〜5万円から、4〜5千万円クラスまで。(もっと上だってある)
ま、でかいのはインフラから資材からひっくるめてだけど。
066966004/12/29 23:40:11ID:gc8v5X4n
>>661さん、>>663さん、>>665さんありがとうございます
↓で動くようになったんですが、これであってますか?
演算とか条件の指定方法とかは問題ないでしょうか?

$startdate = "2004-12-28";
$limit = "5";

function Timer(){
  global $startdate, $limit;
  $n = date("H:i:s");
  $now = date("U");
  $start = strtotime("$startdate $n");
  $end = date($now+$limit*60*60*24);
  if($start < $now && $end > $now){
    echo "期間内";
  }else{
    echo "期間外";
  }
}
0670nobodyさん04/12/29 23:40:14ID:???
>>666
木造の家注文したら幾らかかるのぐらい、曖昧な注文内容だな。
予算から内容を詰めていくか、内容から値段を弾くか。
5万ぐらいから500万ぐらい(CE含めたりるすともっとする)とかね。
5万以下だとプロとしての仕事だと、手間隙考えると友人関係での
価格ぐらいのものです。
0671nobodyさん04/12/29 23:40:23ID:ZtiJWjsG
掲示板程度のものだと?
0672nobodyさん04/12/29 23:45:52ID:???
>>671
それでも木造「2階」建てでぐらいに、詳細になったぐらい。
携帯対応のフリーな掲示板スクリプトは何種か公開されてるので
インストールだけなら、本当に低予算から出来るけどね。
0673nobodyさん04/12/29 23:49:46ID:ZtiJWjsG
672
何でも制作できますか?依頼したいのですが・・・
0674nobodyさん04/12/29 23:51:38ID:???
>>673
ぐぐれば制作を請け負ってくれるサイトはいくらでもあるからそっちに頼め。
お前相手じゃ制作費の数倍の相談料をもらわにゃ合わん。
0675nobodyさん04/12/29 23:54:29ID:ZtiJWjsG
そんな冷たい事言わないでくれよ。
で、どこにあるの?請け負ってくれるサイトは?
0676nobodyさん04/12/29 23:57:10ID:???
ぐぐれ
0677nobodyさん04/12/30 00:03:50ID:???
>>669
意味もなくglobalを使うなよ
067866004/12/30 00:25:55ID:7YpfOIeB
>>677
global入れたら動くようになったんですけど、違うんですか?
067965304/12/30 00:54:01ID:e1CYzGzW
>>658
今、apacheとphpをソースからのインストールに切り替え完了しました。
Apache:2.0.52
PHP : 4.3.10
しかし、>>653-654の問題は解決しませんでした。

もちろん、php.iniでのmagic_quotesも全てOffにしています。
なぜ「可能.txt」の名前 だ け が取得できないのでしょうか?

引き続き、皆様からの情報をお待ちしております。よろしくお願いします。

また、phpを使ったアップローダーを作成された方や使用されている方に、
「可能」という文字列を含んだファイルをアップロードした場合どうなるか教えて頂きたいのですが・・・

今のままだと、こちらのコーディングの問題かPHPの問題かが判別付きにくいです。
0680nobodyさん04/12/30 01:35:46ID:???
>>675
掲示板ぐらいだったら、作ってやるよ。
もちろん仕事として。
0681nobodyさん04/12/30 01:42:27ID:???
>>679
「能」の文字のせい。
つーか、他にもなる文字はいくつもある。
0682nobodyさん04/12/30 01:52:25ID:???
もしPHPがどうするんですか?
0683nobodyさん04/12/30 01:53:58ID:???
なんだこいつ?
0684nobodyさん04/12/30 02:06:46ID:sIR6aofH
質問です。
Winなんですがmailparseをpearでインストールするために
pear install mailparse
をしたら、

downloading mailparse-2.0b.tgz ...
Starting to download mailparse-2.0b.tgz (33,547 bytes)
.........done: 33,547 bytes
9 source files, building
The DSP mailparse.dsp does not exist.

となり、インストールできませんでした。
試しに別口で
pear download mailparse
で落としたmailparse-2.0b.tgzの中にはmailparse.dspなんて入ってませんでした。
環境はWinXP、PHP-5.0.2です。
原因とかわかる方いらっしゃいましたらご教授願います。
0685nobodyさん04/12/30 02:24:10ID:???
680
おいくらで?
0686nobodyさん04/12/30 02:28:05ID:???
>>684
Winでは使えません
0687nobodyさん04/12/30 02:31:55ID:???
>>685
とりあえず50万をベースに希望内容によって上乗せというところで。
0688nobodyさん04/12/30 02:38:05ID:KJfyIQuI
687
どちらからですか?近いなら直接希望など話たいのですが・・・
0689nobodyさん04/12/30 02:43:09ID:???
>>688
直接話をして会話になるレベルの相手かどうか、
まず仕様や希望を書いて。
0690nobodyさん04/12/30 02:45:11ID:KJfyIQuI
689
えっ!?仕事として請け負ってくれるんじゃないんですか?
0691nobodyさん04/12/30 02:52:45ID:???
だから仕事相手になるかどうか判断しようとしている。
0692nobodyさん04/12/30 02:56:08ID:KJfyIQuI
逢って話してからでも遅くはないと思いますが?
0693nobodyさん04/12/30 03:06:37ID:???
1行レスばかりで希望内容も満足に書けないような相手では
会って聞いたところで同じだろう。
0694nobodyさん04/12/30 03:14:50ID:???
仕事なのに相手に逢うのを恐れてるの?
0695nobodyさん04/12/30 03:19:57ID:???
幼稚園児からの頼みを仕事と受け取るバカが世の中のどこにいる?
もう構うの飽きたから寝るわ。
0696nobodyさん04/12/30 03:32:04ID:???
まともに人と接して会話の出来ない人は可愛そうですね。
何かと言えば、幼稚園児だの小学生だの・・・
社会を恐がる惨め大人よりはガキの方がマシか?
金ならあるから直接交渉しろ!の、どこが可笑しい?
一生、社会に脅えてれば?オタクくん!!
0697nobodyさん04/12/30 03:34:03ID:???
fooというメンバを持つオブジェクトを返す関数hoge()があったとして

$var = hoge();
echo $var->foo;

のようにしたいのですが、これを簡単にして

echo hoge()->foo;

のようにはできませんでした。
新たに$varのような変数を定義しなくてすむ方法はありませんか?
教えてください。
069868404/12/30 04:22:18ID:???
>>686
現時点でWinでは無理ですか・・・。
うーん、とりあえずソースはあるんだから、なんとかコンパイルとかして出来ないものでしょうか?
#includeのとこ探しまくってやるのは無謀ですか?w
mailparseはmbstringも使ってるみたいだし大変だな。
あ、でもライブラリとか何使うのかわからないですね。

っていうか誰かphp_mailparse.dllもってませんか?w
すいません、Winばっか使ってるとこんな風に考えちゃいます(^^;
0699nobodyさん04/12/30 06:30:08ID:???
メンバ変数にvarとつけるとクラス内でしか使えないと聞いたのですが
$object->menbarなど何かの引数に使ったりすると問題なく使えます。
varにはどのような意味があるのでしょうか?
0700nobodyさん04/12/30 06:35:25ID:e9lTqvWv
$a['1'] = a; $a['2'] = b; $a['3'] = c;

$b['1'] = d; $b['2'] = e; $b['3'] = f;

でforeach($a as $element)とした場合に
$aだけでなく、$bも同時にforeachさせたいのですが、
何か良い方法はないでしょうか?
(例えば上の例なら $a['2']のときに、$b['2']を表記させたい。)
気持ち的には foreach($a as $element1 and $b as $element2)
みたいなことをしたいのです。
0701nobodyさん04/12/30 07:49:19ID:???
>>700
array_merge($a, $b)でいけるよ。$element1と$element2にはわけれないけど。
foreach (array_merge($a, $b) as $element)で。
ただ文字列のキーが重複すると、上書きされるので注意。
$a['hoge'] = 'a'; $b['hoge'] = 'b'; の場合、array_merge($a, $b)後の['hoge']は'b'になる。
$a['1']の場合、$a[1]とみなされるのでセーフ。

参考までに
$a['1'] = 'a'; $a['2'] = 'b'; $a['3'] = 'c';
$b['1'] = 'd'; $b['2'] = 'e'; $b['3'] = 'f';
print_r(array_merge($a, $b));

結果
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
)
0702nobodyさん04/12/30 09:49:45ID:???
>>700,701
こういうことをやりたいのではないかと予想してみる。

$a['1'] = 'a'; $a['2'] = 'b'; $a['3'] = 'c';
$b['1'] = 'd'; $b['2'] = 'e'; $b['3'] = 'f';

foreach (array_map(null, $a, $b) as $elements) {
     echo $elements[0] . ' ' . $elements[1] . "\n";
}
0703nobodyさん04/12/30 10:39:26ID:???
>金ならあるから直接交渉しろ!

激ワロタ…

0704nobodyさん04/12/30 11:16:38ID:m83gYHkE
Another HTML-lint gateway で文法チェックすると
「XML宣言は文書の先頭でなければなりません。」と怒られます。

echo '<?xml version="1.0" encoding="Shift_JIS"?>' . "\n";
と先頭に書いても、出力の1行目に空行が入ってしまう。

コレって回避策有りますか?
使っているサーバーが xrea.com だからかもしれないけど、
他に試せる環境が手元に無いもんで。
0705nobodyさん04/12/30 11:25:44ID:???
ftp_put() expects parameter 4 to be long php

このエラーってどういう意味なのでしょうか?
具具っても英語ページしか見つからなくて。
ftp_putでファイルをアップロードしたいのですが、
このエラーが発生してうまくアップできません
0706nobodyさん04/12/30 11:38:05ID:???
>>681
ありがとうございます。
調べてみたところ
http://www.shtml.jp/mojibake/sjis_cgi.html
のページが見つかりました。

メッセージにいわゆる「ダメ文字」を入力してテストしてみたところ、全て問題なく表示出来ました。
やっぱり、$_FILES['file']['name'];での「ダメ文字」を含むファイル名の取得は不可能って事なんでしょうか?
070770604/12/30 12:09:08ID:???
今、Linux機から、ファイル名をEUC-JPとして保存して、それをアップロードしてみたところ、
当然ですが、「可能.txt」や「分析表.txt」のファイル名が取得できたので、php.iniの設定をもうちょっと調べてみます。
0708nobodyさん04/12/30 12:42:48ID:???
>707
基本的にファイル名に日本語とか記号文字とかを使うのはおすすめできないよ。
海外製のソフトウェアを使うときに問題が出ることもあるし、
OSの仕様とか文字コードの違いで問題が出ることもあるし。
今回のはPHPの不具合だけど。
どうしても日本語を使いたい理由があるわけ?
0709nobodyさん04/12/30 13:50:15ID:???
>>708
いや・・・あの・・・掲示板の一環のファイルアップロードサービスなんで・・・俺自身では、どうしようもない事なんです・・・
俺自身では、LinuxやらWindowsやら複数のOSを使っているので、日本語ファイル名とかは、言語道断なんですが・・・

アップロードしたファイル名をそのままユーザに返したいんで・・・
もちろん、実際にサーバに保存されるファイル名は、英数字の一意なファイル名で、アップロード自体にはなんの問題もありません。
0710nobodyさん04/12/30 14:47:10ID:???
>>705
ftp_putの引数がマズイ
0711nobodyさん04/12/30 14:53:53ID:???
>>704
広告のせい
0712nobodyさん04/12/30 15:06:09ID:jqnvfuCr
>>705
本家マニュアルのftp_putのuser noteに英語で解答らしきものがある。
0713nobodyさん04/12/30 15:57:07ID:???
>>712
英語じゃわかんねーって言ってるだろヴォケー
0714nobodyさん04/12/30 16:16:48ID:???
>>713
>>710
0715nobodyさん04/12/30 16:48:37ID:???
>709
ああやっぱりそんな感じですか。
ならhtmlのエンコードをeuc-jpにすれば大丈夫かと。
ただ、ダウンロードの時にも日本語ファイル名はブラウザによっては
問題があったような気もする。
0716nobodyさん04/12/30 20:51:41ID:???
>>696
50万+でオレが請け負ってやるよ。
連絡先のメールアドレスを晒してくれ。

そこまで言うお前さんを見てみたいんでな。
個人的には>>695と同意見ではあるんだが。

オレはSOHOでPHP+MySQL中心にWEBシステム作ってるモンだ。
一応、プロだから安心してくれ。
0717nobodyさん04/12/30 20:56:38ID:???
>>716
RFP皆無で「50万+」と言い切るあたり、どこぞのプロですか?
0718nobodyさん04/12/30 20:58:12ID:???
>>716
えらそうに言っておきながら予算は10万しかないんだってさw
0719nobodyさん04/12/30 21:14:48ID:???
>>717
というか、ある意味、興味本位だ。
面白きゃ、別にタダでもいい。
値段は>>687-688から。
0720nobodyさん04/12/30 21:19:13ID:???
>>719
サルにエサを与えないでください
0721nobodyさん04/12/31 00:38:45ID:B2MMrafy
すみません。質問です。
2ちゃんトップページをGETする関数ですが・・・

<?php
ob_start("callback");
include 'http://www.2ch.net/';
ob_end_flush();
?>

これを変数の中に格納したいのですが、

$nichan { ob_start("callback");
include 'http://www.2ch.net/';
ob_end_flush();};

うまくいきません。どうすればよいでしょうか?
こんな感じでやってみましたが・・・
お願い申す!
0722nobodyさん04/12/31 00:41:00ID:B2MMrafy
>>721です。

(訂正)

$nichan { ob_start("callback");
include 'http://www.2ch.net/';
ob_end_flush();
    }
0723nobodyさん04/12/31 02:05:30ID:PHrVa8Mz
はじめまして。

PHP初心者です。
PHPにCSSはどうやって組み込めばいいのですか?
今DREAMWEAVERMX使っていますが、
簡単なPHPのプログラムを作れるのですが、それをどうやって好きなフォントや
形にするのかわかりません。
どうやるのでしょうか?
0724nobodyさん04/12/31 02:10:46ID:???
>>721-722
マニュアル読め
それか、中学からやり直せ

>>723
普通のCSSと同じでいい
0725nobodyさん04/12/31 02:11:21ID:???
>>723
HTMLと同じ
0726nobodyさん04/12/31 02:11:23ID:PHrVa8Mz
いじっていたらできるようになりました!
やった
0727nobodyさん04/12/31 03:38:44ID:???
変数のサニタイズって htmlspecialchars しとけば良いってのは事実でしょうか?
某書籍に書いてあったのですが、イマイチ納得いきません。
stripslash とかが必要になる気がするのですが
0728nobodyさん04/12/31 03:46:43ID:???
>>727
何で必要と思ったのかも書けと
0729nobodyさん04/12/31 03:49:41ID:O6a7LDD/
Q.クラスが理解できません
0730nobodyさん04/12/31 03:57:34ID:???
727と若干かぶるが
配列をhtmlspecialcharsdでサニタイズしたら、配列が空になっちった!
なぜに!?
0731nobodyさん04/12/31 04:05:03ID:???
>>730
まさか htmlspecialchars($array) とかやってないよね?
ちゃんと array_map("htmlspecialchars", $array) にしてるよね?
073273004/12/31 04:07:29ID:???
>>731

サンクスです

サンクスです

サンクスです
0733nobodyさん04/12/31 07:20:42ID:???
サーバーをまたがったセッション保持ってデータベースを
使えばできると思うのですが、
$_SESSION['ID']を別サーバーで取得しようとしても
空っぽのものしか取得されません。

データベースには正しくセッションが保持されているようですし、
エラーも発生していないようなのですが・・・

http://www.stackasterisk.jp/tech/php/php03_06.jsp
ちなみに上記の session_handler.phpをMySQL用に修正
して使用しています。

どなたかご教授お願いします。
0734nobodyさん04/12/31 07:25:01ID:DFaxN2oe
連続したオブジェクトのインスタンスってどうやってやるの?
例えwhileなどを使って
obj1 obj2......obj100
までちょっとずつメンバ変数を変えてつくりたいの。
0735nobodyさん04/12/31 07:26:15ID:DFaxN2oe
もしかして配列使えばよいのかな?
オブジェクトも配列に格納できるんだっけ?
073673304/12/31 07:36:50ID:???
どうやら
$sid(セッションID)が別サーバーからsession_start()した場合に異なっている
ようです。
解決方法はないでしょうか?
073773304/12/31 08:17:37ID:???
SIDをGETで持ち込む方法でいけましたが、
セキュリティ面でGETは利用したくないと思っています。

別の解決方法ありましたら教えてくださいませ
0738nobodyさん04/12/31 09:45:11ID:B2MMrafy
>>724

>>721-722です。
マニュアルと入門本を見たが、 = や () くらいしか
格納できなく、あの構文じゃさすがに格納できないっす・・・;_;
0739nobodyさん04/12/31 10:37:43ID:???
>>737
POST

>>738
ob_get_contents()
0740nobodyさん04/12/31 11:04:27ID:odEUK91B
セッションを使っているページで以下のような警告文が出ます。
バージョンは4.3.2です。4.3.10にすると警告が消えたのですが、
4.3.2だと何故このような警告が出るのか後学の為に教えて頂けないでしょうか。

セッションは$_SESSION["hoge"]のように書いていて、4.1.x系のような書き方ではありません。
4.3.2、4.3.10ともregister_globalsはoffになっています。bug_compat_42、session.bug_compat_warnも
4.3.2、4.3.10ともに同じ設定です。session_start()の以前に$_SESSIONを使って操作はしていません。


Warning: Unknown(): Your script possibly relies on a session side-effect which existed until
PHP 4.2.3. Please be advised that the session extension does not consider global variables
as a source of data, unless register_globals is enabled. You can disable this functionality
and this warning by setting session. bug_compat_42 or session.bug_compat_warn to off,
respectively. in Unknown on line 0
0741nobodyさん04/12/31 11:39:06ID:???
>>740
書いてあるやん。
074270704/12/31 12:14:03ID:???
>>653-654
あたりで、日本語ファイル名を取得出来ないと騒いでた者です。
今、とんでもない事に気が付きました。

テスト用のブラウザにOperaを使ってたんですが・・・
IEとFireFoxで「可能」や「分析表」などの文字を含んだファイル名をアップロードすると普通に取得出来ました。

こんなに騒いだ後に、誠に申し訳ないですが、どうやらOperaの問題の様です・・・

#Operaは、HTMLなどのレンタリングが正確だって聞いたのに・・・こんな所で・・・orz

ちょっとOperaスレに行って聞いてきます。
0743nobodyさん04/12/31 12:14:39ID:???
>>741

すみません、言葉が足りませんでした。
警告の意味は理解しているのですが、同様の設定にも関わらず4.3.2だと警告が出て、
4.3.10だと警告が出ない理由が知りたかったのです。
0744nobodyさん04/12/31 12:40:06ID:???
>>743
Changelog見れば?
0745nobodyさん04/12/31 13:50:35ID:???
英語じゃわかんねーっんだよヴォケー
0746nobodyさん04/12/31 13:58:24ID:???
日本語がないなら、せめてフランス語のページを紹介にしろってんだよ!バカヤロー
074769704/12/31 14:05:45ID:opqL9/cF
まじで誰か知りませんか?
それとも毎回変数確保してるんですか?
もう一度質問させてください


fooというメンバを持つオブジェクトを返す関数hoge()があったとして

$var = hoge();
echo $var->foo;

のようにしたいのですが、これを簡単にして

echo hoge()->foo;

のようにはできませんでした。
新たに$varのような変数を定義しなくてすむ方法はありませんか?
教えてください。
0748nobodyさん04/12/31 14:23:42ID:???
>>747
無理、ていうかわざわざクラスにする必要ないんじゃないか?
0749nobodyさん04/12/31 14:40:33ID:???
>>747
よく見ると関数(function)とクラス(class)ごっちゃにしてそうだな。違いわかってる?
$varは変数じゃなくてオブジェクトなわけでどうやったって必須なんだが
0750nobodyさん04/12/31 14:50:12ID:???
>>747
PHP4 では不可能。
PHP5 では可能。
0751nobodyさん04/12/31 15:49:10ID:???
違いがわかってないのは749な気がする
0752nobodyさん04/12/31 15:52:11ID:???
>>749
> どうやったって必須なんだが
そんな事ない
C++やJavaなら>>747のような事はよくやる

>>747
知らん
0753nobodyさん04/12/31 16:25:40ID:hdw9djAl
PHPでかかれていて、データベース不要のeコマース構築システム(ショッピングカート)ってありますか?
osCommerceが有名だそうですが、データベースが必要なので。

というかすれ違いですか?
■ このスレッドは過去ログ倉庫に格納されています