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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2005/06/05(日) 13:17:11ID:xiGnsMS4
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/
08097632005/07/05(火) 08:58:01ID:???
>>804
5.1から実装でしたか。
ありがとうございました。
0810nobodyさん2005/07/05(火) 08:58:24ID:???
>>808
preg_match_allとか?
0811nobodyさん2005/07/05(火) 10:16:19ID:???
>>807
表示させている時点で判っているはずだが…
08126372005/07/05(火) 14:22:01ID:???
>>638
>>639
おそれすスンマソン
別の案件やってたら質問入れたこと忘れてた。
さっき再開したときに同じことで疑問に思って思い出した。
どうもありがとう。
08138062005/07/05(火) 15:11:33ID:???
すみません。質問の仕方を変えます。
同じPHP内に、2つ以上ヒアドキュメントを使う場合、
一般的には別々のIDにするものなのでしょうか?
同じIDでも大丈夫のようですが、皆さんはどうなされてますか?
0814nobodyさん2005/07/05(火) 15:18:37ID:???
>>813
ヒアドキュメント自体使わないからなー
使うとしたらそのときの気分しだいかな
でも文字列考えるのがめんどいから多分全部同じにするかな
0815nobodyさん2005/07/05(火) 15:24:42ID:???
HTMLなら__HTML__、SQLなら__SQL__と対象によって統一

つか赤の他人の事気にしてどうする
0816nobodyさん2005/07/05(火) 16:03:15ID:KqOBtHLW
すいません

<?php
$title = "表";
?>

これがエラーになるんですが、何でですか?
"表1"とかだとOKなんですが。
0817nobodyさん2005/07/05(火) 16:11:12ID:???
>>816
「shift-jis 表 0x5c」 でググって何が問題となっているのかを認識する。
0818nobodyさん2005/07/05(火) 16:27:08ID:KqOBtHLW
>817さん
ありがとう。
どっさり出てきました。

とりあえず
"表\"
でいいかな。

プロはみんなeucで書いてるんでしょうか?
0819nobodyさん2005/07/05(火) 17:03:19ID:sbJyhs1R
質問です。
いろいろなサイトを見ながらセットアップ作業を行っていて、
phpファイルを試しに動かせるのではないか、という段階まできたのですが、
サンプル用のphpファイルをどこに置けばいいのでしょうか。
どのサイトもホームディレクトリに置いて、とかルートディレクトリに置いてとか
書いてあるんですが、じゃホームってどこ?という疑問のまま先に進めていません。

あまりにもくだらない質問で恐縮ですが、どなたか教えてください・・・。
せっかく目前まで来てるのに・・・(´・ω・`)
0820nobodyさん2005/07/05(火) 17:11:04ID:???
実行するだけならどこでもいいよ。

Web鯖立ててブラウザなどで実行したいのなら鯖の設定だ。
0821nobodyさん2005/07/05(火) 17:12:28ID:sbJyhs1R
>>820
レスどうもありがとうございます。
鯖の設定いうことはApacheの設定ファイルであるhttpd.confで
記述してやればいいということですか?
0822nobodyさん2005/07/05(火) 17:13:25ID:???
そゆこと
0823nobodyさん2005/07/05(火) 17:26:45ID:???
八つのランダムの数字を生成するのってどうやるのですか?
56481001←見たいに出力したいのですが
エロイ人教えてください
0824nobodyさん2005/07/05(火) 18:11:04ID:???
つ [ rand(0,99999999) ]
使い時の注意事項はマニュアルを参考に。
0825nobodyさん2005/07/05(火) 18:13:32ID:sbJyhs1R
先ほど質問した者です。

httpd.confのServerRootを "/etc/httpd/" に指定して、
test.phpファイルをこのディレクトリに配置しました。
ブラウザで http://192.168.1.185:80/test.php と入力しても
ページが見つかりません、と表示されました。
ちなみにtest.phpの中身は<?phpinfo();?>だけです。

なにかまだ設定が足りないんでしょうか・・・?
原因が分からなくて困っています。
どなたかヒントだけでもいただけないでしょうか?
08268242005/07/05(火) 18:14:48ID:???
ありがとう
0827nobodyさん2005/07/05(火) 18:17:02ID:???
自作自演?w
0828nobodyさん2005/07/05(火) 18:19:18ID:???
つ [ DocumentRoot ]
httpd.confにも(英語だけど)書いてあるように、
ServerRootは鯖の設定やログ等を保持するディレクトリの指定っす。
(個々の設定(例えばErrorLog設定)とかは、ServerRootからの相対ディレクトリを指定する)
0829nobodyさん2005/07/05(火) 18:23:51ID:???
>>828
レスありがとうございました。
見事にちゃんと動きましたですよ!
親切なレス本当にありがとうございました 。・゚・(ノ∀`)・゚・。
0830nobodyさん2005/07/05(火) 21:23:39ID:???
if(isset($_SERVER['HTTP_VIA']) || isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
HandleCheat('Hit_Proxy');
}

if(!isset($_SERVER{'HTTP_ACCEPT'}) || !isset($_SERVER{'HTTP_USER_AGENT'})){
HandleCheat('Hit_Browser');
}

これってどういう意味ですか?
$_SERVERうんたらってやつが詳しく分かりやすくかいてあるサイトも教えてください
0831nobodyさん2005/07/05(火) 21:30:17ID:???
$_SERVERでググった一番上。
0832nobodyさん2005/07/05(火) 23:08:14ID:???
マニュアルくらい読め
0833nobodyさん2005/07/06(水) 01:52:15ID:???
class sup {
var $hoge;
function sup () {
$this->hoge = 'hoge';
}
}

class sub extends sup {
function sub () {
echo $this->hoge;
}
}

$sub = new sub();

親のコンストラクタは働かないの?
08348332005/07/06(水) 02:48:28ID:???
マニュアルに書いてあった(;´Д`)
自分でうまくやりくりせんといかんのか
0835nobodyさん2005/07/06(水) 04:46:48ID:???
めっちゃ既出っぽいけれど。
例えば全角の "ABCDE" を半角の "ABCDE" に変換したい時ってどうすればいいですか?
mb_convert_case() だと "abcde" 、全角のままだし、
mb_strtolower() も同じっぽい。
0836nobodyさん2005/07/06(水) 06:40:42ID:???
本スレ埋まったな。
このスレと比べて質問内容も大差なくなってきてるから、こっちが本スレ化しても大して問題なさげ?
0837nobodyさん2005/07/06(水) 07:13:47ID:???
>>835
mb_convert_kana
08388352005/07/06(水) 07:24:05ID:???
>>837
なるほど。さんくす。
0839nobodyさん2005/07/06(水) 09:15:21ID:???
勉強中の初心者です。文字列を単語単位で配列に格納しようと
思いまして、str_word_count というのを見つけました。
http://jp2.php.net/manual/ja/function.str-word-count.php

アルファベットに関しては期待した動作をしてくれますが数字は
無視され、数字を含む単語は分割されます。

そこで上記のマニュアルにある通り[string charlist]を使って、「fri3nd」
のような文字列もそのまま単語として扱いたいのですが、ご覧の通り
肝心の[string charlist]部分が文字化けしています。str_word_countは
日本語の情報がほとんど出てこないし途方に暮れています。

ご存知の方いらっしゃいましたら、ご教示お願いいたします。
あるいはまったく別の方法がよろしいんでしょうか。
効率的で負荷が低ければ他の関数でも採用したいと思います。
0840nobodyさん2005/07/06(水) 10:08:19ID:???
>>839
PHP 5.1.0
0841nobodyさん2005/07/06(水) 11:13:23ID:???
文字化けしてるのかな?
a`a'a~c,3を文字として扱いますよってことだと思うけど(未確認)
0842nobodyさん2005/07/06(水) 11:31:06ID:???
>>841
同意
ドイツ語、フランス語対応って感じでしょう

$list = str_word_count( $str, 1, '3');
を実行したら
PHP5.0.4
Warning: Wrong parameter count for str_word_count() in C:\home\php\test.php on line 3
PHP5.1.0b2
3を含む文字列使えた
08438392005/07/06(水) 11:34:32ID:???
>>840
見落としてました(汗
サーバが5.0.4なのでこの便利そうな機能は使えないんですね。

>>841,842
なるほど、文字化けじゃなくてラテン文字と数字の3なんですね。
だから「fri3nd」もひとつの単語ですよ、と。ありがとうございます。

>>839のような場合はどんな関数が使えるんでしょうか?
需要はありそうなんですが。引き続きお願いいたします。
0844nobodyさん2005/07/06(水) 11:45:20ID:???
>>843
単語ってスペースで区切られてるんですよね
preg_splitで空白文字、記号で分割するのはどう
preg_split("/[\s,.?!]+/", $str);
08458392005/07/06(水) 11:59:24ID:???
>>844
いまちょうど見つけました。これを使うのが常識なようで、
よく調べもせずに失礼しました。ありがとうございました。
0846nobodyさん2005/07/06(水) 14:49:26ID:+dzX+yc7
質問1
hetmlで色々書いたり変数を差し込んだりしてる(略)の部分の中で
functionを実行したりって出来ないもんなんでしょうか?
functionで行っている一連の手続きの結果を変数におさめることが出来ればそれでもいいんですが。

$cont =<<<hoge
(略)
hoge;

質問2
相対パスでファイルパス($imgpath = "imge/hoge.jpg";とか$datadir = "himitsu/data";)などが
書かれたconfig.phpとか、これに類する(パスがからんだもの)ファイルを、
違うレベルの階層のファイルからちゃんとインクルードって不可能でしょうか?
めんどくさくて、インクルードする側とされる側のファイルを同じディレクトリに置いちゃってるんですが
結構細かくファイルを分けてるもんで、どこかのディレクトリにまとめておいて、どんな階層からでも参照したいんですが。
0847nobodyさん2005/07/06(水) 15:09:43ID:???
>>846
1.
ヒアドキュメントの中で関数を使うのは無理。
関数の結果(return)を変数に代入して、その変数をヒアドキュメントの中で使うのはあり。
というかそれが正しい使い方。

2.
呼び出しの大元のスクリプトの場所がワーキングディレクトリとなり、
相対パスを使った場合はここからのパス指定になる。
ワーキングディレクトリの変更はchdir()で行えるが、更なる混乱を招くので止めた方がいいと思う。
オイラは defineで基準となるディレクトリ名(s)を設定して、それを使うようにしている。
0848nobodyさん2005/07/06(水) 15:25:09ID:???
win2000 IISでPHPをISAPIで入れました。
include("hoge.inc")が使いのでphp.iniをみてwin用の例(include_path = ".;c:\php\includes")を
そのままコピペしてアンコメントしたのですがインクルード出来ずに
failed to open stream: No such file or directory in XXXXXXXXとエラーを吐きます。
また、include("c:\php\includes\hoge.inc")とすると正常に読めます。
winでもinclude_pathの指定は可能なんでしょうか?
0849nobodyさん2005/07/06(水) 15:32:30ID:???
アンコメントって何?

とりあえずphpinfoでも見てphp.iniが読み込まれてるかとか、include_pathがどうなっているかとか見れ
0850nobodyさん2005/07/06(水) 15:46:33ID:???
>>849
コメントアウトされてたので行頭の;をはずしました > アンコメント
phpinfo確認した所
include_path.;c:\php\includes.;c:\php\includes
期待通りです。
ちなみに再起動しなくてもphp.iniは再読み込みされるんですね、
Redhatでphp使ったことがあったんですが再起動しないとダメだった気が…。
0851nobodyさん2005/07/06(水) 15:52:16ID:???
>>850
\じゃなくて\だよ
0852nobodyさん2005/07/06(水) 15:56:41ID:???
>>851
バックスラッシュですよね?
今macから書いてるから化けるかも
0853nobodyさん2005/07/06(水) 16:15:05ID:???
まさかとは思うけど。。。
そのスクリプトと同じディレクトリにhoge.incが存在していて
そのhoge.incの中でエラーが出てるってことはないよね。
0854nobodyさん2005/07/06(水) 17:25:35ID:???
>>853
このディレクトリにはファイル一つしかおいてないっす
hoge.incを同フォルダにおくとincludeに成功します。
0855nobodyさん2005/07/06(水) 18:20:10ID:VUICn4NH
http://blog.livedoor.jp/ura_gossip/
↑
芸能裏モノニュースさんみたいな更新情報が流れてくるやつをブログ内に設置したいんですが

サクラかXREAにサーバーを借りたあとどうしたたらいいんでしょうか?

やり方を書いてるサイトとかあったら教えてください
0856nobodyさん2005/07/06(水) 18:44:47ID:???
>>855
おまいのそれは丸投げとかクレクレという。まずはPHPの知識をつけろ

それからだ
0857nobodyさん2005/07/06(水) 18:46:15ID:???
PHPでも何でもないじゃん
0858nobodyさん2005/07/06(水) 18:49:16ID:???
>>857
phpでもできるし、
もっともくだらねぇ質問の類だからスレの趣旨にはあっている。
激しくむかつくがな。
0859nobodyさん2005/07/06(水) 19:09:21ID:???
>>857
>芸能裏モノニュースさんみたいな更新情報が流れてくるやつ
を受信したいの?発信したいの?
0860nobodyさん2005/07/06(水) 19:09:51ID:???
>>858
まあ、スレ住人的には
「こんなくだらない質問するのはなあ…でも分かんないしなあ…ちょっとなあ…」
と悩める子羊に対して
「いいからウダウダ言わずに持ってこいやあ( ゚Д゚)カムーン」
と後押しする意味の「くだらない」であって、
何でもかんでも聞いていいっつー仏さんのような人間を求める香具師には
ハナからこうしてなじられちまうわけだがな

自分で頭痛くなるまで考えない香具師はいつまで経っても前進は無理
08618592005/07/06(水) 19:10:11ID:???
ぐはっミスった、
×>857
○>855
0862nobodyさん2005/07/06(水) 19:13:03ID:???
初心者が自作しようとすると
バッチ処理と差分の取り方がネックになるのかな。
08638462005/07/06(水) 19:14:53ID:???
>>847さん、レスありがとうございます。
function testtest($aaa){
global $kekka;
$kekka = $aaaを使ったいろんな処理;
return $kekka;
}
ってやっておいて

$cont =<<<hoge
(htmlとかいろいろ)
{$kekka}
(htmlとかいろいろ)
hoge;
って感じでしょうか?

defineか、なるほど。研究してみます。
defineを記述するphp内でルート相対パスを取得、
それを基準パスとしてdefineで宣言してしまうわけですね。参考になりますた。
08648552005/07/06(水) 20:30:37ID:VUICn4NH
どこで聞いたらいいのかがまず分からないので聞いてみたんですが・・

板違いですか?

どこで質問すればいいのか教えてください
0865nobodyさん2005/07/06(水) 20:32:58ID:VUICn4NH
>>859
受信です
0866nobodyさん2005/07/06(水) 21:09:39ID:???
>>864
板違いではない。話題的にはこの場所で合ってる(はず)。
ただ、俺もこのスレの住人も他のサイトの人間も、
ぐぐって調べてひっくりがえして、それこそバファリンの世話になるまで
考えまくったわけで、それでようやく理解できた「概念」は、
他人に聞いてもポンと理解できるような簡単なものではない。
そうでもしないと理解なんぞ出来ない。丸投げして人に聞いてる時点で無理ってこと。

具体的に言えば「どうすればいいですか」じゃなくて
まずプログラムという努力の成果を持ってきた上で「どこがおかしいですか」。

「まずやってみよう」「意地でも理解してみせる」
って気概の感じられない人間はプログラムの世界じゃ誰にも相手にされない。
厳しいが這い上がって来い。
0867nobodyさん2005/07/06(水) 21:12:03ID:???
…と、半端者の俺が格好つけて申しております(つД`)
0868nobodyさん2005/07/06(水) 21:34:04ID:VUICn4NH
>>866
それは十分承知してるつもりなのですけども、他のブロガーさんも何個か全く同じヤツ作ってて簡単に作れるものなのかと思いまして聞いたんです

そもそも更新情報的なんなんかはPHPであってるんでしょうか?

もう何から勉強したらいいのかわからなくて
0869nobodyさん2005/07/06(水) 22:05:03ID:???
つか、アフィだろ?
板違い
0870nobodyさん2005/07/06(水) 22:17:13ID:???
完全に板違いというわけではないが
質問に答えたところであなたがそれを実行できるのに最低限知識があるとは思えない
0871nobodyさん2005/07/06(水) 23:04:12ID:IFWSTCJy
fedoracore2で「system("crontab filename");」を実行したら
/var/spool/cronにapacheユーザーが実行したcronfile(?)がで
きるのにfedoracore3ではできない。
なぜ?
ちなみに「system("echo $PATH");」でcrontabのパスが
とおっているのは確認したし、ログインしてcrontab -u apache filename
ではできました。


0872nobodyさん2005/07/06(水) 23:49:02ID:???
SELinuxとかセキュリティ保護機能働いてんじゃない?
0873nobodyさん2005/07/06(水) 23:57:25ID:???
http//---------.cgi?○○

で○○の文字を保存されていくように↓つくったんだが
ある鯖ではうまく動いて、インフォシークではうまく動かないんだがなんで で?

#!/usr/local/bin/perl

$mes=$ENV{'QUERY_STRING'};
chomp($mes);
open(FILE,">>s.dat")||die("Error!");

flock(FILE,2);
print FILE $mes."";
flock(FILE,8);

close(FILE);

0874nobodyさん2005/07/07(木) 00:01:34ID:???
>>873
スレ違いだから
0875nobodyさん2005/07/07(木) 01:36:27ID:OHtTbw4o
1ホスト1アクセスって言う設定は.htaccessで出来ますか?
0876nobodyさん2005/07/07(木) 02:15:35ID:???
>>875

>>874
0877nobodyさん2005/07/07(木) 02:17:33ID:???
>>875
mod_limitipconnあたりでできるけど、スレ違い。
調べてみて分からない所があればapache関係のスレへ。
0878nobodyさん2005/07/07(木) 03:45:43ID:???
すんません。
ポストしたボタンに以下の様な感じでvalueを付けて
 get_0
 get_1
 get_2
 get_3
 get_4
と下一桁だけが違うデータを拾う場合に
 preg_match('{^get_}', $_POST)
のような感じで纏めて一つで拾うって事は可能ですか?

宜しくお願いします。
0879nobodyさん2005/07/07(木) 03:59:03ID:???
>>878

$before = ("get_*" を含んだ配列);
$after = str_replace("get_","",$before);

print_r($after); # 内容を確認
08808682005/07/07(木) 03:59:53ID:sHuTjmyq
>>870
つか教えてくれたら知識がなくてもいろいろ調べて実行するのに!!!

もうこねえよウワーン!!!
0881nobodyさん2005/07/07(木) 04:35:01ID:???
>>879
どうも。
それは処理を取得した後の話ですよね。

私の書き方がアホ過ぎた。

if ( isset($_POST["get_1"]) )
sele if( isset($_POST["get_2"]) )
sele if( isset($_POST["get_3"]) )
・・・
と沢山書かなくては面倒なので
if ( preg_match('{^get_}', $_POST) )
のような感じ引っ掛けたいのですか可能ですか?
0882nobodyさん2005/07/07(木) 05:54:07ID:???
878です。

ダサいけど配列を分解して検証しました。
0883nobodyさん2005/07/07(木) 07:32:06ID:???
>>878
<input type="submit" name="button[0]" value="ボタン0" />
<input type="submit" name="button[1]" value="ボタン1" />
<input type="submit" name="button[2]" value="ボタン2" />

<?php
if (array_key_exists('button', $_POST))
{
 $button = $_REQUEST['button'];
 print_r($button);
}
?>
0884nobodyさん2005/07/07(木) 08:08:03ID:55WSE5MU
レンサバに関する質問です。
PHPを使って、FTPのアカウントを管理する(追加したり削除したり)ことはできますか?
FTPサーバはWebと同じホスト上で動いてて、cPanel(レンサバさんにインストールされた、Webベースの管理画面ツール)から手入力でFTPアカウントをいじることはできるのです。
これをPHPを用いたWeb上のログインと関連付けて自動的に管理したいと思っています。

まだ申し込みをする前なので具体的な環境は提示できないのですが、「環境による」という場合は、Pure-FTPdの場合を想定してもらえると助かります。
一応、OSはUnix系、WebサーバはApacheというのは間違いないと思います。
0885nobodyさん2005/07/07(木) 08:11:37ID:/h0r6Ir6
<?php

require_once 'db.php';

//-------------------------------------------------------------------------------
// データベースに接続する
$conn = mysql_connect($sv, $user, $pass) or die("接続エラー");
mysql_select_db($dbname) or die("接続エラー");
//-------------------------------------------------------------------------------
id_get();
echo $id;
//-------------------------------------------------------------------------------
// 接続を解除する
mysql_close($conn);
?>

db.php内には

function id_get(){
$sql = "SELECT id FROM data ORDER BY id DESC LIMIT 1;";
$res = mysql_query($sql, $conn) or die("抽出エラー");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
$id = $row["id"];
}
があります。

これでなぜかdb.phpの抽出エラーが出ます。接続のUser,Passなどは合ってます。
includeやrequireで別ファイルにSQLの部分だけ記述し呼び出すとエラーになるようなのですが対処法が分かりません…。
よく使う部分なので別ファイルにして呼び出したいのですがいかがすればよろしいでしょうか?
0886nobodyさん2005/07/07(木) 08:16:14ID:55WSE5MU
>>885
function id_get() 内の $conn が空っぽですね。
引数で渡してやりましょう。
0887nobodyさん2005/07/07(木) 08:41:31ID:???
>>885
変数のスコープ(有効範囲)を理解しましょう
id_get()内の$connと$idは外の$conn,$idとは別物です
あなたがやっているのは
function id_get(){
$sql = "SELECT id FROM data ORDER BY id DESC LIMIT 1;";
$res = mysql_query($sql, $未定義の変数) or die("抽出エラー");
$row = mysql_fetch_array($res, MYSQL_ASSOC);
$使えない変数 = $row["id"];
}
と同じことです
0888nobodyさん2005/07/07(木) 11:35:31ID:???
>>883
$_POST の button が有るかを見ておいて、$_REQUEST で拾うのって気持ち悪くない?
少なくとも、俺にとっては耐えられない。

>>878

<input type="checkbox" name="hoge[]" value="get_1">
<input type="checkbox" name="hoge[]" value="get_2">
<input type="checkbox" name="hoge[]" value="get_3">

<?php

if(array_key_exists("hoge",$_POST)){

if($foo = preg_grep("/^get_(\d)+$/",$_POST['hoge'])){
print_r($foo); # 又は、処理続行
}
else{
die("送信されたデータの形式が正しくありません");
}

}

?>
0889nobodyさん2005/07/07(木) 13:30:00ID:???
>>884
貴方がレンタルサーバ屋なら直接弄るのは可能だけど、
cPanel使ってるってことは、そのサーバ屋さんですらリセラーに過ぎず
貴方は更にその顧客に過ぎない予感。元々あるWebの管理ツールI/Fを
cURLか何かで叩くような自作のスクリプトで対応するしかないでしょう。
0890nobodyさん2005/07/07(木) 14:29:00ID:55WSE5MU
>>889
情報ありがとうございます。
もしかしてcPanelとソケット通信してなんとかするってことでしょうか?
それは今まで考えつかなかったのでやってみようと思います。
(FTPコマンドとかでできてしまえばなぁ・・・と思ったりしてたのですが)

cURLっていうツールは初めて知りました。
manで調べたらずいぶん豊富な機能満載ですねw

基本的にcPanelはHTTPでアクセスできるので(ポート違いで)、HTMLを正規表現で地道に弄るしかなさそうですかね。
もしかしてcURLでもっと簡単にできたりとかするのでしょうか?
あ、Cookie絡みとかうまく処理してくれそうですね。
どうもありがとうございました。
0891nobodyさん2005/07/07(木) 16:24:59ID:???
条件がいくつもあるIF文を実現させる時、書く順番、というかコツはありますか?
例えば
・二十歳で親の同意なく結婚できる
・男は18歳以上、女は16歳以上でも結婚できるが、親の同意がなければ結婚できない。
これを「$tosi」「$seibetu」「$doui」を使って実現させるには皆さんどう書きますか?

0892nobodyさん2005/07/07(木) 16:54:13ID:???
状況次第なので書く順番もコツも100点の答えはないと思う。
個人的には工夫して短く書くよりも条件が理解しやすいように書く(書きたい)けど。
例題だと漏れならこんな感じで書くかな。実際には関数化するだろうけど。

$ok = false;

if ($tosi >= 20) {
 $ok = true;

} else {
 if ($seibetu == '男' && $tosi >= 18 && $doui == true)
  $ok = true;

 if ($seibetu == '女' && $tosi >= 16 && $doui == true)
  $ok = true;
}

echo $ok ? '結婚OK' : '結婚NG';
0893nobodyさん2005/07/07(木) 16:56:27ID:???
if ($tosi > 20 || ($tosi >= ($seibetu == OTOKO ? 18 : 16) && $doui))
{
  ケコーン
}
0894nobodyさん2005/07/07(木) 16:58:46ID:???
2005-07-06 22:43:41をUNIXタイムスタンプになおすのってどーやんの?
0895nobodyさん2005/07/07(木) 17:02:51ID:???
>>894
マニュアルぐらい嫁
strtotime('2005-07-06 22:43:41');

0896nobodyさん2005/07/07(木) 17:03:31ID:???
アリガトン
08978912005/07/07(木) 19:12:36ID:???
お返事ありがとうございます。遅レススッマセン
>>892
短っ、と思ったら
>>893
!!
マジデスカ・・・もっと勉強します。
0898nobodyさん2005/07/07(木) 20:27:14ID:???
case文で比較演算子って使えないの?
case "hoge" || "fuga" :
とか
0899nobodyさん2005/07/07(木) 21:10:42ID:???
やってみればいいじゃん
0900nobodyさん2005/07/07(木) 21:20:36ID:???
>>898の書き方では使えなかったので、使えるの?じゃなく使えないの?って
聞いてみたんだけどね。
0901nobodyさん2005/07/07(木) 21:45:51ID:???
自己解決、これでいけた

case "hoge":
case "fuga":
  なんか処理
break;

つーか普通に式が使えるみたい
http://www.php.net/manual/ja/control-structures.switch.php
お恥ずかしい、吊ってきま
0902nobodyさん2005/07/08(金) 01:16:27ID:???
>つーか普通に式が使えるみたい
???
0903nobodyさん2005/07/08(金) 02:39:12ID:???
間違っていないと思うぞ
0904nobodyさん2005/07/08(金) 05:51:56ID:???
>>883
>>888(切り番オメ)
その手があったか!

ありがとうございます。
賢くなりました。
0905nobodyさん2005/07/08(金) 10:11:17ID:???
三項演算子って個人的に見にくいから嫌いなんだよね
0906nobodyさん2005/07/08(金) 11:17:14ID:Kz6PELZi
mb_convert_caseで全角記号<=>半角記号のみ変換できませんか?
0907nobodyさん2005/07/08(金) 11:39:33ID:???
>>906
全角-半角の変換は
mb_convert_kana
だが記号のみの変換は出来ない
mb_ereg_replaceで変換したらどう
0908nobodyさん2005/07/08(金) 12:09:46ID:???
コピペしたらcaseとkana間違いました・・・
mb_ereg_replaceで頑張ってみます
レス数が900を超えています。1000を超えると表示できなくなるよ。