【PHP】下らねぇ質問はID出して書き込みやがれ 106
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/04/29(金) 17:11:00.40ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1300302034/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0268nobodyさん
2011/05/10(火) 17:07:13.27ID:???> 1: $match['title'] = preg_match('|<title>(.*?)</title>|', $html)[1];
マッチしなかったときの例外処理ができてないんじゃない?
どっちにしろどのようにマッチしたかは把握しておく必要がある。
同系統の処理は関数でまとめればいくらか見通しは良くなると思うけど。
0270nobodyさん
2011/05/10(火) 18:51:15.52ID:???0を切り捨てられればいいのに、とはいうが、まずは0に欲しいものだけが入る正規表現にすれば良いのでは。
1: preg_match('|(?<=<title>)(?:.*?)(?=</title>)|', $html, $match['title']);
2: preg_match('|(?<=<h1>)(?:.*?)(?=</h1>)|', $html, $match['h1']);
3: user_function($match['title'][0], $match['h1'][0]);
> 仮にpreg_matchが$macthを返すような関数なら、
ここについては解決しないけどね。
ID出さないスレでも似たようなことあったけど、最近は正規表現がブームなのかね。
0271nobodyさん
2011/05/10(火) 18:59:18.59ID:???$pattern = '|
<title>(?P<title>.*?)</title>
.*
<h1>(?P<h1>.*?)</h1>
|x';
preg_match($pattern, $html, $match);
print_r($match);
0272nobodyさん
2011/05/10(火) 21:33:26.43ID:4eJoj+GDリファラーを送信したくないのです
訪問先のサイトにhttp://localhost/link.phpからの足跡が残るので。
ローカルからアクセスしたのがばれないようにする方法ってございませんか?
どこかのページで方法を見た記憶があるのですが
0273nobodyさん
2011/05/10(火) 21:35:26.69ID:???0274nobodyさん
2011/05/10(火) 21:47:14.76ID:???0275nobodyさん
2011/05/10(火) 22:38:01.20ID:svcmH2S5【PHPのバージョン】5.2.5
【連携ソフトウェア】なし(cronから実行)
【質問内容】
cronからPHPを実行しようと考えているのですが、PHP内にtry-catchを書くと下記のようなエラーになってしまいます。
PHP Parse error: parse error, unexpected '{' in /root/test.php on line 2
cronから実行する場合、try-catchは使えないのでしょうか?
/root/test.phpの内容は下記の通りです。
<?php
try {
echo "先行処理\n";
$error = '例外メッセージ!!';
throw new Exception($error);
echo "後続処理";
} catch (Exception $e) {
echo "例外キャッチ:" . $e->getMessage() . "\n";
}
?>
crontabの記述は下記の通りです。
* * * * * php /root/test.php 2>>/root/error.log
cronからでなく、下記のように直接実行すると成功します。
php /root/test.php
先行処理
例外キャッチ:例外メッセージ!!
0276nobodyさん
2011/05/10(火) 22:44:04.92ID:???0278nobodyさん
2011/05/10(火) 23:20:10.07ID:???君もぐぐろうよ
http://www.google.com/search?q=cron+try+catch+php
0279nobodyさん
2011/05/11(水) 01:05:43.02ID:H6ab7D/Mありがとうございます
php -v を実行したところ
PHP 5.2.5 (cli) (built: Dec 4 2007 16:18:39)
と表示されたのですが、これはphp5では無いのでしょうか
0280nobodyさん
2011/05/11(水) 01:06:05.74ID:wPu1R1v8仕様は公開されてるみたい。http://www.osflash.org/flv
ffmpegみたいな外部プログラムは使わないで、バイナリ操作のみで行うのはやっぱり難しい?
0282nobodyさん
2011/05/11(水) 01:19:08.83ID:OQDkRGmA0283nobodyさん
2011/05/11(水) 02:02:48.28ID:???あるユーザのログイン状態での環境変数と、cron時の環境変数は必ずしも一致しないよ
なもんで>>276を書いたんだけど、php5以外は入ってないって事なのかな
0284nobodyさん
2011/05/11(水) 02:49:50.87ID:???which php で調べてcrontabの記述を
/usr/local/bin/php /root/test.php
に変えたら動きました!
勉強になりました、ありがとうございます
0285nobodyさん
2011/05/11(水) 12:00:09.47ID:vivhp25Decho $b;
}
メソッドaに引数がわたらなかった時、$bにnullが入るようにしたのですが、
このnullはセキュリティ的によくないですか?
0286nobodyさん
2011/05/11(水) 19:08:52.45ID:???0287nobodyさん
2011/05/11(水) 21:00:49.84ID:M2ZzYUMEchmで参照渡しで検索しても出てこなかったのですが
0288nobodyさん
2011/05/11(水) 21:13:38.25ID:???_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
________________
|site:php.net 参照渡し .| |検索|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
◎ウェブ全体 〇日本語のページ
0290nobodyさん
2011/05/12(木) 04:25:11.60ID:???http://www.tokyo-gas.co.jp/
mysql_real_escape_string()ってただの置換関数ですよね?
なんでDBに接続してないとこけるんでしょうか?
0292nobodyさん
2011/05/12(木) 10:21:40.68ID:8ZuCsT9p例えば、IEを立ち上げてる時に、リンクが押された時にsafariでジャンプするようにしたいのです。
0293nobodyさん
2011/05/12(木) 10:24:51.58ID:???0294。 ◆oDupeixhZv52
2011/05/12(木) 10:30:40.09ID:???mysql_real_escape_stringの中で呼び出してる mysqlのsql_real_escape_stringで接続要求してるから。
0295nobodyさん
2011/05/12(木) 11:07:02.48ID:b+hLFK0Cのような配列でランダムで一つ出力する方法をお願いします
0297nobodyさん
2011/05/12(木) 12:15:23.73ID:MOJVyYcf0298nobodyさん
2011/05/12(木) 12:34:07.58ID:???https://github.com/cakephp/cakephp/blob/master/cake/libs/inflector.php
0299nobodyさん
2011/05/12(木) 12:35:50.85ID:???0302nobodyさん
2011/05/12(木) 16:14:53.97ID:VsAZmxLI元の文字コードが変換元で指定したのと違うって事でしょうか?
0303nobodyさん
2011/05/12(木) 16:16:33.46ID:tGhpjtUt【OS名】Windows XAMPP
【PHPのバージョン】5.3
【質問内容】
Parentキーワードについて教えて下さい。
------
<?php
class Apple {
public function getTaste() {
return "りんごの味";
}}
class Tsugaru extends Apple {
public function getTaste() {
return parent::getTaste;
}}
$tsugaru = new Tsugaru();
echo $tsugaru->getTaste();
------
を表示すると下のエラーが出ます。
Fatal error: Undefined class constant 'getTaste' in C:\xampp\htdocs\test.php on line 9
初歩的な質問で申し訳ないですが、
親クラスからの呼び出し方法で何が間違っているか教えて頂けませんでしょうか。
よろしくお願いします。
0304nobodyさん
2011/05/12(木) 16:23:11.15ID:???ttp://seo.atompro.net/webtoolfree_strcnva_.html
化けた文字から元の文字コードの推測ができます。
0306nobodyさん
2011/05/12(木) 17:54:57.64ID:b6hPir1Mif ($_SERVER['REQUEST_METHOD'] == 'POST') {
//フォームから送信された値の処理
}
を書いてるケースをたまに見るのですが、これって
if (isset($_POST)) {
}
とどう違うのでしょうか?後者でも別に問題ないですよね?
0307nobodyさん
2011/05/12(木) 18:02:33.97ID:???0308nobodyさん
2011/05/12(木) 18:09:41.96ID:???代わりにgetenvを使いましょう
理由ぐらいはgoogle先生でいくらでもヒットしますので自分で調べるクセを身に着けましょう
0309nobodyさん
2011/05/12(木) 18:14:35.79ID:???代替手段になりえないものを提示してどうするんだろうとは思う。
0310nobodyさん
2011/05/12(木) 18:22:37.14ID:hbRO2IoX【PHPのバージョン】5.3
【連携ソフトウェア】PostgreSQL
【質問内容】
特定範囲の文字列だけを置き換えしたいと思っています。
$a = "12345678901234567890";
str_replace("5", "a", $a);
とすると「1234a678901234a67890」となってしまいますが、10文字目から20文字目にあるものを対象に限定して置き換えをしたいと思っています。
指定範囲の置き換えをするような関数は見当たりませんでしたが、こういったことをする上での手法をご教示いただけないでしょうか。
0312nobodyさん
2011/05/12(木) 18:25:19.51ID:RToCNvOT0313nobodyさん
2011/05/12(木) 18:36:51.08ID:???str_replaceで事足りる変換なら、substrで分割して、必要なとこだけ置換してあとでくっつけるのでいいんでない
0315310
2011/05/12(木) 19:17:08.57ID:hbRO2IoXサンクスです
この方法でうまくいきました
0316nobodyさん
2011/05/12(木) 20:11:57.59ID:???$str = "2011/11/23 19:26:37";
↑
文字列からタイムスタンプに直す方法
質問2
タイムスタンプからY/m/d H:i:s形式で出力する方法
0317nobodyさん
2011/05/12(木) 20:28:47.98ID:4j3DIpRoユーザの行動を追跡できる(一定期間操作を行わなかったらログイン状態を解除できる)
ぶっちゃけこれだけですか?
JavaScriptのonload時にサーバにIPorCookie送信と
サーバ側でデーモンが起動してれば(or cronで毎分チェック)
セッション使うこともないような気がしますがこの認識は間違ってますか?
ていうかこれは自前でセッション機構を構築してると言っていいのでしょうか?
0318nobodyさん
2011/05/12(木) 20:36:24.12ID:???0320nobodyさん
2011/05/12(木) 20:53:53.33ID:???例えばショッピングの確定前にチェックすればいいのではないでしょうか?
本当にこれでおk?と
商品情報であればサーバ側の情報と突き合わせれば明らかにおかしな改ざんは検出出来ると思います
そこで確定した場合はサーバに情報を保存しておきます
掲示板の書き込みとかは検出は無理ですが確認画面を挟めばいいと思います
(改ざんされてるとは思わず反射的にOK押しそうなのは置いといて)
個人情報に関しては最後の確定時にもう1回ログインと同じ工程をしてもらうことで
初めて参照できるようにすればいいのではないでしょうか?
>>319
勉強中ゆえご勘弁を
セッション難しい・・・
0321nobodyさん
2011/05/12(木) 20:54:54.01ID:jUrbXhlA$str = "2011/11/23 19:26:37";
↑
文字列からタイムスタンプに直す方法
質問2
タイムスタンプからY/m/d H:i:s形式で出力する方法
0323nobodyさん
2011/05/12(木) 20:57:33.80ID:4j3DIpRoそうであってほしいという願望から出た言葉です
俺ってスゲーわかってるんだぜ?と自己暗示しないとやる気でないタイプなの
0324nobodyさん
2011/05/12(木) 20:58:46.34ID:???人に質問する態度じゃない
0325323
2011/05/12(木) 21:03:47.56ID:???ためにもならないksな一言レスしかしない上に煽りしかできないやつってなんなの?死ぬの?
0326nobodyさん
2011/05/12(木) 21:05:56.58ID:4j3DIpRo偽物(・A・)イクナイ!!
概念はよくわかりませんがとにかく使ってみてなんとなくでも把握してみたいと思います
使う前に考える癖はよくないですね・・・
荒れる前に撤退|彡サッ
0328nobodyさん
2011/05/12(木) 21:17:24.30ID:???回答1・2
http://www.php.net/manual/ja/ref.datetime.php
0330nobodyさん
2011/05/12(木) 21:23:52.64ID:jUrbXhlAどの関数をどれに使えばいいですか?
0331nobodyさん
2011/05/12(木) 21:28:16.51ID:???0332nobodyさん
2011/05/12(木) 21:30:13.04ID:ojhTF3xDWordPressなのですが、ページを取得後、画像と文章を分けて出力したいです。
文章の方はこれで出来ました。
$text = get_the_content();
$text = preg_replace("|(<img[^>]+>)|si","",$text);
画像がうまくいきません・・・。
駄目なら、cssで<p>をdisplay: none;しようと思いますが、できればphpの方で、と思っています。
0333nobodyさん
2011/05/12(木) 21:32:42.70ID:???get_the_content()なんて非標準関数言われて困るわ
0334nobodyさん
2011/05/12(木) 22:02:20.99ID:???http://www.php.net/manual/ja/class.datetime.php
0338nobodyさん
2011/05/13(金) 05:30:03.24ID:???こんな感じで3Pですか?
0339nobodyさん
2011/05/13(金) 11:07:19.93ID:???header ("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header ("Content-Disposition: attachment; filename=" . $down_file);
header ("Content-Description: File Transfer");
header("Content-Length: " . strlen(join("",$csv)) );
header("Content-Disposition: attachment; filename=".$down_file.".csv");
.
.
.
データベースとのやりとり
.
.
.
foreach ($csv as $mval) {
echo $mval = mb_convert_encoding($mval,"SJIS-win","utf-8");
flush();
ob_flush();
usleep(10000);
}
上記はmysqlのデータベースをcsv形式でダウンロードするサンプルなんですが、これってcsvを作ってから
ブラウザにダウンロードのウィンドがでるんじゃなくて、ダウンロードが選択されたらcsvを作りながら、クライアントに
送るのでしょうか?
0340nobodyさん
2011/05/13(金) 11:07:59.28ID:4km3/S9q$down_file = "aaa";
header ("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header ("Content-Disposition: attachment; filename=" . $down_file);
header ("Content-Description: File Transfer");
header("Content-Length: " . strlen(join("",$csv)) );
header("Content-Disposition: attachment; filename=".$down_file.".csv");
.
.
.
データベースとのやりとり
.
.
.
foreach ($csv as $mval) {
echo $mval = mb_convert_encoding($mval,"SJIS-win","utf-8");
flush();
ob_flush();
usleep(10000);
}
上記はmysqlのデータベースをcsv形式でダウンロードするサンプルなんですが、これってcsvを作ってから
ブラウザにダウンロードのウィンドがでるんじゃなくて、ダウンロードが選択されたらcsvを作りながら、クライアントに
送るのでしょうか?
0341nobodyさん
2011/05/13(金) 11:10:16.44ID:???0342nobodyさん
2011/05/13(金) 11:11:34.43ID:???まぁリクエストがきたら作成して作成が完了したらレスポンスを返すので
ブラウザにダウンロードウインドウが出るってことはもうリクエストが終わってるから
その段階で作成は完了してる
0343nobodyさん
2011/05/13(金) 11:38:20.72ID:???次の質問をどうぞ!
質問するときにはID出すのを忘れずにね!
0344 忍法帖【Lv=3,xxxP】
2011/05/13(金) 14:33:49.92ID:oAMg8XCwstripslashes('\"')の出力は「"」となります。OKです。
しかし
stripslashes('\\')の出力は「」。何も表示されません。
バックスラッシュのクウォートが取れて「\」が表示されるはずなのですが
どうしてでしょうか?
0345nobodyさん
2011/05/13(金) 15:13:22.61ID:???0346。 ◆oDupeixhZv52
2011/05/13(金) 15:13:23.60ID:???gpc ってのは Get,Post,Cookie のこと。stripslashesの動作は関係ない。
'\\'ってのは \ なので、 二つならんだ\\を stripslashesにかけたいのならば、
stripslashes('\\\\')
理解しました。ありがとうございます><
0348nobodyさん
2011/05/13(金) 15:51:38.57ID:TvKhtBYV思ったより難しすぎてワロタwwwwwwwwww
ごめん質問しようと思ったら仕事入った後で質問します
0349nobodyさん
2011/05/13(金) 20:38:09.99ID:???http://ja.wikipedia.org/wiki/EUC-JP
このバイト列だけ削除すればいいのでは?
0350。
2011/05/13(金) 21:20:16.97ID:???mb_substitute_character('none');
$str = mb_convert_encoding(mb_convert_encoding($str, 'utf8', 'EUC'),'EUC','utf8');
0351nobodyさん
2011/05/14(土) 03:05:48.85ID:???0352nobodyさん
2011/05/14(土) 14:58:50.42ID:???delete 文字 from EUC文字コード表 where 文字 = 機種依存文字
0353nobodyさん
2011/05/14(土) 14:59:52.26ID:???0356nobodyさん
2011/05/14(土) 17:34:51.53ID:92HPTgqha5c6 a5b9 a5c8 ada1 a4a2 a4a4 a4a6 a4a8 a4aa a4ab a4ad a4af a4b1 a4b3
特殊文字の
�@である「ada1」を空白に置き換えた場合、
「きく」のようにつながっている「a4ad a4af」の「a4 "ada4" af」も置き換わってしまいます。
この部分だけ対処しても恐らく他で同じような不具合が起きそうです。
なので、一度UTF-8に変換して置き換えようと思ったのですが、
mb_convert_encoding($text, "UTF-8", "EUC-JP"); にした場合
e38386 e382b9 e38388 3f e38182 e38184 e38186 e38188 e3818a e3818b e3818d e3818f e38191 e38193
と、�@が3f(003fが「?」になる)になってしまって�@の文字コードではなくなります。
EUC-JPの場合、機種依存文字を削除する術はあるのでしょうか
>>355
ごめんなさい、ちょっと色々仕事が・・・。
0357nobodyさん
2011/05/14(土) 17:43:44.20ID:92HPTgqh試してみる!
0358nobodyさん
2011/05/14(土) 17:54:31.72ID:???で大丈夫だったと思うが、好きな方法でやればいいよ。
0359nobodyさん
2011/05/14(土) 18:01:31.93ID:ucsP9ViJ最近不具合を追っていたら、preg_replaceの結果が鯖毎に違うことが原因と判明。
最近追加した鯖のみ異なるようなんだが、preg_replace内部の動きは何に依存するの?
具体的には\p{Ll}\p{Lm}などUnicode系?を置換するとおかしくなる(もしくは以前おかしかった?)模様。
0361nobodyさん
2011/05/14(土) 18:37:42.27ID:???0362nobodyさん
2011/05/14(土) 18:50:27.65ID:ucsP9ViJphpinfoで確認した限りでは、同じでした。
どちらも
PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 6.6 06-Feb-2006
0364nobodyさん
2011/05/14(土) 19:48:44.79ID:JKTyqoMuIDは送信できているのですが パスワードが送信できません
IDのinputにはvalueがあるのですが パスワードのinputにvalueがなく JavaScriptのgetElementByIdで取得しているようなんです
そこで JavaScriptの変数名.value=""; にパスワードを入力して送信したいのですがどうしたらいいでしょうか?
0365nobodyさん
2011/05/14(土) 19:51:42.33ID:???0366nobodyさん
2011/05/14(土) 21:37:11.42ID:???PHPなのかJavaScriptなのか。後半の文章を読むとJavaScriptのようだけど、それなら無理だしスレ違い。
PHPでのPOSTなら、Socket使えばパスワードも送信できる。
0367nobodyさん
2011/05/14(土) 21:43:25.37ID:???いらんことしてる気がするな
■ このスレッドは過去ログ倉庫に格納されています