【PHP】下らねぇ質問はID出して書き込みやがれ 92
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/01/09(土) 20:11:42ID:lsb/cZ9k過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 91
http://pc11.2ch.net/test/read.cgi/php/1260247989/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0237233
2010/01/20(水) 10:58:08ID:6zid23dWそうなんですか。素直にforeach使います。
0238nobodyさん
2010/01/20(水) 12:46:53ID:a0XNCYkl関数名でぐぐっていたら
http://www.rubyist.net/~matz/20080129.html#p02
rubyのまつもとさんのBlogにたどり着きました。
なんとなく読んでいたら
htmlspecialchars($_GET['text']);
この書き方は良く無い、とおっしゃってるように見えるのですが
$_GET['text']をhtml内に表示する際にどのように記述したら良いのでしょうか?
0240nobodyさん
2010/01/20(水) 13:04:58ID:???そうやって上から目線でどうひどいでしょ的な例を出して初心者や経験者を釣るのがそのエントリの目的
問題点だけ出して対策案を出さないのはエンジニアとして残念だわなぁ
そのコードに関しては第二引数を適切に指定しろということかと
0241nobodyさん
2010/01/20(水) 14:05:24ID:???0242nobodyさん
2010/01/20(水) 14:37:51ID:???LAMP + Exclipse PDTをインストールして、デバッグしするとこまでは着たのですが
指定URLでデバッグするのってどうやるのでしょうか?
例)http://localhost/test.php?param=1
↑こんな感じです。
よろしくお願いします。
0243238
2010/01/20(水) 14:40:40ID:a0XNCYkl>>240
ありがとう、ENT_QUOTES全然知らなかったです
ついでにENT_QUOTESでぐぐると
ENT_QUOTESつけてもjavascript有効になっちゃうみたいで
http://phpspot.org/blog/archives/2008/04/phphtmlspecialc_1.html
addslashes使うといいかも、とありましたのでご参考まで。
両方合わせるのかな?
htmlspecialchars(addslashes($_GET['text']));
みたいな?
0244nobodyさん
2010/01/20(水) 14:41:38ID:???0245nobodyさん
2010/01/20(水) 15:46:29ID:???それなぜSmartyでやっているのか分からないけどSmartyに関係なく発生するよね
JavaScript中なら問題ないんだけどHTMLの属性として書いていると解釈されるようだ
実体参照って単に表示時に変換されるだけかと思ってたけど、そのままHTMLとして解釈されちゃうとは知らんかった
0246nobodyさん
2010/01/20(水) 17:51:49ID:???0247228
2010/01/20(水) 19:37:26ID:c5k2D9j8うーん、できません・・・。
$set = select count(*) from tb1 where pet = '犬';
print $set;
と書いたところ、
Parse error: syntax error, unexpected T_STRING in
とエラーが出てしまいます。
大変申し訳ありませんが、もう一度構文を書いていただけないでしょうか。
0249nobodyさん
2010/01/20(水) 20:38:56ID:???php・mysqlの解説サイトを読んだ上で
どこがわからないのか具体的に書いてもらわないと教える方も厳しいよ
0250nobodyさん
2010/01/20(水) 20:43:55ID:???$set = "select count(*) from tb1 where pet = '犬'";
0251228
2010/01/20(水) 20:54:04ID:c5k2D9j8$sssss = mysql_query("select count * from BBS where YYYY = 2010);
ただ結果が返ってこないのです。
echo $sssss;
print $sssss;
共にだめでした。
>>249
いくつかのサイトを回り、本も読みましたが…ほんとにすいません。
0252nobodyさん
2010/01/20(水) 20:59:09ID:???そのサイトや本はいきなりmysql_queryを実行してましたか?
まずmysql_connectでMySQLに接続して下さい。
その上でmysql_queryでSQLを実行し
mysql_fetch_array等で結果を取得します。
もう一度、サイトや本を読んだ方が良いと思います。
0253nobodyさん
2010/01/20(水) 21:05:12ID:???http://php.net/manual/ja/function.mysql-query.php
ここよんで、わからない(理解できない)なら、プログラムを作ることは、ほかの人に頼んだほうがよさそうです。
(あなたを非難しているわけではありません。)
0254nobodyさん
2010/01/20(水) 22:11:57ID:???define('DB_HOST',"localhost");
define('DB_NAME',"test");
define('DB_USER',"username");
define('DB_PASS',"password");
$con = mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);
$query = "select count * from `BBS` where `YYYY` = 2010";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$rec[] = $row;
}
echo nl2br(print_r($rec,true));
定数は適宜書き換えてちょ
0255nobodyさん
2010/01/20(水) 22:20:32ID:JcfZ2AVN配列の便利さがいまだにわかりません^^;
どなたか説明してくれませんか
0256228
2010/01/20(水) 22:55:57ID:c5k2D9j8色々やってみましたがエラーが返ってきてしまいますね。
…自分で言うのもなんですが、基礎の部分の知識が全然駄目ですね。出直してまいります。
最後に一つだけ。
皆様がお勧めする参考書とかありますか?私はソフトダンクの「基礎からのMySQL」という本を見ています。
0258nobodyさん
2010/01/21(木) 00:58:35ID:???XDebug使用しているのなら、リモートでバッグにすると幸せになれるかもよ。
ブラウザで、
ttp://localhost/test.php?param=1&XDEBUG_SESSION_START=1
(XDEBUG_SESSION_STARTn値は任意の文字列)
と、入力し実行すると、デバッガでブレイクしてくれる。
詳細は、ここ読んで
[Remote Debugging]
ttp://www.xdebug.org/docs/remote
PDTとの連携については、xdebug pdtでググれば、きっとどこかに行き着くはず。
Zend Debuggerなら、使ったことないので知らん。
0259nobodyさん
2010/01/21(木) 01:44:46ID:0ZIqvqkU0260nobodyさん
2010/01/21(木) 12:40:42ID:???あなたはSQLの他にPHPの知識も乏しいので
PHPの本を読んだほうがいいです。
そういう本にはSQLのことも書かれているでしょう。
0261nobodyさん
2010/01/21(木) 12:53:15ID:PEXDjvL/Cプログラムの中身は、
#include <stdio.h>
int main(){
printf("Hello.");
}
です。
phpの中身は、
<HTML>
<HEAD><TITLE>Cプログラム呼び出し</TITLE></HEAD>
<BODY>
<?php
$cmd = "test.exe";
$a = exec($cmd);
echo $a;
?>
</BODY>
</HTML>
としており、調べてみるとexec()関数で外部プログラムを実行すると書いてあったのでこのように作成しました。
他にもexec(),system(),shell_exec(),passthru()を試してみたんですがだめでした・・・
0262nobodyさん
2010/01/21(木) 12:58:11ID:???exec()は標準入力を受け取れるのかどうなのかマニュアルで確認してみそ
0263nobodyさん
2010/01/21(木) 13:02:18ID:???execでやりたいなら
echo exec($cmd);
とするか、第二引数を指定する。
PHP: exec - Manual
http://jp.php.net/manual/ja/function.exec.php
0264nobodyさん
2010/01/21(木) 13:06:49ID:???マルチ乙
0265nobodyさん
2010/01/21(木) 13:11:29ID:???0266nobodyさん
2010/01/21(木) 13:21:42ID:???にしても「ファイルが開けません」と出てだめでした。
test.exeもphpファイルと同じ場所に保存しているんですが
0267nobodyさん
2010/01/21(木) 13:34:13ID:???./ はピリオドスラッシュね
0269nobodyさん
2010/01/21(木) 13:42:58ID:PEXDjvL/どちらも試したところ、文も何も表示されませんでした・・・
0271nobodyさん
2010/01/21(木) 13:56:32ID:???「基本的には同一のシステム(コミュニティ)内での別個のカテゴリへの重複投稿を指すが
人によっては、別のシステム(「OKWave」、「Yahoo知恵袋」、「カカクコム」、「2ちゃんねる」など別個のサイト)への重複投稿もマルチポストと見る場合がある。」
基本的には同一のシステム(コミュニティ)内での別個のカテゴリへの重複投稿を指すので、
人によっては、マルチポストとは見ない場合もあるんじゃないですか?
0273nobodyさん
2010/01/21(木) 13:58:46ID:???自分が回答する立場になったらマルチの不快さはわかるよ。
0275nobodyさん
2010/01/21(木) 14:02:17ID:???0276nobodyさん
2010/01/21(木) 14:15:50ID:IMaJrSoT逃げたな。
マルチポストまともに反論できないなら最初からやらなければいいのにどうしてこういうバカは
それでもマルチポストをするのだろうか?
バカの考えは凡人にはわからないね。
0277nobodyさん
2010/01/21(木) 14:19:39ID:???どういう問題があって、どのように修正したらうまくいったのかを書いとけば
今後、同じような問題で困った人の助けになるのにな。
0278nobodyさん
2010/01/21(木) 14:22:13ID:???教えて君ってそういう物だよ。
・ネットマナーなにそれ?それっておいしいの?
・情報共有って必要?俺が満足すればそれでいい。
0279nobodyさん
2010/01/21(木) 14:22:49ID:???が設置してある神展開希望w。
0281nobodyさん
2010/01/21(木) 14:32:23ID:???0282nobodyさん
2010/01/21(木) 14:48:42ID:???0283nobodyさん
2010/01/21(木) 14:56:53ID:???0284nobodyさん
2010/01/21(木) 14:58:48ID:???0286nobodyさん
2010/01/21(木) 15:03:43ID:???0287age
2010/01/21(木) 15:47:35ID:rC/oBUeGecho 'Hello World!';
?>
実行できない。ちなみに
<?php
echo 'Hello World!';
?>
は実行できる。なんで?
0288nobodyさん
2010/01/21(木) 15:48:03ID:???0290age
2010/01/21(木) 16:16:58ID:rC/oBUeG0291age
2010/01/21(木) 16:18:50ID:rC/oBUeG0292nobodyさん
2010/01/21(木) 22:18:45ID:???echo<<<_HTML_
_HTML_;
の存在を今初めて知った。
0293nobodyさん
2010/01/21(木) 22:32:44ID:???0294nobodyさん
2010/01/21(木) 22:36:58ID:???0295nobodyさん
2010/01/21(木) 22:37:03ID:???おまえ普通にバカだろう。
「_HTML_ 」の部分は特別な意味はない。自由に決めることができる。意味があるのは「<<<」の部分。
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
ヒアドキュメントの事くらい知っておけよ。
でヒアドキュメントってPHPに限った機能ではない。Perlなどの言語にもある機能。
常識中の常識的な機能。
0296nobodyさん
2010/01/21(木) 22:38:00ID:???昼間のキチガイマルチがまた質問しているよ。
0300nobodyさん
2010/01/21(木) 22:48:26ID:???マルチもスルーな。
0301nobodyさん
2010/01/21(木) 22:49:38ID:???0302nobodyさん
2010/01/21(木) 22:51:54ID:???0303nobodyさん
2010/01/21(木) 22:53:03ID:???0304nobodyさん
2010/01/21(木) 22:55:33ID:???時間的にここ見て退会したようだね。
タイミング的にもこの中の誰かがID:PEXDjvL/だった可能性はあるね。
0305nobodyさん
2010/01/21(木) 22:56:32ID:???脳外科行ってこい
0307nobodyさん
2010/01/21(木) 23:00:24ID:???0308nobodyさん
2010/01/21(木) 23:03:31ID:???私のために争わないで
もうこれ以上
0309nobodyさん
2010/01/21(木) 23:35:03ID:???0310アルト
2010/01/22(金) 10:45:46ID:lVM55VZv掲示板作成してます。PHPで掲示板を作成しているのですが、どうしてもわからないところがあるので教えてください。
投稿コメントに
---------------------------
[例1]
>a
>>a
>>>a
>>>>a
#a
[例2]
aaa>a
aaa>>a>a
---------------------------
とあったとします。これを掲示板の機能でよくある、色を変える処理をしたいです。
【条件】
�@、行の初めに記号(例1)があるとき色を変える。
�A、行の途中に記号(例2)があるときは色を変えない。
�B、�@の条件から改行まで色を変える。
私が考えた正規表現だとバグがありました・・・
$res_comment = preg_replace('/^>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^#(.+)/','<font color="'.$sharp.'">\0</font>',$res_comment);
※色コードは今だけ#にしてます。
$res_commentには上記の例だと
$res_comment = "[例1]<br>>a<br>>>a<br>>>>a<br>>>>>a<br>#a<br>[例2]<br>aaa>a<br>aaa>>a>a";
こんな感じの変数になってます。どなたか宜しくお願いします。
0311nobodyさん
2010/01/22(金) 10:58:24ID:???0312nobodyさん
2010/01/22(金) 11:10:30ID:???0313nobodyさん
2010/01/22(金) 11:11:32ID:???はいはいマルチ乙
0314nobodyさん
2010/01/22(金) 12:56:41ID:???0315nobodyさん
2010/01/22(金) 13:02:59ID:???0316nobodyさん
2010/01/22(金) 13:25:57ID:???$b = 'test1\ntest2';
/*ここに文字列化した$bのエスケープシーケンスを解釈する処理*/
($a === $b) ? echo good : echo bad;
一度変数に改行コードではなく純粋に文字列として入ってしまった'\n'などを
解釈させるにはどうしたらいいですか?
0318316
2010/01/22(金) 13:37:50ID:???0319nobodyさん
2010/01/22(金) 14:02:09ID:???0320nobodyさん
2010/01/22(金) 14:05:40ID:???0321PEX
2010/01/22(金) 14:28:10ID:???0322サブマリンPHP
2010/01/22(金) 14:49:49ID:lrtepsPM【PHPのバージョン】php5
【連携ソフトウェア】特になし
【質問内容】
requireのファイルを読み込んだ場所がカレントディレクトリーになってしまうために
おこる問題についてです。
同じ階層にあるhoge.phpを読み込む。
OK <?php require('hoge.php'); ?>
OK <?php require('/hoge.php'); ?>
他の階層にある(/hoge.phpを /hoge/hogeRead.phpから読み込む)hoge.phpを読み込む。
NG <?php require('/hoge.php'); ?>
相対パスでやればいいことは分かってるのですが、
hoge.phpは変更しない
hogeRead.phpをいろんな階層に配置する
場合、階層ごとにrequireを修正していたのでは大変です。
どの階層からでも同じ構文で読み込ませる方法はないでしょうか?
0323nobodyさん
2010/01/22(金) 14:54:23ID:???しといて
require(LIBS.'hoge.php');
とか?
0324サブマリンPHP
2010/01/22(金) 14:58:28ID:lrtepsPMそれだとdefineを設置するファイルの場所によってパスの内容が変化してしまうんです。
言い方間違えてました。
requireのファイルを読み込んだ場所がカレントディレクトリー
ではなくてphpの場合ファイルを読み込んだ場所がカレントディレクトリーになってしまうです
0326nobodyさん
2010/01/22(金) 15:04:37ID:???require realpath(dirname(__FILE__)).'/../includeFile.php';
0327nobodyさん
2010/01/22(金) 15:09:47ID:???function expand_escape($string) {
return preg_replace_callback(
'/\\\([nrtvf]|[0-7]{1,3}|[0-9A-Fa-f]{1,2})?/',
create_function(
'$matches',
'return ($matches[0] == "\\\\") ? "" : eval( sprintf(\'return "%s";\', $matches[0]) );'
),
$string
);
}
0328サブマリンPHP
2010/01/22(金) 15:27:13ID:lrtepsPMすみません、それでもうまくいかないです・・・・
0329サブマリンPHP
2010/01/22(金) 15:32:27ID:lrtepsPMrealpathやdirnameで取得したファイル自体の位置が変わるためにそれでは
意味がないです。
0330nobodyさん
2010/01/22(金) 15:34:03ID:???この板で前にそんな質問があって回答した気がする。
0332nobodyさん
2010/01/22(金) 15:43:52ID:???0333サブマリンPHP
2010/01/22(金) 15:56:06ID:lrtepsPMあ〜びっくり、ちょっと変えるとそれでうまくいきます!
require $_SERVER['DOCUMENT_ROOT'] . '../hoge.php';
として読み込むファイルはドキュメントルートに配置しました。
これだとOKなんですが
../ が必要な理由が分からない・・・・
0334サブマリンPHP
2010/01/22(金) 16:03:22ID:lrtepsPMでもとりあえず上手くいきました。有難うございました。
また、ほかの皆様にもたくさんご意見いただきまして有難うございました。
0335サブマリンPHP
2010/01/22(金) 16:11:01ID:lrtepsPMもうこの迷宮いや;;
0336nobodyさん
2010/01/22(金) 16:44:58ID:???includeパスを設定するとか。
set_include_path(get_include_path().PATH_SEPARATOR.'.'.PATH_SEPARATOR.'..'.PATH_SEPARATOR.'../..');
require('hoge.php');
file_existsとかしながら順に上の階層をみてまわるとか。
■ このスレッドは過去ログ倉庫に格納されています