【PHP】下らねぇ質問はここに書き込みやがれ 34
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/12/08(金) 04:22:54ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0620nobodyさん
2006/12/14(木) 23:01:36ID:???0621nobodyさん
2006/12/14(木) 23:06:40ID:???0622nobodyさん
2006/12/14(木) 23:12:27ID:???見つかったら停学だがそのスリルがいい。
0623nobodyさん
2006/12/14(木) 23:16:39ID:???062427
2006/12/14(木) 23:33:48ID:???0625nobodyさん
2006/12/14(木) 23:40:37ID:???まずコンソールからmysqlのコマンド叩いて更新されるか確認したらいいよ。
つーか、エスケープはちゃんとできてるわけ?
0626nobodyさん
2006/12/15(金) 00:13:14ID:0FUvK34I0627nobodyさん
2006/12/15(金) 00:29:42ID:???このスレでまともな回答が得られるかどうか
世の中は間違いだらけだ
http://ya.maya.st/web/RTFM.html
0628nobodyさん
2006/12/15(金) 00:45:12ID:???mysql_query( 〜 ) or die(mysql_error();
でエラーでないか確認してみれ。
あと俺は確実に
mysql_query("update table_$t set col_$r = '".$q."' where col_1 = '".$max2."'");
な感じに書いてるよ、めんどいけどね
0630nobodyさん
2006/12/15(金) 01:16:05ID:???ほとんどPHPでDB扱う際の標準みたいな立場になりつつあるわけだし。
0631nobodyさん
2006/12/15(金) 03:49:30ID:yi07hMf90632nobodyさん
2006/12/15(金) 08:50:30ID:???0633nobodyさん
2006/12/15(金) 09:20:41ID:???PEAR::DBの方は知ってるかな?あれはご存知のとおりPHPで書かれている
ため、普通にPHP上のAPIを使って接続してるだけ。PDOはCで書かれている
のでよりネイティブに近い接続をするから速度も速い。
また、PHP5なら例外処理もやりやすいというメリットもある。
ただ、モジュールインストールになるから対応していないサーバーも多い。
0634nobodyさん
2006/12/15(金) 09:56:54ID:VrTEtYOeいきません。
$array[0][0] =PC $array[0][1] =IP $array[0][2] =null
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP $array[1][3] =null
この配列からnullの部分を除いて
$array[0][0] =PC $array[0][1] =IP
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP
このようにしたいのですが、どう記述すればよろしいでしょうか?
0635nobodyさん
2006/12/15(金) 10:30:37ID:???0636389
2006/12/15(金) 10:39:28ID:???phpで動的(ブラウザでアクセスがあるたびに生成する)にXML形式のテキストを出力しているのですが、
これをRSSリーダで読み込もうとしても
「登録可能なフィードが見つかりません」と うまくいきません。
出力しているテキストの形式は完全にXML形式になっているのですが、
(ブラウザでソースを見ても完全に期待するXMLファイルと同じ、しかしxmlファイルを表示するときのようにはならない)
phpでRSSフィードをXML形式で出力しようとするためには何か必要なことがあるのでしょうか?
0637634
2006/12/15(金) 10:43:38ID:VrTEtYOeそうですね。
//nullの部分を除外して多重配列を再構成//
$other_array //多重配列
$arr_word =array();
foreach($other_array as $val=> $arrValue)
{
foreach($arrValue as $val2=> $strValue)
{
if($strValue == '')
{
break;
}
else
{
array_push($arr_word,$strValue);
}
}
}
このようにしてみたのですが、nullは除外されても多重配列にはなって
おらず、ひとつの配列に要素が全て連結された状態になってしまいます。
どうか正しい記述をお教えいただきたいのですが。
0639389
2006/12/15(金) 11:17:47ID:???<?
print "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print "<rss version=\"2.0\">\n";
print "<channel>\n";
?>
<title>title</title>
<link>http://www.site/</link>
<description>description</description>
<language>ja</language>
<copyright>Copyright</copyright>
<pubDate>Fri, 15 Dec 2006 06:00:00 +0900</pubDate>
<item>
<title>item title</title>
<link>http://www.site/001.html</link>
<description>item description</description>
</item>
<?
print "</channel>\n";
print "</rss>\n";
?>
0640nobodyさん
2006/12/15(金) 11:27:31ID:???結果を以下のように配列に値が入るように生成したいのですが
どうすればよいでしょうか。
<input type="checkbox" value="1" name="hoge[]"><label>a</label>
<input type="checkbox" value="2" name="hoge[]"><label>b</label>
<input type="checkbox" value="3" name="hoge[]"><label>c</label>
<input type="checkbox" value="4" name="hoge[]"><label>d</label>
0642641
2006/12/15(金) 11:29:19ID:???具体的なソースは以下。
header( 'Content-type: text/xml' );
0643nobodyさん
2006/12/15(金) 11:42:27ID:???そのソースだけならphp使う意味ないような。
こちらの関数も調べてみるといい。
SimpleXML関数 DOM XML関数 xmlwriter関数
0645nobodyさん
2006/12/15(金) 14:10:30ID:???PHPで掲示板を作ってます
HTMLタグを無効化するにはどうしたらいいでしょうか?
htmlspecialcharsを使うと、? ←この文字が?になってしまいます。
よろしくお願いします。
0646645
2006/12/15(金) 14:13:26ID:???上の?は
&#12316;←半角です。
よろしくお願いします。
0647nobodyさん
2006/12/15(金) 14:14:46ID:???<と>だけを置換するようにしたらいいんでないかね。
0649nobodyさん
2006/12/15(金) 14:34:08ID:???>>674の方法以外にも、htmlspecialcharsをしてから、
特定のものだけ(この場合だと?)を置き換え。
0650645
2006/12/15(金) 14:43:00ID:???ありがとうございます
<と>だけを置換するだけでいいんですかね?
htmlspecialcharsの意味がよくわからない^^;
どういうときに使うんだろう・・・
0651nobodyさん
2006/12/15(金) 14:46:36ID:???そもそも&#〜ってのがすでにHTMLエスケープ処理済みの表記だということは理解してる?
エスケープ済み表記をエスケープしたらそりゃおかしくなるという話。
0652645
2006/12/15(金) 14:47:46ID:???特定のものだけ置換しないで、
全部の文字を普通に表示させたいです。
(2chみたいに特殊文字が?になるのは嫌なので)
となるとやはり<と>だけを置換ですよね
<と>だけを置換だと、危険なこととかないのかな?
0653nobodyさん
2006/12/15(金) 14:50:43ID:???0654nobodyさん
2006/12/15(金) 14:54:42ID:zjrdLe6Pバイナリをbin2hexで16進数に変換したあと、それをまたバイナリに戻す事は可能でしょうか?
色々みたけど見当たらない・・・packっていうのがそれっぽかったけど、使い方がよく分からない。
識者の方、ご指導よろしくお願いします
0655nobodyさん
2006/12/15(金) 14:55:38ID:???1)痴漢したくないものだけ、htmlspecialcharsに影響されなず、
一般的に使われる事の無いような特殊文字列に痴漢
2)htmlspecialchars 実行
3)特殊文字列を元に戻す
0656軟式PHP
2006/12/15(金) 14:59:05ID:???そのpackでできるよ。
<?php
$str = 'その通り';
$hex = bin2hex( $str );
print 'Hex:' .$hex . '<BR>';
$bin = pack("H*",$hex);
print 'bin:' . $bin . '<BR>';
?>
0657nobodyさん
2006/12/15(金) 15:04:06ID:zjrdLe6Pおおー!
素晴らしい!
"H*"ってのを指定したらいいのか。
色んなオプション突っ込んで途方にくれてたところですw
ありがとうございました。
0658645
2006/12/15(金) 15:05:16ID:???1.<と>だけを置換
2.ダブルコーテーションとシングルコーテーションを置換
3.trim
4.mb_convert_kana
これくらいでいいのでしょうかね?
0659nobodyさん
2006/12/15(金) 16:22:41ID:???0660nobodyさん
2006/12/15(金) 16:46:31ID:9BwOCrLJ都道府県を選択後、自動で選択した都道府県の市区郡がselectできるよう(表示される)
ようにしたいのですが、どうすればいいんでしょう?
0661nobodyさん
2006/12/15(金) 16:53:39ID:qvbJOa4k0662645
2006/12/15(金) 16:58:17ID:???えーと。(ユニコードは使いません)
掲示板などで、投稿された文字をそのままアップじゃやばいですよね。
だから、何か処理をしなければいけない。ってことはわかりますが
その処理は、>>658に書いた4つの処理でいいのでしょうかね?
0663nobodyさん
2006/12/15(金) 17:29:08ID:???以下のコードでサーバー上に圧縮ファイルは出来上がり、このファイルをFTPでDLして中身を見てみると、確かに圧縮されています。
メールにもファイルは添付されてきます。しかしファイル名は hogehoge.gz ですが、中身も容量も圧縮前のcsvデータそのままになってしまいます。
base64にエンコードする際に圧縮ファイルの中身の文字列を圧縮されたままエンコードしているつもりなのですが、
どうやらcsvデータをそのまんまエンコードしてしまっているように思われます。
正しくエンコードしてやるにはどのように書いたらいいのでしょうか??
0664nobodyさん
2006/12/15(金) 17:33:15ID:???//■■取得したデータ($getdata)から圧縮ファイルを生成
//圧縮ファイルのオープン
$filename = mb_encode_mimeheader("hogehoge").".gz";
$fp = gzopen($filename,'w');
//圧縮ファイルに書きこみ
gzwrite($fp,$getdata);
gzclose($fp);
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');
//圧縮ファイルの読みこみ
do {
$data = gzread($fp, 10000);//←�@ gzread で解凍せずに読み込んでるつもり
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
gzclose($fp);
//エンコード
$f_encoded = chunk_split(base64_encode($contents)); //←�A エンコードしてるつもり
//body文字列の生成(添付部分)
$body .= "\n\n--$boundary\n";
$body .= "Content-Type: application/zip; name=\"$filename\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename=\"$filename\"\n";
$body .= "$f_encoded\n";
$body .= "\n\n--$boundary--\n";
0665nobodyさん
2006/12/15(金) 17:40:52ID:???どうして普通に読まないんだよ。
0666nobodyさん
2006/12/15(金) 17:48:23ID:???//エンコード
$f_encoded = chunk_split(base64_encode($filename));
でいいんでしょうか??
0667nobodyさん
2006/12/15(金) 17:49:51ID:???$fp = gzopen($filename,'r');
これがだめぽ
0669nobodyさん
2006/12/15(金) 17:53:33ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
0670nobodyさん
2006/12/15(金) 17:55:41ID:o16g8Qpy0671nobodyさん
2006/12/15(金) 18:09:59ID:???そろそろ"gz"で読むのがまずいことに気付いたかな?
0672645
2006/12/15(金) 18:10:22ID:???僕の質問よろしくお願いします。
0673nobodyさん
2006/12/15(金) 18:12:51ID:???もう色々教えてもらったんだからそれで動かしてみて問題があればそこを直せばいいじゃん。
XSSは大抵防げるだろうけど、CSRF、DB使ってるならSQLインジェクションやら
考えることは山ほどあるんだ。ってことで勉強しつつ作ってくれ。
0674nobodyさん
2006/12/15(金) 18:15:09ID:???それに入力の検査自体が別にphp固有の問題じゃないし。
0676nobodyさん
2006/12/15(金) 18:18:08ID:o16g8Qpy0677nobodyさん
2006/12/15(金) 19:31:24ID:???ttp://www.777777.net/magmag/codelock.php
の評価を教えてけれ
ワシの高級PHPソースを見られたくないのです。
レンタル鯖なので、Zend系とかサーバにインストールする系は
無理なのでございます。
0678nobodyさん
2006/12/15(金) 19:36:26ID:???0679nobodyさん
2006/12/15(金) 19:37:32ID:???高級PHPソースの割にはこのスレに質問しにくるとはアホなのか。
なんか、ereg関数とか使ってそうだなwww
0680PHP出版
2006/12/15(金) 19:46:44ID:???0681nobodyさん
2006/12/15(金) 21:28:41ID:???馬鹿ですねwwww
0682nobodyさん
2006/12/15(金) 21:49:55ID:Xtqi0V4I0683nobodyさん
2006/12/15(金) 22:06:28ID:g5A+TTGd0684nobodyさん
2006/12/15(金) 22:13:36ID:???0685nobodyさん
2006/12/15(金) 23:15:32ID:???0686nobodyさん
2006/12/16(土) 01:07:59ID:???ereg関数は別に使ってもいいけど、ereg関数にマルチバイト文字列を含む
パターンを使ってるのを見ると「あぁ、こいつは経験が浅いな」と思う。
ereg('[あ-んア-ン]', $string)
こういうの、なんか気持ち悪い。
0687nobodyさん
2006/12/16(土) 01:18:20ID:???>ereg('[あ-んア-ン]', $string)
この場合「こういうの、なんかいやらしい。」が正解だろ?
0689nobodyさん
2006/12/16(土) 01:44:07ID:???つーか、よくそんな怪しいソフトを使う気になるねぇ。
他にいくらでも有名なソフトあるのに。
もしかして「本人宣伝乙」ってヤツ?www
0690nobodyさん
2006/12/16(土) 02:01:13ID:kvjqtHVCでもなぜか俺は文字数数える仕事ってないんだよね。バイト数を数えるのは多いんだけど
0691690
2006/12/16(土) 02:01:45ID:???0692nobodyさん
2006/12/16(土) 02:09:11ID:???ヘボカス初心者がやらかす三大意味不明行為(ウェブ開発編)
1.「JavaScriptによる右クリック禁止」
2.「HTMLソース表示妨害(無駄な努力)」
3.「自分の書いたしょぼいコードをやたら大事にして隠したがる」
てめえの書いたしょぼいコードなんか、誰も見たがったりしねぇよ。
宣伝目的ならスレ違いだから消えな。
0693nobodyさん
2006/12/16(土) 03:00:30ID:???結果がどうしても同じにならないのですがなぜでしょうか?
<?php
$a = 300.10;
$b = 0.10;
$a_b_sum = $a + $b;
var_dump ($a_b_sum); // float(300.2)
$c = 300.20;
var_dump ($c); // float(300.2)
if( $a_b_sum > $c) {
echo "NG"; // こっち
} else {
echo 'OK';
}
if(300.2 > 300.2) {
echo 'NG';
} else {
echo 'OK'; // こっち
}
?>
0694nobodyさん
2006/12/16(土) 03:13:46ID:???文句があるなら下駄でも履かせやがれこんちくしょーっ!
0695nobodyさん
2006/12/16(土) 05:26:57ID:???http://jp.php.net/manual/ja/language.types.float.php
$a_b_sum = $a + $b;
↓
$a_b_sum = bcadd($a, $b);
するとOKOK
(BCMathはWinか--enable-bcmathコンパイル必要)
0696nobodyさん
2006/12/16(土) 07:31:58ID:HXTFaSG20697nobodyさん
2006/12/16(土) 10:45:33ID:???俺もereg関数でマルチバイト文字使ってるんだけど駄目なのか・・・
別の関数を使ったほうがいいんでしょうか?
素人ですまんが教えてください。
0698nobodyさん
2006/12/16(土) 10:58:59ID:???そう言うわけで教えて欲しいのですが、
xxx.php?page=10&block_num=girl_list
のような?の後に続くのは、どう言う意味なんでしょうか?
なにぶんPHPと言うモノを知ったのが、今日なんでサッパリわかりません。
0703nobodyさん
2006/12/16(土) 11:24:51ID:???>>698
girl_listワロタ・・
それはPHPというよりHTMLの内容じゃまいか?
0704nobodyさん
2006/12/16(土) 11:25:17ID:???見てたのは確かにアダルトなんですが、普通のURLってxxx.phpてな感じで終わるじゃ〜ないですか。
疑問は、この?page=10&block_num=girl_listの部分なんです。なんの為に、こんなのがひっついているのですか?
なんの為に、こんなのがあるのか興味があるんです。
0705nobodyさん
2006/12/16(土) 11:38:52ID:???やぱっりそうなのかよww まぁ、こうもあっさり認められると
これ以上つっこみようもないが。
?以降は(この場合)PHPプログラムに情報を渡すために使われるんだよ。
例えばblock_numの値に応じてページの内容を変えることができる。
block_num=girl_listならお前の好きな女の子のページが表示されるだ
ろうし、block_num=boy_listなら(開発者がページを用意してれば)男だ
らけのページが表示されるかもな(キモすぎる...)。
page=10をpage=11とかpage=09にすると違うページが表示されるかもな。
そのへんは自分で?のついたURLをいろいろいじくってるとなんとなく実感
がわいてくるんじゃない?
0706nobodyさん
2006/12/16(土) 11:41:35ID:????page=10&block_num=girl_listが付いてると不安になるの?
その辺を聞きたい。
0707nobodyさん
2006/12/16(土) 11:43:55ID:???0710nobodyさん
2006/12/16(土) 11:59:32ID:???>君のレスの、
>「って気になったんです。」
>も気になるよ。
と、下らなすぎるレスをしてしまったんだろ?って気になったんです。
0712nobodyさん
2006/12/16(土) 12:08:27ID:???0713645
2006/12/16(土) 13:03:42ID:???結論として
掲示板に投稿されたデータは
特殊文字を表示させたいならhtmlspecialcharsは使わない
<と>と'と"を置換する。
以上でよろしいのでしょうか?
0714nobodyさん
2006/12/16(土) 13:35:16ID:???0715nobodyさん
2006/12/16(土) 13:42:21ID:M68Se3i9おまい次第
0716nobodyさん
2006/12/16(土) 13:42:43ID:???0717nobodyさん
2006/12/16(土) 13:55:25ID:???$array['usa'] = "アメリカ";
$array['uk'] = "イギリス";
から
jp = 日本, usa = アメリカ, uk = イギリス
という文字列を表示させたいのですが、
何か簡単な関数はあるでしょうか?
0718nobodyさん
2006/12/16(土) 14:07:09ID:???echo $key.' = '.$value.', ';
0719nobodyさん
2006/12/16(土) 14:47:41ID:???■ このスレッドは過去ログ倉庫に格納されています