【PHP】下らねぇ質問はここに書き込みやがれpart15
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/01/14(土) 20:06:11ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは流れを見て970/980/990の誰かが建てれ
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
過去スレは>>2
FAQは>>3
0706nobodyさん
2006/01/31(火) 15:55:30ID:???とすると$aにはappleが入りますが
これを
http://hogehoge.com/?apple
などで値を取得しているサイトがあるのですが
どのようにしているのでしょうか?
0708nobodyさん
2006/01/31(火) 16:00:20ID:???みんなはどう?
0710706
2006/01/31(火) 16:55:10ID:SKUvf+xlありがとうございます。
出来ました。
以前http://hogehoge.com/?apple
の?をとって
http://hogehoge.com/apple
でも変数を取れる方法としてhtaccessがありましたが
それ以外は不可能でしょうか?
ディレクトリを無数に作成する方法以外であったら
おねがいします。
0713nobodyさん
2006/01/31(火) 17:25:20ID:???http://tgfans.s9.x-beat.com/698.php
あれ?なんか値段がおかしいwaヽ(´ー`)ノ
0714nobodyさん
2006/01/31(火) 18:41:13ID:???ソースってほどのもんじゃないし今更思ったんだがJSでやった方がよさそうな気もしてきたな。
PHPでするなら取りたい値をvalue=<?=$a?> とかでもたしておいて
計算したいタイミングでfunction cal〜($a,$b){}とか引数つけて呼び出せばok
でもJSみたいに表示させてる値そのまま変えれないと思う多分。どのタイミングで変えたいとかにもよる。
onclickでリロードさせてやるとかせんと駄目かも・・
あと基本的にPHPはサーバ側、JSはクライアント側で動くので・・
間違ってたら補足入れまくってください by 素人勉強中の意見
0715714
2006/01/31(火) 18:42:38ID:???0717nobodyさん
2006/01/31(火) 19:53:15ID:FZIxO5OtDBのテーブルに該当データが何件あるかを調べて、0件であればデータを追加する
という仕組みを作っています。
$query = 'select * from table where id="1"';
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count == 0){
//データ追加
}
該当データが(id=1)1件以上ある場合には、エラーにならないのですが、0件の場合
supplied argument is not a valid MySQL result resource
のエラーが返ってきてしまいます。
select count(*) from table where id="1";
にして、mysql_fetch_array()にしても同様のエラーが返ってきてしまいます。該当の
データが0件でエラーを出さないようにするにはどうすればいいのでしょうか?
0719nobodyさん
2006/01/31(火) 20:16:52ID:???aaa.php?b=c → aaa/b/c/
みたいになるようなやつ
0720nobodyさん
2006/01/31(火) 20:17:55ID:???htmlspecialchars()
mysql_real_escape_string()
ってやってから保存すると文字化けする事がありますか?
0721nobodyさん
2006/01/31(火) 20:33:15ID:???>>706-707 >>710-711
htaccessでのやり方は分かるけど、mod_rewriteはやったことないな。
ググれば出てくるでしょ。
0722nobodyさん
2006/01/31(火) 20:59:56ID:UhWLOiX4と$_POSTの配列を全部htmlspecialchars()でチェックしてるんですが、これでセキュリティ的にバッチグーと言えますか?
$_GETは100%使わないスクリプトです。
0723nobodyさん
2006/01/31(火) 21:07:54ID:???mysql_query($query)がTRUE(ついでにFALSEの場合も実装しとけ)を
返す時の処理を追加。
0724nobodyさん
2006/01/31(火) 21:37:28ID:???Apacheのmod_rewriteがそれ。
もしくは aaa.php?b=c → aaa.php/b/c/ なら PATH_INFO
0727nobodyさん
2006/01/31(火) 22:12:15ID:UhWLOiX4つまり馬鹿と天才は紙一重と言いたいわけですね。ありがとさんです。
0728nobodyさん
2006/01/31(火) 22:24:07ID:???メールを送って更新しても投稿されません。
サーバーはロリポップです。config.phpの設定は
// 受信メールサーバーの設定
// POP3サーバー
$host = "mailxxx.lolipop.jp";
// ユーザーID
$user = "lolipop.jp-dpxxxxxxxx";
// パスワード
$pass = "xxxxxxx";
としました。ここと更新後のジャンプ先と
対応MIMEサブタイプだけjpgにしてあとの全てはデフォルトです。
どうすれば正常に使えるようになるでしょうか?
よろしくお願いします。
0729721
2006/01/31(火) 22:43:58ID:???aaa/b/cでも、htaccess+PATH_INFOでいけるよん。
aaa.phpをaaaにリネームして、
htaccessで
<FilesMatch "^aaa$"> ForceType application/x-httpd-php </FilesMatch>
aaa(.php)で
$data = explode("/",$_SERVER('PATH_INFO'));
後は$dataを適当に利用。
0730nobodyさん
2006/01/31(火) 23:00:39ID:JNPr6KIKPHP+GDでV602SHで撮った写真を、ImageCreateFromJPEGで開こうとすると、
'XXXXXXXX.jpg' is not a valid JPEG file
となります。
GDで開けないJPEGファイルというのは存在するのですか?
ちなみにIEでは普通に見れますが、
Photoshopでは挙動がおかしく、一度上書きしてEXIFの情報をリセットしないと別名での保存ができません。
0731nobodyさん
2006/01/31(火) 23:49:51ID:sD84bde5$a1="onetwethree";
$a2="onethree";
$a3="one";
のような状態で、検索をかけて文字列にマッチする場合のみtrueを返したいです。
検索条件は
oneとtweで検索すると$a1が
oneとtweとthreeで検索すると$a1が
oneで検索すると$a1,$a2,$a3が
という風にしたいのですが、おそらくeregを使うと思うのですが書き方がわかりません。
どなたかお願いいたします。
0732nobodyさん
2006/01/31(火) 23:59:36ID:???一発でやろうとしないで、条件語句をひとつずつつき合わせながらフラグでも立てるが吉
それよりも、英語の勉強をやり直した方が良いぞ。
0734nobodyさん
2006/02/01(水) 00:10:26ID:???>GDで開けないJPEGファイルというのは存在するのですか?
あるよ。詳しく調べてないけど。
GDじゃなくても、Windowsの画像ビュアーでも
ツールによって大丈夫なJPEGと駄目なJPEGとかがある。
ZIPとかRARなどのアーカイブも似たような対応度の差異があるね。
0735734
2006/02/01(水) 00:17:22ID:???やりくりを考えるなら、そっちを調べた方がいいかも。
0736731
2006/02/01(水) 00:21:04ID:ECRbG5Uq英語は苦手で・・・
フラグの使い方をご伝授いただけないでしょうか?
ソースお願いします
0738730
2006/02/01(水) 01:13:38ID:o8148rQEありがとー
libjpeg調べてみるよ。
0739nobodyさん
2006/02/01(水) 01:22:17ID:???$a1="onetwethree";
$a2="onethree";
$a3="one";
foreach(split(" ", $_GET["search"]) as $g) { //検索単語はsearchに空白区切りで入るとする
$search .= "(?=.*$g)";
}
foreach(array($a1, $a2, $a3) as $a) {
if(preg_match("/$search/", $a)) $ret[] = $a;
}
var_dump($ret);
0740731
2006/02/01(水) 01:38:00ID:ECRbG5Uq丁寧な説明付きでありがとうございます。
今入れ替えてみたところ動作いたしました。ありがとうございました。
0741nobodyさん
2006/02/01(水) 03:03:03ID:???0743nobodyさん
2006/02/01(水) 10:14:22ID:???1.PHP5純正のSOAP
2.PEARのSOAP
3.NuSOAP
どれがお奨めですか?
0744nobodyさん
2006/02/01(水) 13:16:22ID:???まがい物入れたりできねーんだ。
純正の1にしておけ
foreach(){
array_push()
}
こんな感じで1個ずつ入れていくしかない??
0747nobodyさん
2006/02/01(水) 14:52:03ID:???array_push()やarray_unshift()は複数のデータをまとめて追加できる。
他にもarray_merge()やarray_splice()なども同様で、配列のどの位置に追加したいかで使い分け。
0750nobodyさん
2006/02/01(水) 15:20:16ID:???$array[] = 値; を使うことを推奨してるくらいだ
0752nobodyさん
2006/02/01(水) 16:32:45ID:???こういう場合はSQL内でLIMIT(OFFSET)を使い取得するデータを選ぶほうがいいのか
全部取得してしまってPHPで表示するのを取捨選択するのとどっちがいいでしょうか。
LIMIT使うほうがサーバへ負荷が少なくて済みそうな気がするんですが
この場合、全部で何件のデータがあるのか調べる場合
もう一度SQL打たないと駄目でどっちにすべきか迷ってます。
0754軟式PHP
2006/02/01(水) 16:55:11ID:???総件数を表示したい。とかいう場合でなければ
offset 位置 limit 表示数 + 1
で取得すれば、次のページが必要かどうかわかるお。
0755nobodyさん
2006/02/01(水) 16:58:50ID:???AとBの2つの乱数を生成した時に、
乱数の値がかぶってしまった場合に、
再びやりなおすといった処理はどのようにやればいいのでしょうか?
ヒントがあれば教えていただければありがたいです。
srand();
$i[] = rand(1, 5);
$i[] = rand(1, 5);
echo "{$i[0]}\t";
echo "{$i[1]}\t";
0756軟式PHP
2006/02/01(水) 16:59:39ID:???0757nobodyさん
2006/02/01(水) 17:01:29ID:???MySQLの機能で。
0758nobodyさん
2006/02/01(水) 17:10:50ID:???$i[] = $a = rand(1, 5);
while(($b = rand(1, 5)) == $a) 1;
$i[] = $b;
echo "{$i[0]}\t";
echo "{$i[1]}\t";
0759755
2006/02/01(水) 17:14:35ID:???おぉー。お早い回答ありがとうございます。
早速100回ほど試行したところ1回もかぶりませんでした。
しかし仕組みがわからないorz
マニュアル引いて勉強してきます。
どうもありがとうございました。
0760757
2006/02/01(水) 17:23:01ID:???LIMITした方がいいと思う。
Webサーバーは簡単に増やせるけど、DBサーバーは増やそうと思っても面倒だし。
で、LIMITしたときの全件取得方法。
SQLの話だけど、まあいいかな?
FOUND_ROWS()
http://dev.mysql.com/doc/refman/4.1/ja/miscellaneous-functions.html
PHP側では結局2回クエリー発行することになるけど、MySQLはきっと楽なはず。
0762752
2006/02/01(水) 17:33:09ID:???うおおお!ありがとうございました。
勉強不足でしたすいません。
データ数によっては>>753氏の言うように全件取得し
count()もよさそうですね。
>>ALL
SQLの話になり申し訳ない
0763nobodyさん
2006/02/01(水) 18:03:21ID:xx2TLFWy一端splitで切って配列にしてから…って以外にないのでしょうか?
0765763
2006/02/01(水) 18:36:57ID:xx2TLFWy例えば、
「あけましておめでとうございます。今年は戌年です。去年は猿年です。来年は猫年です。」
と言う文章があって、
この文章の"。"の3個目までを取り出したいとき、です。
わかりずらくてスマソ。
0767765
2006/02/01(水) 18:53:07ID:xx2TLFWyやっぱそれしかないのでしょうか。
変数の中が大量でも遅くなったりしないのでしょうか?
0769nobodyさん
2006/02/01(水) 19:20:24ID:???だめ?
0771nobodyさん
2006/02/01(水) 19:24:20ID:???やりたいことが良くわかんないけど、
前方から"。"をサーチ&カウントして目的の位置を取得
文字列の頭から目的の位置までを抜き出せば良いんじゃないの。
オーソドックスでベタなやり方だけど、別に問題がある訳でもないと思うが。
0772nobodyさん
2006/02/01(水) 21:06:32ID:???改行コードの前に改行数をつけるような処理をしたいのですが、
うまくいきません。
preg_replaceで置き換えるようにしてるのですが、ループのところでつまってしまいます・・・。
$temp = $_POST['temp']; //テキストエリアから取得したもの
function hoge($str,$count)
{
preg_replace("/\r\n/",$count."\r\n",$str);
}
hoge($temp);
こんな感じにして、どういう風にループをまわせばよいのか・・・。
ループの終了条件を取得するために改行数を取得しようとしましたが上手くいかず・・。
どなたかご教授いただけると幸いです。
0773nobodyさん
2006/02/01(水) 22:02:29ID:???〇ご教示
まず日本語を(ry
0774nobodyさん
2006/02/01(水) 22:36:17ID:???バージョンは5.x.xのものを使えばいいんでしょうか?
0775765
2006/02/01(水) 22:39:48ID:fBKX7o67実際は、
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
と言う変数があったとして、
ブラウザで表示させた時の2行目までを取り出したいのです。
なので、文字列<br>が2個目までのモノを取り出したい、という事で…。
0776nobodyさん
2006/02/01(水) 22:46:38ID:???おまえしつこい。
>>771の通りだろうが。
「。」を「<br>」に置き換えりゃ済むことだろうに。
それとも何か?
ソース丸ごと書かなきゃ満足しないのか?
だったら、ホカイケ。
0777nobodyさん
2006/02/01(水) 22:53:38ID:???$temp $_POST['temp'];
print preg_replace('/(\r\n)/', '(++ $i) . "$1"', $temp);
0778nobodyさん
2006/02/01(水) 22:54:55ID:???書き間違い
$temp $_POST['temp'];
↓
$temp = $_POST['temp'];
0780nobodyさん
2006/02/01(水) 23:08:38ID:???それがhttpかhttpsのどっちで通信されているかを
判断する方法を教えていただけませんか。
よろしくおねがいします。
0781765
2006/02/01(水) 23:16:50ID:fBKX7o67>>769
>>770
サンプルありがとー。
でも、正規表現よりは配列に格納した方がいいのか〜。
なるほど。ありがと。
>>779
そっか。じゃあ素直に…とりあえず報告。
↓↓↓↓↓
//----------------------------------
//ブラウザに2行分だけ表示させる
//----------------------------------
$hoge="今日から2月。<br>昨日は1月。<br>明日も2月。<br>そして水曜日。"
//<br>ごとに配列に格納
$hoge_array=explode("<br>", $hoge, 3);
//2番目の配列だけを表示
for($nCnt=0; $nCnt<=1; $nCnt++){
echo $hoge_array[$nCnt] ."<br>\n";
}
>>776
お門違いですぜ。
0783nobodyさん
2006/02/01(水) 23:27:42ID:???0784nobodyさん
2006/02/01(水) 23:48:44ID:???echo "string is $HOGE";
という動作を期待して
define(HOGE, 'hoge');
echo "string is HOGE";
と書いてもうまくいきませんよね。
echo "string is ". HOGE;
とすればいいのですが、あまり" "で分けたくありません。
一気に書く方法ってありませんでしょうか。
0785nobodyさん
2006/02/01(水) 23:53:51ID:???他のサーバからなら http://hogehoge.com/hoge.cgi をfopen出来たんです。
0786784
2006/02/02(木) 00:09:00ID:???echo "string is {HOGE}";
echo "string is {constant(HOGE)}";
echo "string is {constant('HOGE')}";
全部うまくいきませんでした。
0788nobodyさん
2006/02/02(木) 00:13:45ID:???echo "orenge : $HOGE1\n apple : {$HOGE2}\n banana : $HOGE3\n
0789nobodyさん
2006/02/02(木) 00:16:31ID:???>>788
短いならいいんですが、長くなると
echo "orenge : {$HOGE1}\n apple : {$HOGE2}\n banana : {$HOGE3}\n";
は綺麗ですが、
echo "orenge : ". HOGE1. "\n apple : ". HOGE2. "\n banana : ". HOGE3. "\n";
は見難いからです。
HTMLのソースを出力するときにクオーテーション(' ')などが含まれると
さらに見づらくなります。
0790nobodyさん
2006/02/02(木) 00:20:59ID:???$orange = 3;
$apple = 5;
$banana = 10;
echo "<a href='index?orange={$orange}&apple={$apple}&banana={$banana}'>";
上をdefine使って定義した場合、
define(ORANGE, 3);
define(APPLE, 5);
define(BANANA, 10);
echo "<a href='index?orange=". ORANGE. "&apple=". APPLE. '&banana='. BANANA. "'>";
となります。下は見づらくないでしょうか。括弧の対応関係がよくわからなくなります。
define使わないほうがいいんでしょうか・・
0791nobodyさん
2006/02/02(木) 00:21:25ID:???http://jp2.php.net/manual/ja/ref.filesystem.php#ini.allow-url-fopen
あと例に使うドメインはexample.comな。 決まりごとだから守れよ。
0795nobodyさん
2006/02/02(木) 00:32:26ID:???$sid = SID;
としてから$sidを使うという事ですか?
0796nobodyさん
2006/02/02(木) 00:34:10ID:???どうしても見難くていやなら関数用意して定数放り込むようにしたらどう?
0797nobodyさん
2006/02/02(木) 00:34:27ID:???ちょっと心持気持ち悪いですが。
ただ、defineのままできる方法があるのかなと思いまして。
結局ないんでしょうか。
0798nobodyさん
2006/02/02(木) 00:37:52ID:???リンク張るときに
echo "<a href='http://". URL_WEB_SERVER. "/". THIS_FILENAME. "'>hoge</a>";
とか。結構使うんですが、こういうのってやめたほうがいいですか?
全部変数にするべきですかね。
0799nobodyさん
2006/02/02(木) 00:39:50ID:???すごいショック。
ほんとだマニュアルにも確かにそう書いてある・・・。
マニュアルは結構まめに確認するほうだけど、完全に見落としてた。
0800nobodyさん
2006/02/02(木) 00:40:03ID:???いや。そのままで良いんじゃないの。
784はその書き方が気持ち悪いみたいだから関数用意したらって言っただけだよ。
0801nobodyさん
2006/02/02(木) 00:43:25ID:???echo "{HOGE}";
でHOGEの中身が出力されるって仕様があってもいい気がするんですけどねー。
しないのは何か理由があるのかなあ。
0803nobodyさん
2006/02/02(木) 00:48:36ID:???変数じゃなくって定数にしなきゃいけないって状況がある?
これも単なる興味の質問だけど
0804nobodyさん
2006/02/02(木) 00:50:20ID:???セッションを使ったi-mode向けの掲示板を作っているのですが、
前のページに戻る際なんかにキャッシュが効かなくなりました。
毎回通信して読み直しています。この方が都合が良いといえば良い
のですが・・・。(D901iで検証しています)
PCではキャッシュが効いているようなのですが、これはi-modeの
仕様なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています