【PHP】下らねぇ質問はここに書き込みやがれ 29
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/17(日) 04:26:39ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0465nobodyさん
2006/09/24(日) 22:44:08ID:C1aKz/pPifの中に組み込むとか……
たとえば
$i = 5;
if (!$i = 5){
echo "iは5";
}else{
echo "iは5でない";
}
とやると iは5でないとなります。
しかし
$i = 4;
としても iは5でないとなります。
$i=5; のとき
iは5ではない=5 → 偽
となりそうなのはわかるのですが
$i=4; のとき
iは4ではない=5 → 偽
となるのが意味わかりません。
0466nobodyさん
2006/09/24(日) 22:50:56ID:???0467nobodyさん
2006/09/24(日) 22:51:40ID:???まぁ誰しも通る道だけどね。
0468nobodyさん
2006/09/24(日) 22:57:13ID:???本とかマニュアル、よく読もうよと言いたいとこだけど。
0469nobodyさん
2006/09/24(日) 23:14:40ID:???あのマニュアルは用語とか多用しているし、プログラミング経験が無い人には取っ付きにくいと思う。
だが日本語訳もあるしかなり環境は良いなPHPって……。
0470465
2006/09/24(日) 23:22:25ID:C1aKz/pPとなっていました。
ということは
$i が偽のとき真を返す。
$i = 4;
if(!$i == 5){
echo "iは5";
}else{
echo "iは5でない";
}
i=4 =5でないから偽
偽の場合は真を返す → echo "iは5";
のはずなんですが…… 偽の答えがでてきます。
考え方が何か間違ってますでしょうか?
0471465
2006/09/24(日) 23:27:01ID:C1aKz/pPif($i>5 && $i<10){
echo "6〜9です";
}else{
echo "6〜9ではありません";
}
みたいな、論理演算子で&&と||は理解したのですが…… ! がどうしても。
}
0472nobodyさん
2006/09/24(日) 23:37:36ID:???http://www.php.net/manual/ja/language.operators.logical.php
+------------------------------------------+
| ! $a | 否定 | $a が TRUE でない場合 TRUE |
+------------------------------------------+
$a = FALSE;
if (! $a) echo '$aはTRUEではない';
$b = 0;
if (! $b) echo '$bは0';
// integerの '0' はFALSE
// 参考: http://www.php.net/manual/ja/language.types.boolean.php#language.types.boolean.casting
0473nobodyさん
2006/09/24(日) 23:39:20ID:???0474nobodyさん
2006/09/24(日) 23:41:27ID:???演算子の優先順位(掛け算や割り算は足し算引き算より先に計算される、というアレね)で
! は == より上。
だから if(! $i == 5) ってのは
まず ! $i が計算されて、$i が 0 であれば 1に、0以外であれば 1 にされる。
そしてそれが == 5 で 5と一致するか、を判定される。
正しくは if(! ($i == 5)) のように書く。
0475nobodyさん
2006/09/24(日) 23:45:47ID:???>>470
演算子の優先順位に関しては、言語リファレンスの演算子の所に載ってるよ。
http://www.php.net/manual/ja/language.operators.php
0476nobodyさん
2006/09/24(日) 23:46:39ID:???0477nobodyさん
2006/09/24(日) 23:47:02ID:???if ($i != 5)
って書くな
0478nobodyさん
2006/09/25(月) 00:00:43ID:???0480nobodyさん
2006/09/25(月) 00:01:57ID:???プリント 5
って書くな
0481nobodyさん
2006/09/25(月) 00:02:19ID:???0483nobodyさん
2006/09/25(月) 00:06:59ID:???風呂行ってさっぱりしてくるか
それはそうとちょっと聞いてくれ。
俺10月からPGじゃなくなるんだ
細かく書いちゃうと特定されるかも知れないから書かないけど
SEでもない。
やることはもちろんこの業界なんだけど何か寂しい
仕事でプログラミングできないのが凄く寂しい
またプログラミングがしたいな
0484465
2006/09/25(月) 00:08:36ID:9eV2tYIW>>474さん
>>475さん
どうもありがとうございます。
boolean に変換する場合、次の値は FALSE とみなされます。
がとても参考になりました。
演算子の優先順位があるとは気づかなかったです。 ようやく一歩前に進めたと思います。
これからいろいろサンプル作って試してみます。
どうもありがとうございました。
0486nobodyさん
2006/09/25(月) 00:13:02ID:???算数の問題じゃない?
>>483
職業プログラマじゃなくたっていいじゃないの。
何か面白いスクリプトを作って公開しませう。
// というかこの板、職業プログラマが多いのかい。
// 私みたいにWebサイトで使う、ごくごく趣味みたいな感覚の人はいる?
0488nobodyさん
2006/09/25(月) 00:37:29ID:dmDwzgtGこちらの「ショートメッセージ2」にて禁止語句設定を
する為に、様々奔走したのですが出来ません。
やり方をご指南ください。
0489nobodyさん
2006/09/25(月) 00:44:29ID:???スクリプト改造をいらしているならスレ違い
自分が作った物を提示してください
ここはプログラムする人のスレです
$_POST['message'] の内容をチェックして、特定の語句があれば書き込まないようにすればいいんじゃない?
0490nobodyさん
2006/09/25(月) 00:49:40ID:???in_array()
ifとelse
だけで作れるよ
0491nobodyさん
2006/09/25(月) 00:53:17ID:???-----------------------------------------------
$ng = array('禁止語句1','禁止語句2','禁止語句3'・・・);
foreach ($ng as $value) {
if (strpos($post, $value) !== false) {
echo '卑猥な言葉が盛りだくさんです。';
exit;
}
}
書き込み処理
-----------------------------------------------
意図と違ったらスマソ。
ちなみに合ってたとしてもマニュアルでstrpos()をちゃんと調べてね。
0492nobodyさん
2006/09/25(月) 12:04:57ID:rFgBtun6リクルートのAPIを利用してサイトを作っているのですが、
XMLをうまく読み込んでくれません。
XML_RSSというPEARのクラスを組み込んで、一番簡単なサンプルコードに、例としてじゃらんのXMLを書いてprint_rしても空の配列が帰ってきます。
リクルート以外のXMLを試すとほぼ正常に配列が帰ってきます。
リクルートがはき出すXMLの構造がちょっと特殊なのかなと予想していますが、正確なところはわかりません。
ちなみに、ローカル環境のphp5でsimplexml_load_fileをやったら、リクルートのものも問題ありませんでした。
http://jws.jalan.net/ws/viw/U01004
↑のページ中程にじゃらんのサンプルリクエストURLがあります。
書いたコードはXML_RSSのテストコードまんまです。
require "../RSS.php";
$r =& new XML_RSS("http://jws.jalan.net/APICommon/OnsenSearch/V1/?key=guest&l_area=010300&count=1&xml_ptn=1");
$r->parse();
print_r($r->getItems());
よろしくお願いします。
0493nobodyさん
2006/09/25(月) 12:37:43ID:???リクルートってあんた
0495nobodyさん
2006/09/25(月) 13:52:17ID:???そこのURLがRSSフォーマットじゃない
先にXMLとRSSが何かを調べた方がいいかと
simplexml的なのをPEARでやりたいなら
XML_Serializerに入ってるXML_Unserializer使え
0496nobodyさん
2006/09/25(月) 15:24:06ID:d7O7pv61PHP5が動作する鯖で
http://php.s3.to/net/get2.phps
のソースを実行したのですが実行されませんでした。
PHP5用に書き換えないと無理なんでしょうか・・・
0497nobodyさん
2006/09/25(月) 15:34:53ID:???0498nobodyさん
2006/09/25(月) 15:49:53ID:???if(!$_GET[site] || !strstr($_SERVER[HTTP_REFERER],"php.s3.to") || !ereg("^http://",$_GET[site])){
↓
if(!$_GET[site] || !ereg("^http://",$_GET[site])){
0499496
2006/09/25(月) 16:37:04ID:d7O7pv61バージョンは5.1.7でエラーはされないのですが
http://php.s3.to/net/get2.php?site=http%3A%2F%2Fgoogle.com&act=
↑のように下部に表示させることができません。。
>>498
|| !strstr($_SERVER[HTTP_REFERER],"php.s3.to")を排除して
実行してみましたがやはり下部の部分が表示されません。。
0500nobodyさん
2006/09/25(月) 16:38:54ID:???でどうかな
単にpregしか分かんないってのもあるけど
strstr($_SERVER[HTTP_REFERER],"php.s3.to")
の php.s3.to 部分を自分のドメインにしろって事なのかな、説明が無いから分かりにくい。
0501492
2006/09/25(月) 16:44:32ID:rFgBtun6ありがとうございます。その通りっぽいです。
pearなどのライブラリを使わないで書く方法が見つかったので、
それでやりたいと思います。ありがとうございました。
05024
2006/09/25(月) 16:47:25ID:WNDcSAnJ神の着地術!!(゚ロ゚;)
http://gotodmc.ath.cx/uploader/src/fdds.wmv
0504nobodyさん
2006/09/25(月) 17:14:32ID:???UTF-8が良いと聞いたので、それで書いています。
実行してみると、日本語が???に文字化けしてしまいます。
どのように対処すれば良いのでしょうか?
0505nobodyさん
2006/09/25(月) 17:30:16ID:???0506504
2006/09/25(月) 17:33:21ID:???UTF-8です。
文の最初にmb_internal_encoding("UTF-8");としても文字化けしたままです。
出力時にmb_convert_encoding($str,"UTF-8");とするとうまく表示されるのですが、
出力するたびに変換していたら文が長くなってしまうので、最初に指定しておきたいです。
0507nobodyさん
2006/09/25(月) 17:37:43ID:???それはDBから受け取ったエンコーディングがUTF-8じゃないんじゃない?
DBから受け取った状態のまま、エンコーディングをIEなりで確認してみればいいじゃない?
であとはDBの話っぽいので板違いかも
DB何使ってるか書けば誰かが答えてくれるかも
DB側の出力を何とかする必要があるんじゃないかな
0509nobodyさん
2006/09/25(月) 17:47:55ID:gQCSf4GG全部のDBが同じだと思うな。
データベース作成する時に文字コードセットしたか?
mysqlならcharacter set utf8
pgsqlなら--encoding=utf8
0510504
2006/09/25(月) 17:48:15ID:???>DBから受け取った状態のまま
これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
でしたらUTF-8になっています。
DBはMySQLを使っています。
板違いになりましたが、どなたか答えていただければ幸いです。
0511496
2006/09/25(月) 17:48:28ID:d7O7pv61わざわざすみません;
書いて頂いたその記述と
strstr($_SERVER[HTTP_REFERER],"php.s3.to") に自分のドメインを
入れてみましたがやはり表示できませんでしたorz
ちょっと鯖変えて試してみたいと思います。
ありがとうございました。
0512nobodyさん
2006/09/25(月) 17:49:56ID:gQCSf4GG<meta http-equiv="content-type" content="text/html; charset=utf-8" />
0513nobodyさん
2006/09/25(月) 17:52:30ID:???> >DBから受け取った状態のまま
> これは、エンコーディングをせずそのまま出力して確認ということでしょうか?
> でしたらUTF-8になっています。
UTF-8でブラウザ側で表示されてるなら問題無いじゃん。
って、違うよね・・
ブラウザ側で色々エンコード変えてみて、テストしてって話だよね・・
あとはDBのエンコード確認する方法をDB関係のスレで聞いてきてはどうですか
0515504
2006/09/25(月) 17:56:20ID:???header("Content-Type: text/html;charset=UTF-8");
と指定したのですが、変わりませんでした。
>>509
MySQLです。
データベース作成時には特に何もいじっていません。
また、設定の仕方がわかりません。
>>512
それはもともと表記されていましたが、消しても書いても変化はありませんでした。
>>513
UTF-8では文字化けした状態で表示
EUC、SJIS、JISでは何も表示されません。
DBの方に言ってみることにします。
有難うございました。
0516nobodyさん
2006/09/25(月) 18:00:54ID:???0517nobodyさん
2006/09/25(月) 18:01:25ID:???WinXP、PHP 5.1.4
php_imagick.dllをphp.iniに追加しましたがロードに失敗してしまいます(読み込めないとのエラーがログに吐かれていた)。
mbstringやpdoなど、他のモジュールはロードできています。ファイル名が間違っていないか何度もチェックしましたが合っています。何が原因なのですか?
0518nobodyさん
2006/09/25(月) 18:13:04ID:???$str .= aaa;
return($str);
}
$str = "あいうえお";
echo str($str);
上記のようにすると、「あいうえおaaa」と出力されます。
ここまではいいのですが、$str以外の変数にも同じようにしたいのですが、
どのようにすれば良いのでしょうか?
つまり、$strだけじゃなく、
str($hogehoge);や
str($aiueo);など
いろんな変数にも対応できるようにしたいです。
0521nobodyさん
2006/09/25(月) 18:18:36ID:???function ($a)
{
$a .= 'aaa';
return $a;
}
$str = 'あいうえお';
$hogehoge = 'ほげほげ';
$aiueo = 'あいうえお';
echo( $str );
echo( $hogehoge );
echo( $aiueo );
0523nobodyさん
2006/09/25(月) 18:31:39ID:???SJISとJISとEUCとUTF-8
どう違うのでしょうか?
また何か説明の載っているわかりやすいサイトはありませんか?
0524nobodyさん
2006/09/25(月) 18:33:50ID:???せめてもう少し書籍等を読んだほうが・・
関数内の変数は外には影響しません
このあたりを実行すれば理解出来るんじゃない
---------------
$a = 5;
print $a . '<br>';
test();
function test(){
$a = 1;
print $a;
}
--------------
0526nobodyさん
2006/09/25(月) 18:39:28ID:gQCSf4GGセットの仕方が分かりませんってさ
mysqlならcharacter set utf8
pgsqlなら--encoding=utf8
って書いたじゃん・・・
0527nobodyさん
2006/09/25(月) 18:53:09ID:???0529nobodyさん
2006/09/25(月) 18:55:49ID:???今辞書でちょうど見つけたところw
聞く前に調べるべきでした・・・
0531nobodyさん
2006/09/25(月) 20:13:43ID:???でググって一個目で何とかなるんとちゃう
0532nobodyさん
2006/09/25(月) 20:56:02ID:???スクリプトを停止にしたいんですが
どうやったらいいですか?
0533nobodyさん
2006/09/25(月) 21:24:44ID:???http://www.php.net/manual/ja/features.connection-handling.php
これででき・・ないかな
試したことないから分からん
0534nobodyさん
2006/09/25(月) 21:25:50ID:???勝手に止まらなかったっけ?
ブラウザが再読み込み→Apacheにリクエスト中断発信→ApacheはプロセスにAbortシグナル発行
って流れだったと思う。
問題はPHPがsleep中にシグナルを受け取れるかどうかだと思うけど、SQLクエリー発行中はともかく
sleep中なら多分受け取ってると思うんだけど。
0535nobodyさん
2006/09/25(月) 22:23:46ID:UugMM9l5そのような関数や変数はありますか?
0536nobodyさん
2006/09/25(月) 22:28:48ID:???0537nobodyさん
2006/09/25(月) 22:29:11ID:???0538nobodyさん
2006/09/25(月) 23:42:58ID:???メールを送信するとISO-2022-JPで送信されない。
なにも特別な対応していないからあたりまえだが。
いままでは、mb系のfunctionで対応してきたが、コアチームからバグが登録されたからどうにかしろ
といわれたんだげど、ポリシーでiconv系もmb系も使用しないらしい。
この条件で一体何ができるだろう。なんかいい方法ある?
0539nobodyさん
2006/09/25(月) 23:51:09ID:???0540nobodyさん
2006/09/25(月) 23:52:31ID:???0541nobodyさん
2006/09/26(火) 00:03:35ID:???いいアイデアだけど、日本語に特化したのは130%拒否される。
バグ登録した方がパッチを出しているが、日本語オンリーな上にバグってる。w
事象はわかっていたけどまともな対応はできないので、放置しておいたのになぁ。
いらんことを。
0542nobodyさん
2006/09/26(火) 00:07:42ID:???0543nobodyさん
2006/09/26(火) 00:14:49ID:???538,541は、そのオープンソースのメールシステム(パッケージ)を使う側じゃないの?
ん・・・コアチームではないけど、開発してるってことかな。
もしそうだとしたら、コアクラスを拡張してISO-2022-JPで送信できるようにするのはパッケージが「日本語に特化する」ことにはならないと思うけど。
0544nobodyさん
2006/09/26(火) 00:15:51ID:???だね。とりあえず、日本ではそのルールをかえない限り、野良パッチするしかないと書いといた。
XOOPSみたいに、日本語版を出すしかないのか。ニッチなOSSだから喜ぶひとはいないし、報われないし。
放置決定。
0545nobodyさん
2006/09/26(火) 00:19:35ID:???いや、翻訳してるだけなんだけど、使う側ではないのよ。キムチの人とか、4000年の人が、
いろいろバグを登録するので、コアチームがわからないとメールをなげてきた。
0546nobodyさん
2006/09/26(火) 00:23:35ID:???話から察するにコアチームが言語の汎用性を深く考えてなさそうだから、簡単に拡張できないっていう難しさがあるんだろうね。
ISO-2022-JPに対応するサブクラスを作成したとしても、コアクラスに小さな、または大きな修正が必要になるだろうと。
それをコアチームが認めないのかな。仕事だとプログラミング以外の難しさもあるからね。
0547nobodyさん
2006/09/26(火) 00:27:51ID:???勝手な想像で見当違いな事を言ってしまい申し訳ない。
バグを登録してくる人達に、コアチームのポリシー・「バグ」ではないこと・修正されないことを伝えるだけだね。
0548545
2006/09/26(火) 00:36:18ID:???いや、普通に考えるとそうだと思う。
Exciteで翻訳しながらそう回答した。
マルチバイトをアメリカンに説明するのはムズい。日本語でも説明できないのに。
Thanks.
0549nobodyさん
2006/09/26(火) 03:46:23ID:byyWwaMP文字コードはUTF-8で作っていった方がいいと思うよ。これからの時代。
0550nobodyさん
2006/09/26(火) 07:53:34ID:???actionにある記述って拡張子とかいらないのですか?
てか、これだけでPHPで作られてるのかわかりますか?
<form name="link" method="post" action="../diary/Detail" >
0551nobodyさん
2006/09/26(火) 09:26:19ID:???0552nobodyさん
2006/09/26(火) 09:33:10ID:???たまに拡張子のないページ見かける。
ページ遷移でjspとか出てきたりして、
はじめてJavaだったのかーって感じだったり。
これはいったいどういう仕組み?
htaccessかなんかかな?
0555nobodyさん
2006/09/26(火) 09:51:01ID:???拡張子ってどうやれば、隠せるのでしょか?
あと、そのサイトがphpやperlで作られているって見分ける方法ってあるのでしょうか?
0556nobodyさん
2006/09/26(火) 10:18:54ID:???数秒後に次のページ渡すにはどうすればいいのでしょうか!?
sleepとheaderではできないですよね。。
0560nobodyさん
2006/09/26(火) 10:44:49ID:???0561nobodyさん
2006/09/26(火) 11:06:44ID:???if(get_magic_quotes_gpc()){
$string = stripslashes($string);}
$string = htmlspecialchars($string);
return $string;
}
こうしたstringをそのまま、データベース(mysql)にぶち込んでるけど、
問題ってあるかな?
0563nobodyさん
2006/09/26(火) 11:23:45ID:???作る側が意識して隠してれば分からない
Content negotiationとかrewriteとかScriptAliasとか方法はいろいろある
0565nobodyさん
2006/09/26(火) 12:47:34ID:???ですよね。これはXSS対策で、HTMLに表示しなければ関係ないですよね??
これとは、全く別に、POSTで送られてきた値にinitvalやaddslashを用いればいいのでしょうか?
それとも、561の関数にinitvalやaddslashを入れればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています