【PHP】質問スレッドpart20【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/06 15:44ID:paJ4kjjQ・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
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
抜けているものがあったら補足願います
0074nobodyさん
04/08/08 22:41ID:???preg 系は文字コードが UTF-8 で u オプションを使用するときだけにした方がいい。
その例で、文字コードが EUC-JP の場合、「修学旅行」という文字が含まれていても引っかかる。
0075nobodyさん
04/08/08 23:22ID:Odqra96Pその変数をfor文を使って初期化したいです。
for($i=0; $i<10; $i++)
$data$i = "abc";
これだと、エラーで動きません。
どこを修正したらいいでしょうか?
0076nobodyさん
04/08/08 23:29ID:???0078nobodyさん
04/08/08 23:31ID:???${"data".$i} = "abc";
007975
04/08/08 23:32ID:Odqra96P0080nobodyさん
04/08/09 00:07ID:???0081軟式PHP
04/08/09 00:54ID:???008278
04/08/09 01:30ID:???0083nobodyさん
04/08/09 02:15ID:???どーでも良いが、0から10まで作りたいなら
for ($i=0;$i<=10;$i++) じゃないのか?
>>78
なんでだろ?
0084nobodyさん
04/08/09 02:47ID:???<?php
$name = "山田";
$_GET ["name"];
print $_GET;
?>
実行結果「Arrey」
$_GETの使い方教えてください・・・
008684
04/08/09 03:13ID:???0087nobodyさん
04/08/09 03:13ID:???0089nobodyさん
04/08/09 04:15ID:???○ o ○ ○ 「ママー夏過ぎるよ」
○`「「「l
\. V7 r‐、
____`o ○ | |. >、,>
// |O。゚-ト、. | | |
.//| /(・) ∩ |o. | | | /\ | |
|//| | | | | / | | ̄`l /\
|//| (・) \_| |─/ /く | / r、/`ーっ
|// \ | / / | \/\/ `ー'"
|/ ヽ__ // / | /
mn____|___r──l__/ | /
ヽ_______|__ノ────' ──''"
0090軟式PHP
04/08/09 09:13ID:???<?php
print 'GET:' . $_GET['name'] . '<br>' .
'<a href="'.$_SERVER['PHP_SELF'].'?name=山田">山田クリック</a><br>';
?>
0091nobodyさん
04/08/09 09:26ID:???<?=$_GET["name"];?>
軟式軟式。私も真っ白。
0092Imo ◆.jC7ANgFY.
04/08/09 10:44ID:???ついついpregしか使わない癖があってorz(perlから入ったからかなぁ、、、
ereg_replace_callbackみたいなのがあったら移りやすいのだけど…。
>>90
rawurlencodeをして渡したほうがいいのでは?
ブラウザによっては日本語をUTF-8に変換して取得しようとするから、
0093nobodyさん
04/08/09 11:04ID:???そのた制限ありますかね?
〜だと全く変換されないとかっての
$conv = mb_convert_kana($str, 'asHVc');
0094軟式PHP
04/08/09 11:13ID:???確かに。スマンカッタ。GETで直接日本語を渡す機会が殆ど無かったから忘れてた。
そういえばHDMLのFORM構文の初期値に日本語を入れる場合もurlencodeしてたなぁ。
初心者にはエンコ無い方が分かりやすいかもしれないからユルシテ。・゚・(ノ∀`)・゚・。
0095nobodyさん
04/08/09 11:46ID:lYQyr6Nk配布されているところって知らないかい?
0096nobodyさん
04/08/09 12:07ID:???0097nobodyさん
04/08/09 12:14ID:???まぁその前にSQLを全然知らないみたいだが
0098nobodyさん
04/08/09 13:48ID:???それを DB に落とし込むのは日本各地で車輪の最発明は無駄だよね。
あと、郵便番号は更新しないといけないし。
大学のデータとかもどこか SOAP や XML-RPC とかで提供しないかな。
0099nobodyさん
04/08/09 14:00ID:???0100nobodyさん
04/08/09 14:32ID:???Class関連の使い方はだいたい分かるのですが、
実際に使っていきたいのですが、
どうもとっかかれなくて、書籍もJAVA関連になるので躊躇ぎみで、
こんなところから、とっかかればいいよ、などなど
アドバイスを頂ければと思っています。
宜しくお願いします。
0101nobodyさん
04/08/09 14:35ID:???まずは言語とは無関係にオブジェクト指向が何かを学ぶことをお勧めします。
0102軟式PHP
04/08/09 16:21ID:???Class使えればオブジェクト指向と思ってる100君には
「オブジェクト脳のつくり方」でも読んでみるといいかも。
0103軟式PHP
04/08/09 16:36ID:???憂鬱なプログラマのためのオブジェクト〜も読んでみれ。・゚・(ノ∀`)・゚・。
0104nobodyさん
04/08/09 17:00ID:GoEzAwXJarray_uniqueを使うと、配列から重複した値を削除しますよね。
もし、重複した値を残したければどう処理すればよいでしょうか?
それ専用の命令はありますか??
0105nobodyさん
04/08/09 17:06ID:???0106軟式PHP
04/08/09 17:14ID:???$array1 = array("1","2","3","3","4","4","5","6","7","8","8","9");
$array2 = array_unique( $array1 );
$array3 = array_diff_assoc( $array1, $array2 );
print_r( $array3 );
?>
0108nobodyさん
04/08/09 18:06ID:GoEzAwXJありがとうございました。
array_diff_assocという関数があるのは始めて知りました・・・。
0109nobodyさん
04/08/09 19:11ID:???0110nobodyさん
04/08/09 19:27ID:w1W9HQhoclk(this,'res',15)
(15は正の整数でいろいろ変わる)
という文字列がたくさん含まれている文字列$contentsに対して、
preg_match_all("/,([0-9]+)/",$contents,$matches);
とやると数字がとれるのですが、
preg_match_all("/',([0-9]+)/",$contents,$matches);
や
preg_match_all("/\',([0-9]+)/",$contents,$matches);
とすると数字がとれません。なぜなのでしょうか?
0111nobodyさん
04/08/09 19:59ID:???0112110
04/08/09 20:28ID:???0113110
04/08/09 20:34ID:???でもひっかかりません。ということは、
なにか根本的な勘違いをしてるのでしょうか・・・?
0114nobodyさん
04/08/09 20:44ID:1E04QFET0115110
04/08/09 20:47ID:???0116nobodyさん
04/08/09 21:05ID:lYQyr6Nkリスティング
個別ページ
検索機能
htmlテンプレート
を作りたいが、どこからやればよいか・・・
参考になる本・サイトはありますか?
0117nobodyさん
04/08/09 21:13ID:???2.リスティング
3.検索
4.個別ページ
0.PHP
0118nobodyさん
04/08/09 21:13ID:1E04QFET機能だけ列挙したって意味がない
何が作りたいのかきちんと書け
0119nobodyさん
04/08/09 21:16ID:???0120nobodyさん
04/08/09 21:21ID:???UserAgentは「-」となっているみたい
(確認しました)ですが、
これを任意の文字列に変える方法はありますでしょうか?
0121nobodyさん
04/08/09 21:53ID:???検索してみたんですがそのまま表示するだけの解説しか見つからなくて・・・
よろしくお願いします。
0122nobodyさん
04/08/09 22:11ID:???ホントに検索したのか?!
http://www.php.net/manual/ja/function.imagejpeg.php
012468
04/08/09 22:28ID:Wd+U0VKlコメントをこれ以上長くすると、表示がおかしくなってしまいます。
<?php
// ファイルから読んでいくよ
$fp = fopen("./test.txt","r");
for(;;){
// ファイルから一行読み込む
$line = fgets($fp);
if($line == null)
break;
list($ban,$com) = explode("<>", $line);
// 読み込んだ行を出力する
print "<H4>番号:$ban</H4>";
print "<P>コメント:$com</P>";
}
fclose($fp);
?>
012568
04/08/09 22:31ID:Wd+U0VKlttp://rivernet.cool.ne.jp/upmini/200408a/20040809223111_.txt
0126nobodyさん
04/08/09 22:49ID:???即興で書いてみた。
<?php
$fp = @fopen("./test.txt","r") or die("File open failed");
print("<dl>");
while( ($s = fgets($fp)) != null ){
list($ban,$com) = explode("<>",$s);
print("<dt>{$ban}</dt>");
print("<dd>{$com}</dd>");
}
print("</dl>");
fclose($fp);
?>
0128nobodyさん
04/08/09 23:03ID:uySv1+mCは?頭悪いの?
012968
04/08/09 23:06ID:Wd+U0VKlこれでも駄目です。
0130Imo ◆.jC7ANgFY.
04/08/09 23:54ID:???どういう風に表示されるのか今ひとつわからない。
たぶん、テキスト表示に変わるのかなぁと思ってレス。
もしそれならIEのファイルタイプ自動判断の閾値を超えたのだと思う。
文書に対してタグの割合がある値より少なければテキスト、多ければHTMLと
表示するようになっている。(ちゃんと指定していれば別
要するにHTMLヘッダーをちゃんと書くべきだということ。
文字化けの場合もちゃんとMETAタグを書けば直るし?
0131nobodyさん
04/08/10 00:12ID:???1回のfgetsで行の最後まで読まないから、とか?そういう話?
それならば。
fgetsは行末まで読むとは限らない。
第2引数の指定と、読み込んだデータの最後が改行かどうかのチェックをやる。
って、これじゃなかったらスマソw
0132nobodyさん
04/08/10 00:47ID:???何がどうなのか説明もできないのか?
0133nobodyさん
04/08/10 01:22ID:cuHg/9mk例えば、グラビアアイドルのデータベース検索ページを作るとします。データベースはmysql4.0.20、PHPは4.3.7です。
やりたい事は、フォーム(form.html)からチェックボックスにチェックを入れてもらい、その結果をPHP(search.php)で表示する事です。
form.htmlのフォーム部分
<form action="search.php" method="get">
<!-- 年齢 -->
<table>
<tr>
<td><input type="checkbox" name="age[]" value="19">10代</td>
<td><input type="checkbox" name="age[]" value="20-24">20〜24歳</td>
<td><input type="checkbox" name="age[]" value="25-29">25〜29歳</td>
</tr>
</table>
<!-- バスト -->
<table>
<tr>
<td><input type="checkbox" name="bust[]" value="79">〜79cm</td>
<td><input type="checkbox" name="bust[]" value="80-89">80〜89cm</td>
<td><input type="checkbox" name="bust[]" value="90">90cm〜</td>
</tr>
</table>
<input type="submit" value="検索">
<input type="reset" value="リセット">
この結果をsearch.phpで表示させるにはどうすれば良いでしょうか?
ちなみにsearch.phpはデータベース接続、動的データ取得は可能となっています。
ただ、現在はチェックボックスの検索機能が効かない為、全データが表示されてしまいます。
恐らく、チェックボックス『value="20-24"』がチェックされたら
search.phpでsql文『SELECT * FROM MyDB WHERE age >=20 AND age <=24』が
実行されれば良いのではないかと思うんですが、そのやり方をどなたか教えて下さいませ・・・。
0134nobodyさん
04/08/10 01:36ID:???・・・。夏だね。
switch ($_GET['age']) {
case "19": $sql="age < 20";break;
case "20-24" : $sql="age >=20 and age<=24";break
case "25-29" : $sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;
めちゃくちゃ単純に書いてみた。(これだと問題ありすぎなのはわかってるけどツッコまないで>エロイ人)
これ以上は自分で考えて。
考えられないなら、オマエには向いていないから諦めたほうが良いと思う。
0136133
04/08/10 02:17ID:???早速のお答え、ありがとうございます。
なるほど、caseを使うやり方ですか・・・。
私はてっきり、if〜文で作るのかと思ってました。
しかし難しいですね。なんかアナタのおっしゃるとおり、諦めかけてます・・・
0138133
04/08/10 02:35ID:???仲間内の中では自分が一番知ってるんですよw
いきなり専門外のPHPによるデータベース検索を作らなくてはならなくなったので、
このように四苦八苦している訳です。
perlのcgiみたく、フリーのサンプルスクリプトが全然無いので困ってしまいます。
「PHPによるWebアプリケーションスーパーサンプル」って本も買ったんですが、
私のやりたいようなサンプルがありませんでした。
ネット検索してやっとPHPサンプル見つけても、大体が掲示板とかなんですよね。
まだまだ先は長そうです・・・。
0139nobodyさん
04/08/10 02:47ID:???if ($_GET['age'] == "19") {
$sql="age < 20";break;
}elseif($_GET['age'] == "20-24") {
$sql="age >=20 and age<=24";break
}elseif($_GET['age'] == "25-29") {
$sql="age>=25 and age<=29";break;
}
$result=mysql_query("select * fom MyDB where".$sql) or die;
どこが分からないか分からないけど、
サンプルイジルヨリMySQL+PHPの入門書をサラッとやったほうが、
結構なんとかなると思うよ。がんがれ。
0140nobodyさん
04/08/10 02:50ID:???0141134
04/08/10 02:56ID:???誤字までコピペしなくても・・・
fomって何だよw
・・・あ、俺だ
>>138
専門外って何だよ
ってか、ifを知っていて何でこの処理がわからないんだ??
0142133
04/08/10 03:22ID:???そうそう!最初はそのようにif〜文で記述するんだと思ってた訳です。
確かに134氏の記述はシンプルで良いと思いましたが。
実はMySQL+PHPの入門書はスペンサー・K・OGAWA著の本を持っています。
それにも欲しいサンプルが無かくてそのままにしていたので、
これを機に読み返してみようと思います。
>>134=141
自分はプログラマーでは無い、という意味の専門外という意味です。
コードがシンプルで分かりやすいので、アナタの提案してくれた
caseを使った記述を参考にやってみようと思います。
色々ありがとうございました。
スレ汚し失礼しました。
0143nobodyさん
04/08/10 03:33ID:???Perlで自分の使いたいようなサンプルがあるなら、
それみて(パクって)コーディングした方が早いよ。
caseのデフォルトで何も値が取れなかったときに
$sql="1=1"とでもしとくのが吉。まあwhere条件外すのが正解だけど。
それよかその場合は検索を弾くのが正解かな。仕様がわからんけど
0144軟式PHP
04/08/10 09:09ID:???0145nobodyさん
04/08/10 09:13ID:???0146nobodyさん
04/08/10 11:07ID:???$data = ereg_replace("A", "a", $data);
$data = ereg_replace("B", "b", $data);
↓
$data = ereg_replace("Z", "z", $data);
という(アナログ的な?)方法を使っています。
もっと短くて済む表現はないでしょうか。
本や過去ログ見たり検索しても全然見つからなくて・・・。
初心者な質問ですみません。
0147nobodyさん
04/08/10 11:11ID:???0149nobodyさん
04/08/10 11:40ID:???本当に検索したのか疑問だけど。
$data = strtolower($data);
ttp://jp.php.net/manual/ja/function.strtolower.php
0150nobodyさん
04/08/10 12:08ID:5BcnoGGN動的にグラフをつくりたいのですが、なんとかgifを生成できないものですか?
0151146
04/08/10 12:26ID:???>>147
それやったんですが
$data = 'ABC';
とやると
[a-z][a-z][a-z]と返ってきてたんですよ。
>>149
てっきりereg_replaceだと思い込んでました。
ググっても正規表現関係しか出てこなかったんだけど何かいい検索法とかあるんでしょか。
0152軟式PHP
04/08/10 12:46ID:???0153nobodyさん
04/08/10 12:48ID:???0154軟式PHP
04/08/10 12:55ID:???0156nobodyさん
04/08/10 13:16ID:???文字列の操作についてなにか調べたかったら、
文字列関数をチェック
http://jp.php.net/manual/ja/ref.strings.php
その他、ここからそれっぽいところを探す。
http://jp.php.net/manual/ja/funcref.php
確かにちょっと慣れるまでマニュアルの有効利用ってできないのかも。
0157nobodyさん
04/08/10 13:18ID:???ライセンス切れたから、そろそろimagegifが使えるようになるかも。
もう使える??
ライセンスの問題でgifは使えなくなったんだ。
0158nobodyさん
04/08/10 13:38ID:???0159軟式PHP
04/08/10 13:40ID:???2.0から普通に使えるようになったんじゃないの?
0160nobodyさん
04/08/10 13:58ID:???0161nobodyさん
04/08/10 14:01ID:???4.3.7 で 2.0.23 になったばかりみたいだから。
次のバージョンぐらい?
http://www.php.net/ChangeLog-4.php
0162nobodyさん
04/08/10 14:02ID:???gifにICCプロフィールが埋め込み出来るってのなら別だけど。
0163軟式PHP
04/08/10 14:10ID:???「よっしゃ、広まったところで金取るかーー」っていうのが丸見えで萎え。
0164nobodyさん
04/08/10 14:18ID:???pngも24にすれば屁たれIEでもなんとか透過できるし。
0165nobodyさん
04/08/10 15:51ID:???0168nobodyさん
04/08/10 19:32ID:???0169nobodyさん
04/08/10 19:45ID:???あったよ
http://www.nttdocomo.co.jp/p_s/imode/tag/s3.html#3_6
0170nobodyさん
04/08/10 20:19ID:???対応する気がないみたいだから、まぁ当分はgifかな・・・。
つうか、何故ドコモはPNGに対応しないんだべ。技術不足?
0171nobodyさん
04/08/10 20:27ID:???imodeの昔の端末はGIFでないとダメ
逆にJ-skyの昔の端末はPNGのみ
仕方が無いのでJPEGで吐き出してる
これも一部端末で見られないけど、
最近のはカメラ対応の関係で見られたりするんで
0174nobodyさん
04/08/10 21:43ID:???■ このスレッドは過去ログ倉庫に格納されています