【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等)・フレームワークは各該当スレへ
0233nobodyさん
2011/05/09(月) 00:58:58.37ID:???0234nobodyさん
2011/05/09(月) 02:39:50.56ID:???0235nobodyさん
2011/05/09(月) 05:04:02.37ID:???0236nobodyさん
2011/05/09(月) 11:42:41.56ID:LKDBKV6Ehttp://www.sanadake.info/sch/bbs/
パーミッションが分からず困っています
サーバーはFC2レンタルサーバーライトを使っています
とりあえず設置は出来たのですが
パスワードの変更や掲示板の作成はエラーです
エラーは366とか367とかです
その時のパーミッションはフォルダ、phpファイル共に705にしてました
どなたか教えてください
0237。 ◆oDupeixhZv52
2011/05/09(月) 12:14:17.03ID:???0238nobodyさん
2011/05/09(月) 12:36:09.20ID:???0239nobodyさん
2011/05/09(月) 12:55:41.69ID:LKDBKV6E707試しましたが掲示板作成できませんでした
>238
全く釣りじゃないですよ
パーミッションの設定に書いてあるんです
0240nobodyさん
2011/05/09(月) 13:05:29.79ID:LKDBKV6E管理画面にはいくのですがパスワードの変更、掲示板作成はできません
0241nobodyさん
2011/05/09(月) 13:21:20.38ID:???phpファイルを755とか705にする事は絶対ねえよ
0242nobodyさん
2011/05/09(月) 13:23:25.51ID:???0243nobodyさん
2011/05/09(月) 13:35:27.18ID:LKDBKV6Eさくらサーバーのとこにはあるんですよ
http://www.sanadake.info/sch/permission.php
0244nobodyさん
2011/05/09(月) 16:11:02.84ID:v5ubEZZH最後の終端文字を最初の文字に合わせるにはどうすればいい?
"aaaa' これでマッチしてしまう。
0246nobodyさん
2011/05/09(月) 17:20:57.76ID:???"/(['\"])(.+)\\1/"
0247nobodyさん
2011/05/09(月) 17:22:59.23ID:???○俺の知能を超えた質問だったから正規表現スレ行け
0248244
2011/05/09(月) 17:33:32.96ID:v5ubEZZHどうもありがとうございます!
\\としないと駄目なんですね。。勉強になりました。
0250nobodyさん
2011/05/09(月) 20:57:29.83ID:???0251nobodyさん
2011/05/10(火) 02:16:06.02ID:???フォルダの707は設置フォルダとDBフォルダ両方。
366行にmkdirがある。
フォルダが作成されていて、707でなければ chmod追加。
0252nobodyさん
2011/05/10(火) 11:43:02.21ID:arsXiqXKリストで更新動画の画像へのurlと更新内容のテキストを並べていきたいのですが
htmlを見てもどのように取得したらよいか悩んでます
どなたかアドバイスお願いします
0253nobodyさん
2011/05/10(火) 12:01:48.72ID:???pearにsimple htmldom parser ってのがあるからこれ使うと便利だよ
http://simplehtmldom.sourceforge.net/
タグとかidとかでjavascrypt見たいに要素を引っ張れる
0255nobodyさん
2011/05/10(火) 12:10:59.02ID:arsXiqXKパーサー事体はなんとか出来たのですが
htmlが汚くてどのように取得したらよいかわからず。。。
0256nobodyさん
2011/05/10(火) 15:10:31.59ID:vf7zGTimpreg_match_all('!<a href="(.+?)">(.+?)</a>!', $get, $match);
print_r($match);
結果
Array
(
[0] => Array([0] => <a href="test.txt">sample</a>)
[1] => Array([0] => test.txt)
[2] => Array([0] => sample)
)
こうなるのですが$match[0]の部分を取らず、キャプチャしたところだけ取る方法ってございませんか
Array
(
[0] => Array([0] => test.txt)
[1] => Array([0] => sample)
)
が理想なんですが
0257nobodyさん
2011/05/10(火) 15:35:51.61ID:lETsiVC1preg_matchがマッチした回数しか返してくれないのが歯がゆいというかなんというか。
preg_match('|<title>(.*?)</title>|', $html, $title);
preg_match('|<h1>(.*?)</h1>|', $html, $h1);
user_function($title[1], $h1[1]);
↑新しい変数を作りすぎて、どこかでかぶる恐れがある
preg_match('|<title>(.*?)</title>|', $html, $match['title']);
preg_match('|<h1>(.*?)</h1>|', $html, $match['h1']);
user_function($match['title'][1], $match['h1'][1]);
↑煩雑だけどこれがベスト?
0258nobodyさん
2011/05/10(火) 15:43:49.26ID:???後でどう利用するかいわないと何ともいえない気がするけど、このあたり?
http://www.php.net/manual/ja/function.preg-match-all.php
http://www.php.net/manual/ja/function.preg-replace-callback.php
0260nobodyさん
2011/05/10(火) 15:47:12.13ID:IrqArrYA$a = array("りんご","ごりら","らっぱ");
$b = array("食べ物","動物","楽器");
$aと$bを$array()に格納したいのですが
$array[0]['a'] りんご
$array[0]['b'] 食べ物
$array[1]['a'] ごりら
$array[1]['b'] 動物
$array[2]['a'] らっぱ
$array[2]['b'] 楽器
な感じにする方法をご教示お願いいたします
0261nobodyさん
2011/05/10(火) 15:48:19.57ID:IrqArrYA0262nobodyさん
2011/05/10(火) 15:51:03.92ID:???0263nobodyさん
2011/05/10(火) 15:59:59.70ID:lETsiVC1レスありがとうございます。質問者のボクが質問の趣旨を理解していませんでした。
1: preg_match('|<title>(.*?)</title>|', $html, $match['title']);
2: preg_match('|<h1>(.*?)</h1>|', $html, $match['h1']);
3: user_function($match['title'][1], $match['h1'][1]);
1:の瞬間、$match['title']の[0]は不要なのに、切り捨てる手段がないのがもどかしい。
なので3:の時点まで「$match['title']は[0]と[1]の配列だけど必要なのは[1]だ」ということを覚えておかなくちゃいけない。
仮にpreg_matchが$macthを返すような関数なら、こう書けてとてもスッキリするのに…。
1: $match['title'] = current(preg_match('|<title>(.*?)</title>|', $html));
2: $match['h1'] = current(preg_match('|<h1>(.*?)</h1>|', $html));
3: user_function($match['title'], $match['h1']);
Rubyならこうかな?
1: $match['title'] = preg_match('|<title>(.*?)</title>|', $html)[1];
みたいなことを思ったのです。
0264nobodyさん
2011/05/10(火) 16:13:31.00ID:???なるほどね。合点がいった。
ユーザ定義関数を作るのがいいんじゃないかな。
function getFirstChildTextContent ($tagName, $html) { return preg_match('|<'.$tagName.'>(.*?)</'.$tagName.'>|', $html, $match) ? $match[1] : ''; }
$html = '<title>test title</title><h1>heading</h1>';
echo getFirstChildTextContent('title', $html)."\r\n".getFirstChildTextContent('h1', $html);
0265252
2011/05/10(火) 16:33:52.92ID:???これでエロサーフィン生活が快適になりました
0266。 ◆oDupeixhZv52
2011/05/10(火) 16:52:33.02ID:???foreach($a as $var=>$val) $array[$var]["a"] =$val;
foreach($b as $var=>$val) $array[$var]["b"] =$val;
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:???■ このスレッドは過去ログ倉庫に格納されています