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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん05/01/09 06:01:24ID:tJkdKk+e

お前の下らない質問に回答があるかも知れないスレッドです。
0802nobodyさん05/02/02 20:46:32ID:???
>>801
よく見て出直してこい
080380105/02/02 20:50:23ID:q6Il3s7y
あ、失礼こきました。
strrpos("あ い、う"," ")とやると6になるんです・・
0804nobodyさん05/02/02 20:53:38ID:???
http://www.php.net/manual/ja/ref.mbstring.php
080580105/02/02 21:41:19ID:q6Il3s7y
>>804 
ありがとうございます。

しかしエラーらしきところは・・・strposはちゃんと動作するんだけどなー
0806nobodyさん05/02/02 21:47:14ID:???
>>799
ttp://www.php.net/
0807nobodyさん05/02/02 21:59:18ID:???
ふと、Webプログラムをはじめようと思いました。
全く予備知識なく、何某さんのネット連載記事とか本とかを読んでいると、
JavaサーブレットとかJSPというものがとてもすばらしいっぽく書いてありました。
なるほどそうなのかと思って、サーブレットJSP関連の本を買い、色々勉強しました。
さて、じゃあそろそろ適当にレンサバでも借りてみようかと思いました。
……全然対応してるところがありませんでした。
どうしたらいいですか。しかもその何某さんは、別の連載では
Linux+JSPサーブレットとWin鯖+ASPを比べて、ASPのすばらしさを語っていました。
もう何言語を覚えればいいのか分かりません。
0808nobodyさん05/02/02 22:04:32ID:???
>>807
PHP言語のスレに来たことですし、PHP言語をやってみてはどうですか?
0809nobodyさん05/02/02 23:17:58ID:???
どの言語だって一長一短
適材適所で言語を選べって事だよ
ちなみにここはPHPスレ
0810nobodyさん05/02/03 08:39:22ID:???
>>807
Servlet/JSPをやるには、普通のレン鯖じゃダメだね。
使えるところも最近は増えてるけど、共有鯖のServletなんてつかえたものじゃない。

専用サーバ借りるか、自宅鯖にするしかないな。
ADSLで上り500Kbps程度あれば、普通の文字主体のサイトなら帯域に困ることも無い。
0811nobodyさん05/02/03 08:43:18ID:???
バーカ
0812nobodyさん05/02/03 08:48:10ID:???
808は馬鹿じゃないだろ。
0813nobodyさん05/02/03 09:31:42ID:???
>>807
apsはいいねぇ
phpも楽でいいよ〜
jspはしらねぇ〜けど、結構面倒そう。javaは設定が面倒だねぇ
0814nobodyさん05/02/03 10:32:11ID:???
PHP
   素人お手軽Webプログラミング入門

ASP全般
   ある程度の能力者・経験者用。
   全般的になんでもこなし、極めれば、Javaテクノロジと互角に渡り合えるが、
   WindowsServer専用化ってのが痛いところ。monoに期待する。

JSP/Servlet/EJB/JSF
   達人御用達。開発者の能力次第では、あらゆる面でWeb系最強なのは間違いなし。
   でも個人でプログラミングしていると、ここまでヤル必要あるのか?という疑問が常にあり、開発の妨げとなる。
0815nobodyさん05/02/03 10:48:59ID:???
>>814
思いっきり、業界の現状を理解していない、
うちの糞上司と同じ感覚だな(w

0816nobodyさん05/02/03 10:54:48ID:???
>>815
プッ
PHPしかできないド素人が業界人のフリしてこんな時間に書き込みですか??
実際の業界の現状というと、新規案件はJava系一色だよ。おれが業界にいた半年前まではね。
0817nobodyさん05/02/03 11:09:06ID:???
>>815>>816
>>809
0818nobodyさん05/02/03 11:56:45ID:???
俺が業界に居た頃は、業務も趣味もCGI/Perlが主流だったぜ。
0819nobodyさん05/02/03 12:10:20ID:???
余程、大規模なページでない限りは大差がない
0820nobodyさん05/02/03 12:15:09ID:???
>>819
保守という面では、大差ありすぎだろ。
0821nobodyさん05/02/03 13:00:13ID:???
>>820
そんなもんコード書くのスキルに大幅依存だろ
0822nobodyさん05/02/03 13:06:15ID:???
何業界?
0823nobodyさん05/02/03 13:47:37ID:???
>>821
処理と表示とコントロールロジックが分離できないPerl/CGIやPHPでは話にならない
こればっかりは、開発者のスキルが云々の問題じゃない。
0824nobodyさん05/02/03 13:58:55ID:???
>>823
PerlやPHPにもMVCフレームワークが存在するご時世なのに・・・
0825nobodyさん05/02/03 14:02:27ID:???
>>824
>PHP4ではあまりちゃんとしたカプセル化/隠蔽はできないので、ここでは変数名の重複が起こりにくくする程度の意味しかありません
0826nobodyさん05/02/03 14:04:14ID:???
>>823
ギガワロスw
素晴らしい意見ですね。
0827nobodyさん05/02/03 14:08:47ID:???
>>826
君自身の意見を聞かせてもらいたいですな。
MVCの本当の意味はなんなんでしょう?
0828nobodyさん05/02/03 14:12:06ID:???
>>807-825
PHPとASP、JAVAの違いより、おまえらスレ違いだ。

PHPがJSPより優れている点って何ですか。
http://pc5.2ch.net/test/read.cgi/php/1070466594/
CGI VS PHP VS JAVA
http://pc5.2ch.net/test/read.cgi/php/1006006800/
ASP VS PHP
http://pc5.2ch.net/test/read.cgi/php/1013945931/
0829nobodyさん05/02/03 14:27:38ID:???
まぁ単純に分離するだけなら、include使えばいいだけだしな。
0830nobodyさん05/02/03 16:44:03ID:1pYIWrdl
はじめまして。t.phpをEUCで書いていますSJISで出力したいのですが、
mb_http_output('SJIS');
と一行書けばスクリプト内の日本語部分もすべてSJISとなりも文字化けしないのですか?
サーバはLinux のredhatです
0831nobodyさん05/02/03 16:58:23ID:???
やればいいだろ
0832nobodyさん05/02/03 17:08:59ID:1pYIWrdl
>>831
はい出来ました。
ただこんなに簡単に変換できるものなのかなと思いまして。
sjisに変換する一般的なやり方などはあるのですか?
0833nobodyさん05/02/03 17:40:49ID:iLTZWlLI
$fp = fopen("test.html","w");
fputs($fp,$str);
fclose($fp);

ってやると、許可されてない権限とかエラーでて吐き出しが出来ないのだけど
普通は、ディレクトリを777にしておけば書き込みは出来ると思うのですが。
所有者もユーザレベルにしているし…。
PHPかApacheの設定でそんなんあったっけ?
0834nobodyさん05/02/03 18:09:44ID:???
>>833
test.html自体のパーミッションはいくつになっていますか?
0835nobodyさん05/02/03 18:16:02ID:???
>>833
PHPのセーフモードもしらべれ
0836nobodyさん05/02/03 18:40:57ID:???
お前ら優しいな
0837nobodyさん05/02/03 18:44:04ID:???
>>832
オマイでも簡単に使えるように作ってあるのさ
083883305/02/03 18:46:57ID:???
>>834
test.htmlは存在していません。ない場合は、自動作成されるはずなので。
test.htmlをためしに作って、666にして試してみましたがダメでした。

>>835
セーフモードはoffになっていました。

サーバを新しくたてたら、未知の壁にぶつかっていまつ orz
Core3にするんじゃなかった…。
0839nobodyさん05/02/03 18:48:56ID:???
>>838
じゃあ777は?
084083305/02/03 18:52:17ID:???
>>839
777もダメでした。

/var/www/html/test.html

なんですが、 /varから777とかにしてみたがダメだった。
もうこんなんで職業プログラマなんて恥ずかしすぎる。
0841nobodyさん05/02/03 18:55:50ID:???
test.htmlとそのスクリプトのphpファイル自体は同一のサーバにあるんですよね?
test.htmlとそのスクリプトのphpを同じディレクトリにおいて試すとか
0842nobodyさん05/02/03 19:12:16ID:???
てか、この馬鹿・・・エラー表示を書かないよな
0843nobodyさん05/02/03 19:27:52ID:???
おれはエスパーだからおk
084483305/02/03 19:46:13ID:???
>>841 >>842
Warning: fopen(/var/www/html/test.html): failed to open stream: Permission denied in /var/www/html/test.php on line 5
がエラーです。
test.htmlとPHPファイルは同階層においてあります。
0845nobodyさん05/02/03 20:08:05ID:???
むー、エラーのログは何か吐いてるかな?
084683305/02/03 20:12:52ID:???
エラーログも、ディスプレイログと全く同じで、それ以外は吐き出されていません。
もうこうなったら、ソースで入れ直してみます。せっかくパッケージ管理に移行しようと
したのに…orz
0847nobodyさん05/02/03 20:14:17ID:???
これはどうだろう
ttp://ns1.php.gr.jp/pipermail/php-users/2003-November/019486.html
環境Winでなkればスマソ
0848nobodyさん05/02/03 20:21:38ID:1pYIWrdl
$sex = ($_POST['sex']=='male')?'男':'女';
これはどういう意味なのでしょうか?
私は$_POST['sex']がmaleなら男、
違うなら女を$sexに返すと思っているのですが。
これは何かの省略した書き方なのですか?
0849nobodyさん05/02/03 20:23:04ID:???
>>833
php.iniのdoc_rootが正しく設定されているか確認。

で、system("whoami");とかやってみて、実行しているユーザーを正確に把握して、
きちんと整備し直してみる。

>>847
(Fedora)Core3だと言ってるが。
0850nobodyさん05/02/03 20:24:04ID:???
>>848
マニュアルにterniary条件文として載ってる
ぐぐる時は、「三項演算子」で
0851nobodyさん05/02/03 20:25:38ID:???
誤字: ternary
085284705/02/03 20:26:10ID:???
>>849
orz
0853nobodyさん05/02/03 20:30:39ID:???
>>850
なんと検索していいかわからなかったもので、どうもありがとうございました。
0854nobodyさん05/02/03 20:41:19ID:???
よくある三項演算子の使用例

$result =
($fp = fopen('foo.txt', 'ab')) ?
flock($fp, LOCK_EX) ?
ftruncate($fp, 0) ?
stream_set_write_buffer($fp, 0) ?
fwrite($fp, $string, strlen($string)) ?
flock($fp, LOCK_UN) ?
fclose($fp) ?
true : false : false : false : false : false : false : false;

if (!$result) print '何かエラー';

0855nobodyさん05/02/03 21:04:56ID:???
あとラジオボタンのon offとかね
0856nobodyさん05/02/03 21:10:37ID:???
>>854
みたことねぇぇぇえええええええええええええええええええええええええええええ
0857nobodyさん05/02/03 21:16:27ID:???
>>856
ようは一行でかけるif文でつよ
0858nobodyさん05/02/03 21:24:59ID:???
$fp = fopen('foo.txt', 'ab')

and flock($fp, LOCK_EX)
and ftruncate($fp, 0)
and stream_set_write_buffer($fp, 0)
and fwrite($fp, $string, strlen($string))
and flock($fp, LOCK_UN)
and fclose($fp)

or print '何かエラー';

これでいいじゃん
085985405/02/03 21:32:08ID:???
>>856
当然ですw
0860nobodyさん05/02/03 21:45:13ID:???
>>833
つまり、833はパーミッションを理解してないいって事で終わりだな
勉強し直すか窓に帰れ
0861nobodyさん05/02/03 21:55:02ID:???
>>833
なんかLinuxのパーミッションを理解していないとしか思えない
自分が何をやったかもわからずにディレクトリの権限とかも変更してそうだしね

うちもFC3を使ってるがphp.iniのdoc_rootの設定なし、セッションファイルを
tmpfsに置いている以外は弄ってないし、問題もない
0862nobodyさん05/02/04 00:28:02ID:???
PHPってさ、配列が空の場合にforeachで回すとwarrningが出るのな。
一回もループしないで抜ければいいじゃんとか思うが。
ホント屑言語だな。
0863nobodyさん05/02/04 00:33:10ID:???
そのPHPは別のだよ。スレ違い
0864nobodyさん05/02/04 01:59:06ID:???
>>862
空の配列ではなくて 配列でない変数に対して だけどな。
配列なら配列として宣言しろと。
0865nobodyさん05/02/04 10:12:03ID:???
>>864
それは正常な動作でエラーが出なくては困ると想うけどね
配列かどうかわからないならis_array()で判断してから放り込む
なりするしかないね
そもそもセットしていない変数を利用しているとかそういう事
ではないの?
0866nobodyさん05/02/04 10:40:07ID:???
釣れすぎwww
0867nobodyさん05/02/04 10:59:33ID:???
>>866
かわいそうな人だね
0868nobodyさん05/02/04 12:26:22ID:???
いたたまれないな
0869nobodyさん05/02/04 12:29:17ID:???
いくら他人を哀れんでもお前の地位は向上してませんから!m9(^Д^)プギャー
0870nobodyさん05/02/04 12:44:44ID:???
板玉れない
0871nobodyさん05/02/04 12:51:17ID:???
居た堪れない
0872nobodyさん05/02/04 16:43:09ID:RhhqzTFg
ヘッダやフッタ部分のHTMLをPHPの

requireで呼び出して使いまわそうと思い、このような記述をし、

$footer = "http://".$_SERVER['HTTP_HOST']."/footer.php";
require $footer;

実機のWinにApacheをいれてテストすると以下のようなエラーがでました。

Fatal error: Failed opening required 'http://localhost/footer.php' (include_path='.;c:\php4\pear') in *****.php on line 88

同じものをウェブにアップしてそちらのサーバで確認したところ、きちんとフッタが表示されました。

なのでApacheかphpの設定ファイルかなにか実行ファイルが足りないとか、そういうことだとは思うのですが
ググってもなかなか解決方法が見つからなかったのでこちらで質問させていただきました。

どうすればバーチャルホストのほうでも正常に表示されるのでしょうか?
0873nobodyさん05/02/04 16:49:55ID:???
ローカルにあるファイルをわざわざHTTPで読み出さねばならん理由を教えてくれ。
0874nobodyさん05/02/04 16:56:50ID:???
>>873

http://jp2.php.net/manual/ja/function.require.php
(↓実際はincludeの項に書かれている)
 > "URL fopenラッパー"が 有効になっている場合
 > (デフォルト設定では有効です)、ローカルなパス名 の代わりに
 > URL(HTTP経由)を用いて読み込むファイルを指定することが可能です。

但し
 > PHP 4.3.0より前のバージョンのWindows版PHPは、
 > 現在この関数に関してリモートファイルアクセス機能をサポートしていません。
 > これは、allow_url_fopenを有効にした場合でも同様です。

まず、ググる前にPHPリファレンスを見て、関数の使い方が正しいか、
どのようなオプションで関数の挙動が変わるのか調べてみるべし
http://jp2.php.net/manual/ja/index.php

それでも動かなかったらまたこのスレにおいで

まあ>>873のいうことが一番ごもっともな意見だ
087587405/02/04 17:03:28ID:???
ごめん上のレスアンカーは>>872だ
0876nobodyさん05/02/04 17:05:28ID:???
正規表現プログラム、というのをPHPで初体験しようとしている者です。
テキストエディタの検索で使ってるので「URLの表し方」とかそういうのは分かるのですが
PHPで正規表現を使い文字列の一部を取り出すにはどうすればいいのでしょうか?

$all = "今日も天気が良いので眠いな";

というような変数から「今日も天気が[.*]な」を検索し、左記の「[.*]」部分を文字列strに入れるには
どう組めばよいのでしょうか・・・?(この場合なら$strに「良いので眠い」を代入させたい)

多分凄く初歩的なことだと思うのですが初歩的すぎて正規表現解説ページで該当する箇所を
見つけられません・・・。ご存じの方よろしくお願いいたします。
0877nobodyさん05/02/04 17:13:51ID:Edgmb0Vg
>>874

PHPを最新のものにしたら正常に表示されました。どうもありがとうございます。

>>873

ローカルパスで指定しているとウェブにアップするときに書き換えるのがめんどくさかったので
HTTPで開いてたのですが、普通だと皆さんどのようにしてるのでしょうか?

どこかに各ファイルへのパスを指定してあるファイルを用意して
それを毎回読み込んでフッタを表示させるようにし、
ウェブにアップする際にはそのパスを指定してあるファイルだけを
書き換える、という方法なんですかね?
0878nobodyさん05/02/04 17:19:17ID:???
>>876
まずはココ
http://jp2.php.net/manual/ja/pcre.pattern.syntax.php
0879nobodyさん05/02/04 17:59:11ID:???
>>877
ディレクトリ構造(DOCUMENT_ROOT以下、includeディレクトリなど)を本番と同じにしたテスト環境を用意する。
0880軟式PHP05/02/04 18:00:02ID:???
>>876
$strValue = "今日も天気が良いので眠いな天気がなんとな";
preg_match( "/今日も天気が(.*)な/", $strValue, $match1 );
print $match1[1] . '<br>';
preg_match( "/今日も天気が(.*?)な/", $strValue, $match2 );
print $match2[1] . '<br>';

正規表現はマニュアルからだと難しいかもしれんから
http://www5a.biglobe.ne.jp/~n_rieko/perl/8.htm
とか簡単そうなところから勉強してみては?
0881nobodyさん05/02/04 18:15:19ID:???
簡単な文字列置換だとstr_replace()を使うって手もある
0882nobodyさん05/02/04 19:16:34ID:u3cic1J6
配列のキーと値を別々の配列に入れたいのですがarray_keysとarray_valuesで
それぞれの配列を作った場合、対応関係は保持されることが保障されているのでしょうか?

例えばこのような例を考えた時に
  $a = array('a' => 'apple', 'i' => 'iron', 'u' => 'ugly', 'e' => 'english', 'o' => 'only');
  print_r(array_keys($a)); print_r(array_values($a));
として自分で実験してみたら、結果が思い通りとなり順番どおりに並んでくれました。
 Array( [0] => a [1] => i [2] => u [3] => e [4] => o )
 Array( [0] => apple [1] => iron [2] => uly [3] => english [4] => only )
このように常に対応関係が保持されるのかされないのかご存知の方が
いらっしゃいましたらどうかよろしくお願い致します。


もし対応関係が保持されない場合は
  foreach ( $a as $key => $val )
  {
    $keys[] = $key;
    $vals[] $val;
  }
のようにすればできると思いついたのですが、もっと良い方法をご存知の方が
いらっしゃいましたらどうかよろしくお願い致します。
0883nobodyさん05/02/04 20:30:00ID:E7qef8MC
すんごいくだらない質問なんですが
StrictなHTMLを吐き出すPHPスクリプトを作ろうと思い
<?xml〜を直に記入したらエラーになったため
<?php
print "<?xml〜";
?>
<!DOCTYPE〜>
<?php
本体
?>
と記述して事なきをえたんですが
設置後に見ると何故かHTMLソースの上に一行空白がありました。
これはどう対処すればよいでしょうか?教えて下さい
0884nobodyさん05/02/04 20:33:17ID:???
>>883
XREA なら、空行は広告の所為だからどうしようもない
0885nobodyさん05/02/04 20:37:54ID:???
エスパー乙
088688305/02/04 20:44:21ID:???
>>884
ローカルでテスツしています。
0887nobodyさん05/02/04 20:46:57ID:???
つかXreaってShortopentag、Onなのか
共有なんだからデフォルトOffで好きなやつだけHtaccess弄ればいいのに
0888nobodyさん05/02/04 20:49:18ID:???
888ゲット
0889nobodyさん05/02/04 20:49:49ID:???
>>883
こう書いてみたが別に隙間なんか出てこないよ
PHP4.3.10ね
------------
<?php
print "<?xml
aiueo
?>";
?>
------------

隙間が出来るのはホントに上が1行空いてるからだと思うよ
0890nobodyさん05/02/04 20:56:24ID:???
あるいはBOMかもな
0891nobodyさん05/02/04 21:28:39ID:???
---空行---
<?php
?>
とか
0892nobodyさん05/02/04 22:04:54ID:HCHebah7
$file = file("xxx.txt")

と同じ内容をwhileで書こうとおもい
下のように記述したのですが上手く動きません。
どこがおかしいのでしょうか??

$fp = fopen("xxx.txt","r");
while (!feof($fp)) {
$dat = "";
while (substr($dat, -1) != "\n"){
$dat .= fgets($fp,256);
}
$file[] = $dat;
}
0893nobodyさん05/02/04 22:06:35ID:???
お前がもう救いようの無いくらいの馬鹿だからだよ
089489205/02/04 22:11:15ID:???
事故解決。できました・・。
0895nobodyさん05/02/04 22:14:38ID:???
解決したのも不幸なような。
0896nobodyさん05/02/04 22:39:24ID:???
PHPとはXMLをベースにしないと埋め込めないものなのでしょうか?
そしてPHPの<? ?>こういうのを埋め込んだら拡張子は.phpにしなければいけないのでしょうか?
どこを見てもそんな事が書いてなかったので質問させていただきました。
0897nobodyさん05/02/04 23:56:04ID:???
>>896
何を言っているのかわからない。
PHPとXMLは直接関係無いぞ。

〜拡張子は.php〜別にどうでもいい・・・
Web鯖の設定さえできてれば、.htmlでもなんでも処理できる。Web鯖の設定ができていればね。
0898nobodyさん05/02/04 23:57:01ID:JB/Xwm8r
今日、初めてPHPを触った初心者です。
バージョン5.0.3を日本語対応させようとしたんですけど、
文字化けしてしまいます。

php.iniでは、
default_charset Shift_JIS
mbstring.language Japanese
mbstring.internal_encoding EUC-JP
mbstring.http_input auto
mbstring.http_output SJIS
mbstring.encoding_translation On
mbstring.detect_order auto
mbstring.substitute_character auto
mbstring.script_encoding EUC-JP

日経ソフトウェア1月号に載っていた設定そのまんまです。
SJISやSift_JISなんて表記が混在していても大丈夫なんでしょうか。

バージョン4なら日本語化されているので、最悪そちらを使う、
という手もあるのですが、それでは敗北なので。(笑

どなたか教えてください。
0899nobodyさん05/02/05 00:06:11ID:???
>>898
outputがSJISになってるが、ほんとにSJISでHTMLが出力されてるかソース表示して確かめよ。
SJISだったならばmetaタグにsjis指定を記述してブラウザに解釈させよ

>バージョン4なら日本語化されているので
初めて触ったのにこんな情報どっから仕入れてきたんだ?
0900 ◆Qjg53wwnQg 05/02/05 00:10:17ID:???
http://pc5.2ch.net/test/read.cgi/php/1103636095/l100
090189805/02/05 00:18:59ID:???
早速のお返事、ありがとうございます。

バージョン4については、日経ソフトウェアに書いてあったのですよ。
1月号だから、今からは買えないけど、何ページにもわたって
書いてあったので、助かりました。

これから試してみます。
レス数が900を超えています。1000を超えると表示できなくなるよ。