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

【PHP】下らねぇ質問はここに書き込みやがれpart18

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/15(水) 19:18:21ID:yiOrS10N
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/

過去スレは>>2-3あたり
0267nobodyさん2006/03/21(火) 04:03:31ID:???
質問です

もし文中にAと言う単語を含むならC、Bと言う単語を含むならD、と言った風に条件分岐させるにはどうすればいいのでしょうか

function test($var) {
if($var == a) {
return c;
}else{
0268切れちゃいましたすみません2006/03/21(火) 04:04:39ID:???
return d;
}
}

こんな感じにしてみたいんですが、if($var == a)この部分をどう表現すれば良いのかわかりません
0269nobodyさん2006/03/21(火) 04:08:34ID:???
見ただけでウイルスに感染してしまうサイトを携帯で見てしまった場合、どうやってウイルス駆除するんでしょうか?
0270nobodyさん2006/03/21(火) 04:11:16ID:0DB4pSWb
2005/3/4 や 2006/11/23 のように日付が変数に格納されているのですが、これを 20050304 や 20061124 のように数値化するにはどうすればいいのでしょうか?

よろしくお願いします。

0271nobodyさん2006/03/21(火) 04:56:08ID:???
>>267
$q = preg_quote($A);
if (preg_match("/^$q\$|^$q\\W|\\W$q\$|\\W$q\\W/i", $var))
// もっといいやり方あるかも・・・

>>270
(int) date('Ymd', strtotime($str));
0272nobodyさん2006/03/21(火) 04:56:27ID:???
>>267
よし、正規表現を勉強してきなさい。
難しくないからさ。簡単にで良いから。
ちなみにそのif分では、$varの中身がaかどうか、になってしまうよ。

>>269
よし!スレタイを百回読み直して来い!

>>270
俺ならsplitして文字列結合しちゃう。
0273nobodyさん2006/03/21(火) 05:19:42ID:???
>>270
>2005/3/4 や 2006/11/23
1桁があるなら俺は>>271だな
0274nobodyさん2006/03/21(火) 08:37:01ID:FCNG8e7g
MySQLを使えるようになろうと思っているのですが
レンタルサーバーでの利用のため、少し利用に制限があります

ID名でデータベース名が与えられているのですが、実際にこの中に数値云々をいれて
それを閲覧するにはどのようにすればいいんでしょうか?
また、テーブルって複数の独立したものをいくつも作れるんでしょうか?
いったん作ったものって消えないんですか?どうやって確認すれば?

疑問がいっぱいです。webで調べてもあまり納得のいく説明がなかったもので・・・・
0275nobodyさん2006/03/21(火) 08:49:24ID:???
君はまずDBスレあたりで勉強しなさい
ここはPHPスレです
0276nobodyさん2006/03/21(火) 08:53:09ID:FCNG8e7g
phpでユーザーリスト管理しようとおもってたのですが・・・・残念です
0277nobodyさん2006/03/21(火) 09:19:13ID:???
>>276
見てないとは思うけど
275はphp以前の問題だと言いたいんだと
まず、MySQLやSQLを知ってからphpをやれと。一度になんでもかんでも理解できるのか?
まわり道のようで一直線。
0278nobodyさん2006/03/21(火) 09:40:16ID:???
phpじゃなくてDBで管理すべき。
何でもエクセルで処理しようとしてるようなもの。適材適所で使い分けるべき。
0279nobodyさん2006/03/21(火) 09:44:24ID:???
>>278
は流れが分かって無いような気がする・・
0280nobodyさん2006/03/21(火) 10:21:01ID:???
>>228
BOMがつく
0281nobodyさん2006/03/21(火) 10:32:31ID:???
>>274
>疑問がいっぱいです。webで調べてもあまり納得のいく説明がなかったもので・・・・
PHPとMySQLって単語の両方が書名に入ってる本を数冊本屋で買って来い。
0282nobodyさん2006/03/21(火) 11:33:21ID:???
数冊も買わすのかw
0283nobodyさん2006/03/21(火) 13:36:26ID:???
$aにAが含まれていたらの場合のif分はどうなるのでしょうか。

if ($a == "A") {
echo "Aが含まれています。";
}

条件の設定方法がよくわかりません。
教えてください。
0284nobodyさん2006/03/21(火) 13:53:46ID:FDfwTN3i
>>283
if(ereg("A", $a))
0285nobodyさん2006/03/21(火) 14:00:15ID:???
>>283
それは、$aが"A"に一致する場合の条件式。
やりたい事は「文字列の中に含まれているかどうか」なので、
マニュアルの関数の分類で、文字列に対するものを探してみる。
ttp://www.php.net/manual/ja/

そのまんま、「Strings(文字列関数)」って分類がある。
それをクリックすると文字列に関係する関数の一覧表が表示される。
で、説明文を読みながら使えそうなものが無いか探していくわけだ。

・strcmp -- バイナリでも使える文字列比較 、ってのが使えそうだなと思ったら、
さらにクリックして詳しい内容を見ていく。
するってーと、$a == "A"と同じように一致するかどうかを調べる関数だと分かる。使エネ。

・stripos -- 大文字小文字を区別せずに文字列が最初に現れる位置を探す
今度はこいつが目に付く。読んでみると、falseじゃなきゃ指定した文字が含まれると判断してよさそうだ。
更に他の関数にも使えそうなものはあるが、大体こういう感じで探していくことになる。
0286nobodyさん2006/03/21(火) 14:01:54ID:???
>>284
ありがとうございます。できました。
>>285
なるほど。マニュアルの使い方も大事ですね…。
0287nobodyさん2006/03/21(火) 15:43:06ID:???
一つの関数で二つの値を返す場合って、

function A {
return a;
return b;
}

で良いのでしょうか?

これでやってみたんですが出来なくて……
0288nobodyさん2006/03/21(火) 15:50:28ID:???
>>287
二つも返せません
0289nobodyさん2006/03/21(火) 15:55:00ID:???
>>287
マニュアルのreturnのページを見ると、
> 関数内で呼び出されると、return()文は即座にその関数の実行を停止し、引数を関数の値として返します
とある。読んだ通りだな。

で、複数の値を返す場合はどうすりゃいいのかってーと、
・配列を返す
・リファレンスを返す
つーやり方がある。
0290nobodyさん2006/03/21(火) 15:57:27ID:???
>>288
やっぱり無理なんですか……
文中のURIとメアドを抜き出して自動リンクする関数を作りたかったのですが、
個々を作ることが出来てもそれを一つに纏めることが出来なくて困っているんです

function autolink($A) {
return preg_replace(URIの自動リンク);
return preg_replace(メアドの自動リンク);
}

みたいに出来ないかなーと思っていたのですが、
もしこうする場合はどうすれば良いのでしょうか?
0291nobodyさん2006/03/21(火) 16:11:00ID:???
$DATA[1]のなかのALT="aあ"をpreg_replaceで空白に変換しようとしたら変換できません。
preg_replace("/ALT=\"([^^]*)\"/","",$DATA[1]);
これでやっても無理だったんですがどこが間違っているでしょうか!?
0292nobodyさん2006/03/21(火) 16:11:40ID:???
([^^]*)
0293nobodyさん2006/03/21(火) 16:15:21ID:???
何その顔、ふざけてるの?
0294nobodyさん2006/03/21(火) 16:18:20ID:???
自分で分かりやすく^以外をヒットにしようと思いまして。
0295nobodyさん2006/03/21(火) 16:18:42ID:???
>>293
(@�u@ .:;)ノシ
0296nobodyさん2006/03/21(火) 16:28:04ID:???
'/ALT=\"[^^]*?\"/',' '
ALT="aあ"なのかALT="任意の文字"なのかわからんがな。
0297nobodyさん2006/03/21(火) 16:30:21ID:???
>>290
preg_replaceは配列で正規表現を使える
マニュアル参照しる
0298nobodyさん2006/03/21(火) 16:38:56ID:???
>>296
アルファベットと漢字が混じってるんです。
漢字が入るとpreg_replaceで置換できないとかはあるのでしょうか!?
0299nobodyさん2006/03/21(火) 16:45:57ID:???
PHPで配布しているRSSを表示させる事は出来るのでしょうか?
出来たらやり方を教えて欲しいです。(検索語句など)
0300nobodyさん2006/03/21(火) 17:30:39ID:???
日本語でおk
0301nobodyさん2006/03/21(火) 17:33:30ID:???
>>297
配列出来たんですか、知りませんでした
おかげで何とかやりたいことが出来るようになりました
ありがとうございました
0302nobodyさん2006/03/21(火) 18:11:13ID:???
>>299
ごめん。日本語として解釈できません。
PHPで配布しているRSSってなんだ?
0303nobodyさん2006/03/21(火) 18:29:51ID:???
>>299
http://pear.php.net/manual/ja/package.xml.xml-rss.php
なんかPEAR重いな…
0304nobodyさん2006/03/21(火) 19:29:59ID:???
>302
特定(じゃないかもしれないが)のサイトで配信している
RSSを読み込んで出力するものを作りたいって事じゃないか?
0305nobodyさん2006/03/22(水) 00:35:33ID:E+eV7vwA
>>299
つ
http://pear.php.net/manual/en/package.xml.xml-rss.example.php
0306nobodyさん2006/03/22(水) 00:47:21ID:w0U7WoXt
MySQLを利用する際にPHPからテーブルを作成することってできるんですか?
0307nobodyさん2006/03/22(水) 01:12:41ID:???
>306
全ての SQL は mysql_query で出来る
0308nobodyさん2006/03/22(水) 01:59:18ID:???
>>306 == >>274
と粘着してみる

やっと具体的な質問が出来たなGJ
PHPからMySQLのテーブルを作成できるし、操作出来る。
0309nobodyさん2006/03/22(水) 04:52:32ID:???
とても↓のような感じのシンプルな掲示板を作ろうと思っています。

---
21.名前:管理人
こちらこそよろしくお願いします

20.名前:ななし
はじめまして。よろしくお願いします
---

DBでなくテキスト管理の場合において、記事の投稿・表示に関してもっとも効率が良い
と思われる処理の流れ(ごく一般的なものでも構いません)はどのようなものでしょうか?
ソースである必要はないので、処理の流れを書いていただけませんか?
日本語が下手なのでうまく伝わらないかもしれませんが、よろしくお願いしたします。m(_ _)m
0310nobodyさん2006/03/22(水) 04:58:39ID:???
すいません、>>290で質問した者で、>>297のおかげで解決したんですが、
何故かまた出来なくなってしまいました。

>>301の時点では確かに出来ていて確認したのですが、
今になってもう一度確認してみるとなんか変なことになってしまっているんです。

function autolink($url){
return preg_replace(
array(
"/((https?|ftp|news):\/\/|www\.)([\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/e",
"/[\\d\\w\\.\\-_]+@[\\d\\w\\-_\\.]+?\\.[\\w]{2,3}(\\.[\\w]{2,3})?/i"
),
array(
"'<a href=\"'.('$1' === 'www.' ? 'http://' : '').'$1$3\" title=\"$1$3\">$1$3</a>'",
"<a href=\"mailto:$0\" title=\"send a mail to $0\">$0</a>"
),
"$url"
);
}

作ってみたのはこんなのなんですが、何故だか$1$3'", "$0" ), "$url" ); } ?>と表示されて、$0の部分にアンカー張られちゃってます。
何かを弄った覚えは全く無いのですが、何か問題があるのでしょうか?
ちなみにこの後にもいくつか試しに書いてみたんですが、全て何も処理されません……。
0311nobodyさん2006/03/22(水) 05:30:49ID:???
>>310
なんていうか凄い正規表現ですね・・・。
0312nobodyさん2006/03/22(水) 05:48:00ID:uySCvhL9
>>310
$1$3'", "$0" ), "$url" ); } ?>と表示されて、$0の部分にアンカー張られちゃってます。

ってスクリプトの一部が表示されているということ?
$0の部分にアンカー張られちゃってます。というのがよくわからん
一部分だけを説明すると人に伝わらない場合が多い。てか俺にはわからんです。
0313nobodyさん2006/03/22(水) 06:37:28ID:???
>>312
そうです、スクリプトの一部がそのまま表示されてしまっているんです。
$0の部分は<a href="mailto:$0" title="send a mail to $0">$0</a>となっています。
0314nobodyさん2006/03/22(水) 06:42:56ID:???
で、それはどういう文字列を渡した時にそんな風になったの?
0315nobodyさん2006/03/22(水) 06:50:12ID:???
チェックするために適当なURLとメールアドレスをやってみました。
die(autolink("http://www.google.comあああああああああ[email protected]"));
こんな感じです。
0316nobodyさん2006/03/22(水) 07:04:12ID:???
>>315

310の関数の上に
die(autolink("http://www.google.comあああああああああ[email protected]"));

結果
<a href="http://www.google.com" title="http://www.google.com">http://www.google.
com</a>あああああああああ<a href="mailto:[email protected]" title="send a mail
to [email protected]">[email protected]</a>

問題は何?
0317nobodyさん2006/03/22(水) 07:23:06ID:???
>>316
いや、その何が問題なのかが解らなくて。
>>301でやったときには正常に何も問題はなかったのですが、
>>310のときにもう一度開いてみたらスクリプトがそのまま表示されていたとしか。
0318nobodyさん2006/03/22(水) 07:30:05ID:???
いやだからさ
310の関数の上にdieをコピペしてるわけだよ。
でCLIだけど走らせたらという結果なわけ。
316の結果ならいいわけでしょ?

一度単純化して自分でやってみれ。↑のように
多分本番用のスクリプトは他に色々書いてあるだろうけど、とりあえず
何が問題かを「切り分ける」ために単純化して確認するのは定石だと思うけどな。
0319nobodyさん2006/03/22(水) 07:38:21ID:???
いや、書いてあるスクリプトは>>310と>>315だけです。単なる練習用としてなので。
配列をなくしてシンプルにURLの自動リンクだけでやってみたりもしたんですが無理でした。
0320nobodyさん2006/03/22(水) 07:49:19ID:???
とりあえずさ、だめとか無理とか言う前に以下コピペ、なんかファイル作って
$php hoge.php
やってみれ。

<?php
die(autolink("http://www.google.comあああああああああ[email protected]"));
function autolink($url){
return preg_replace(
array(
"/((https?|ftp|news):\/\/|www\.)([\w\.\~\-\/\?\&\+\=\;\@\%\:\#\%]+)/e",
"/[\\d\\w\\.\\-_]+@[\\d\\w\\-_\\.]+?\\.[\\w]{2,3}(\\.[\\w]{2,3})?/i"
),
array(
"'<a href=\"'.('$1' === 'www.' ? 'http://' : '').'$1$3\" title=\"$1$3\">$1$3</a>'",
"<a href=\"mailto:$0\" title=\"send a mail to $0\">$0</a>"
),
"$url"
);
}
?>

俺はこれで316の結果が出てるが?
デバッグの方法というかアイデアも考えてバグを無くすということを含めて「プログラムを作る」ってことだぞ
0321nobodyさん2006/03/22(水) 07:54:13ID:???
>>320
新しいファイル作ってコピペしてみましたが、

結果:
$1$3'", "$0" ), "$url" ); } ?>

>>310と全く同じです……。
0322nobodyさん2006/03/22(水) 08:07:10ID:???
まさか結果は「ブラウザの表示」じゃねえだろうな?

まぁ俺は優しいから怒らないが、ブラウザの表示をコピーしてるなら
ブラウザでソースを見てみろ。
0323nobodyさん2006/03/22(水) 08:14:38ID:???
ソースを見てみましたが、スクリプトがそのまま表示されてました。
0324nobodyさん2006/03/22(水) 08:22:14ID:???
LinuxでPHPとpostfixインストールしました。
PHP.iniの設定で、sendmailのパスは記入しました。
気になったのですが
; For Win32 only.
SMTP = localhost ←
smtp_port = 25   ←
             の2行はコメントアウトしておけばよいのでしょうか?

0325nobodyさん2006/03/22(水) 08:37:14ID:???
>>324
添付の基になるiniファイルでは最初からコメントアウトされてない?
Windows以外では意味がない値なので、別にそのままでも良いけど
不要なものはコメントアウトしとくのが正しい。
03263242006/03/22(水) 08:43:13ID:???
>>325
sendmail_from = [email protected]
の方はコメントアウトしてあったのですが
先の2行については何故かコメントアウトされてませんでした。

どうもありがとうございました、すっきりしました。
0327nobodyさん2006/03/22(水) 09:15:02ID:???
>>321
あああ とかの2byteを止めて AAA とかで試してみ
0328nobodyさん2006/03/22(水) 09:26:57ID:???
いいいいいいぃ
0329nobodyさん2006/03/22(水) 11:32:48ID:???
>>280
爆弾つきか…
0330nobodyさん2006/03/22(水) 11:40:53ID:???
>>323
phpが動いてないだけじゃんw
0331nobodyさん2006/03/22(水) 12:20:10ID:???
最後に
?>
がくっ付いているのを見た時点で気付くべきだったか
0332nobodyさん2006/03/22(水) 13:29:16ID:???
phpが動いてないって・・
0333nobodyさん2006/03/22(水) 15:20:34ID:???
おまいらエスパーだな。
漏れにはさっぱりだよ。
0334nobodyさん2006/03/22(水) 15:32:28ID:???
ttp://www.nintendo-inside.jp/review/

こういうスクリプトどっか配ってねーかな?ねーよな。
やっぱ自分で書かないとダメか。マンドクセ('A`)・・・
0335nobodyさん2006/03/22(水) 15:44:27ID:???
>>334
独り言はチラシの裏にでも書いてろ
03363342006/03/22(水) 15:46:11ID:???
>>335
よし、じゃあ言い直すぞ!

質問させて下さい。
ttp://www.nintendo-inside.jp/review/
上記サイトのような評価スクリプトに似たようなものを
どこか配布してないですか?教えてください!

どうだ、これでいいだろう。
0337nobodyさん2006/03/22(水) 15:48:15ID:???
>>336=334
お前、男前だな。ほれそうになった
0338nobodyさん2006/03/22(水) 15:55:23ID:???
じぶんで書けばいいじゃん
0339nobodyさん2006/03/22(水) 16:03:32ID:w0U7WoXt
>>336
いくら?
0340nobodyさん2006/03/22(水) 16:13:56ID:???
>>339=306
まさか君が作ってお金貰おうとしてる訳?
03413342006/03/22(水) 16:18:18ID:???
>>337
ケツは勘弁してくれ

>>338
ああ、そうするよ('A`)

>>339
なんでいきなり見積もりの話になってんだよ。
自分で書くっつってんだろ。
0342nobodyさん2006/03/22(水) 16:22:40ID:???
何にせよ現状のID:w0U7WoXtが作ったもんは売り物にならんだろうなw
0343nobodyさん2006/03/22(水) 16:24:35ID:w0U7WoXt
MySQL使わなきゃできると思います・・・・
0344nobodyさん2006/03/22(水) 16:25:56ID:w0U7WoXt
データベース使わなきゃ ってことです

お金くれなんていいませんけど、自分も少しほしいなって思ったもので
0345334じゃないけど2006/03/22(水) 16:35:03ID:???
>>344
いくらならやってくれるの?
0346nobodyさん2006/03/22(水) 16:40:00ID:???
おもしれー。DB使わないでどのくらいまともに動くんだろw
0347nobodyさん2006/03/22(水) 16:52:41ID:???
別にDBなくても作れるだろうけど効率悪くなるな
0348nobodyさん2006/03/22(水) 16:59:28ID:w0U7WoXt
ちょっと力試しだと思ってやってみますね

これからバイトなので帰ってきてからになりますが
03493342006/03/22(水) 17:02:54ID:???
「バイトだから帰ってからやるよ」
そういい残して ID:w0U7WoXt はいずこかへ消えてしまった。
その後、彼の姿を見た者はいない。
0350339 ◆DzhKJ9tfAw 2006/03/22(水) 17:07:58ID:w0U7WoXt
('A`)
0351nobodyさん2006/03/22(水) 17:08:12ID:???
ID:w0U7WoXt の人気に嫉妬
0352nobodyさん2006/03/22(水) 17:27:52ID:???
検索条件がいっぱいあるからDB使った方が100倍楽そうだな
0353nobodyさん2006/03/22(水) 17:41:37ID:???
ソートとか特に面倒くさそうだな。がんばってね。^^
0354nobodyさん2006/03/22(水) 18:33:22ID:???
◆DzhKJ9tfAw --> #ぬこ
0355 ◆DzhKJ9tfAw 2006/03/22(水) 18:51:53ID:???
>>354
0356339 ◆DzhKJ9tfAw 2006/03/22(水) 19:05:13ID:???
おれもおれも
0357 ◆DzhKJ9tfAw 2006/03/22(水) 19:17:24ID:???
じゃあ俺がPHP5+SQLiteで作ろう
0358357 ◆DzhKJ9tfAw 2006/03/22(水) 19:35:03ID:???
でも評価対象の詳細がわからないとテーブル作れないな
>>334自分で作れ
0359nobodyさん2006/03/22(水) 20:50:49ID:???
そもそも>>334はスレ違いだろ。
スクリプト探してます系のスレは別スレにあるはず。
0360nobodyさん2006/03/22(水) 21:01:16ID:???
>>359
おまいさん、クラスのみんなが盛り上がってるときに、生徒手帳に書いてある規則を言い出すタイプだろ。
0361339 ◆HcpLxCrZaE 2006/03/22(水) 21:50:01ID:w0U7WoXt
帰ってきたんですけど
必要ですか?
0362nobodyさん2006/03/22(水) 21:52:56ID:???
うるせー作りたきゃ作って勝手に投下しやがれボケナス
03633342006/03/22(水) 22:00:07ID:???
ID:w0U7WoXt は逃げずに帰ってきた。
「作った方がいい?」
彼はそう言い残すと静かにスレを去っていった。
これでいい。これで作らなくて済む。 ID:w0U7WoXt には確信があった。







334「必要です。」
0364nobodyさん2006/03/22(水) 23:38:17ID:???
じゃあ俺も「必要です」
ただし実装方式やコーディングに関して、議論の叩き台にされることは覚悟してください
0365nobodyさん2006/03/23(木) 04:13:07ID:Q/J9+7Id
<INPUT name="dawn" type="file" size="60"> <SELECT name="group[]">
<OPTION value="adult">アダルト</OPTION>
<OPTION value="guro">グロ</OPTION>
<OPTION value="idle">アイドル</OPTION>
<OPTION value="other" selected>その他</OPTION>

group[]を受け取るためにはどうすればよいでしょうか。
$group = $_POST[group];だとArrayとでてしまいます。
よろしくお願いし舞う
0366nobodyさん2006/03/23(木) 04:27:56ID:???
[]を外したら出来ました・・・すいませんでした・・
0367わかん9です><2006/03/23(木) 04:49:50ID:???
正規表現で

Border="数字"

をマッチさせたいのですが

"Border=\"([0-9])\""

とかやってみたけどマッチしません
Border="数字" はどうすればマッチしますか?
■ このスレッドは過去ログ倉庫に格納されています