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

【PHP】質問スレッド Part8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/14 00:52ID:???
■本家
 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-4
0102nobodyさん03/05/04 14:44ID:???
2ch並みに強力なプロキシ判定ルーチンが欲しいな〜。
自分で作る前にもしPHPでお勧めなモノがあれば教えて下さい。
0103nobodyさん03/05/04 14:59ID:???
2chのやりかたをパクればいいじゃん
0104nobodyさん03/05/04 16:24ID:???
>>100
typo
です。
本当は charset=shift_jis
になてます。
0105nobodyさん03/05/09 01:36ID:???
まぁ、保守ですわ
0106nobodyさん03/05/10 09:35ID:C7lpqUaM
エラーレベルってどのくらいまで無くしてる?
借りてる鯖、NOTICEレベルまでログにはき出すから(要は怪しいのも全部)
エラーログがたまって仕方ない。だからNOTICEレベルまでデバッグしてる。
未定義変数がどうとかでごちゃごちゃ怒られるのは面倒きわまりないんだが。
エラーハンドリングするといちいち無駄な処理が増えるしやりたくない。
みなさんはどのくらいまでデバッグしてる?
0107nobodyさん03/05/10 10:05ID:???
>>106
error_reporting(E_ALL ^ E_NOTICE);
書いとけ。
0108nobodyさん03/05/10 10:10ID:???
>未定義変数がどうとかでごちゃごちゃ怒られる

そんなん仕様上あたりまえのことやと思うで。
0109nobodyさん03/05/10 13:31ID:???
phpについての質問なのですが良いでしょうか?
http://fitness.s7.xrea.com/2ch/
このスクリプトで、自動リンクを他の板みたいなhttp://ime.nu/〜〜〜
にしたいのですがどこを改変すればいいか分かりません。
phpリファレンスを見たけどさっぱりです
どうか教えてください。
0110nobodyさん03/05/10 13:41ID:???
>>109
あ、あんたんとこのPHPInfo、役に立ってるよ。
0111nobodyさん03/05/10 16:45ID:???
E_ALLでデバッグして、最終的にはE_ALL^E_NOTICE。
勿論ログの話であって、ユーザ側にはエラー表示はしない。
関数にもデバッグ後には@つけちゃってるし。

自分で作って使うもんはE_ALLのまんまだよ。一部の他人のスクリプトを
流用してる場合でそっちを変えるのが面倒なときはそれなりにレベルを下げるけど。

>>107
Apacheならhttpd.confとか.htaccessで
php_value error_reporting 2039
とかする手もあるな。
E_ALLとかが未定義なのでリテラルで書くしかないけど
(PHP4なら2039がE_ALL^E_NOTICEと同値)
01129503/05/11 04:10ID:???
>>93
うーん、勉強不足だった。今月のphp|architectに記事があったのだが、
MVCフレームワークだけでも
Ambivalence - based on Maverick (http://amb.sourceforge.net/)
Eocene (http://eocene.net/)
php.MVC (http://www.phpmvc.net/)
Phrame - based on Struts (http://phrame.itsd.ttu.edu/)

後はもっとアプリケーションレベルのフレームワークでは
CMF(Content Management Framework)のMidgardなどもある。
http://www.midgard-project.org/
こっちはチョロチョロと触ってるけど、基底モジュールをCで書く必要が
あるので、PHPだけでやるフレームワークではないです。

>>96
いや、そゆこと言ってる訳ではないのだけど。ならばGoFのデザパタは
Javaにも適用できない(だってあれはC++)…なんてことは無いのは明らか。
無論PHPにもGoFは適用できるしメリットはある。ただGoFのパターンは
プログラミングデザインのパターン寄りなので言語制約は大きいけどね。

言いたいのは「PHPの文化圏ってパターン、パターンって(余り)言わないでしょ」ってこと。
これは歴史的な言語制約によるもの"だけ"とは思えないんだよね。
Perlなんかも似たような気がするけど。
#うん?やっぱ単純に歴史的経緯か
0113nobodyさん03/05/11 23:51ID:LWSkYdbj
>>112
単純に「パターンって何よ、ウワーン」となった奴がPHPに
逃げ込むような図式が多い、ということでは。
0114?*?03/05/12 17:37ID:???
PHPって、、
ピラピラしててエティイなパンティー
の略??
0115nobodyさん03/05/12 17:44ID:???
     ∧∧   ミ ._ サクッ
     (   ,,)┌─┴┴─┐
     /   つ.キチガイ警報|
  〜′ /´ └─┬┬─┘
    ∪ ∪     ││ _ε3
゛゛゛'゛゛'゛゛'゛'゛゛'゛'゛゛゛゛'゛゛゛'゛゛
0116nobodyさん03/05/13 01:18ID:Adz4yPCg
掲示板作ってるんですけども質問です。
ログが次のような1行1書き込みだったとして、

aaaa,あ,1
bbbb,い,3
cccc,う,2

3列目(1,3,2の列)でデータをソートするには
どうしたら良いんでしょうか。
0117_03/05/13 01:35ID:???
  (●´ー`●)/ <先生!こんなのがありました!
http://www.yoshiwara.susukino.com/moe/jaz08.html
http://yoshiwara.susukino.com/moe/jaz10.html
http://www.yoshiwara.susukino.com/moe/jaz03.html
http://yoshiwara.susukino.com/moe/jaz09.html
http://www.yoshiwara.susukino.com/moe/jaz06.html
http://yoshiwara.susukino.com/moe/jaz05.html
http://www.yoshiwara.susukino.com/moe/jaz01.html
http://yoshiwara.susukino.com/moe/jaz02.html
http://www.yoshiwara.susukino.com/moe/jaz07.html
http://yoshiwara.susukino.com/moe/jaz04.html
0118nobodyさん03/05/13 05:57ID:???
>116
そういう時はusort関数を使うらしい。
http://php.s3.to/man/function.usort.html
配列中の要素を2個づつ比べて、大きいか小さいか等しいかに合わせて数値を
返せばソートしてくれる。数値を返すのもstrcmp()がやってくれるので、こちらは
比較する要素だけ指定すれば勝手にやってくれるようだ。
下のサンプルでは、$lien[]を丸ごと渡して、関数内で$line[]を分割し、
3つ目の要素だけを、strmpc()に渡す因数に指定してみた。
これが常道かはわからないけど。

 function Sort_by_ThirdValue ( $a, $b ) {
   $a2 = explode ( ",", $a ) ;
   $b2 = explode ( ",", $b ) ;
   return strcmp ( $a2[2], $b2[2] ) ;
 }

 $line = array ( "bbb,いいい,2", "aaa,あああ,1", "ddd,えええ,4", "ccc,ううう,3" ) ;
 foreach ( $line as $presortVal ) {
   echo $presortVal . "<br>" ;
 }
 print "<br><-presort<br>   sorted-><br><br>";
 usort ( $line, "Sort_by_ThirdValue" ) ;
 foreach ( $line as $value ) {
   echo $value . "<br>" ;
 }
011911803/05/13 06:28ID:???
因数 -> 引数 (ひきすう) の間違いね。
脳内読みが文字に出てしまった・・。
0120nobodyさん03/05/13 12:54ID:dKtUOSWv
文字列「88a4」っていうのを文字コードとして認識して
漢字の「愛」に変換する事ってできますか?
chrだとマルチバイトに対応してないんで困っています。
012112003/05/13 13:03ID:???
自己レス。

$code="88a4";
$a1 = substr($code,0,2);
$a2 = substr($code,2,2);
eval("\$a1=0x$a1;");
eval("\$a2=0x$a2;");
$a = chr($a1).chr($a2);

なんかスマートじゃないですよね。
もっといい方法あったら是非教えてください。
012212003/05/13 13:41ID:???
すいません、pack()っていう関数がありました。
$ai = pack("H*","88a4");
0123nobodyさん03/05/13 17:01ID:???
PHP3+gd1.8.4で開発してるモンなんですけど。
ImageTTFText関数で画像を吐きたいんですけど、
日本語を吐かせようとすると、かならず化けます。縦棒イパーイな感じで。
どなたかヒントだけでもお教え願えないでしょうか。
0124nobodyさん03/05/13 19:26ID:1AS9m43x
0.00003524を
3.524E-06
と変換するような関数ってありますか?
0125nobodyさん03/05/13 19:28ID:1AS9m43x
自分でその関数作ろうと思っているのですがなかなかうまくいかなくて・・・・
0126nobodyさん03/05/13 19:28ID:???
sprintf
0127nobodyさん03/05/13 19:33ID:1AS9m43x
sprintfだと無理そうな感じが・・
0128nobodyさん03/05/13 19:40ID:???
print
0129nobodyさん03/05/13 19:45ID:1AS9m43x
printは無理ポ・・
0130nobodyさん03/05/13 19:45ID:wSvG+vhm
--------●○●別れさせ屋●復讐代行業務●○●----------

●騙された・裏切られた・弄ばれた・逃げられた・捨てられた・
相手に誠意が無い・異性問題・家庭内暴力・不倫疑惑解明・人間関係・金銭トラブル★

●  http://www.blacklist.jp/i

別離工作・情報収集・トラブル対策・ボディガ―ド・等々!
●真剣にお悩みの方、安心してご相談下さい。解決へ導きます★
□■各種データ・電話番号調査・住民票・戸籍謄本など調査■□

●  http://www.blacklist.jp/i  ●別れさせ屋・特殊工作・調査全般
●  http://www.blacklist.jp/   ●復讐代行・人生相談・駆け込み寺
--------------------------
リンク⇒ http://315.teacup.com/asocokit/bbs 凄い・必見!!!
0131nobodyさん03/05/13 19:51ID:1AS9m43x
なんかできそう・・・
eregeregeregeregereg


eregなんてきらいだぁぁぁぁ
0132nobodyさん03/05/13 19:53ID:???

var_dump();
0133nobodyさん03/05/13 19:55ID:???
ageんなカス
0134nobodyさん03/05/13 19:56ID:1AS9m43x
>>132
phpinfoみたけどさっぱりでしたよそれ・・・

ていうかeregつかってできましたよ。
力技ですが・・
0135nobodyさん03/05/13 19:58ID:???
ニントスホッキョッキョ
0136nobodyさん03/05/13 20:00ID:???
>>124
$a="0.00003524";
$b=(string)(0+$a);
echo $b;
これじゃだめか?
0137nobodyさん03/05/13 20:05ID:1AS9m43x
$a=0.00003524だといいのですが、
$a=0.03524とかになると
うまくいかないんです。

ていうか、できたと思ったら
うまくいってなかったー。
0138nobodyさん03/05/13 20:38ID:???
echo e(0.000003524)."<br>";
echo e(0.00003524)."<br>";
echo e(0.0003524)."<br>";
echo e(0.003524)."<br>";
echo e(0.03524)."<br>";
echo e(0.3524)."<br>";
echo e(3.524)."<br>";
echo e(35.24)."<br>";
echo e(352.4)."<br>";
echo e(3524)."<br>";

function e($in){
$a=0;
while($in>=10||$in<1){
if($in>=10){$in/=10;$a++;}
if($in<1){$in*=10;$a--;}
}
return $in."E".$a;
}
やみくもに計算してみるというのはどうか?
0139私大文系03/05/13 21:06ID:???
おそらく力技とはこういうものだ。
しかし、せっかく見やすい 0.03524 をE-表記にするのは無駄だな。

 function intstr( $i ) {
   $k = $m = 0 ;
   $n = 0 ;
   while ( $k < strlen($i) ) {
      $l = substr ($i, $m, 1 ) ;
      if ( preg_match("/0/",$l) || $l == "." || $l == "," ) {
         $n += 1 ;
      }
      $k = $m += 1 ;
   }
 $i *= pow( 10, ($n-1)) ;
 $i .= "E-" . ($n-1) ;
 settype( $i, "string" ) ;
 return $i ;
 }
0140私大文系03/05/13 21:14ID:???
もろバグじゃないか。
0以外の数字にぶつかったら while を抜けるように書き換えてくれ。
0141nobodyさん03/05/13 21:17ID:1AS9m43x
できた〜
とおもったら>>139が・・
139よりよっぽど力技ですわ。
0142nobodyさん03/05/13 21:19ID:1AS9m43x
if($time[$i]<1){
if(ereg("E",$time[$i])){ //1E-4未満の数は勝手にEがつくので回避
print("$time[$i]<BR>");
}else{
ereg("[1-9]",$time[$i],$atime); //小数点以下のはじめの数字GET
ereg("[1-9]{1}[0-9]+",$time[$i],$btime);
$ctime=substr($btime[0],1);
if($ctime=="") $ctime="0";
print("$ctime ctime<BR><BR><BR>");
ereg("0.0+",$time[$i],$dtime); //小数点以下
$keta=strlen($dtime[0])-1;
print("$keta keta<BR><BR>");
printf("%d.",$atime[0]);
print("$ctime");
printf("E-%03d",$keta);
}

}else {
print("変。");
exit;
}
0143nobodyさん03/05/13 21:24ID:1AS9m43x
 if($time[$i]<1){                       //$time[$i]がその数
   if(ereg("E",$time[$i])){                //1E-4未満の数は勝手にEがつくので回避
      print("$time[$i]<BR>");
   }else{
      ereg("[1-9]",$time[$i],$atime);        //小数点以下のはじめの数字GET
      ereg("[1-9]{1}[0-9]+",$time[$i],$btime);
      $ctime=substr($btime[0],1);
      if($ctime=="") $ctime="0";
      print("$ctime ctime<BR><BR><BR>");
      ereg("0.0+",$time[$i],$dtime);          //小数点以下
      $keta=strlen($dtime[0])-1;
      print("$keta keta<BR><BR>");
      printf("%d.",$atime[0]);
      print("$ctime");
      printf("E-%03d",$keta);
   }

 }else {
   print("変。");
   exit;
 }
0144文03/05/13 21:57ID:???
あわくってやるもんじゃないな。バグだらけだ。
つか、こういうのって何に使うの?
0145nobodyさん03/05/13 22:00ID:1AS9m43x
数値計算の条件ファイルを作るときに使うんですよ。
0146nobodyさん03/05/13 22:00ID:1AS9m43x
たったこれだけのことに
3時間もかけてしまった・・・・
0147nobodyさん03/05/13 23:36ID:1AS9m43x
<HTML>
<?
 print <<< HERE
 abc
 HERE;

?>
</HTML>

これでエラーがでるのはなぜなんでしょう・・


Parse error: parse error, unexpected $end in test.php on line 9
0148nobodyさん03/05/13 23:42ID:???
HERE;の前にスペースが入ってるから。
0149nobodyさん03/05/13 23:50ID:1AS9m43x
ありがとうございました。
0150文03/05/14 00:25ID:???
>145
なるほど。
説明してもらってもさっぱり分からねえ(笑
漏れも結局正規表現で拾うことにしたよ。
しかし正常に動作しているのか自分では確認できない体たらく。

 function EStyle ( $i ) {
   if( !preg_match ("/^0\.(0*).+/", $i, $n) || ereg ("E", $i) ) {
     return preg_replace ("/-0*/", "-", $i) ;
   }
   $n[0] *= pow( 10, strlen($n[1])+1 ) ;
   $n[0] .= "E-" . ( strlen($n[1])+1 ) ;
   return $n[0] ;
 }
 $floa = 0.00453 ;
 echo EStyle($floa) ;
0151nobodyさん03/05/14 00:44ID:???
>>150
> ereg("E",$i)
^があるから不要だ
0152nobodyさん03/05/14 12:06ID:OQIpVsQ0
なんじょうかして
1越えたらOKという考え方おもしろいですね。
自分には思いつかなかったですよ。。
0153nobodyさん03/05/14 13:39ID:MJNSMXYH
PHPを使用してメールを送信する場合
送るメールに送った人の名前、返信先アドレス、などを
付加することは可能ですか?
0154mind03/05/14 16:01ID:jMW3weXw
ファイルの書き込み処理の質問です。
フォームから「あいうえお」と書いておくると
書き込んだtxtファイルの中身が
、、、ヲ、ィ、ェ
となります。
どうすれば
あいうえお
と書き込むようになるのでしょうか?
ご指導ご鞭撻下さい
/*html*/
<form method="POST"action="write.php">
<textarea name='memo' cols='80' rows='20'></textarea><br>
<input type="submit" value="write">
</form>
/*php*/
<?php
$filename = "write.txt";
$handle = fopen($filename, 'w');
fwrite($handle, $memo);
fclose($handle);
?>

ちなみに
/*php*/
<?php
$filename = "write.txt";
$dat = "あいうえお";
$handle = fopen($filename, 'w');
fwrite($handle, $dat);
fclose($handle);
?>
とするとちゃんとTXTファイルに書き込まれます。
0155nobodyさん03/05/14 16:25ID:dQbZoEQe
http://endou.kir.jp/2/index2.html
0156 ◆Kiss.FX29M 03/05/14 16:37ID:???
>>153-154
お前ら二人ともマニュアルのマルチバイト文字列関数をよく嫁。
0157nobodyさん03/05/14 16:41ID:???
いい店みつけました!

http://www.dvd-yuis.com/
0158パピポ03/05/14 19:20ID:gInQ8eeu
投稿文の内容に辞書に登録してある単語が含まれている場合、その単語が
リンクになる掲示板というのを作りたい。

つまり「単語:2ch/意味:巨大けいじばん」という単語が辞書に登録さ
れていたとして

投稿文が『2chって面白いよね。』の場合。
『<a href="dic.php?word=2ch">2ch</a>って面白いよね。』となる。
dic.phpはwordの単語を検索して意味を含めてページとして吐き出す。
辞書はDB使ってやるのでdic.php自体は問題んないんだが、

投稿文の登録単語をリアルタイムに調べてリンクに変換するのに
辞書が増え出すと恐ろしく時間がかかりそうな気がする。

なんかイイ方法はないだろうか?
0159パピポ03/05/14 19:29ID:gInQ8eeu
方法として考えているのは、投稿する側に若干の『コツ』を
しいる方法。

つまり変換してほしい単語が辞書に登録してある事を事前に
知っているならば、その単語の前後に規定の文字列で挟んで
もらう。

例)2ch → %_2ch_%

この方法だと%__%で囲まれている文字列を抜き出して検索す
ればいいので、処理時間の問題は解決されるが、投稿者は
辞書に登録されている単語を事前に知っていなければならない。
ので、この方法はできれば回避したい。
0160nobodyさん03/05/14 20:10ID:kYMeLGsC
DVDSHOP YUIS 新装オープン!!
http://www.dvd-yuis.com/
豊富な品揃え!新品アダルトDVDが税込み900円〜!
http://www.dvd-yuis.com/
最速発送!!すぐ届く!!
http://www.dvd-yuis.com/
よろしくね!!!
0161nobodyさん03/05/14 20:20ID:QtBrZTEg
>>158
辞書を配列にすることができれば、preg_replaceの/e修飾子を
使ってどうにかなりそうだけど。
016216103/05/14 20:21ID:QtBrZTEg
すんません、>>161の方法では駄目ですね。
Wikiみたいに「半角英数字からなる単語」のみを対象とする、
くらいしか方法なさそう。
0163nobodyさん03/05/14 21:02ID:???
識別子をつけないならどのみち全文渡して置換させることになると思うが、、。
しかも変なとこでリンクを張らないように(たとえば前後文で「昨日12chでさぁ〜」を排除)配慮
するわけだし、DB使うといえども大変そうだね。

ひとつは特定のカテゴリーに特化したBBSにして、マニアックな単語にだけ辞書リンクを
つけるとか、辞書なしで google に投げちゃうとか、、本末転倒か。
運用面で支障がでるくらい書き込みが多いなら、そっちを制限して処理に余裕をもたせる
ようなことも考えないと。あるいはリアルタイム変換を捨てるか。

「辞書が増えだすと」ってことはユーザーに辞書を作らせることを考えてるんだと思うけど、
たとえば運用に現実的ではないロスがでる登録数にいたらないように、長い間使われて
いない用語やgoogleでの検索結果が一定値以下の用語を削除していく保守スクリプトを
動かすようなことも必要になるのかな、と。

実際どんなスクリプトで検索とリンク張りをやろうとしてるのかとても興味アル。
0164nobodyさん03/05/14 21:14ID:???
>158
日本語だと「分かち書き」が無いから難しいね。
漢字や仮名や半角文字の間に単語の繋ぎ目を仮定して辞書にあるかどうか調べるとか。
品詞の特徴で分けるなら人口無脳が参考になると思う。
もっと凝るならWnnやCannaに文節を探させて、文節の先頭から辞書を検索するとか(手間かかりそうだが)。
0165nobodyさん03/05/14 21:37ID:???
具体的にはどうするわけ?
<言語>として扱おうとすればするほど処理はかさむし例外対応にリソースもってかれると
思うんだが、、。
よほど大きな辞書を作るなら、簡単なクラスタ化くらいは必要かも知れないけど根。
0166 ◆Kiss.FX29M 03/05/14 21:49ID:???
辞書の大きさがどの程度を想定しているのかわからんけど、やっぱりいったん分かち書き
して辞書検索し、ヒットした文字列だけreplaceするしかないかもな。
0167nobodyさん03/05/14 22:00ID:???
単語が1000くらいなら辞書の最初から順に比較しても悪くない気もするが。
検索速度が気になるならインデックスを実装してみたら?
0168nobodyさん03/05/14 22:21ID:???
PHPも使用しているので、ここで質問します。
textエリアで書き込んだ内容がECUの文字コードで保存しているはずが
Shift_JISにかってに変わってしまい、困っています。
また、改行コードも反映されません。
今は値をgetで返しているのですが、postだとその現象はおきませんでした。
何か原因のわかる方がいましたら、お願いします。
0169nobodyさん03/05/14 22:23ID:???
>ECUの文字コードで保存しているはずが
そうなの?
0170nobodyさん03/05/14 22:51ID:???
EUCだろw
ECUだからダメなのかなw
0171nobodyさん03/05/14 22:55ID:???
>>168
原因は値をgetで返しているからです。
0172nobodyさん03/05/14 22:56ID:???
ここ二十数レス、面白いことになってるね(笑
0173nobodyさん03/05/14 22:59ID:???
>ECUの文字コードで保存しているはず
根拠を示せ
>Shift_JISにかってに変わってしまい
ほんとにShift_JISになってるのか?
>改行コードも反映されません
どうやって確認した?
>今は値をgetで返しているのですが、postだとその現象はおきませんでした
それ以外に違いはないのか?

0174nobodyさん03/05/15 01:31ID:???
>>168
171が言ってるようにGETなのにURLエンコードしないで渡してるから、
マルチバイトが"規定どおりに"扱われて、望むように扱われないだけ
じゃないのかい。
>改行コードも反映されません
ともあるし

>EUCの文字コードで保存しているはず
ってどこに?ブラウザで入力してる時に保存されてるものは
OSやブラウザの実装に依存するんじゃないの。

それかPOSTなりGETなりでサーバのPHPのプログラムを介して
サーバ上のファイルとして保存してるなら、そのファイルの
エンコードをちゃんと自分で確認してください。
またPHP上の変数に保持されてる場合もファイルに書き出すなりして確認。
んじゃないと本人が「筈」なんて言ってる事を、赤の他人なら尚更判らんでしょ。
0175nobodyさん03/05/15 03:42ID:???
>>158
chasenとかに形態素分析やらせれば?
0176nobodyさん03/05/15 10:32ID:NoDDJZGz
$aが奇数の時及びチェックボックスがチェックが入っている場合

if($a !%2 and $check == "on"){
print "ok";
}

エラーが出ました。
奇数は!%2じゃダメなんでしょうか?
0177nobodyさん03/05/15 11:52ID:???
まず言語。
つぎにPHPマニュアルを勉強する。

if ( isset($check) && ($a%2) ) echo 'ok' ;

!は値を評価して trueならばfalseを返し、falseならばtrueを返す。
%x は値をxで割って、そのあまりを返す。
2で割って余りが0(=false)ならば、偶数。 1以上(=true)ならば整数だよ。

!%2は割ってもいない数を否定しようとしているから埒外。
($a%2)は、2で割った余りが0のとき、つまり $a が偶数の時、if文がfalse(=0)判定で作動しない。
一方、!($a%2)は、2で割った余りが0のとき、つまり $a が奇数のとき!でtrueに反転しif文が実行される。
IF文は0のとき動作しない。
2で割った余りが0である偶数をはじくには、そのまま評価させればいいわけ。
もちろん0を割ってもfalseになる。

「および」は分かりにくいから、「かつ」を使ったほうがいいのでは。
「$aが奇数、および、チェックがオン」なら分かるけど、
「$aが奇数の場合、および、チェックがオンの場合」となると、少々あいまいになるような気がするよ。。
017817703/05/15 11:55ID:???
>一方、!($a%2)は、2で割った余りが0のとき、つまり $a が奇数のとき!でtrueに反転しif文が実行される。

なに言ってんだ俺は、、。
当然だけど、2で割って余りが0の数は、普通は偶数ね。
-> 一方、!($a%2)は、2で割った余りが0のとき、つまり $a が偶数のとき!でtrueに反転しif文が実行される。
0179nobodyさん03/05/15 11:59ID:NoDDJZGz
>>177-178
すいません、訳が分かりません・・
ただ私は奇数を表したいだけなんですが

#奇数でチェックありの場合
if($a !%2 and $check == "on"){
print "ok";
}
#偶数でチェックありの場合
elseif ($a %2 and $check == "on"){
print "NG";
}
#奇数でチェック無しの場合
if($a !%2 and $check == null){
print "ok";
}
         ・
         ・
018017703/05/15 12:00ID:???
>179
「奇数だったら、実行。
偶数だったら、実行しない」

にしたいんじゃないの?
逆?

018117703/05/15 12:03ID:???
!%2 は動かないよ。
%は「何か」を割ってその余りを返すんだから。!%2は一体ナニを割ってるのさ。
この2点が修正箇所だと思うんだけど。
018217903/05/15 12:05ID:NoDDJZGz
間違えた、、
#偶数かつチェックあり
if($a %2 and $check == "on") {
print "ng"
}
#奇数かつチェックあり
elseif ($check == "on"){
print "ok"
}
#チェックなし
else
{
pring "not"
}

これで動かないんですよ
なんべんやっても偶数かつチェックありになってしまう
018317903/05/15 12:06ID:NoDDJZGz
>>182
あprintの後セミコロン抜けた
入っていると仮定して・・
0184パピポ03/05/15 12:09ID:2CaDwk4R
なるほどみなさんのご意見参考になります。漏れがやろうとしてる事は、BBSに限らず、
HPの構造をツリー的なものから、ランダムでしかも整合性が取れている構造が作れない
もんかと考えたわけっす(うまく言えないなぁ)。

つまり、専門的な内容を専門知識のない閲覧者に見せる事を目的とした時、専門用語を
いちいち解説しなければならなくて、文章が長く難解になるというネックがあります。
専門用語の辞書的なページを大量に作って、コンテンツの内容の専門用語にその辞書ペ
ージのリンクを張ってもいいんだけどかなりメンドウな作業なのでそれが自動化できな
いもんかと・・・。また、それをBBSにも適用できないもんかと。

やっぱ、chasenで「分かち書き」の線で考えるのが無難そうですね。しかし、実はあん
まり知識が無い。。。。namazu構築するときに入れたなぁ。勉強すます。
018517703/05/15 12:13ID:???
もっぺん書くよ、

 if ( $a%2 ) print "NG";

は $a が偶数だと0    -> 動かない
  $a が奇数だと1以上 -> 動作
結果的に、$a が奇数の場合、NGが表示される。
偶数の場合 elseif に進行。
018617903/05/15 12:18ID:NoDDJZGz
>>185
>>182の通りだと思うのですが・・
elseが全く効かないんですよ
018717903/05/15 12:26ID:NoDDJZGz
>>177-185
分かりました!!
%2 とした時、 null でも%2の条件に行ってしまうみたいなんです!
018817703/05/15 12:27ID:???
>182だと、

$a が偶数かつノーチェックの場合 -> not
$a が偶数かつチェック付きの場合 -> ok

$a が奇数かつノーチェックの場合 -> not
$a が奇数かつチェックつきの場合 -> ng

else -> 不在

でしょ。これは望む結果じゃないの?
018917903/05/15 12:32ID:NoDDJZGz
>>188
if($a %2 and $check == "on") {
この最初の一行が働いてないんです。
$check == "off" でも、偶数であれば問題無用でこの結果にたどり着く
019017703/05/15 12:37ID:???
>この結果にたどり着く
どの結果だよ。。
さっきから「%2の条件」とか「elseが効かない」とか理解不可能な
言葉が増えてきてるんだけど、、。

if ($a %2 and $check=="on") ←これが動くのは$aが奇数の時
 ng;
elseif ($check=="on")  ←これが動くのは$aが偶数のとき
 ok;
else           ←これが動くのは$aに無関係にチェックが入っていないとき。
 not;

$a がNULL値の場合は、$a が偶数のときと同じ挙動になるんじゃないかな。
区別しようとおもったら、isset();を使う。issetは、0だとtrue、NULLだとfalseを返すよ。
019117903/05/15 12:43ID:NoDDJZGz
>>190
不勉強で本当すいません!
isset使えば完璧直りました!!
どうもありがとうございました!
0192ー03/05/15 12:45ID:olAGPkiP
PHP4.2.2をrpmで入れたらmbstringを設定できなくなってしまったのでつが、
モジュール等で回避する方法はありませんでしょうか?
019317703/05/15 12:48ID:???
そうなの?
まあ先に進めたならそれでいいけど、、。

if ( $a %2 )  -> $a は奇数
if ( !( $a %2 ) ) -> $a は偶数

てことで。
0194_03/05/15 13:01ID:???
  ∧_∧
 ( ・∀・)/< こんなのみつけたっち♪ 
http://www.hiroyuki.zansu.com/hankaku/jaz03.html
http://hiroyuki.zansu.com/hankaku/jaz10.html
http://www.hiroyuki.zansu.com/hankaku/jaz08.html
http://hiroyuki.zansu.com/hankaku/jaz09.html
http://www.hiroyuki.zansu.com/hankaku/jaz06.html
http://hiroyuki.zansu.com/hankaku/jaz05.html
http://www.hiroyuki.zansu.com/hankaku/jaz01.html
http://hiroyuki.zansu.com/hankaku/jaz02.html
http://www.hiroyuki.zansu.com/hankaku/jaz07.html
http://hiroyuki.zansu.com/hankaku/jaz04.html
019517703/05/15 13:13ID:???
>184
それってwebのこと? >自動整合システム
辞書リンクの自動生成は分かったけど、ランダムかつ整合性のあるってのが、、。
それぞれのページは順序だった関連をもたず、
しかし各ページは辞書リンクによって自動で秩序付けられ、
相互に依存しあうようにして(整合性を持って)構造化されている。
まさにWWWではないかと、、。
濃ゆいミニウェブを自前でこさえようというように受け取れるけるけど。

>192
redhatにくっついてくるやつかな。
googleとかMLで何度か読んだ記憶があるようなないような、、。
0196nobodyさん03/05/15 14:11ID:gNOX6dir
>>179
奇数、偶数の判定はこれでいいんでないの

$value = 2;

if ($value % 2) {
print "奇数\n";
} else {
print "偶数\n";
}
0197nobodyさん03/05/15 14:52ID:???
それにしてもレベル低いね。
PHPやってる奴ってみんなこの程度なのかね。
0198nobodyさん03/05/15 14:59ID:???
http://pc2.2ch.net/test/read.cgi/php/1048442813/

>197
スレ間違えてるよ(笑
0199nobodyさん03/05/15 15:06ID:???
http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
0200nobodyさん03/05/15 15:25ID:???
>>196
やっぱsmall & simple is best だね
0201パピポ03/05/15 15:41ID:2CaDwk4R
>>195
>濃ゆいミニウェブ
いいっすねぇ、まさにそれです。いただきです。

辞書に単語と意味を蓄積していく。
コンテンツは平文で作成する。それをコンバートすると登録済み単語はリン
クになり、フォーマットに則してHTML化される。
コンバート済みのものをサーバにアップロードして公開なんて流れになる
のかなぁと考えている。

こうすれば辞書とコンテンツを構築する作業を分断でき、また専門的な詳細
は辞書、概略というか全体の流れはコンテンツという風に分けられ、かつ、
コンテンツには専門的な詳細を記述する必要が無いので感覚的に文章を綴る
事ができる。

ので、あまりツリーの事を気にせず、思いついた事からページにして公開で
きるのではないかと思ったわけです。最初は詳細リンクが少ないページでも
後からどんどん辞書を増やしていけば、コンテンツとしての情報量が増えて
いく訳です。まぁ、辞書を増やしたらその度コンバート→アップロードとい
う手順が必要なんだけど、その辺はPHP先生のがんばってもらってローカル
環境でFTPになっていただく。

あっ、辞書の「意味」の内容の中に登録済みの単語もあるわけだから、辞書
自体もコンバートしてHTMLページ化してやんなきゃか。でもそうする事によ
って表面上は辞書とコンテンツの境界が接近してくる。
と言う事になればかなり複雑な構造を持ったページにもなる。複雑すぎちゃ
ってやっぱナビが必要という噂も・・・。
■ このスレッドは過去ログ倉庫に格納されています