【PHP】下らねぇ質問はID出して書き込みやがれ 96
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0018nobodyさん
2010/05/29(土) 21:18:35ID:???function decrypt($str, $key)
{
$string = base64_decode($str);
if($string==false || is_null($string) || strlen($string) ==0) throw new Exception("decrypt(): base64 decode faild:".$str);
$dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB, $key);
if($dec==false || is_null($dec) || strlen($dec) ==0) throw new Exception("decrypt(): decrypt faild:".$dec);
return trimNull($dec);
}
0019nobodyさん
2010/05/29(土) 21:37:15ID:???0020nobodyさん
2010/05/29(土) 22:07:07ID:???エンコード側どうやってる?
0021nobodyさん
2010/05/29(土) 22:43:33ID:???function encrypt($string, $key)
{
$string = trim($string);
$enc = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB, $key);
return base64_encode($enc);
}
0022nobodyさん
2010/05/29(土) 22:50:25ID:kdGy44ixこのサイトを、file_get_contents()で取得すると、途中までしか取得できないんですが、
みなさんの環境ではどうですか?
<?php
$_html = file_get_contents("http://www.ebookoff.co.jp/book");
echo $_html;
?>
PHP Version 5.2.11
0024nobodyさん
2010/05/29(土) 23:49:51ID:???そうじゃなければException飛ばしたいんだが・・・。
base64_decode は失敗するとfalseが返るとマニュアルにはあるけど
全然if文に引っ掛かってこない。
C#とかだとバイト配列にして検証するんだが・・・。
意味わかっていただけますでしょうか?^^
0025nobodyさん
2010/05/30(日) 00:33:57ID:???0026nobodyさん
2010/05/30(日) 01:09:31ID:???それ以前の問題な気がして。。
やっぱり、元の文字列に必ず決まったワードを仕込んでおいて
strpos === false で判定するしかないのかな。
002722
2010/05/30(日) 02:52:37ID:jvmNUW56<table cl
ここまでしか取得できていないんですが、一体なにが原因なんでしょう??
ちなみに>>22はブックオフのサイトです。
0028nobodyさん
2010/05/30(日) 08:28:54ID:???PHPでも同じことすればいいんだよ。使ってる文字コードの範囲かチェックすれば。
結果がバイナリだからって失敗ではないのだし。
0029nobodyさん
2010/05/30(日) 09:24:13ID:???5.3で同じ位置での動作確認しました。
HTTP/Requestだと問題なし。
require_once 'HTTP/Request.php';
$url = 'http://www.ebookoff.co.jp/book';
$request = &new HTTP_Request();
$request->setURL($url);
$result = $request->sendRequest();
if (!PEAR::isError($result)) {
echo $request->getResponseBody();
}
0030nobodyさん
2010/05/30(日) 10:55:46ID:???なんじゃこれ。と思って実験してみたら
UAを設定したら全部取れた。
鯖が途中までしか送ってこない理由は分からん
php 5.2.13/5.3.2 (win)
ini_set('user_agent', 'User-Agent: Mozilla/5.0');
0031nobodyさん
2010/05/30(日) 12:16:49ID:jvmNUW56ご協力ありがとうございます。
一体どういう理由なんでしょうね・・・
0032nobodyさん
2010/05/30(日) 12:21:25ID:???0033nobodyさん
2010/05/30(日) 12:32:26ID:???だから、C#でエンコったのはデコードできるんですよね。
そこまでアホじゃないんで^^;
成りすましをどうするか考えているわけです。
0034nobodyさん
2010/05/30(日) 13:47:58ID:???encrypt/decrypt の 第5引数省略したらどうなる?
試してみたけど失敗してくれない
デバッガかけるとかvar_dumpしまくるしかないんじゃないかな
0035nobodyさん
2010/05/30(日) 15:11:33ID:???◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0036nobodyさん
2010/05/30(日) 15:52:55ID:???0039nobodyさん
2010/05/30(日) 22:22:00ID:???文字列に戻ってるかのチェック以外、何が必要なんだろうか・・・ base64_decodeの失敗はねるのはいいけど、
文字列のチェックとまったく別の話だし。
ところで、PHP例でのmcrypt_encryptのkeyとivが同じだけど C#でのも同じ?
回答アホだから、成りすましの嵐かしら・・・。
0043nobodyさん
2010/05/31(月) 00:16:26ID:???なにこの自演乙
0044nobodyさん
2010/05/31(月) 15:40:04ID:v3qt+P/M100個のファイルから一つのファイルを読み込む、
require "/home/config.php";
とするのと、100個、個別の
require "./config.php";
とした方が良いのか、負担率としては同じなんでしょうか?
全く別物なのでしょうか?
よろしくお願いします
0045nobodyさん
2010/05/31(月) 16:02:39ID:???それだけじゃ何とも言えない
004644
2010/05/31(月) 16:15:07ID:???テンプレートみたいな使い方をしたいんです
設定部分やデザインなんかの記述をしてます
$a="<css--・・・・
$b="ようこそ";
みたいな感じですね。
アクセス数はかなり多いのでどんなものかと思いまして
0047nobodyさん
2010/05/31(月) 16:22:33ID:???オープンソースのCMS見りゃ分かるが個別に分けてるものなんてないよね
0048nobodyさん
2010/05/31(月) 16:25:07ID:???0050nobodyさん
2010/05/31(月) 17:12:47ID:GblyjBgz民主党の小沢一郎幹事長は12日、ソウルの国民大学で講演後、約250人の学生と
日本人について語り合った。学生から、多くの日本人が学校にも通わず、仕事にも
就かないニートについて聞かれ、小沢氏は「日本のニートの現状はみんな親が悪い。
日本人の親は学校にも行かないで、仕事もしないぶらぶら遊んでいる子供を食べさせ
ている」と持論を披露した。
小沢氏は「学校にも行かない無職の子どもを責める前に、日本人の親達は子供を
甘やかしている。親に民族教育をしっかりしないといけない」と主張した。「日本人の
若者は漠然と他人に寄生し寄生虫として生きているとんでもない害虫だ」とした。
「もともと日本人の親達もどうかしている。日本人は動物にも劣る民族といっても
過言ではない」とした。「日本人はもともと民度が劣るから、君達韓国人のような
優秀な民族の血を日本人に入れない限り、他人やアジアに寄生して生きる害虫日本人
が増えるだけだ」とした。日本の古代歴史についても「韓半島南部の権力者が日本の
国家を樹立したもの」と述べた。・・・・( ソウル発外電 2009/12/13)
【トンデモ史観】小沢一郎・韓国講演
ttp://www.youtube.com/watch?v=uX7xFMvCly8&feature=youtube_gdata
【売国】小沢一郎幹事長言行録
ttp://www.youtube.com/watch?v=NXjgD4jb_Jg&feature=channel
0051EM114-48-95-102.pool.e-mobile.ne.jp
2010/05/31(月) 23:42:10ID:dCMCj0N4質問あげ
0052nobodyさん
2010/06/01(火) 07:26:04ID:qOSq8mL1"src" => ここ,
"folder" => "folder/",
"size" => 120
);
そこに配列の格納された変数を指定したいんですが、
どうすればいいのでしょうか
0053nobodyさん
2010/06/01(火) 08:11:26ID:???そこってどこだ?こういうこと?
<?php
$option = array (
"src" => 'ここ',
"folder" => "folder/",
"size" => 120
);
var_dump($option['src']);
string(6) "ここ"
0054nobodyさん
2010/06/01(火) 08:29:02ID:qOSq8mL1わかりにくい書き方してすいません。
こういうことがしたいんです。
$hairetu = array ('aaa', 'bbb', 'ccc');
$option = array (
"src" => $hairetu,
"folder" => "folder/",
"size" => 120
);
配列のうちの一つを指定するなら、$hairetu[0]などで可能なんですが
配列に含まれるすべての値を指定したいんです。foreachでループさせるときのように。
0055nobodyさん
2010/06/01(火) 09:34:11ID:???foreach( $option["src"] as $var ) {
print $var;
}
0056nobodyさん
2010/06/01(火) 09:41:23ID:???0057nobodyさん
2010/06/01(火) 11:11:13ID:qOSq8mL1すいません、自己解決しました。
foreachループの中に入れたらうまくいきました。
どうもお騒がせしました。
0058nobodyさん
2010/06/01(火) 17:52:51ID:k/zNPSvjdisplay_errors Offのまま、
特定のディレクトリのスクリプトだけ表示させるという方法はないでしょうか?
0059nobodyさん
2010/06/01(火) 18:01:26ID:???0060nobodyさん
2010/06/01(火) 18:07:39ID:???文字列の".01"が帰ってきます。
"0.01"を取得するにはどうすればよいですか?
0061nobodyさん
2010/06/01(火) 18:26:56ID:???$comにhogeが入ってる場合NGワードが入ってますというエラー文を出すにはどうすればいいのでしょうか
0062nobodyさん
2010/06/01(火) 18:29:03ID:???0063nobodyさん
2010/06/01(火) 18:30:18ID:???0065nobodyさん
2010/06/01(火) 19:50:51ID:6jzz/jSkよく分かりませんでした。
$rcd = ereg_replace("\./", "", $filename22);
$dr6 = ereg_replace("\./", "", $thum);
↓
$rcd = preg_match("(\./)", "", $filename22);
$dr6 = preg_match("(\./)", "", $thum);
これでは機能しません。どう記述したらいいでしょうか?
0067nobodyさん
2010/06/01(火) 19:55:46ID:???$dr6 = preg_match("/(¥.¥/)/", "", $thum);
左右を/で囲わないとだめ、もしくは以下のような感じ
$dr6 = preg_match("|(¥./)|", "", $thum);
0068nobodyさん
2010/06/01(火) 19:56:54ID:???0069nobodyさん
2010/06/01(火) 20:31:05ID:6jzz/jSk$dr6 = preg_match("/(\.\/)/", "", $thum);
$rcd = preg_match("|(\./)|", "", $filename22);
$dr6 = preg_match("|(\./)|", "", $thum);
$rcd = preg_match("|\./|", "", $filename22);
$dr6 = preg_match("|\./|", "", $thum);
試しましたが値は0しか帰ってきません・・・・
0071nobodyさん
2010/06/01(火) 20:45:49ID:???マニュアルみたらすぐ解決するのになぜ見ないかね
./を消すだけならstr_replaceでやればいいじゃん
0072nobodyさん
2010/06/01(火) 21:44:02ID:6jzz/jSkありがとうございました
0073nobodyさん
2010/06/01(火) 22:04:52ID:???echoの際、シングルクオテーションで囲まれた$変数はそのまま$つきで
表示されるはずなんですが、以下はなんでちゃんと、
$変数の中身が表示されるんでしょう?
echo '<a href="check.php?id='.$row['id'].'">チェック</a>'
0074nobodyさん
2010/06/01(火) 22:16:37ID:???0075nobodyさん
2010/06/01(火) 22:17:59ID:???'<a href="check.php?id=' . $row['id'] . '">チェック</a>'
なのだよ
0076nobodyさん
2010/06/01(火) 23:55:39ID:???0077nobodyさん
2010/06/02(水) 08:29:32ID:???0078nobodyさん
2010/06/02(水) 10:25:39ID:???0079EM114-48-32-41.pool.e-mobile.ne.jp
2010/06/02(水) 11:06:30ID:mhIc5LxU0080nobodyさん
2010/06/02(水) 15:28:49ID:1PsJc2A4VBで作ったものをPHP上で動作させることはできますか?
それはどのようにして実現できますか?
宜しくお願い致します
0081nobodyさん
2010/06/02(水) 15:32:01ID:???0082nobodyさん
2010/06/02(水) 15:32:50ID:1PsJc2A4値の受け渡しとかではなく、VBの画面をそのままWebアプリとして使いたいのです
フレームか何かでその部分だけはVBの部分と独立させてやれると尚いいのですが
0083nobodyさん
2010/06/02(水) 16:07:21ID:???config.inc.phpというファイルを編集すれば良いことがわかりましたが、
同名のファイルが4つあって、どれをいじればいいのかわかりません。
OSはUbuntuです。
1) /etc/phpmyadmin/config.inc.php
2) /usr/share/phpmyadmin/config.inc.php
3) /usr/share/phpmyadmin/setup/frames/config.inc.php
4) /var/lib/phpmyadmin/config.inc.php
1を編集しても効果ありませんでした。
2を編集したら時間は延びたようでしたが、元に戻ってしまったようです
(ファイルの中身はちゃんと追記されたままになってるのに)。
結局どれが正しいファイルでしょうか?
008483
2010/06/02(水) 16:09:20ID:1gJ1/kVu0085nobodyさん
2010/06/02(水) 16:29:50ID:???となってるわけでconfig.inc.phpとやら以外に原因がある可能性は?
0086nobodyさん
2010/06/02(水) 16:38:16ID:???無理、といいたいところだけど、そういうActiveX作って、PHPでそれを使うフレームを出力すればいけるのかも
0087nobodyさん
2010/06/02(水) 16:44:12ID:1gJ1/kVuそういう優先順位になってるんですね。
http://ameblo.jp/hyperdev/entry-10345093485.html
上のページを見てやってみたんですが、
「php.iniに設定した、ガベージコレクタの時間より大きくなる場合が多い」というのを防ぐために
ini_set("session.gc_maxlifetime", 18000);
っていう一行を入れてるみたいなので、問題はApacheとOSの設定ってことですかねぇ。
でも、昨日2のファイルに設定した直後はちゃんと有効だったのは何だったんだろう…。
0088nobodyさん
2010/06/02(水) 17:41:42ID:???>>75
ありがとうございます。
おっしゃられてる方法でわかったつもりで、
以下を書くとエラーで怒られてしまいました・・・。
print '<a href='."$_SERVER['PHP_SELF']".'> 削除 </a>';
ほんとは上の文章が動作していたら、
?をつけてGetで変数を送りたいのですが、
?をつける以前につまづいてしまいました・・・
お助けください。
0089nobodyさん
2010/06/02(水) 17:55:17ID:???print '<a href=' . $_SERVER['PHP_SELF'] . '> 削除 </a>';
あと$_SERVER['PHP_SELF']の部分がソース名(php名)をひっぱってきたいだけなら
$_SERVER['SCRIPT_NAME']を使った方が良い
0090nobodyさん
2010/06/02(水) 18:29:44ID:???$_SERVER['PHP_SELF'] ←これもの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
正しく書くと、
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
となる。
hrefのクォートはシングルじゃなくてダブルね。
というか、リンク先を自分と同じスクリプトにするなら $_SERVER['PHP_SELF'] すら要らんよね。
クエリ文字を付けたリンクにしたいなら↓こんな感じ。
print '<a href="?del=1"> 削除 </a>';
あと余談だけど、ダブルクォーテーションの中に変数を入れる場合は
変数を { } で囲む癖をつけておいたほうがいいよ。
009190訂正
2010/06/02(水) 18:56:09ID:???これもの中身も文字列
↓
これの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
↓
文字列同士を結合するために . (ドット)が使われるんだよ。
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
↓
print '<a href="' . $_SERVER['PHP_SELF']. '"> 削除 </a>';
hrefのクォートはシングルじゃなくてダブルね。
↓
href=の後のクォートはシングルじゃなくてダブルね。
0093nobodyさん
2010/06/02(水) 22:14:08ID:D8F23o+y何で変数を{}で囲まないといけないんですか?
0094nobodyさん
2010/06/02(水) 22:39:11ID:???0098nobodyさん
2010/06/02(水) 23:02:05ID:???>>94の言うとおり、わかりやすいっていうのが理由の一つ。
あと、{ } を付ければ前後にスペースがいらない。
例えば、次の3つを比較するとわかる。
(1) echo "ab $text cde";
(2) echo "ab$textcde";
(3) echo "ab{$text}cde";
1はOKだけど、出力結果にもスペースが入ってしまう。
2は不可。
3はOKで、スペースも入らない。
あと、速度も違うんだけど、このことはあまり知られてないのかなぁ。
ちなみに、配列でキー名に ' ' を付けるのと付けないのも速度に差が出る。
009998
2010/06/02(水) 23:03:54ID:???2は不可っていうか、エラーにはならないけど期待する表示にならないってことね。
0100nobodyさん
2010/06/02(水) 23:27:40ID:???ダブルクォートとシングルクォートを使うとでも速度は違うね。
0103nobodyさん
2010/06/02(水) 23:57:58ID:yUWMqjwoTRUE判定させるにはどうしたらいいですか?
while($num=strpos(゙あかあおしろ゙,゙あが,0))
)
で一番最初の文字列にヒットした場合弾かれてしまいます。
何かいい解決法があれば、どうかご教示をお願いします。
0104nobodyさん
2010/06/03(木) 00:03:18ID:???while (($num = strpos('あかあおしろ', 'あか', 0)) !== false) {}
0106nobodyさん
2010/06/03(木) 01:25:57ID:???>>91
ありがとうございます。
print '<a href="'.$_SERVER['PHP_SELF'].'"> 削除 </a>';
は無事動きました。
href="
の部分のダブルクオテーションは文字という考え方ということですよね?
なので、
'<a href="'
という、シングルクオテーションで囲まれている
<a href="
が文字と言う考え方であってますでしょうか?
次に、変数を""というダブルクオテーションで囲むと、
その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
今回、a href=の後のクオートがもともとのHTMLの仕様では、
ダブルクオテーションであり、そのあとに、変数を囲むダブルクオテーションが続くと
何か問題が出てしまうのでしょうか?
さらに、{}で変数を囲めるということでためしてみました。
print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
も、
print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
も動きませんでした。
書き方がまちがっていますでしょうか?
0107nobodyさん
2010/06/03(木) 01:26:34ID:???HTMLの中に書くって事でスタートしてるからこうなってるんだと思うよ
つまりビュー層のハナシ
zend のコーディング規約でもシングルクオートで変数は連結しろとかなかったっけ?
他言語の使い手にも読みやすいって事まで考えてそうなってると思うんだけどな
0108nobodyさん
2010/06/03(木) 01:35:04ID:???<a href="
が文字と言う考え方であってますでしょうか?
あってる
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
では,"$_SERVER['PHP_SELF']" のパースができない(だったような
print '<a href="' . "{$_SERVER['PHP_SELF']}" . '"> 削除 </a>';
なら動くと思う。
素直に
print '<a href="' . $_SERVER['PHP_SELF'] . '"> 削除 </a>';
でいいじゃんかよ
ちゃんとエスケープもしろよ?歯も磨けよ?
0109nobodyさん
2010/06/03(木) 01:35:14ID:???> '<a href="'
> という、シングルクオテーションで囲まれている
> <a href="
> が文字と言う考え方であってますでしょうか?
あってる。
> 次に、変数を""というダブルクオテーションで囲むと、
> その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
> print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
print '<a href="'."{$_SERVER['PHP_SELF']}".'"> 削除 </a>';
にしてみて。
> print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
.が無いし、{}が不要。
> print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
{}が不要。
0110nobodyさん
2010/06/03(木) 01:36:35ID:???$_SERVER['PHP_SELF']はセキュリティ上の問題があるのでHTMLとして出力する物には使わない
$_SERVER['SCRIPT_NAME']またはbasename(__FILE__)で代用
0111nobodyさん
2010/06/03(木) 01:40:41ID:???<a href=""> 削除 </a>
でいけるやん
0112nobodyさん
2010/06/03(木) 03:47:38ID:???0113nobodyさん
2010/06/03(木) 05:12:55ID:???//ダブルの場合
echo "こんにちわ、{$name}さん。";
//シングルの場合
echo 'こんにちわ、' . $name . 'さん。';
0114nobodyさん
2010/06/03(木) 05:28:29ID:XbPCpr1kありがとうございます。
もうひとつお伺いしたいのですが、文字列の指定位置に文字列を挿入する場合の関数はありますか?
substr_replaceの使用を考えたのですが、置き換え文字数を0に指定するとうまくいきません。
1以上にして置き換え後の文字列に消した文字を含ませるのもスマートではない気がします。
どうかよろしくお願いします。
0116nobodyさん
2010/06/03(木) 07:28:03ID:???0117nobodyさん
2010/06/03(木) 07:36:18ID:LdZGbuVn文字化けせずに表示できているのはどういった仕組みなのでしょうか。
よろしくお願いいたします。
■ このスレッドは過去ログ倉庫に格納されています