【PHP】下らねぇ質問はID出して書き込みやがれ 97
1 :
nobodyさん :
2010/07/23(金) 06:24:51 ID:3G71fl8i 質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
前
【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2 :
nobodyさん :2010/07/23(金) 06:26:18 ID:3G71fl8i
3 :
nobodyさん :2010/07/23(金) 06:27:02 ID:3G71fl8i
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
5 :
nobodyさん :2010/07/23(金) 06:27:56 ID:ox8GxJqV
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
6 :
nobodyさん :2010/07/23(金) 06:28:34 ID:3G71fl8i
テンプレお仕舞い
7 :
nobodyさん :2010/07/23(金) 06:37:49 ID:3G71fl8i
8 :
nobodyさん :2010/07/24(土) 04:55:15 ID:TK9KGrEY
ソース読んだが目眩がしたのでやめた ざっと見ただけだが$iddとか$_SERVER['PHP_SELF']あたりにXSS脆弱性がありそうだし使うのやめとけ
基礎文法ができるようになった程度の素人です。 関数の作り方について質問させてください。 例えば、ページのHTMLとタイトルを取得するプログラムを作る場合、 HTMLを取得する関数と、タイトルを取得する関数を別々に作るか、 一つの関数の中で両方の処理をして結果を配列で返すのでは どちらがベターなんでしょうか? 要は、一つの関数にどれくらい処理を詰め込むか、という点について悩んでいます。
10 :
nobodyさん :2010/07/24(土) 16:50:21 ID:/etfmlDc
すいません、ID出すの忘れてました。
11 :
nobodyさん :2010/07/24(土) 17:00:35 ID:8flvUamD
>>9 クラスにして
$htmlHage = new HtmlHoge($url);
echo $htmlHage->html;
echo $htmlHage->title;
とかどうですかね?
12 :
nobodyさん :2010/07/25(日) 13:50:20 ID:kfGawzlJ
CSVファイルについてなんですが $filename = "data.csv"; $handle = fopen($filename, "r");だと普通に読み込めるのに $handle = fopen($filename, "w"); だと書き込めません。 読み込みがだけが出来て書き込みが上手くいかないんです。 どんな原因が考えられますか?
パーミッション
14 :
nobodyさん :2010/07/25(日) 15:42:03 ID:kfGawzlJ
解決しました どうもです
15 :
nobodyさん :2010/07/26(月) 10:31:59 ID:EMjb+eyx
PHPでMVCに分けてウェブアプリ作ろうと思ったんですが、ディスパッチャってのが必要なんですか?
16 :
nobodyさん :2010/07/26(月) 10:35:22 ID:wM/fHZFp
そのレベルでは不要です。
17 :
nobodyさん :2010/07/26(月) 12:09:31 ID:1Freq2Cm
【OS名】WindowsXP 【PHPのバージョン】5.2.14 【連携ソフトウェア】ImageMagick6.6.3 imagick3.00 Microsoft Visual C++ 2005 Express Edition 【質問内容】php_imagic.dllを作るにはどうすればいいですか? VCCLCompilerTool AdditionalIncludeDirectories=".\;"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include";"C:\Program Files\Microsoft Visual Studio 8\VC\include";"C:\work\phpsdk\php-5.2.13\main"; "C:\work\phpsdk\php-5.2.13\TSRM";"C:\work\phpsdk\php-5.2.13\Zend";"C:\work\phpsdk\php-5.2.13\regex";"C:\work\phpsdk\php-5.2.13";"C:\Program Files\ImageMagick\include"; "C:\Program Files\ImageMagick\include\magick";"C:\Program Files\ImageMagick\include\wand";"C:\Program Files\ImageMagick\include\Magick++"" PreprocessorDefinitions="IMAGICK_USE_NEW_HEADER;_MAGICKMOD_;_LIB;_VISUALC_;NeedFunctionPrototypes;_LIB;HAVE_IMAGICK=1;WIN32;ZEND_WIN32;PHP_WIN32;ZTS=1;_USE_32BIT_TIME_T=1;HAVE_STDLIB_H=1;ZEND_DEBUG=0;" VCLinkerTool AdditionalDependencies="C:\work\phpsdk\php5ts.lib "C:\Program Files\ImageMagick\lib\CORE_RL_magick_.lib" "C:\Program Files\ImageMagick\lib\CORE_RL_wand_.lib"" こんな感じでコンパイルは出来るんですが、 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'php_imagick.dll' in Unknown on line 0 とエラーが出てしまいます
18 :
nobodyさん :2010/07/26(月) 13:01:39 ID:EMjb+eyx
【OS名】FreeBSD 7.1-RELEASE-p8 i386 【PHPのバージョン】5.2.13 【連携ソフトウェア】WordPress3.0 TinyMCE 3.2.7 【質問内容】 WordPressのTinyMCEについて質問です。 今編集している記事だけに独自のcssを適用させたいのですが、 投稿編集時にhtmlタブを選んで直接<style>タグ入れても(style="hoge:kage;"じゃなくて)、ビジュアルタグに戻すと削除されてしまいます。 どうすればstyleタグが消されないように出来るでしょうか。
20 :
nobodyさん :2010/07/27(火) 02:40:39 ID:Xhf9m7EP
Webアプリをインターネット公開する場合のセキュリティに関してです。 使用するユーザが固定化されている場合、悪意を持った第三者への セキュリティ対策は、 ・Apache側で.htaccessによるIPアドレス制限(ルータ側でもフィルタリングするかも) ・ユーザ認証あり ・ログイン後は常にSSL有効 にするだけでだいぶマシですか?
22 :
nobodyさん :2010/07/27(火) 11:49:05 ID:yPmTDkvB
ユーザが固定IPならSSL使っていれば問題ないけど、 固定でないなら、他にまだまだやることはあると思う。
他にやることとは?
>>22 SQLインジェクションとかクロスサイトスクリプティング対策ってやつですか?
前者はフレームワーク側でやってくれないかな・・・後者は、これJavaScriptは
今時使わないスタイルにしといても駄目なんですかね。
・・・というレベルです。
そろそろ2種類用意されているphp.iniの設定値以外の違いが許せなくなってきた。 片方だけ設定項目が多いとか空白の数に差があるとか。
何の話だ
27 :
nobodyさん :2010/07/28(水) 07:19:08 ID:SQhQM/93
クラス内のメソッドで下記のように$thisを通してメンバ変数にアクセスする利点って何? 例えば、グローバル変数を使ってない環境だと、$thisを使う必要性ってないよね? function Foo() { return $this->m_bar; }
どう書けばいいと思うわけ?
まあ、Javaに限らずC++でもDelphiでも、
>>27 みたいな場合はthis要らんわな。
RubyやPythonはどうなんだろ?
ああ、PHPの言語設計に対する疑問? まあ省略できる設計の是非はともかく、 thisがあったほうが明確でわかりやすいと思うんだけど。
$thisを通してって書いてる時点でどうなんだろう。
33 :
nobodyさん :2010/07/29(木) 13:52:16 ID:XIvo3k0v
今からやるなら.netとどっちがオススメでしょうか? 後、PHPのフレームワークって定番はあるのでしょうか? 調べてみると、KohanaとかDrupalとか良さそうなんですが・・・。
phpの場合は変数宣言無しで使えるからthisで明示しないと厳しいんじゃね? 関数内の変数なのかクラスでのプロパティなのか判断を何でするかだよなぁ
フレームワークはSymfony、Zend Framework、CakePHPが3大フレームワーク ついでcodeigniter。 kohanaはcodeigniterからの派生
>>33 今までPerlで組んでいたところは徐々にPHPに移行中
レンタルサーバーだとほぼPerlかPHPの二択
PHP覚えるなら下手な解説本より公式サイトが一番充実してる
ある程度できるようになったら”Zend Framework PHP 標準コーディング規約”も覚えると良い
perlのままでよかったのに・・・
ままでもいいんだよ?
perlからphpはステップアップなのか?
PHPの方が出来は悪いけど、Perlと違っていろいろモジュール入れなくても そこそこ必要な機能は入ってるからなぁ。満足してるんならいいんじゃねーの?
42 :
nobodyさん :2010/07/29(木) 20:31:46 ID:AjneI2sc
◆質問用テンプレ 【OS名】Ubuntu10.4 【PHPのバージョン】5.3.2-1ubuntu4.2 【連携ソフトウェア】SQLite apache2 【質問内容】 下記のエラーが出ます。 PHP Notice: Undefined variable: insert_message in /var/www/php/album/input.php on line 86 コードは↓のものですが、本のコードをそのまま書いています。 なぜエラーが出るのかわかりません。教えてください。 /* 更新後処理を実行 */ $sth->execute(); $insert_message = "データを追加しました。\n"; . . . <?php if($insert_message != ""){ ←ここでエラー echo $insert_message; }else{ ?>
存在しない変数を使うとエラーになる、 /* 更新後処理を実行 */ を通らないと$insert_messageが定義されないのが原因
エラーっつうか、警告やね。 警告ってもwarningよりもまだ深刻度の低いやつ(notice)。
45 :
42 :2010/07/29(木) 21:25:43 ID:AjneI2sc
>>43 ありがとうございます。
エラーの原因はわかりましたが、
自分なりに直してみても思ったとおりに動かないので
もうちょっとやってからまた書きます。
46 :
42 :2010/07/29(木) 21:26:53 ID:AjneI2sc
>>44 ? エラーじゃないんですか?
あとでまた来ます
47 :
42 :2010/07/29(木) 21:46:34 ID:AjneI2sc
if文で/* 更新後処理を実行 */ のところを通っていたので if文の前に $insert_message = ""; を追加してエラーが出なくなりました。 とりあえず解決?です ありがとうございました
Noticeは他のエラーやバグを呼び込むから怖い
49 :
nobodyさん :2010/07/30(金) 12:51:10 ID:77FMIF6+
PHP + mysql で掲示板サイトを作りたいです。 テーブルに記録する書き込みログのレコード数の上限は、 どのように考慮すればいいのでしょうか? 1つのテーブルで1000万件?の書き込みログをを扱った場合、 どんな不都合がありますか。対処方法を教えてください。
全然問題ない。 limit適用してください。 my.iniもしっかり設定してください。
テーブルがでかくなると結果がメモリに載らなくなりスワップが起こる それだけ
でかくなるとスワップするの?
53 :
nobodyさん :2010/07/30(金) 15:03:46 ID:77FMIF6+
>>50-52 ありがとうございます。
ちょっと調べたのですが、
マージテーブルを用いる方法は一般的でないのですか?
54 :
nobodyさん :2010/07/30(金) 15:45:43 ID:0S0VPXbw
php5.3使用です。 class名を変数で指定する方法はありますか? AdminController、UserControllerといったクラスを作りたいのですが $var = 'Admin' class ${$var}.Controller { とすると Parse error: syntax error, unexpected '$', expecting T_STRING in とエラーが出て $var = 'AdminController' class $var { とすると Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING とエラーが出ます。
>>52 初期のTwitterはSQLで作られていたからメモリにテーブルが載らなくなってサイトが重くなった
59 :
nobodyさん :2010/07/30(金) 18:19:20 ID:VB6VZ/GP
基礎文法を覚えた程度の初心者です。 配列の要素を、特定の文字列を含むものとそれ以外のものに別けたいのですが preg_matchを複数指定したときに、うまくループさせる書き方がわかりません。 自力ではこれが限界です。どうかアドバイスをお願いします。 $match = array( '/aaaaa/', '/bbbbb/' ); foreach ($match as $m) { foreach ($data as $d) { if (preg_match($m, $d)) { $result[] = $d; } else { $result2[] = $d; } } }
分けたいといいつつ、複数のパターンにマッチするデータが重複するわ どのパターンにも当てはまらない文字列がマッチパターンの数だけresult2に入るな。 ループ逆にして、マッチしたら抜ける、どれにもマッチしなかったときだけ result2に入れなきゃ。
$match = array( array('resultName' => 'result', 'pattern' => '/aaaaa/'), array('resultName' => 'result2', 'pattern' => '/bbbbb/) ); って、やっぱ駄目だなw
$patterns = array( ?a? => ?/aaaaa/?, ?b? => ?/bbbbb/?, ); foreach($data as $d){ switch(true){ case(preg_match($patterns[?a?], $d)): case(preg_match($patterns[?b?], $d)): $matched[] = $d; break; default: $unmatched[] = $d; } } $patternsの数が可変じゃありませんように。
/aaaaa|bbbbb/ でいいじゃねえか
foreach ($data as $d) foreach ($match as $m) if (preg_match($m, $d)) { $result[] = $d; break; } $result2 = array_diff( $data,$result);
65 :
nobodyさん :2010/07/30(金) 21:39:04 ID:VB6VZ/GP
>>60-64 見事にできました。
すべての方法を試してみて、とても勉強になりました。
質問して本当によかったです。
どうもありがとうございました。
>>67 冷やしました。お願いですから質問に答えてください師匠。
69 :
nobodyさん :2010/07/30(金) 23:37:29 ID:28skF+Ec
【OS名】FreeBSD 【PHPのバージョン】5.3.2 【連携ソフトウェア】SQLite3 【質問内容】 ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared これでmakeし、php.ini には extension=pdo.soを設定 php -i で見る限りPDO drivers が no valueになってます。 php.iniにextension=sqlite.soを記述し php -i をみると PDO drivers には sqlite2 が使えるようになりますが sqlite3が使えません。何か足りませんでしょうか。 使うためには PDO drivers が sqlite にならないと駄目だと思っています。 もしくはphp5.3.2でsqlite3が使えるか使えないかでも良いのでよろしくお願いいたします。
>>69 そんなことも分からないのかw
お前ってバカだなw
とっとと死ねクズwww
72 :
69 :2010/07/31(土) 10:39:26 ID:l/BqQE1l
>>71 ありがとうございます
php.iniに
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
を記述しextension_dirにあることを確認しました。
php -i を実行すると
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/pdo_sqlite.so' - /usr/local/lib/php/extensions/pdo_sqlite.so: Undefined symbol "sqlite3_libversion" in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/pdo_sqlite.so' - /usr/local/lib/php/extensions/pdo_sqlite.so: Undefined symbol "sqlite3_libversion" in Unknown on line 0
と表示され、以前pdo driversにはsqliteは表示されません。
peclでインストールしてみても途中で「make: *** [sqlite_driver.lo] Error 1」を吐きとまってしまいます。
pdo_sqlite.soのバージョンを上げれば解決するのでしょうか
74 :
nobodyさん :2010/08/01(日) 05:41:27 ID:KNCbWi+L
http://www23.atwiki.jp/ksk1000/pages/11.html ここで配布している自動書き込みツール(2番目のやつです)をダウンロードして、
実際に使ってみたのですが、「開始」ボタンを押すと、
「書き込みに失敗した?」というのが出て、書き込みができないのですが、
これはどういうことなのでしょうか?
クッキーの取得の仕方が間違っているのでしょうか?
ちなみに自分は、ブラウザの「ツール」というところから、
クッキーを取得(できたのかな?)したのですが、
このやり方じゃ駄目なのでしょうか?
誰か教えてください。お願いします。
>>74 そうやってスレ違いな質問してるお前には無理
スレは自分で探せよ終了
はい次の方
>>72 >>73 の続報
うちでも同じ症状出てたけど、
>>73 の方法で、pdo_sqliteは扱えるようになった。
たたし、static linkでビルド。
sharedだとダメかもしれないので検証よろ。
あるディレクトリにファイルを保存したら、phpのスクリプトを 起動することはできますでしょうか? (ディレクトリに保存されたことをトリガとする)
phpでオブジェクトを一万回つくった場合、裏では同じメソッドも一万回作られてるんですかね。 それとも共通のメソッドが一つだけ作られてメンバーのみ一万回作られるだけなんですか?
79 :
69 :2010/08/01(日) 14:43:49 ID:1L8kDf8H
>>73 >>76 サイトにあるような方法で色々試してみたところ
どうにか使用できるようになりました。情報ありがとうございました
80 :
nobodyさん :2010/08/02(月) 14:27:56 ID:lt4xvp/v
質問です。 HTTP通信によって呼び出されたPHPが、一定時間以上処理に時間がかかってしまった時にエラーページを返す方法を探しています。 max_execution_time によって強制終了させるというのはできるのですが、強制終了ではなく ・処理は継続 ・だが、エラーページはユーザーに返してしまいたい という内容です。 何か良い知恵はありますでしょうか
>>80 やったこともないし想像で書いちゃうけど
execやsystemでphpをバックグラウンドで動かして色々いじればいいんじゃなかろうか
画面から呼び出すphpにはsleepとループを組み合わせるとか
どちらにせよ現実的じゃないとは思うしそんなのが必要なのかもわからんなぁ
すみません。 画像検索APIを使用して、フォームからGETでキーワードを渡してAPIからのレスポンスを PearのPagerを使って「最初 1 2 3 4 5 最後」のように表示させたいのですが、うまく動いてくれません。 APIからのレスポンスをsimplexml_load_fileでパースして それを配列に格納してPagerのitemDataに代入→最後にfor構文で表示させればいいのでしょうか? これで合っていたとしても過程がよく分かりません。 初心者質問ですみませんがよろしくお願いします。
83 :
nobodyさん :2010/08/02(月) 21:21:33 ID:ReQvTJ9C
IDを出し忘れました。
>>80 スレッドかな。
リクエストされたら、別スレッドで処理を実行。
メインスレッドはしばらくそのスレッドの状態を監視。
処理が終わったら正常ページ返却。
一定時間経っても終了しない場合はエラーページ返却。
phpでどうやって、スレッドを把握するの?
>>85 セッション、ファイル、DBとか、連絡方法はいろいろある。
連絡だけなら共有メモリとかでよくね?
88 :
nobodyさん :2010/08/03(火) 18:18:50 ID:4EsxHsFf
質問させてください 本日ずっと迷宮入りしていたのですが、phpMyAdminをhtdocsの中に入れたものの、いつものように「mcrypt 拡張をロード できません」と出ました いつもならばすぐに解決するのですが、今回はどうにも解決できませんでした yum install php-mcryptのようなものは全てしましたが駄目でした で、拡張モジュールの問題かと思いましてphp.iniに記述されている「extension_dir=/usr/local/lib/php/ext」を調べてみると、ちゃんとmcrypt.soやmysql.soは入れておりました phpinfoではextension_dirに上記のパスは通っております php.iniにも、「extension=mcrypt.so」と記述しておりますし、Apacheも再起動しました どのようにすれば拡張モジュールを反映できるのでしょうか? 環境はLAMP全て最新版で、centOSを使っております phpはyumから入れるのではなくtar→make等で入れました本日
>>88 configureのときにmcryptをsharedobjectとして使う設定にしないとだめとかは?
90 :
nobodyさん :2010/08/03(火) 18:46:03 ID:4EsxHsFf
>>89 自分は最近めんどくさがってyumからApache、MySQL、PHPを構築していたもので、
gdとかzlibとかは./configure時にコンパイル条件として設定したのですが、mcryptの事をすっかり忘れてしまっていました
このような場合は後から拡張PHPモジュールは入れられないのでしょうか?
yumで構築したときは後からでもyum install php-gd等で出来ましたが、
extension_dirで指定したディレクトリの中にmysql.so等を入れて、php.iniにextension=mysql.soと追記するやり方では間違っているのでしょうか?
もし出来ないのであれば仕方がないので--with-mcrptとかしないといけないのかなぁとは思っています
phpizeを使って拡張モジュールだけコンパイルすれば?
あーついでに、yumでインストールした場合 大体の場合php.dとかにその拡張モジュールの設定ファイル入ってるよ
93 :
88 :2010/08/03(火) 22:05:47 ID:4EsxHsFf
今まで格闘していたのですが、やっぱり駄目でした
自分はPHP5.3を入れているのですが(確かcentOSのPHPは5.1)、そのせいかyumではレポジトリがいつものように古いバージョンしかなくエラーが出ているのかもしれません
Module *** API=20050922
PHP *** API=20060613
のようなエラーが出ましたので、バージョンの差異が問題になっているようです
Fedoraとかであれば問題無かったのかもしれませんが
で、phpizeにてコンパイルしようにも、
http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download からダウンロードしてきたmcryptにはconfig.m4.が無いらしく、その事に付いてのエラーが出ます(autoconf、automakeはインストール済みです)
この場合どうしたらいいのでしょうか?
ずっと調べ回ったのですが自分には分かりませんでした
ネット上のcsvデータをローカルに持ってきて一部のカラムを削除したりして ポスグレにインポートって出来ますか?
できますん
あざっす!上司がバッチファイルだけでCSVデータのプライマリキーの重複削除しろ とかキチガイです!
ごく普通の要件だと思うが・・・
>>88 そんなに悩むぐらいならopつけて
コンパイルし直したほうが早くないかw
ごく普通の要件だとでしょ
>>97 プライマリキーの文字数が固定ならsortとuniq使って1行でできそう。
そうじゃないならどうしたものか。
って、その処理をするためにわざわざDBに放り込むとかそれこそキチガイだろwww
データ量次第だよね。少なければ配列に放り込んでオンメモリ処理でいけるけど あふれるようだといろいろ工夫が必要。
104 :
nobodyさん :2010/08/04(水) 17:47:01 ID:ycHKzTuW
$b =& $blog; という記述の & の意味が分かりません。 どなたか教えて下さい。 よろしくお願いします。
>>104 その一行でテンプレート読込してるとか?
テンプレートの方でいちいち
<?php $blog->なんとか ;?>
って書くのめんどくさいからじゃなね?
<?php $b->なんとか ;?>
の方がすっきりするからじゃね?
107 :
nobodyさん :2010/08/04(水) 22:24:57 ID:oL+38ijf
配列よりオブジェクトを使った方が値がコピーされないんでめもりの 節約になるって言うけどさ、そもそもPHPってリファレンスカウンティングなんで データの参照用で値が変わらない配列なら一緒じゃないの?
108 :
nobodyさん :2010/08/05(木) 02:03:07 ID:h++E+uZs
POSTにする
110 :
nobodyさん :2010/08/05(木) 02:12:08 ID:GcQy5YqT
【OS名】Windows XP SP3
【PHPのバージョン】5.3.1 (PEAR, Mail_Mime, MDB2, Zend)
【連携ソフトウェア】cURL 7.19.6 / Apache 2.2.14 (IPV6 enabled) / XAMPP for Windows 1.7.3
【質問内容】
$fp = fsockopen('216.218.211.37', 80);
fwrite($fp, 'GET / HTTP/1.1'."\r\n".'Host: example.com'."\r\n\r\n");
echo stream_get_contents($fp);
fclose($fp);
$ch = curl_init('
http://example.com/ ');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($ch, CURLOPT_PROXY, '
http://216.218.211.37:80 ');
curl_exec($ch);
echo curl_error($ch).' ('.curl_errno($ch).')';
curl_close($ch);
前者は上手くいきますが、後者では curl_exec() で false が返り、
http://example.com/ のデータが取得出来ません
curl_error() のエラー文字列と curl_errno() のエラー番号は下記の通りです
cURLでプロキシ経由のアクセスをしたいのですが、どこが間違っているのでしょうか
>Proxy CONNECT aborted (56)
phpで複数あるラジオボタンに対し上限2個までのチェック処理を行い、 3個以上チェックしたらワーニング処理(アラートのことかな)を出したいだしいです。 上司が言うにはセッションを使うとかどーたら。。。。。 俺の解釈が間違っているかもしれませんが。。。。 とにかく納期ギリギリです。 だれか方法教えてください。本当にお願いします。
テンパなのは解るが質問するんだったらIDを出そうぜ 入力チェックをしたい事だと思うんだが書かれた事だけだと候補が多すぎる form処理だと思うんだが入力段階ならjavascriptになるし送信後ならphpで入力チェックだし 単独ページなのか複数ページに跨る入力チェックなのか… 焦る気持ちもわかるがルールを守ることも大事だし 聞きたい事が相手に正しく伝わらないと無駄に時間を使うだけ
チェックボックスじゃなくてラジオボタンなのか
114 :
EM114-48-62-141.pool.e-mobile.ne.jp :2010/08/05(木) 14:19:36 ID:VviQKwo3
ふう・・・・約2ヶ月も規制で書き込みできなくなるとは思わなかったぜ
ラジオボタンだと、どうしたって1個しか選べないんじゃないの? 複数許可するブラウザ(フォームの実行系)があるのかな。
A,B,Cそれぞれの選択肢から2個を上限として選んでください 例:Aから1個Cから1個 Bから1個Cから1個 こんな感じだろたぶんw
複数選べるラジオボタンだから、単にグループにしてないだけでしょう。 3つ選んでたら駄目って表示すればいいだけなのでセッションとかなんか勘違いしてるか 書いてない条件があるのかしらんけど、それが出来ないなら説明しても出来ないと思うけど。
119 :
nobodyさん :2010/08/05(木) 22:13:58 ID:ON5OkfeA
require "test.txt";でファイルを読み込むことはできますが、 $inpo ="baka"."aho"."text";として ↑上の$inpoって変数だけでrequireで指定したファイルを 読み込むことってできるのでしょうか
できるわけねえだろks
require $inpo; ってわけでなく?
122 :
nobodyさん :2010/08/05(木) 23:53:58 ID:ON5OkfeA
ってわけです 失礼いたしやした
>>122 それやるのは良いが色々とちゃんとチェックしといたほうがいいよ
125 :
nobodyさん :2010/08/06(金) 01:08:32 ID:S3CmsbHM
>>124 あまり一般的では無いという事ですかね?
調べてみます
127 :
nobodyさん :2010/08/06(金) 13:40:38 ID:zz9oR7D2
宿題きめえ
resultに入れたいデータ構造による
PHPってなんておしゃれな名前なの 惚れちゃう
PHPである程度なんでも作れるようになったからC#の勉強してみたって人いますか?
先にJAVA触ったなで、C#もやったけどその後Cっていう変な流れ
133 :
nobodyさん :2010/08/07(土) 20:05:26 ID:6W+R9iQf
すいません。 require("Framework.php"); Framework::execute();//実際にはFramework.php内で実行 class IndexAction { function dispatch(&$c){ $c->set("このページはインデックスページ"); } } のように記述して動作するフレームワークのような物を作っているのですが Framework側からIndexActionクラスの存在が確認できませんでした。 ためしに、Framework::execute();をIndexActionクラス以降に記述すると動作するのですが classは関数とは違い呼び出される以前に認識させれていないといけないのでしょうか? 環境はwindows 7 + apache2.2 + php4です。
134 :
nobodyさん :2010/08/07(土) 23:20:10 ID:4rhxgL+i
PDTとPHPEclipseどっちがおすすめですか?
135 :
nobodyさん :2010/08/08(日) 03:01:23 ID:344hAWEQ
FPDF+FPDIで、文字を書き込む位置をあらかじめテンプレートの PDFファイル内にマーカーとして埋め込んでおいて、プログラムから そこに実際の文字列を入れるということはできないでしょうか? (Wordの差し込み印刷のイメージです) いちいち文字の位置をミリ単位で指定するのが非常に大変なもので。
136 :
nobodyさん :2010/08/08(日) 17:32:39 ID:gTT1Yd8I
こんなCGI作ってください! みたいなスレあったと思うんだけど、なくなりましたか?
137 :
nobodyさん :2010/08/08(日) 21:15:52 ID:sz2+sMLW
今日XAMPPを一日かかってやっとインストールしました 稼働中のHPからすべてをダウンロードしてローカルで実行する環境までやっとできました で、うごかしてみたところopendirで failed to open dir: No error in 〜 というエラーが出ています パスの設定がローカルと本番で違うのかといろいろ試してみたのですが、ずっと解消しません もしかしてApachかフォルダに権限を与える必要があるでしょうか? 方法を具体的に教えていただければと思います
初心者はXAMPPを使うな!!!!!!!!!!! ApacheとPHPを一つずつ入れられるようになってから使え!!!!!!!!!!
139 :
nobodyさん :2010/08/08(日) 22:02:30 ID:sz2+sMLW
これはXAMPPの問題なのですか? それがわかっただけでも収穫です
>>137 エラーメッセージの詳細がわからないからなんともいえないな。
パスが存在しないのかもしれないし、権限がないのかもしれない。
>>138 はXAMPPが悪いといっているのではなくて、問題の切り分けができない人が使うと、
「何が問題なのかが分からない」という状態になることを危惧しているのだろうと思う。
こんな質問するくらいだからパーミッションは絶対無い 100%パス間違ってる、だな
XAMPとか初心者が無理に入れたところで動かないだろう 仮想マシンでUbuntu動かした方がいい
143 :
nobodyさん :2010/08/09(月) 01:47:43 ID:DI3eal4w
普通解凍しただけで動くんじゃないの?
phpの自作関数を投稿して共有出来るサイトがあれば教えてください。 php 投稿サイト で検索しても出てこなくて。
規制中は平和だったな。 また規制にならんかな。
>>133 この場合 IndexAction は実行開始前に定義済みになるので原因は他にある
148 :
nobodyさん :2010/08/09(月) 21:48:06 ID:ZoOeKZuo
Array ( [0] => Array ( [name] => abc [age] => 14 ), [1] => Array ( [name] => def [age] => 47 ), [2] => Array ( [name] => ghi [age] => 21 ) ) 以上のような連想配列があるのですが、 ageの大きい順にソートするには、どういうやり方があるでしょうか?
usort
まず最初のキーとageの値をだけの配列を作る arsortで並び替える それをforeachかなんかで回して 元の配列からからの配列に値をいれていけばいいんじゃね 間違ってたらごめーんね
151 :
nobodyさん :2010/08/09(月) 22:27:09 ID:ZoOeKZuo
>>150 とてもヒントになりました。
何とか形にできそうです、ありがとう!
クラスとか継承とかわけわかめなのですが、PHPでそういう概念を説明してある 書籍とかがあまり無い気がします。 Javaの本でも読んだ方が概念的な理解は早いですかねえ。
>Javaの本でも読んだ方が概念的な理解は早いですかねえ。 その方が良いな。
名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/08/10(火) 12:57:42 0
携帯から画像のアップロードが出来るページを
作成したいと思っています。
現在、サクラインターネットを使っているのですが、
ページ内に複数のリンクが存在しており、
それぞれのリンクがクリックされると
mailto: ***
でそれぞれ異なるメールアドレスへ向けてメールを送信する事によりサーバ側で
受け取ったメールに添付された画像をページごとに用意したディレクトリに
保存しようと思っています。
例) 1 例) 2
[email protected] [email protected] ※メールアドレスはページによって変えたいですがドメインは同じです。
しかし、動的にページが増える場合にはメールアドレスも動的に生成しなくては
ならない事と、スパムメールが届く可能性があるのですが、
この様な事をしたい場合にはどうするのが一般的なのでしょうか?
当方にて調べたところ、
携帯から画像のアップロードを行う場合は、
メール送信を介して行うのがオーソドックスな様なのですが他に何か良い方法はありますか?
154
まさかそんなドメインのHPがあるとは思ってもいませんでした。
それより
>>154 を実現するにはどうすれば良いのかご教示下さい。
>>154 受け取る側のメアドは1つで良いと思う。
日本語がおかしいので、根本的な何かを間違ってる気がする。
>>157 動的に生成したページの為、
どのページよりアップロードされたかを
メールアドレスのうち@の左側の部分で判断しようと思っていたのですが、
メールアドレスは1つで、本文に何がしかの値を設定する事により
その部分で判定をすれば良いということでしょうか?
ただ、スパムメール業者にメールアドレスを拾われて、
スパムメールが届く可能性があるので、
メールを受信した場合に送信されたメールの本文を元に
スパムメールであるかどうかを判定し、スパムメールの場合には、
自動でメールの削除処理を行いたいのですがどうすれば良いでしょうか?
※さくらインターネットの共有鯖を想定しています。
拡張メールアドレス でググれ
文字列を暗号化するにあたり、 次の関数を使用しているのですが、 第3引数の $iv に9文字以上を設定して実行すると警告が出てしまいますが、 これは仕様なのでしょうか? (8文字以内で無いとダメなのか?) mcrypt_generic_init($resource, $key, $iv); 【警告内容】 Iv size incorrect; supplied length: 14, needed: 8 暗号強度を高める為に、最終的には最低でも15桁程度は $iv に指定したいと思っています。
そこの文字数を増やすと暗号強度が高まるの?
mcrypt使ったこと無いのであれだが マニュアル見てる限りivの使い方間違ってないか?
>>162 いや、かなりそっち方面の詳しい人の書いた
HPのソースを拝借してるので正しい筈。
ってか雑魚に質問した俺がアホだった。
>>163 マニュアルには
IV は通常そのアルゴリズムのブロック長と同じ大きさですが、
mcrypt_enc_get_iv_size() をコールする ことにより、その大きさを得る必要があります。
IV は ECB では 無視されます。IV は CFB、CBC、STREAM、nOFB では必須です。
IV はランダムで一意である必要があります(しかし、秘密ではある必要は ありません)。
暗号化と復号で同じ IV を使用する必要があります。
IV を使用したくない場合にはゼロに設定しますが、これは推奨されません。
こう書いてあるけどどうなのよ
ていうかその人に聞けば良いんじゃないのか
>>164 何か研究者っぽい人が趣味で載せてるっぽいHPなので
質問しても華麗にスルーされそうなのでやめました。
あのサイトどこだったかなぁ。
>>165 IDださないと誰かわからんよ
暗号化のアルゴリズムは何を使ってる?
種類によって長さが変わってくるはず
mcrypt_generic_init($resource, $key, $iv);
↑
この前に$resouce生成している行があるでしょ?
そこで種類はわかる。
というかmcrypt_enc_get_iv_sizeで得られる長さ以上は無理だよ
マニュアルに書いてある事が理解できない奴はスルーされるだろうな
168 :
nobodyさん :2010/08/10(火) 17:34:06 ID:mBoLwcDd
test.txtに、 1行目 $test ="こんにちは"; と書いておき sample.phpで $sample = file(test.txt)で読み込み $sample[1]とした時、文字列が[1]に入ってますが、 sample.php内で、 変数$testとして使いたい場合はどうすればよいのでしょうか?
>>168 $testでかくなら.txtじゃなくphpとして扱ってincludeしたほうがいい
どうしてもテキストがいいなら
test=こんにちわ
php側
list($a, $b) = preg_split("/=/",$c);
${$a} = $b;
これでいいはず
171 :
nobodyさん :2010/08/10(火) 18:40:33 ID:mBoLwcDd
ありがとうございました なんとかなりそうです
173 :
nobodyさん :2010/08/10(火) 18:55:47 ID:mBoLwcDd
そうですね そっちのほうが良さげですが、なんとかなりそうなので次回やってみます ご指導ありがとうございます。
174 :
nobodyさん :2010/08/10(火) 23:27:55 ID:f5P1YaX5
pg_fetch_arrayだと結果の配列の中身はすべて文字列だけど、fetchAll( PDO::FETCH_ASSOC )だと データ型に応じた型で返るでおk?
メールの受信をトリガにPHPスクリプトを実行させる為に
.mailfilter に転送設定を行い abc.php を実行させようとしています。
受信メールの内容を取得し加工した上で
別のメールアドレスに送信しようとしているのですが、
/home/xxx/www/abc.php
abc.php の中に require_once('Mail/mimeDecode.php'); という宣言を入れた状態で
次の3パターンを実行した場合、(1)の場合のみエラーも出ずに正常に送信されますが
これは一体なぜでしょうか?
(Pearのパッケージは既にインストール済みです。)
(1)ブラウザからのアクセスした場合
http://xxx.sakura.ne.jp/abc.php (2)CUI上からキックした場合
php abc.php
(3)起動元となるメールアドレスにメールを送信し
.mailfilter経由で abc.php をキックした場合
※【abc.php】の中身
<?php
require_once('Mail/mimeDecode.php');
// 〜 略:別のメールアドレスへの送信処理 〜 //
?>
>>175 (2)と(3)は、何て言うエラーが出るの?ファイルが見つからないって言われてない?
>>176 (2)
→ TeraTerm上では何もエラーが表示されません。
(3)
→ メールを送信すると、送信元のメールアドレスに次のエラーメッセージが返って来ました。
The original message was received at Wed, 11 Aug 2010 20:16:33 +0900 (JST)
from ksav**.sakura.ne.jp [***.***.***.***]
----- The following addresses had permanent fatal errors -----
<***@xxx.sakura.ne.jp>
(reason: 255)
----- Transcript of session follows -----
554 5.3.0 unknown mailer error 255
178 :
nobodyさん :2010/08/11(水) 22:29:45 ID:hbz/oQrU
ファイルを ・外部からはアクセス不可 ・PHPで操作(作成・削除など)可能 にするためには、そのファイルをドキュメントルートより上に置けばいいと思いますが、 その方法を使わずに、ドキュメントルートの下に置いて同じことを実現するためには どうすれば良いのでしょうか?
Apacheなら.htaccessに Order allow,deny Deny from all を書く、IISは知らん。
180 :
nobodyさん :2010/08/12(木) 00:06:04 ID:0qoFhKL3
>>179 環境を書き忘れててすみませんでした。
Ubuntu+Apacheなので、.htaccess試してみます。
ありがとうございました!
>>177 Pearへのパスをどうやって設定しているか知らないけど、
(2)でシェルから php -i 実行して、ちゃんとinclude_pathに入っている?
(3)も同じようにでメール受信をトリガに php -iの結果を
適当なファイルに保存して、あとで中身を確認すると何かわかるかも。
カレントディレクトリが、/home/〜/wwwだとは限らないよ
>>181 Pearへのパスは、php.iniより設定しています。
⇒ サーバコントロール > PHP設定の編集 > * php.ini 設定ファイル編集 *
;■Pearのインストールディレクトリの設定
include_path = ".:/home/xxx/www/pear/PEAR/"
しかし、php -i で include_path を調べたところ上記で指定したパスが表示されていませんでした。
include_path => .:/usr/local/php/5.2.13/lib/php => .:/usr/local/php/5.2.13/lib/php
しかし、php.iniではしっかりと指定している為おかしいと思い、
ブラウザから abc.php に次のコードを追記し確認したところ
$ip = get_include_path();
echo "get_include_path()=".$ip."<br>";
次の出力がされました。
get_include_path()=..:/home/xxx/www/pear/PEAR/
従って、インクルードパス指定は通っていると思われるのですがなぜ
CUI上からのコマンド実行をした場合 や メール受信のトリガからコールされた場合に
abc.phpに記載した require_once('Mail/mimeDecode.php'); の部分で
なぜ、失敗してしまうのか分りません・・・
うーん、参ったぁ〜〜〜
make時の設定によるが、apacheから実行した場合と、CUIから実行した場合で、 それぞれ別のphp.iniを参照するようになっている場合がある。 php -c 〜で直接iniファイルを指定する方法もあるから、調べてみ
ソース内でset_include_pathやini_setで設定する
>>183 >>184 何だか出来たっぽいです!!
ほんとーにありがとうございます!!!
うれしぃーーーー!!
【OS名】WindowsXP 【PHPのバージョン】5.2.13 【連携ソフトウェア】MySQL 【質問内容】 PHPからMySQLに持続的接続をしたいのですが mysqli_connect('p:localhost'); これを実行しても Unknown MySQL server host と言われてしまいます。 p:を外すと接続できます。 何か使い方間違えているのでしょうか…?
189 :
nobodyさん :2010/08/12(木) 17:20:40 ID:PSNYtZ9G
JavaScriptでの文字数カウントとPHPでの文字数カウントが違うので調べたところ、 サーバに渡ってきている文字列の改行コードが\r\nになっていることに気づきました。 これはOSとブラウザによって変わる部分ですよね 今まで意識していなかったのですが、 本来は文字列のバリデーション等をする前に、 改行を\nに統一するフィルタをかける必要があったのでしょうか? 今までDBに格納したデータも混在した改行コードが入っていると思うとへこみます
190 :
nobodyさん :2010/08/13(金) 01:39:53 ID:CCRng8uM
http://経由で呼ばれてる時と ローカルのコマンドラインから呼ばれてる時ってどのように判断したらいいでしょうか?
昨日あげたphpで
$debug = true;
としたままアップロードしてしまって大変な目に会ったんで
自動的に判断してくれるようにしたいのですが
>>190 各々で実行した時の$_SERVER変数の違いを確認してみたら?
または、コマンドラインからは引数付きで起動し、argc、argvの有無をみるとか
fopen を a の追記のみで開いたファイルってロックする必要なし?
194 :
nobodyさん :2010/08/13(金) 10:07:59 ID:21Z4+sGW
変数に格納していない配列の値を任意の添字で取り出すのってできないのかなあ イメージ的には array(1,2,3)[2] みたいな
そうする必要性がある事ってあるの?
perlはできるね まあ、一旦変数に入れればよろし。
>>195 たとえば $value に任意の値が入ってくるとして、
<?php
$kari[0] = 'yes';
$kari[1] = 'no';
?>
<b><?php echo $kari[$value]; unset($kari) ?></b>
こんなん書かずに
<b><?php echo array('yes', 'no')[$value] ?></b>
この1行で済ませられたらいいなと
あとはexplodeで分割した中からn番目を取り出すときに
一旦配列変数に格納するのもなんか嫌だ
>>196 うー、なんとかならんのかね
case "image": 以下でカウント取れば? ファイル名は $part->ctype_parameters['name'] あて先は $structure->headers['to'] いろんな形でメールくるので、携帯の対応したかったら いろんなメール送って $structure 見てみるといいよ。いろいろ足りない。
>>197 array_searchってやつを使ってみたら?
俺は使ったことないけどそれっぽいと思う
>>199 ありがとうございます。
添付ファイル数については、
$cnt = count($structure->parts);
として取得する事が出来ました。
しかし、実際の添付ファイル数 + 1 が $cnt には入る様なのですがこれは仕様なのでしょうか?
>>201 それだと本文の分がプラスされてるでしょ
まず198はメールの仕様を知るべきだ
>>201 蛇足だが、本文無しで添付だけされた場合に
multipartになる場合もあるし、そうでない場合もある
>>198 のサイトのサンプルは、
>>199 さんが言うように色々足りないよ
あと次からIDだしてね
>>202 ありがとうございます。
>>203 正直メールの仕様と言うかプロトコル的な部分をあまり理解していませんでした。
勉強します。
>>204 本文無しで投稿した場合に mutipart になるなんて予想もしてませんでした。
他にも幾つか、こういった内容を詳しく解説しているサイトも同時に見ていたのですが、
無駄にコードが長くて
>>198 のサイトは短くて凄い!
と思ってましたがそれが間違いだと気付かされました。
IDの表示・非表示を同制御したら分りません。
>>205 >>1 >◆質問する時の注意
>・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
207 :
nobodyさん :2010/08/13(金) 17:21:45 ID:2GOnN1Mf
sage 外しのチェック
208 :
205 :2010/08/13(金) 20:09:13 ID:2GOnN1Mf
>>198 のサンプルコードはやはり抜けが多い様なので
より詳しく信頼出来る解説サイトを探しまして何とか
それらしきサイトを見つけました。
http://d.hatena.ne.jp/ya--mada/20080415/1208318475 ただ、一点このコードでも漏れがある様で、
添付ファイルに日本語が含まれている場合に、
ファイル名称を正常に取得する事が出来ません。
文字化けを回避する為に次の様に取得したファイル名に
対しても文字コードをSJISにする様にしたのですが
やはりダメでした。
$fileName = mb_convert_encoding($fileName,"SJIS","auto");
メールに添付されたファイル名が日本語の場合でも
文字化けせずにファイル名を取得するにはどうすれば良いでしょうか?
メールだと文字コードはISO-2022-JPでしょauto指定しても含まれてないから意味無い
210 :
205 :2010/08/13(金) 20:33:21 ID:2GOnN1Mf
>>209 どうすれば日本語が含まれるファイル名を
文字化けせずにファイル名称を取得する事ができますでしょうか?
211 :
nobodyさん :2010/08/13(金) 21:35:25 ID:Ps4VPPCk
質問です。 配列をarray_mergeで結合したいのですが 配列の数が可変の場合はどのように処理すればいいのでしょうか 以下のように試行錯誤しているのですが・・・ $count = count($data); for ($i=0; $i<$count; $i+=2) { $arr[] = array_merge($data[$i], $data[$i+1]); }
212 :
nobodyさん :2010/08/14(土) 03:25:34 ID:QXgWu0QA
昨日XAMPPをインストールしてPHPをはじめた初心者なのですが count(array);の部分で Fatal error: Call to undefined function conut() in C:\xampp\htdocs\index.php on line 41 とのエラーがでます count()が無いってことは標準関数が読み込めていないってことですよね……? PathはC:\xampp\php;には通しました どうすればいいのかさっぱり分からなくて困っています…… 初歩的ですが自分にはどうしようもないのでアドバイスをお願いします
213 :
205 :2010/08/14(土) 03:29:45 ID:???
どなたか
>>208 についてご存知の方はいませんか?
>>212 おちついてエラーメッセージをよく読みなされ。
コナットなんて知らないよっと。
>>211 何をしたいのか分からない。
こうしたいというサンプルだして。
>>213 どう文字化けするのか分からないから答えようがない
>>217 日本語のファイル名を取得した場合に
isoSFKAJEIWWRJOEIASIFAJSDFLFKDSLFAS
isoから始まる文字化けしたファイル名になります。
220 :
211 :2010/08/14(土) 14:27:48 ID:FqgoYzWt
>>216 $data[] = array('aaa', 'bbb', 'ccc');
$data[] = array('xxx', 'yyy', 'zzz');
$data[] = array('111', '222', '333');
$data[] = array('555', '666', '777');
$arr = array_merge($data[0], $data[1], $data[2], $data[3]);
print_r ($arr);
$dataをプログラム内で生成するため、数が可変になります。
array_mergeの引数を、動的に対応させるにはどうすればいいのでしょうか
>>219 日本語も文字化けせずにファイル名を取得する事が出来る様になりました。
どうもエスパー!!
ありがとうござます!!
>>220 $arr = array();
foreach ($data as $val)
$arr = array_merge( $arr , $val);
print_r ( $arr );
223 :
nobodyさん :2010/08/15(日) 02:05:05 ID:i1OePLJX
さくらインターネットでは、 mcrypt_module_open この関数って使えないのですか? Call to undefined function とかエラーが出ます。 さくら鯖は、phpがcgiとして定義されているから無理なのかな・・・?
224 :
223 :2010/08/15(日) 03:20:13 ID:???
Pearを使用して暗号化する事にしました。
そこで解説サイトを参考に、次のコードを記述したところ
関数が無いとエラーが出てしまいます。
■記述したコード
include_once "Crypt/Blowfish.php";
$key = "this is secret";
$iv = substr(md5(uniqid(rand(), 1)), 0, 8);
$blowfish =& Crypt_Blowfish::factory('cbc', $key, $iv); //←ここでエラー発生
■エラー内容
Fatal error: Call to undefined method Crypt_Blowfish::factory()
in /home/XXXXX/www/test_xxxxx.php on line xx
■参考にしてるサイト
http://www.phppro.jp/phptips/archives/vol17/3 ■サーバ名
さくらインターネット
■補足事項
Crypt_Blowfishのパッケージのインストールは完了しているのに
一体なぜだろう?思い、 Crypt_Blowfish.php のコードを直接確認したところ
factory() という関数は定義されていませんでした。
一体どうすれば
Crypt_Blowfish::factory
でエラーが出なくなるのかお教え下さい。
223ですが 自己解決しました。
phpのオブジェクトを作るときに、staticとインスタンス作る方法と 違いがありますか? staticは若干速いって聞いたことが理ます。
理ます でうすか。そうですか。
いい加減テンブレ100回見てから書き込もうぜ
co.jp/?name=tarou echo $_GET['name']; tarou
231 :
nobodyさん :2010/08/16(月) 01:28:27 ID:qDGyYfXE
>>230 すみません。
GETパラメータでは無く特定の文字列の中から
正規表現を使用して取得したいです。
ご指南の程宜しくお願いします。
なにをしたいのかわからんが/([=|&])/
233 :
135 :2010/08/16(月) 10:48:34 ID:???
FPDFを使っている皆さんは、文字を書き込む座標は どういう方法で調べてるんでしょうか? 印刷して定規でとか?
234 :
nobodyさん :2010/08/16(月) 15:22:34 ID:si4Gdkye
質問させてください。
imgchanger.inc.phpというプラグインを導入しようとココを見ながら
勉強しているのですが動きません。↓
http://dpura.web6.jp/dc/index.php?imgchanger1 そもそも説明に書いてある、サーバのアップ先「plugin」が見当たらないので、
適当な場所にアップして使っているのですが、それが原因でしょうか。
何処にアップすれば動くのでしょうか?
サーバーはさくらのスタンダードを使っています。
使用時は #imgchanger(〜〜〜 と一行書いた.phpファイルをアップして
アクセスすれば任意の画像が表示されるのでしょうか?
下らねぇ質問ですみませんがよろしくお願いします。
そのサイトが売っているソフトのプラグインだから単体じゃ動かないよ
>235 なんとそうでしたか。 とんだマヌケ野郎で失礼しました!首つってきます。 ありがとうございました。
237 :
nobodyさん :2010/08/16(月) 16:41:51 ID:si4Gdkye
度々すみません。 10分に一回くらい画像を自動で切り替えたいんですが、 PHPっていうのはサイトを読み込んだ時に一回動くだけなんですかね? ↑みたいな事をやるのには向いて無いんでしょうか。 ほんっとに下らねぇ質問ですみませんが、 これでも半日いろいろやってダメでして、、どなたか教えて頂けると助かります。
リフレッシュすりゃいいんじゃね?
meta refreshでぐぐれ
そんなもんはPHPじゃなくてjavascriptでやれボケ
>>238 ・239
ありがとうございます。
refreshだと全体が一度に更新されたりしないですかね?
試してみます!
>>240 javaの方が良いんですか。。
javaって何故かブラウザにoffにするオプションとか有って怖いんですが。
ちょっと検討してみます。
レスありがとうございました!
>>241 240に同意って事ですか。ありがとうございますー。
javaとjavascriptの違いも知らんやつまだいるのか
PHPで文字列を日付型文字列に整形したいのですが、 どう記述すれば良いでしょか? 具体的には、 <A>という文字列を<B>の 形式に整形したいです。 date()関数を使用して色々と試したのですが うまくいきません。 <A> "20100816173025" <B> "2010-08-16 17:30:25" 宜しくお願いします。
>>245 date("Y-m-d H:i:s",strtotime("20100816173025"));
>>246 わんだほぉー!
ありがとうございます。
248 :
nobodyさん :2010/08/16(月) 23:05:38 ID:NVc5DNIf
神IDに期待
249 :
nobodyさん :2010/08/17(火) 01:53:23 ID:N/NOPdMX
【OS名】CentOS 【PHPのバージョン】PHP 5.1.6 【連携ソフトウェア】MySQL 【質問内容】 現在、PHPのあるページにアクセスすると、 直接DBを参照してしまいます。 DBに負荷をかけないようキャッシュを設けたいのですが、どのようにして作成したら よいか分かりません。 まず、何を始めたらよいのか、とっかかりになるHPでもよいので紹介していただけたらと思います。
PEAR::Cache_Liteで検索してみるといいかも
251 :
nobodyさん :2010/08/17(火) 09:31:04 ID:uKPof48B
あるディレクトリ以下の特定の名前のファイルをすべて数えるにはどうしたらいいでしょうか?
252 :
251 :2010/08/17(火) 09:44:28 ID:uKPof48B
追記 あるディレクトリ以下にはさらにたくさんのサブディレクトリがあります。
253 :
nobodyさん :2010/08/17(火) 09:47:21 ID:AKU20fgm
syoboi situmon suruna kasu
今からPHP5の勉強しようと思ってるのですが皆さんどうやって勉強しましたか? 最初はHTMLの基本から勉強すべきですかね?
Pearで使う頻度が高くて便利な機能の一覧を解説している サイトをご存知の方がいましたら教えて下さいませんか? これまでは、我流スクリプトで独自実装してましたが、 Pearには、便利な機能がFWとして提供されているらしいので、 そちらを使った方が効率が良さげなので使いたいです。
Pearに限らないけど、phpspotとmoongiftはRSS登録していると たまにいい情報に巡り会える。
ディレクトリ内のjpeg画像ファイルを001.jpg,002.jpg,003.jpgといった具合に連番にリネームしたいのですが、 最初の一枚しかリネームされないか、ファイルが壊れてしまいます。 rename関数を使ってループさせるのだと思うのですが、 他の関数と組み合わせて動かすことができず困っています。 よろしくお願いします。
>>258 renameの代わりにprintfして君が思ったとおりのファイル名を
作れてるかどうか確認してみ。まずはそこからだ。
テンプレも読めねぇんじゃ扱えねぇよカス
262 :
nobodyさん :2010/08/18(水) 17:20:00 ID:N2bGiHq+
printfで表示させたらimg_1.jpgimg_2.jpegimg_3.jpg…と画像ファイル名が連続で表示されます。 ここからがわからないです。 このままrename()を使うと画像が一枚だけ9.jpgにリネームされて(元々ディレクトリの中に画像は9枚)残りの画像は消えてしまいます。 配列に入れて操作するのでしょうか? だとしても、その関数が調べたんですが分かりません。 あと、人のことカスとか言うんじゃありません。
265 :
nobodyさん :2010/08/18(水) 17:22:43 ID:N2bGiHq+
別にそんなことにはならん ブラウザで表示したときの話?
267 :
nobodyさん :2010/08/18(水) 18:03:20 ID:N2bGiHq+
原因がわかりました
別途行っているXSSの処理で置換されていたようです
エスパーさせてごめんなさい
>>266 さんありがとう!
268 :
263 :2010/08/18(水) 18:05:38 ID:???
自己解決しました。
>>263 いや、してねえよ。
騙ってるんじゃねえクズ。
271 :
263 :2010/08/18(水) 18:58:00 ID:???
何とか解決しました。
272 :
263 :2010/08/18(水) 19:10:09 ID:???
どうにか自決しました
273 :
263 :2010/08/18(水) 19:14:50 ID:???
おまえらプロなんだろ。 社会奉仕だと思って協力しろよ。 img_1.jpg,img_2.jpg…ってのを001.jpg,002.jpgって感じにリネームしたいんだよ。 自分で書いても最初の一枚しかリネームされないか、ファイルが壊れるかになるんだよ。
プロなのできっちり金いただきます
275 :
263 :2010/08/18(水) 19:26:51 ID:???
金取んの? ならいいよクソ てめーらなんかに頼った俺が馬鹿だったわ
276 :
263 :2010/08/18(水) 19:45:40 ID:???
>>274 騙んじゃねえゴミ。
できねえ…
まじお前ら頭良すぎだろ…
Yahoo!知恵袋行くわ
どこのくだ質スレにもスレタイにある知識があれば偉いと勘違いしている餓鬼が沢山いるな くだ質スレなんだからどんな質問にも文句言わずに答えろよ、わからないなら黙ってろ こういう根暗系な分野だと尚更詳しい奴は性格悪いからなこれしかできないんだから黙って社会の役に立てゴミ共
文句言う前にテンプレ読んでね
280 :
nobodyさん :2010/08/18(水) 22:12:18 ID:RLxqRXm0
POST送信されてきた場合の分岐は皆さんどうやってますか? 僕は if (!empty($_POST)) とすることが多いですが、 if ($_POST) と書いている人もいました。 どれが最も適切なんでしょう?
281 :
263 :2010/08/18(水) 22:18:28 ID:???
お前らみたいな雑魚に聞くまでもねーよ。 どーせおまえらプログラミングしかやることねーお宅どもだろ?
283 :
263 :2010/08/18(水) 22:40:56 ID:???
どうやったらいいですかだったら回答したのにな。 こうやったらこんな風に失敗しました。でもどうやったかは教えませんでは エスパーじゃないと。
これからの話ですよ。
********;ABC=◆;*******; っていう文字列から ◆を抜き出したいんですが (ABC=と;の間の文字列) どう書いたらいいですか
288 :
nobodyさん :2010/08/19(木) 23:21:51 ID:J5SePV2q
atpageというレンタルサーバーを借りています ********;ABC=◆;*******; っていう文字列から ◆を抜き出したいんですが (ABC=と;の間の文字列) どう書いたらいいですか
289 :
288 :2010/08/19(木) 23:34:50 ID:???
自己解決しました。 お騒がせしました。
290 :
nobodyさん :2010/08/20(金) 00:29:47 ID:cSlixQLk
Pearの Image_Transformを使って画像の縮小をしようと していますがなぜか次の部分でエラーが出てしまいます。 $input_file = "sample.jpg"; $output_file = "sample_out.jpg"; $imgObj =& Image_Transform::factory('GD'); $imgObj->load( $input_file ); // ←エラー発生 ※エラーメッセージ Call to undefined method PEAR_Error::load() ※環境 Windows Vista 正常に Image_Transformのインストールも完了しているのに 一体なぜでしょうか?
291 :
290 :2010/08/20(金) 00:56:41 ID:cSlixQLk
自己解決しました。
292 :
nobodyさん :2010/08/20(金) 21:42:37 ID:7C9JcAUd
293 :
nobodyさん :2010/08/20(金) 23:36:07 ID:JWxbWiKq
Simple_XMLを使った値の取得でつまづいています
■やりたいこと
TwitterのこのページのXML(
http://twitter.com/account/rate_limit_status.xml )
を取得し、remaining-hitsを表示したいです
■どんなふうにできないのか
この値を取得しようとした場合
$xml = simplexml_load_file("
http://twitter.com/account/rate_limit_status.xml ");
echo $xml['remaining-hits'];
lこれで表示できると思ってたのですが、表示されません
print_rしてみると、取得は下記のようにちゃんとできてるみたいです。
SimpleXMLElement Object ( [remaining-hits] => 33 [reset-time] => 2010-08-20T14:43:57+00:00 [hourly-limit] => 150 [reset-time-in-seconds] => 1282315437 )
これは、自分が配列の表示の仕方を間違ってるかなんかなのでしょうか
ちょっとお手上げ状態なのでどなたかお願いします……
294 :
nobodyさん :2010/08/20(金) 23:44:43 ID:2w0WWyUK
PHP経由からしかアクセスしたくないテキストデータがあったらどうすればいいですか?
>>294 サーバー上にあるってことなら、パーミッション変更すればいい
>>293 print $xml->{"remaining-hits"};
ハイフンなければ $xml->xxx でいいんだけどね
297 :
nobodyさん :2010/08/21(土) 00:18:09 ID:yQgsVEAC
>>296 あーなるほど……
取得したものから-(減算)してしまっていたんですね
どうりで訳の分からない値がでると思った
すっきりしました。ありがとうございました。
299 :
nobodyさん :2010/08/21(土) 06:12:33 ID:ZtZpmw9G
>> 292 何を最適とするかはよくわからんが $_SERVER["REQUEST_METHOD"]でもみときゃいいんじゃね
301 :
nobodyさん :2010/08/21(土) 14:40:37 ID:efZyfrTV
PHPを勉強しようと思い 自力でRSSリーダーを作成してるのですが 時間が小さい順に並び替えたいのですがどうすれば どうすればいいですか? $time[0]=1282360011 $time[1]=1282309606 $time[2]=1282325430 $time[3]=1282295258 ↓ $time[0]=1282309606 $time[1]=1282325430 $time[2]=1282360011 $time[3]=1282295258
303 :
nobodyさん :2010/08/21(土) 15:05:27 ID:efZyfrTV
>>302 おおこんな簡単な方法があったとは知らなかったです
感謝です。感謝です
304 :
nobodyさん :2010/08/21(土) 19:37:02 ID:KtjxwDwV
1GBのファイルをアップロードするシステムはPHPで安全に実現できますか? php.iniで容量の制限を増やさなきゃいけないとか、巨大なファイルは負荷が大きいとか、 JavaScriptとかで先に分割すべきとか、いろいろ調べてたら出てきましたが、 結局どうすればいいのかわかりません…。
実際にやってみてから聞いたほうが、みんな回答しやすいと思う。
306 :
nobodyさん :2010/08/21(土) 21:03:07 ID:KtjxwDwV
>>305 容量を増やしすぎると問題が起こると書いてあったので、怖くてできません。
ファイルの受け取りはApache側でやるからPHP関係ない
308 :
nobodyさん :2010/08/22(日) 00:43:42 ID:yd7wD5oA
不可解な現象。 普通にCakePHPでWebアプリ作ってるんだけど、 vardump($test); と書くと、画面に何も表示されず、 vardump($test); vardump($test); と書くと、内容が2回表示される。 こういう挙動は何を表してるんでしょうか?
出力バッファがどーたらこーたら じゃないの?
310 :
nobodyさん :2010/08/22(日) 01:06:56 ID:yd7wD5oA
どうもvar_dumpが奇数回だと駄目で偶数回だと出るみたい うーむ
>>306 よほど高速な回線でない限り、HTTP POSTのデータ転送にかかる時間で、
Apache側がタイムアウトすると思う。
PHP以前の問題で、実質無理なんでは。
あと、わざわざ2ちゃんで聞いて、怖くてできないっていうんなら、
お前には無理だ。
firestorageとかどうやってやってんのかしら
FancyUploadやYUI Uploaderは内部でFlashを使っているし、 firestorageも同じなのでは
314 :
Perl忍者仙人モード ◆M5ZWRnXOj6 :2010/08/22(日) 20:43:26 ID:mFvITFpR
PHP使っるやつらの存在がきもいんですが どうにかなりませんか?
2chが規制だらけで過疎ってる
使っるやつら
配列ってなんですか?
プログラムから、あるURLにアクセスさせることは可能でしょうか? アプリを起動するURLがありまして、プログラム内でこのURLを指定してアプリを起動させたいのです。
320 :
nobodyさん :2010/08/23(月) 06:34:05 ID:e4VGS3vt
【OS名】WindowsXP SP3 【PHPのバージョン】5.2.14 【連携ソフトウェア】Apache2.2.16 【質問内容】 PHPからApacheのエラーログに、エラーを書き込みたいのですが、 可能でしょうか?ご教授お願いします。
321 :
nobodyさん :2010/08/23(月) 07:49:01 ID:AYSWgUkV
セッションの読み書きで質問です。 $this->Session->write('item_number[0]',0); $this->Session->write('item_number[1]',1); $this->Session->write('item_number[2]',2); (これはちゃんと動く) 上記の動作をループ構文で、 for($i = 0; $i < 3; $i++){ $this->Session->write('item_number[$i]',$i); } (こうすると動かない) このように書いたのですが、なぜか上手く動きません。 なにが原因なのか分からず、夜も眠れない日々が続いております。
322 :
nobodyさん :2010/08/23(月) 07:57:19 ID:gXBBQ3PA
ダブルクォーテーションにしてみたら?
$this->Session->write("item_number[{$i}]",$i);
>>322 >>323 ありがとうございます!!
これが原因で、今朝も3時間ぐらいハマっていました!
本当に助かりました!!
326 :
301 :2010/08/23(月) 15:59:03 ID:cmQPcCNw
RSSリーダーを作成してるのですが
$time[0]=12345;
$title[0] ="タイトルです";
$time[1]=123;
$title[1] ="タイトル2です";
$time[2]=1244;
$title[2] ="タイトル3です";
・
・
・
↓を時間でソートすると(
>>302 )
時間は$time[1],$time[2],$time[0]の順になるのですが
タイトルが並び変わってくれないです。
連想配列で出来るかな?と思ったのですが
どうしてもエラーがでてしまって次にいけないのです。
連想配列以外で効率的に並び替える方法ってないですか?
Array( '12345' => "タイトルです", '123' => "タイトル2です", '1244' => "タイトル3です", ); 普通に連想配列使えば? エラーが出るくらいであきらめるならその程度ってこと
328 :
nobodyさん :2010/08/23(月) 16:39:30 ID:rqCfSqvP
>>326 >>301 の書き方だとtime配列の並べ替えとしか見えない
一度で正しい回答が欲しかったら聞きたい事をまとめて書かないとな
俺としては多次元配列
サンプル
//データ定義
$RSS = array();
$RSS[] = array('time'=>12345,'title'=>'タイトル1');
$RSS[] = array('time'=>10,'title'=>'タイトル2');
$RSS[] = array('time'=>123,'title'=>'タイトル3');
$RSS[] = array('time'=>193,'title'=>'タイトル4');
$RSS[] = array('time'=>143,'title'=>'タイトル5');
//配列データ出力
var_dump($RSS);
//多次元配列ソート
foreach($RSS as $KEY => $VALUE)
{
$SORTKEY[$KEY] = $VALUE['time'];
};
array_multisort($SORTKEY,SORT_ASC,$RSS);
echo "<br><br>------------------------------<br><br>";
//ソート後配列出力
var_dump($RSS);
329 :
301 :2010/08/23(月) 16:45:16 ID:cmQPcCNw
>>327 ,328
ちょっと研究してみます。サンプルありがとう
じゃぁ俺ならオブジェクトにs(ry
楽なのはarray_combineと ksortかなぁ
332 :
nobodyさん :2010/08/24(火) 00:31:47 ID:uadaoYhg
pearを使ってDBの値を取得しようとしています。 取得された結果セットから、クエリで指定した値を取得する時に、 クエリ上では大文字で指定しているカラムが 取得時に小文字で指定を行わないと値の取得が出来ません。 これは、MDB2の仕様なのでしょうか? $sql = "SELECT ID FROM TEST_TABLE"; $res = $mdb2->queryAll($sql); foreach ($res as $obj) { print "ID=".$obj["id"]."<BR>"; //←出力される print "ID=".$obj["ID"]."<BR>"; //←出力されない }
334 :
nobodyさん :2010/08/24(火) 15:12:25 ID:Le4aCLeM
【OS名】Fedora Core 6
【PHPのバージョン】5.1.6
【連携ソフトウェア】
【質問内容】
空メールに対して自動返信するような仕組みを作ろうとしています。
http://my-server.homelinux.com/emptymail.php とりあえず,このサイトのregist.phpをそのままアップロードしてみたところ、
Fatal error: Call to undefined function mb_convert_encoding()
のエラーが出ます。
phpinfoではmbstringの欄もあります。
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation enabled
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.1
また、
echo mb_internal_encoding();
を実行すると、特にエラーもなくUTF-8と表示されます。
mbstringはインストールされているように思うのですが、
未定義エラーがなぜ出るのかわかりません。
よろしくお願いします。
PearのMDB2でプレースホルダーを使っているのですが、 このMDB2のプレースホルダーは、 ?(ハテナマーク)を指定して使う事しか出来ないのでしょうか? 抽出条件として複数の物をセットしなくてはならない場合だと、 SELECT * FROM TEST_TABLE WHERE USER_ID = @USER_ID SET_PARAM(@USER_ID , '12345'); といった風な記述が出来れば可読性も高くなると思うのですが。 確か、PDO経由の場合にはこういった使い方が出来ました。
>>336 ありがとうございました。。。
やっぱりあったんですね。。。
>>336 マニュアルサイトを参考にし、以下のコードを書いてみたのですが
executeを実行し取得された結果セットより
実際にデータを参照したい場合にはどの様な記述をすれば良いのでしょうか?
★コード
$types = array('integer');
$sql = "SELECT E_ID , E_NAME FROM TB_TEST WHERE E_ID = :e_id";
$sth = $mdb2->prepare($sql, $types);
$data = array('e_id' => 1);
$affectedRows = $sth->execute($data); // ←ここから先の記述方法が不明
次の記述で値の取得を行う事が出来るかと思い
試してみたのですが旨く行きません。
また、クエリの実行後に複数行が返った来た場合には、
for each 文を使うと予想されるのですがそちらの記述方法も不明です。
どうかご指導をお願い致します。
$affectedRows['E_ID']
$affectedRows['E_NAME']
わからなければとりあえずdumpしてみれ
340 :
nobodyさん :2010/08/24(火) 22:20:29 ID:bkJGDZ0S
【OS名】ubuntu10 【PHPのバージョン】5.3 【質問内容】 phpをインストールしたんですが、サイトにアクセスすると、phpファイルのダウンロードが始まってしまいます。 どの辺を見直せば直るんでしょうか? お願いします。
ブラウザベースだとして apache経由でアクセスしてるならapache //home/user/hoge.php こんな感じでアクセスしてるならapacheとかいれないと無理
apache2 が入ってます。 /etc/apache2/mods-available/php5.conf で <IfModule mod_php5.c> AddType application/x-httpd-php .php .phtml <FilesMatch "\.ph(p3?|tml)$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> # To re-enable php in user directories comment the following lines # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it # prevents .htaccess files from disabling it. <IfModule mod_userdir.c> <Directory /home/*/www/webroot> php_admin_value engine Off </Directory> </IfModule> </IfModule> という設定がはいってるんですが、なぜかだめっぽいです。 a2enmod でphp5はちゃんと有効にしてはいるんですが。
>>342 apacheはちゃんと起動してますか?
僕の環境(Ubuntu9.10)だと
sudo /etc/init.d/apache2 start
のように端末から起動してます。
345 :
nobodyさん :2010/08/25(水) 07:45:20 ID:HG+GI0Yh
csvファイルを二次元配列に格納するもっとも簡単な方法はなんですか?
346 :
nobodyさん :2010/08/25(水) 07:48:33 ID:HG+GI0Yh
>>345 間違えました
連想配列です
二列のcsv を一次元の連想配列にする方法です
よろしくお願いします
348 :
nobodyさん :2010/08/25(水) 10:31:14 ID:ajT8n1be
1列目が連想配列のキー値 2列目が値 って事なのかい?
349 :
nobodyさん :2010/08/25(水) 11:31:53 ID:+buHcWsK
PHPスクリプトのパフォーマンスについて質問があります。 次の様なステップ数(行数)の異なるスクリプトファイルに対して 同じ処理を行うfunctionを挿入する場合、 行数の少ない B.php の方がA.phpに挿入した場合と比べて速いのでしょか? A.php ⇒ 20,000 ステップ B.php ⇒ 1,000 ステップ それとも、function内での処理が全く同じあれば 挿入先のスクリプトファイルのステップ数が幾らであるか というのは関係無いのでしょうか?
中間コンパイルされるので関係ない
>>350 まじっすか・・・
折角ファイル分けたのに
可読性上がるならそれでいいと思うがw
可読性>>>>>>>>>>実行速度 なことは往々にあると思います
可読性はかなり上がります。 うーんあとあとのメンテナンスのしやすさを鑑みると可読性だな
ファイル分けるとかそういうので速度稼ごうとするのは筋が悪い。 どこで時間を食ってるかを的確に測定して効果のありそうな所に 重点的に手を入れないとたいてい無駄な努力に終わるな。
おもいっきり脱線してしまうが、 2chの規制時の避難所として3chつーのがあるよね? だがその3chについてどうしても気になる点がある。 3ch管理人が飽きた可能性は十分にあるとは思うけど、 次を想定した場合、どちらもで不思議なんだよね。 (A)生きてると仮定した場合 ⇒自腹で鯖代を払っている事になる。 普通に考えて飽きて更新しないのならとっくに閉鎖した方が金も掛からない筈なのになぜ? (B)死んでいると仮定した場合 ⇒死んでいるのに鯖代は誰が払っているのか? ずっと不思議でしょうがない。オレの中では都市伝説と化している。
3ちゃんねるとか懐かしいなw
あそこの管理人がどうも死亡してる気がする
鯖代はクレカ払いなので自動で支払われ続ける 死んだなら口座とか止められるのでは?→自宅で白骨化。
360 :
nobodyさん :2010/08/25(水) 13:38:47 ID:HG+GI0Yh
>>347 file 関数で取得して
foreach でその関数を配列に入れていくんですか?
>>348 そういうことです
というか設定ファイルを読み込みたいんです
設定ファイルならini形式にしてparse_ini_file使うのが楽じゃね?
>>359 だから死んでるとしても生きてるとしても不思議なんだよ
死亡届出す家族がいない状態の孤独死ってヤツですよ 最近高齢者で流行ってるでしょ
3ch管理人が孤独死してたとして レンタル鯖の金は誰が出してるのか・・・? 疑問だ・・・
クレカ自動更新で、口座にはたっぷりと金があるんでしょ
366 :
nobodyさん :2010/08/25(水) 14:32:24 ID:HG+GI0Yh
>>361 うぉぉぉこれめっちゃ便利
ありがとうございます
>>365 なるほど。。。
とりあえず3ch管理人は死亡したのか。
エンコードについて質問です。
XMLファイルを保存する際に文字コードを指定したのですが
以下のコードではどうしても変換されせん。
引数の指定を色々変えて試しているのですが、一向に何も変化がありません。
どこに問題があるのか、アドバイスをいただけると助かります。
$data = file_get_contents('
http://twitter.com/statuses/user_timeline/44791521.rss ');
$data = mb_convert_encoding($data, "utf-8", "sjis");
file_put_contents('log.xml', $data);
そのコードだと、 utf8のrss を sjisとみなして utf8に変換してますな。 文字コードの変換必要あるの?
きっとsjisに変換したいんだろう、だとすると逆だな
rss見たけどたぶんそういうことじゃない気がするな。 mb_convert_encoding($str, 'UTF-8', 'HTML-ENTITIES'); かなぁ。
>>368 <?xml version="1.0" encoding="UTF-8"?>
見れば分かるけど、全部数値文字参照で、文字コードどうでもいいというか。
若干スレ違いかとは思いますが教えて下さい。
(行き着けのスレが過疎りまくって返答がありません。)
マンションの管理組合招集の封筒が届き指定された期限迄には
参加の有無を管理人に出さなくてはならなかったんだけど、
しばくら忘れてました。
そしたら数日したら、私のメールアドレスを知る筈が無い管理人から
宛先 :
[email protected] 送信元 :
[email protected] という風に私のメールアドレスが指定されていないにも
関わらず「***参加の有無をご連絡下さい。」といった旨のメールが届きました。
なぜ、この様にメールアドレスが送信元と同じにも関わらず
私の元にメールが届いたのでしょうか?
もしかして、マンションの管理人にクラッキングされてる!???
>>375 単にBCCであなたのアドレスに配信しているだけなんじゃないかと思うんだけど、
意味を取り違えてますかね?
互いに面識の無い相手に一斉に配信する場合、BCCに各メールアドレスを入れて、
TOにも何か入れないといけないので自分自身を入れて一斉配信する、というのは
普通によく使う手段なのでそれかと。
あと、、、、 > そしたら数日したら、私のメールアドレスを知る筈が無い管理人から これはちょっとわからない。 マニアックな管理人がパケットをスニッフィングしてるとしても、 そんなことして手に入れたアドレスに公的なメールを配信することは 無いと思うので、既にあなたが管理人にアドレスを教えていたのでは 無いでしょうか。もしくはあなたの家族とか。
あて先欄に表示されるのがそれでも貴方に送ることは出来ます。 貴方でも可能です。 さてスレ違いなのでこの辺で
>>380 どういう風にすればできますか?
>あて先欄に表示されるのがそれでも貴方に送ることは出来ます。
最後にこれだけお教え下さい。
メーラーによって違う だから使ってるメールソフトのスレっぽい所で聞いてください
384 :
nobodyさん :2010/08/26(木) 15:41:19 ID:8YbqyEw3
届け先と送り元が同じメールアドレスで自分のではない管理会社のメールアドレス って意味ならBCCでは無理じゃね? 入居者に貸与されるメールアドレスでPOPサーバーの運用も管理会社が行っているなら可能
今回の話は、単に
To : マンション管理人のメアド
From : マンション管理人のメアド
BCC : マンション住民の人達のメアド(
>>375 氏のメアド含む)
って事だと思うよ
で、
>>380-381 は 単にToに表示されてないメアドへメール送信という
意味だと思うのでBCCでいいかと
何にせよスレ違いだな。
387 :
nobodyさん :2010/08/26(木) 16:24:00 ID:ldK5AnTQ
ちょっとスレ違いと思いますが、テストの書き方について質問です。 PHPUNITを使っているのですが、依存関係のオブジェクトのテストハーネスが書けません。 class A{ public function hoge(){ $obj=new B(); $value=$obj->fuga(); //$valueに対するなんらかの処理 return $value; } } みたいなコードの時に、オブジェクトBのモックを用意して、 Aに対してテストしたいのですが、オブジェクトA側でコンストラクタや、 メソッドからオブジェクトBのインスタンスを受け取っていないので、 モックオブジェクトに入れ替えできません。 どうやって書くのが普通なんでしょうか?
388 :
nobodyさん :2010/08/26(木) 16:58:59 ID:T8D7cHt2
MDB2を使用し特定テーブル内にレコードが存在するか どうかをチェックする関数を作りました。 そして、次の様に2回連続してそのfunctionをコールしたところ 2回目でなぜかエラーが発生してしまいます。 どうすれば連続実行してもこの様なエラーが出なくなりますでしょうか? << コード >> $p_val = "aaa"; $i = TestClass::CheckIsExists($p_val); // ← 成功 $p_val = "bbb"; $i = TestClass::CheckIsExists($p_val); // ← 失敗(※) static public function CheckIsExists( $p_val ) { //〜略〜 //※SELECT 〜 を実行してレコードが存在するかどうかのチェック処理 $mdb2->commit(); $mdb2->disconnect(); } << エラーメッセージ >> ※Call to a member function prepare() on a non-object
389 :
nobodyさん :2010/08/26(木) 17:09:09 ID:s6AS28G2
php4.4.8では redirect($url); でリダイレクトできるけど、 php5.2.5ではできない?
略したとこに問題。
391 :
nobodyさん :2010/08/26(木) 17:16:00 ID:T8D7cHt2
>>390 略にはちゃんと DB接続 ⇒ クエリの発行 というお決まりコードを入れてます。
調べてみたところ どうも2回目の実行時に $mdb2 が Invalid expression になっていました。
dbへのconnectってそれなりに重いから、チェックする関数とかそういう レベルで接続して使い捨てってのはあまり感心しないな。規模が小さい それでも動くけどね。
393 :
391 :2010/08/26(木) 18:14:42 ID:T8D7cHt2
今のところ小規模です。 どうも DB接続部分を外出しにしているのですが ( db_con.php ) 2回目の関数のコール時にこの部分が読み込まれない事が原因の様です。 static public function CheckIsExists( $p_val ) { //DB接続用外部スクリプトの読込み include_once ( "db_con.php "); // ←2回目の関数のコール時にこの中が読み込まれない // 〜 略 〜 } 外部ファイルを連続で読み込もうと include_once では無く、 include を指定すると cannnot redeclare エラーが出てしまうのですが このエラーを出さない様にして、外部スクリプトを連続で読み込むにはどうすれば良いでしょうか?
それは根本的に作りが悪いね。
395 :
nobodyさん :2010/08/26(木) 18:29:34 ID:i8uPcobC
一つのPHPファイルが長くなってしまうのが嫌なので、 可読性をあげるためだけに処理を一部関数化して外出ししてしまう、 ということを考えているのですが、可読性をあげるためだけに関数化、 外部ファイル化をおこなうというのは普通にあることなのでしょうか? そのへん、他人のソースを見たことが無いのでよくわからなくて・・・。
396 :
nobodyさん :2010/08/26(木) 18:29:46 ID:T8D7cHt2
>>394 作りは悪いかもしれませんが
どうしても目前のこれを何とか解決したいです。
どうすれば、
同一の外部スクリプトを連続してコールすることが出来る様になりますか?
>>396 多分インクルードしてるファイルで関数かクラス定義してるんで、2回読み込まれると
グローバルで関数を2回定義するんで エラーになるから、複数回読んじゃだめ。
include_once ( "db_con.php "); そのクラスの外にだしても動くんじゃね?
全部見ないとちゃんと回答出来んけど。
include_onceで駄目だったから駄目かもなw
いろんな意味で間違ってるからな
400 :
nobodyさん :2010/08/26(木) 18:47:44 ID:8YbqyEw3
>>391 include_once は外部ファイルを読み込もうとした際にすでに読み込まれていたら再読込はしない
include だと同じ関数を再度定義しようとするから既に存在しているからエラーとなる
>>395 ファイルが長くなるのが嫌だとかで考えていたら
>>391 みたいな事になったりする
401 :
nobodyさん :2010/08/26(木) 18:50:22 ID:T8D7cHt2
>>397 外出しにしてる db_con.php の中身なんですが、
実行環境が
ローカル(Windows)
サーバ(Linux)
となっており、ローカルとサーバとでDB接続文字列等が異なる為に
db_con.php の中で、いずれの環境で実行されているかを判定し、
DB接続文字列を生成した上でDB接続を行う様にしています。
外出にしている部分を関数の中に直接記述したところ問題無く
functionの連続実行をする事が出来ました。
これまでは、DB接続文字列をサーバへアップロードする場合に書換えていたのですが、
毎度アップロードする際に修正するのは大変なのでスクリプト内で分岐させる様に変更しました。
つまりdb_con.phpの中には何かの定義してる部分とdb接続を行ってる部分 の両方が含まれていて、何かの定義をしているところは2回読み込むとエラー になるのだが、db接続は毎回行いたいという、あちらを立てればこちらが立たず な状況と見た。 あまりに作りが悪すぎるので全部捨てて作り直したほうがいいと思うが どうしてもというならその2つを分離して別ファイルにすればなんとかなる んじゃないかな。汚いけど。
何故かsage外れてるし…
ああ失礼 同じか $p = explode('/', $_SERVER['PATH_INFO']); $p[1] に aaaaa って入ってると思う
ごめんw間違えた $_SERVER['QUERY_STRING'] に aaaaaaa って入ってる
408 :
404 :2010/08/26(木) 19:18:21 ID:???
>>406 ありがとうございます!
$_SERVER['PATH_INFO']という値は初めて知りました。
409 :
404 :2010/08/26(木) 19:19:38 ID:???
ありゃ?更新しないで送信してしまいました。 QUERY_STRINGってのもあるんですね。 ありがとうございます。
410 :
nobodyさん :2010/08/27(金) 16:45:01 ID:1VS1YiRM
Smarty以外にオススメのやつ教えてください
Smartyが何か分かって言ってるのか?
412 :
nobodyさん :2010/08/27(金) 16:58:36 ID:1VS1YiRM
>>411 分かってますよ^^
もしかして、Smartyしか知らないんですか?
>>410 Twig
Smartyの何が気にくわないのか(それとも単にSmarty以外が知りたいだけなのか)
を書くとレスがつきやすいかもしれない
あとSmarty3で結構変わってるみたいだからsmarty2使ってるなら3も試した方がいいかも。
3のstable出てるの? Smartyってこれ流行ってるのか? これ使うと何か素人がソース見た時に「PGのレベル低!誰でもできそう」 とか思われそうなので出来る限り使いたくない。
smartyを単体で使う気にはなれねーなぁ・・・
素人「PGってすごい!こんなに複雑なソースを書いてるんだ!」 玄人「プッ」
>>414 素人にどう思われようが良いだろうがw
仕事だとPHP(Smarty/Zend Framework)というのは昔からよく見る
>>417 逆にフレームワーク使ってると、さらにsmartyまで使うのは面倒ってならないか?
viewは素のPHPの場合が多いよ俺は
Smartyは専用スレでやれよ、荒れるんだからさ
【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
>>416 他人が「見る気もしない」ソースにしとくと色々安全なのさ。
勿論社内で使う奴だけだけど。
俺が辞めた後に入った奴は悲惨だと思う。
勿論コメントも全部消してある。
インデントも消しとけよ
ついでに改行も
出力するHTMLソースは 出来る限りそういうの消えるようにしてるな
汚いソース書いてたらアホ扱いされるだけだろ
-----------------------------------------------
429 :
nobodyさん :2010/08/27(金) 18:46:13 ID:mDlhgxIh
ところで、インデントというかタブを多用した結果、ソースが非常に横長になっていく。 フルHDモニタで開発していればさほど問題は無いが、モバイルPCで開発やってる 時なんかは死ねる。 これってもしかしてテキストエディタで書いてるから悪い、とかそういう問題かな? いや、そもそもEclipseとかPHPプラグインがどれほど便利なのかとか、使ったこと 無いから全然知らないんだが。
本当にあった怖い話
* ディレクトリ構成がプログラマの名前
* 関数の頭にプログラマの名前が付く
* バージョン管理システムを使わないまたはVisual SourceSafe
* コミットは朝しろ,帰る前にするなと言う
* 手動でビルドテストしなければならない
* オレオレコンテナしか信じない
* ハッシュは遅いから使うべきでないと言う
* 「よくわからんから」多重継承は禁止すべきとか言う
* 正規表現を使うよりCで書いたほうが速いと言う
* クラスがわからないのでクラスを使ってくれない
* 1つのソースコードが10,000行でも気にしない
http://gihyo.jp/dev/clip/01/orangenews/vol58/0007
>>429 自分のphpソースを確認してみたけど、横長で死ねるようなとこは見当たらなかった。
横900pxぐらいの領域だけど、ほとんどが700〜800ぐらいに収まってたよ。
死ねてる部分をちょっとコピペしてみろよ きっといろいろ問題が見つかるのではあるまいか 個人的にはこの書き方が嫌いで $untarakantara = array(1, /*ここのインデントをタブやらスペースやらで調整*/ 2, /*ここのインデントをタブやらスペースやらで調整*/ 3); この書き方をオススメしたい $untarakantara = array(/*ここで改行*/ /*タブひとつ*/ 1, /*タブひとつ*/ 2, /*タブひとつ*/ 3, );
>>429 可読性のためにZendとか大抵のコーディング規約で80文字を目安に改行するようになっている
これはシェルの文字数が横80文字だった名残。
テキストエディタでも80文字で改行される設定になってることが多いのはそのため。
要はコーディング規約の通りに書いていけば見やすいコードになる
ソースコードフォーマッタなりIDEなりで整形するのをお勧めする。 人力整形は時間の無駄。
んあ?
つーかそんな階層深くなるようなコード書くなよ
いまどき80桁制限は勘弁してくれ。
PHP+SQLiteで掲示板サイトを作っています。 記事には、タイトル、投稿者、本文、投稿日時の属性があります。 投稿日時順に並び替えることはSQL文で出来るのですが、 全ての記事のタイトルと本文を走査して全文検索する 機能をどうやって作ればいいのか分かりません。 これはSQLiteのSQL文だけでは無理なのでしょうか? PHPのライブラリなどが必要になりますか? 一般的にはどのように実現するものなのか、教えてください。 宜しくお願いします。
440 :
439 :2010/08/28(土) 13:30:58 ID:l4dMcbQQ
すいません、ID出し忘れました。
>>442 関係あるな
正規化を知らないない奴はミジンコ
タイトル、投稿者、本文、投稿日時 これからどこを正規化したら検索できるようになるんだよ
445 :
nobodyさん :2010/08/28(土) 15:31:42 ID:wQv57lt/
>>443 多分正規化という言葉を最近知って使いたいだけなんだろうけど
意味も理解して本当に正規化が必要かどうか判断してから言おうな
ここは下らねぇ質問スレであって 下らねぇ喧嘩スレじゃねーぞカスども
>>441 >>439 の項目を見たら正規化って言葉は普通出てこないな
全文検索でSQLのLIKEを使うとINDEXが効かなくて全レコードを舐める事になるから遅くなる
仕様を見て予め後々の事を考える必要はあるかも知れんけどね
>SQLのLIKEを使うとINDEXが効かなくて ?
SQLiteの場合は効く方法もあるらしいな
まぁ正直な話し
>>439 がどういう物を想定してるのか
解らない限り正規化含め何が最適解かなんてわからんな
どちらにせよそのテーブルで
正規化する必要性が本のちょっとでもある場所なんて
投稿者名ぐらいしか無いし。それを分けた所で
アプリとしての実行速度が遅くなってはあれだしなw
452 :
Perl忍者 ◆M5ZWRnXOj6 :2010/08/28(土) 20:32:58 ID:kvWFLXrw
X ∠ ̄\∩ |/゚U゚Lノ PHPをやる理由はなんですか 〜( ニ⊃ ( 丶/ ノ>ノ UU
Rubyスレ落ちたので誰か立てて
454 :
Perl忍者 ◆M5ZWRnXOj6 :2010/08/28(土) 20:37:46 ID:kvWFLXrw
X ∠ ̄\∩ |/゚U゚Lノ てめえが立てろカス 〜( ニ⊃ ( 丶/ ノ>ノ UU
>>450 LIKEで先頭一致の場合はINDEXが使われるが部分一致を使う場合INDEXを定義していても総当りするエンジンが多い
SQLLiteの場合は全文検索のモジュールがあるみたいだから良いかもしれんが
>>439 「SQLite 全文検索」でぐぐってみたら、SQLiteにも全文検索の機能が
あるみたいじゃん。
まあ、和文でやろうと思ったら、SQLiteに備わってるそのままだけじゃなく、
N-gram化か形態素解析との組み合わせになるみたいだけど。
SQLite使う時点で(ry
2chなんかテキストそのままだしw
アクセス元のIPが固定かDHCPか分かる方法ありますでしょうか。
460 :
459 :2010/08/29(日) 01:41:13 ID:???
解決しました
お前らエディタは何を使ってるんだ?
Ruby会議での調査によると 50%はemacs系 40%はvim系 5%はxyzzy 5%はその他 みたいな感じ
自分は根っからのemacs好きだがwebプログラミングではvimになる。 vimの機動性は素晴らしい。 メールとか原稿書くときはEmacs
465 :
nobodyさん :2010/08/29(日) 18:48:58 ID:istLGNW8
Cannot use output buffering in output buffering display handlers ってどうすれば直るんでしょうか? php.iniのoutput_bufferingをOnにしても直りません。
◆質問する時の注意 ・ 己の行った操作、変更などを詳しく明記すること。
フレームワークでよく array('abc'=>array('a'=>'orz', 'b'=>'orz='); みたいな方法でコンフィグを書く事があるのですが これって一般的にはどうやって値を取り出してるのでしょうか?
var_dump
$hoge = array('abc'=>array('a'=>'orz', 'b'=>'orz='); としたら $hoge['abc']['a'] $hoge['abc']['b'] でしょ
>>469 フレームワークでって言ってるでしょ。
その程度のお馬鹿は出てこなくていいよ。
お前がその程度のこともしらないお馬鹿だと思って答えたんだが
PHPのソースとしてincludeもよし、 evalでもよし。 パースする処理を自分で書いてもよし。 というような方向の回答がご希望?
喧嘩するなよ あとID出して無い質問にマジメに答える事は無い
普通にforeachで良いだろ 気になるなら色んなFWのconfig関連の所みてみれ
475 :
nobodyさん :2010/08/30(月) 12:49:52 ID:njG8UTwt
$newtext = str_replace('$url', '$link', $text); そりゃー変数をシングルクォートでくくったらダメだろう。
urlは正規表現でとってこればいいんじゃないのかね $res = preg_replace('/(https?|ftp)(:\/\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+))/',"<a href=\"$0\">$3</a>",$text); こんな感じで
478 :
nobodyさん :2010/08/30(月) 14:51:25 ID:yNaLEgzn
>>476 あ、やってしまったぽいorz
>>477 http:// から始まるURLにはマッチするけど
www.google.com
photo.google.com
こういうURLには、マッチしないよね・・・orz
それはURLなのか?
>>478 それは正規表現でどーとでもできるだろ・・・
481 :
nobodyさん :2010/08/30(月) 15:37:40 ID:yNaLEgzn
$newtext = preg_replace("/([a-z0-9\-\.]+\.(com|org|net|jp)).*/i", "<a href=\"$1\">$1</a>", $text);
http://<a href="www.google.co.jp" rel="nofollow">www.google.co.jp</a>
<a href="www.google.com" rel="nofollow">www.google.com</a>
hoge@<a href="hogehoge.com" rel="nofollow">hogehoge.com</a>
メールも置換するの?
俺の技術だと無理だわorz
php 自動リンク で検索
483 :
nobodyさん :2010/08/30(月) 17:50:00 ID:VlaMGgSY
<?php function 関数名(ここって何??) { 実装したい処理 } ?> () の中っていまいちわからないのですが $abc って書けば、$abcの値のデータ以外は処理しないってことでしょうか? 独学でPHP学んでたら早速躓きましたorz
そこは引数です
>>483 そのfunctionに渡したい値(引数)
この程度で質問にくるようだとキリがないよ
何か本買った方がいいんじゃない?
487 :
nobodyさん :2010/08/30(月) 18:56:15 ID:H9RFX+D7
SQLが成功したかどうかってどうやって調べたら良いのですか? 結果によってメッセージ等を表示させたり処理を分岐したいのですが・・・。
pgr
>>487 DBの接続は何を使ってる?
PDOならこんな感じ
try{
// クエリを発行
} catch (PDOException $e){
// エラー処理
}
PHPの変数のスコープって関数の内外だけって考えればOKですか? JavaScriptみたいにブロックがスコープ持たないんですよね?
function urltest($text)
{
$extensions = 'com|org|net|gov|edu|mil|us|info|biz|ws|name|mobi|cc|tv|jp';
$patterns = array(
'#([\s{}\(\)\[\]])(([a-z]+?)://([a-z_0-9\-]+\.([^\s{}\(\)\[\]]+[^\s,\.\;{}\(\)\[\]])))#ie',
"#([\s{}\(\)\[\]])([a-z0-9\-\.]+[a-z0-9\-])\.($extensions)((?:/[^\s{}\(\)\[\]]*[^\.,\s{}\(\)\[\]]?)?)#ie"
);
$replacements = array(
"'$1<a href=\"$2\" title=\"$2\">' . 'Link' . '</a>'",
"'$1<a href=\"
http://$2.$3$4\ " title=\"
http://$2.$3$4\ ">' . 'Link' . '</a>'"
$text = preg_replace($patterns, $replacements, $text); <------ この行でエラー出る。何かおかしいですか?
return($text);
}
$replacements = array( の閉じカッコ
>>489 PDOだとsetAttributeで設定するPDO::ATTR_ERRMODE属性の値で
エラー時の動作が違うよ。詳しくはマニュアル嫁
495 :
nobodyさん :2010/08/31(火) 10:08:13 ID:mnh9hvQe
質問です 自前で作ったクラスを、配列であるかのように扱いたいのですが、ちょっと困っています。 ArrayAccess インターフェイスなどを使って、とりあえず一通り実装してみたのですが array_mergeのような「配列操作関数」に渡すと、お前配列じゃないよねと関数が失敗してしまいます。 私の実装の仕方がまずいのかなと思い、標準のArrayObjectでも試してみたのですが、 array_mergeはArrayObjectも受け付けてくれませんでした 配列操作関数もうけつけてくれる、配列であるかのようなクラスを作るにはどうしたらよいでしょうか?
phpの仕様を修正して処理系を作り直す
>>494 質問の書き方から、初心者と察したので
そういうのまで書くと余計に混乱すると思ったんだが
言葉足らずだったか、補足thx
入門書とかは未だにPDO使おうとしてなかったりするからな
499 :
487 :2010/08/31(火) 12:18:33 ID:nqVyEYky
>>497 ありがとう。何となくわかりました。
今は私もPDOを使ってます。
>>498 今ってPDOが人気なんでしょうか?
プレースホルダの動作にセキュリティの問題があるとかで、非推奨、
なんて話を聞いたので、どうしたものかと思ってました。
おまえはPDO云々の元記事を理解出来てないだろ
501 :
nobodyさん :2010/08/31(火) 14:49:30 ID:naNUn36r
HOGE LUMBER COMPANYに怒られないようにしろよ
506 :
nobodyさん :2010/09/01(水) 06:43:43 ID:o7qUnh2A
【OS名】CentOS 【PHPのバージョン】5.3.3 【連携ソフトウェア】MySQL 【質問内容】 Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /var/www/html/phpinfo.php on line 9 date関数を使うとこのエラーが出るのでphp.iniに date.timezone = Asia/Tokyo と設定しましたがエラーが消えません(コメントアウトは外しました)。 phpファイルに date_default_timezone_set('Asia/Tokyo'); を記述すると消えます。 試したこと date.timezone = "Asia/Tokyo" とダブルコーテーションで囲ってみたけどダメだった。 ini_get('date.timezone') をechoしてみたが何も表示されなかった。 php.iniのファイルパスは確認しています。 php.ini修正後にapacheは再起動しています。 どなたかお願いします><;
>>506 とかなんとか言いながらpath間違ってんだろ
;
Apache再起動してみろ
URL入力したら、htmlソースのh1とh2タグの中身を抽出して表示してくれる phpソースを探してます。ライブラリー、コードのアドバイスいただけますか。
性器表現
>>511 正規表現ですか。ライブラリーとか使わず出来るってことですか?
<(chi|ma)nko>(.*?)</\1nko>
>>513 すいません、何となくわかりそうで分からないです。何かヒントいただけますか。
>>514 <h(1|2)>(.*?)</h(1|2)>
>>516 ありがとうございます。
hタグの中身だけを表示するには、file_get_contentsで範囲指定するばいいのですか。
まだphp初めて間もないのですいません。
>>517 まず、file_get_contentsで指定したURLのHTMLソースを全部とってくる
次に、とってきたソースからh?タグを正規表現で抜き出す。
HTMLソースは
>>516 のマニュアルの
「例1 とあるウェブサイトのホームページのソースの取得と出力」
を試してみて
なにこれ釣り? 桜?
>>516 >>518 >>519 アドバイスありがとうございます。
>>519 のコード試したら出来ました。
これから自分でも書いてみてみようと思います。並び替えとか表示の仕方を書いてみようと思います。
アドバイスしてくれた方ありがとうございます。
522 :
nobodyさん :2010/09/01(水) 18:19:47 ID:AryEx4i2
$text = ' ' . $text;
#URL
$text = preg_replace("/(((http[s]?:\/\/)|(w\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/is", "<a href=\"$1\">$1</a>", $text);
#mail
$text = preg_replace("#(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $text);
$text = substr($text, 1);
return($text);
で、なんとかマッチするようになりましたが、問題が出てきました
http://www.google.co.jp/ ⇒ <a href="
http://www.google.co.jp/ ">
http://www.google.co.jp/</a >
www.google.co.jp ⇒ <a href="www.google.com">www.google.com</a>
hoge@'hogehoge.com ⇒ <a href="mailto:hoge@'hogehoge.com">hoge@<a href="hogehoge.com">hogehoge.com</a></a>
こんな感じになってしまうのですが以下のようにしたいのです。
<a href="
http://www.google.co.jp/ ">www.google.co.jp</a>
<a href="
http://www.google.com ">www.google.com</a>
<a href="mailto:hoge@'hogehoge.com">
[email protected] </a>
力を貸してください。
置換後の文字を次のパターンで置換するからpreg_replaceでは無理です
最初のpreg_replaceの正規表現に戻り読みで@がない条件をつければなんとかなんじゃね?
hoge@'(←クォートが入ってる)hogehoge.com クォートを除去してaタグにしたいってことだよね?
526 :
nobodyさん :2010/09/02(木) 11:47:25 ID:DFmmGQxC
みんな開発環境は何を使ってるんですか? いちいちechoとかprint文を書くのが面倒なのですが、 簡単にデバッグするにはどうしたらよいですか?
527 :
nobodyさん :2010/09/02(木) 11:48:07 ID:BtsWFfEu
元々の質問でメールなんて無かったろ最初から書けよ $pattern = "/((^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+))|(((http[s]?:\/\/)|(w\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/i"; $match = null; $res = preg_match_all($pattern, $text, $match); var_dump(array($res,$match)); 正規表現は書いてあるのをほぼそのまま使ったからもっと短くはできるはず あとはmatchを見ながらてきとうにしろ もしくは function replacement($match){ ここで$matchを見ながら変換 return 変換後の文字列; } $res = preg_replace_callback($pattern, 'replacement', $text); こんな感じでやるかだな
529 :
nobodyさん :2010/09/03(金) 02:11:51 ID:NkeDLnjN
>>526 function d() {
echo '<pre style="text-align:left;background:#fff;color:#333;border:1px solid #ccc;margin:2px;padding:4px;font-family:monospace;font-size:12px">';
foreach (func_get_args() as $v) var_dump($v);
echo '</pre>';
}
530 :
nobodyさん :2010/09/03(金) 12:26:39 ID:uUm5hE++
php5.2.xで作ったプログラムの中に<?=$hoge?>こういうので出力してるところがあるんだけど、 php5.3.xだとエラーになる。 これどうしたらいいのか教えて下さい。 全部<?php echo $hoge;?>に変換するのかな・・・? あと<?=$hoge?>←この書き方って名前なんていうか知ってたら教えて欲しい よろしくお願いします
php.ini
533 :
nobodyさん :2010/09/03(金) 12:46:56 ID:uUm5hE++
だいぶ前ですが、会社のCentOSにphp5.0をソースからインストールしました。 このPCでphp5.3にアップデートする必要があるのですが、 どのように対応すればいいのか分かりません。 php以外にも色々アップデートする必要があり、今後も同じような要望が出そうなため ちゃんと管理できるようなインストール方法を探しております。 具体的には、/usr/local/直下の、 binディレクトリやlibディレクトリなどにばらばらとファイルがインストールされているようです。 どこに何がインストールされたのかを見定めて取り除くのは困難です。 一般的にはどのように管理してバージョンアップするのでしょうか。 自分で考えたのは、 /usr/local/php/のようなディレクトリを作り、その下にさらに /usr/local/php/php5.0 /usr/local/php/php5.3 のようにディレクトリを作って別々にインストールするというやり方です。 そうすれば、この後php5.4が出てインストールする必要があっても、 /usr/local/php/php5.4に入れて、phpコマンドのシンボリックリンクを修正すれば対応できそうです。 この方法は問題ありますでしょうか?
536 :
535 :2010/09/04(土) 15:46:55 ID:nNHV9LL2
すいません。ID出し忘れました。
php5.3をソースからインストール
538 :
535 :2010/09/04(土) 17:03:51 ID:nNHV9LL2
>>537 ありがとうございます。
php5.0を削除せずに、make installして上書きしてしまう
ということでしょうか?
yum
>>535 そのやり方でいいよ
上書きでもいいけど、そのときは他のマシンで検証しないとだめだし面倒でしょ
541 :
nobodyさん :2010/09/04(土) 22:52:48 ID:a77duTj2
【OS名】Windows7 【PHPのバージョン】5.2.14 【連携ソフトウェア】PostgreSQL 8.4 【質問内容】 php.iniでphp_pgsql.dllを読み込むように設定しても phpinfo.phpにpgsqlの項目が出てきません、 php_pgsql.dllはバグがあると聞いたので古いバージョンの物と差し替えましたがそれでも変わりません pgsqlを利用するにはどのようにすればいいのでしょうか? ちなみにlibpq.dllはちゃんとpathの通ったディレクトリに入れてあります。
542 :
535 :2010/09/05(日) 01:11:06 ID:xVoToBO/
>>539 yumは使えれば使いたいのですが、
opensslを使えるようにとの要望がありまして
これがyumインストールだと無理らしいのです。
>>540 ありがとうございます。
このやり方でいくことにします。
何はともあれ実際にやってみるのも勉強な気がしてきました。
>これがyumインストールだと無理らしいのです。 んなことねー
各バージョンごとに別ディレクトリでmakeまでやっといて その日の気分で好きなバージョンをmake install
545 :
nobodyさん :2010/09/05(日) 06:01:18 ID:imIw0HZw
VertrigoServeで Apache?HTTP?server?does?not?work?correctly,?check?whether?other?aplication?use?the?important?port?(80)?and?terminate?them.?moreover?check?firewall?setting?and?correctness?of?the?configuration?files というエラーがでたんですが、どうしたらいいですか?
546 :
544 :2010/09/05(日) 06:14:55 ID:???
skypeが同じポートを使ってたみたいです skypeをきったら動作しました
ニコニコ動画などの動画一覧を作りたいのですが これから追加される動画全てを漏らさずに取得するのってどうやるんですかね 10分毎にアクセスして取得すればいいのかな・・・
>>547 それ、PHPの質問じゃねぇじゃん。
使うのがRubyだろうがPythonだろうが、はたまたVBだろうが同じだろ。
ついでにスレタイよく読め。
549 :
nobodyさん :2010/09/05(日) 16:09:18 ID:cNhoHi9E
cakePHPなどのMVCモデルで、何行ぐらいのコードになったら別個のファンクションに するべきか悩んでおります。 コントローラーにはビジネスロジックを書かずに、モデルにどんどん書いています。 すると、今度はモデル内のコードがごちゃごちゃしてきました。 繰り返しをするコードは別個のファンクションにしていますが、単純に、モデル内における ファンクション内のコード数が長くなりすぎた場合、どの程度で別のファンクションに分けるべきでしょうか?
他人にソースを見られる時って、公衆の面前でケツを犯されているような気分になりませんか?
だからオープンソースが生まれたんだろよく考えr
ド素人がPHPの正規表現について勉強してるのだが
とりあえず、URL(com/jpのみの対応)の正規表現についていろいろ試してみたのだが
(http(s|)\:\/\/|www\.)\S+\.(jp|com)(\/|)
だと、どう?
http://www.test.com/ www.test.com
www.test.com/
http://www.test.co.jp/ www.test.co.jp
www.test.co.jp/
には、マッチすることは確認した。アドバスお願いします。
勝手に制限つけたりしてるだろうから、特にアドバイスはない(というか出来ない)けど、 (s|)をs?にするとかしてみたらどうですか。
>>553 jp や com でURL判定とは考えたね。
: や / の前って\必要だっけ?
ちょっと自信ねぇや。誰かフォロー頼む
私も正規表現なのですが、スペース又は全角の)、半角の]以外の全半角1文字以上の文字に
マッチする方法ってどうすればいいのでしょうか?
ここまで自演
ごめん
コロンはエスケープいらん スラッシュはデリミタとかぶるからだろ
559 :
nobodyさん :2010/09/06(月) 13:02:10 ID:UzPRiwoF
< 以外にマッチって ^< じゃぁ、マッチしないんだけど同記述すればいいのでしょうか? ^\< でも同じでしたorz
まぁデリミタ変えたほうがすっきりするんだけどね で、URLをどこまで対応するかにもよるよね ID,PASS,ポート番号をURLに含める事もできるし そしてドメインなんて新しいのもでてくるしね まぁあるかないか(s|)って書いてる所は上でも書かれてるけどs?で良い
まだまだ自演
563 :
nobodyさん :2010/09/06(月) 13:31:45 ID:UzPRiwoF
>>563 マッチしないが
前後の正規表現が悪いんだろ?
$hoge = "<font color=\"red\">" $hoge = ''<font color="red">' この違いがいまいちわかりません。 エロイ人教えて
$hoge = "<font color=\"red\">" $hoge = '<font color="red">' この違いがいまいちわかりません。 エロイ人教えて 修正しました。
>>565-566 上はダブルコーテーションで文字列を囲っているため
文字列内にダブルコーテーションがでてくると、
そこで文字列が終わりだと判断されるため、そうならないように\でエスケープしている
下はシングルコーテーションで文字列を囲っているため
文字列内にダブルコーテーションがでてきても、
そこで文字列が終わりだと判断されないため、エスケープする必要が無い
例では関係無いが、文字列内に変数を使う場合
ダブルコーテーションでは変数が展開され、
シングルコーテーションでは展開されないという違いもあるから注意
あと次からID
568 :
nobodyさん :2010/09/06(月) 15:04:38 ID:6zgB2gTn
わざわざ、ありがとうございました。 最後に、$0 $1 $2 \0 \1 \2 とかあるけど どういう意味なんでしょうか? 試しに出力させてみたが、いまいち共通点がわかりません。
マニュアル嫁
570 :
nobodyさん :2010/09/06(月) 15:44:49 ID:EUjFvh1N
$1 とかで検索しても$が虫されるのでHITされなかったりwww
571 :
nobodyさん :2010/09/06(月) 16:37:28 ID:h/N0GRG6
$test が 012 以外の文字で始まる場合 abc を頭に付け足して abc012 にしたい場合 どうすればいいのでしょうか?
>>568 正規表現の後方参照
>>571 $res = ($test[0] == '0' || $test[0] == '1' || $test[0] == '2' ) ? $test : 'abc'.$test;
573 :
nobodyさん :2010/09/06(月) 17:51:38 ID:AkaNDM+f
Zend FrameworkのMVCモデルを使ってます。 エラーになった場合、ほとんどのケースで 'Invalid controller specified (error)' のエラーメッセージしかでなくてどのが悪いのか みつけるのにすごく時間がかかるのですが、 これが普通なのでしょうか?
>>571 $res = substr($test, 0, 3) === '012' ? $test : 'abc'.$test;
$res = in_array($test[0], array('0', '1', '2')) ? $test : 'abc'.$test;
576 :
nobodyさん :2010/09/06(月) 23:54:22 ID:EUjFvh1N
basic でいう if then ってphpでどれに当たるの? もし、○○であれば こういう処理。違ったらこういう処理みたいなやつ。
ふつーにif文
578 :
nobodyさん :2010/09/07(火) 04:15:33 ID:At2NRpWG
PHPてgoto使える?
上の方でbasic云々の質問してた人なんだろうけど gotoなんか使わなくても処理かけるから 使わずに処理する事を考えた方が良い 一応5.3以降ならラベルつけてgotoでそのラベルに飛ばす事はできる
$0 が 半角文字の数字か英語から始まるのですが
それ以外の文字だと、** を頭につける方法を探していたら
グーグルからこのスレに辿りつきました。
>>572 >>574 >>575 これらの書き込みが応用できると思うのですがどれがオススメでしょうか?
その条件なら正規表現使おうよ
582 :
nobodyさん :2010/09/07(火) 16:48:14 ID:el7JUPL1
おい PDOについてこの認識であってるか教えてくれ //テーブルは以下で作成 //create table hoge( aaa text,bbb int,ccc text); $aaa = "あいうえお"; $bbb = 1; $ccc = "かきくけこ"; //接続 $dbh = new PDO(DSN, DUNAME, DPASS); //パターン1///////////////////////////////// $sql = "insert into hoge (aaa ,bbb, ccc) values(:aaa,:bbb,:ccc)"; $stmt->bindParam(":aaa",$aaa); $stmt->bindParam(":bbb",$bbb); $stmt->bindParam(":ccc",$ccc); $stmt->execute(); ↑はうまくいくが //////////////////////////////////////////// ↓はだめなのか? $sql = "insert into hoge (aaa ,bbb, ccc) values(:aaa,1,:ccc)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":aaa",$aaa); $stmt->bindParam(":ccc",$ccc); //////////////////////////// ほんとうに後者はだめなの? 個人的には糞仕様な気がする・・・・
>>582 そんなの普通に出来るはずだけどなぁ。エラー晒したほうがいいと思う。
function muchtest($abccom) { $pattern1 = 'ddd'; $pattern2 = 'cccdddeee'; return(abccom); } 上記にマッチしたら「<B> </B>」で囲います。 aaabbbcccdddeeefffggg aaabbb<B>ccc<B>ddd</B>eee</B>fffggg と二重タグになってしまいます。 パターン1でマッチした場所はパターン2でマッチさせないようにしたいのですがどうすればいいのでしょうか?
なにこれ
>>584 正規表現でマッチさせてるならグループ化しちゃえば
というかちゃんと結果がそうなるコードを書いてくれ
>>584 すごく簡単な方法なら
$pattern2 で置換する時
aaabbbcccdddeeefffggg→aaabbb<b>karioki</b>fffggg
とかにして、その後$pattern1を置換する
aaa<b>bbb</b><b>karioki</b>fffggg
最後にkariokiを$pattern2に戻して終了
丁寧にやりたいなら他にもあるけど
588 :
nobodyさん :2010/09/07(火) 17:27:19 ID:NQ4wImel
PHPのフレームワークはどれがオススメ?
589 :
582 :2010/09/07(火) 17:27:26 ID:el7JUPL1
ざっくり書いたので prepare してなかったり PDO::PARAM_INTぬけてたり あったので、試してみた。 どっちもうまくいった。 がバイナリのカラムあると多分うまくいかん。 DBはpostgres bytea型のカラム ちと検証用の簡単な例を作成してみまふ
>>587 bbb じゃなくて ddd なんですけど。。。?
>>590 それならなんの問題もないじゃん
cccdddeeeはkariokiにかわったらdddは置換されない
でも、単純にdddがあれば置換される
最後にkariokiをcccdddeeeに戻せばいいだけ
ソースも中途半端だしどうしたいんだ
というか、これくらい理解する能力無いなら質問するな
釣りだろ
muchtest
594 :
582 :2010/09/07(火) 17:39:44 ID:el7JUPL1
やっぱバイナリあるとうまくいかぬ psql (PostgreSQL) 8.1.11 テーブルを以下で作成 PHP DB 内部全てutf-8 //create table hoge( aaa text,bbb bytea,ccc text); $dbh = new PDO(DSN, DUNAME, DPASS); $dbh->beginTransaction(); $aaa = "あいうえお"; $ccc = "かきくけこ"; $fp = fopen("hoge.jpg","rb"); ■パターン1(OK) $sql = "insert into hoge (aaa ,bbb, ccc) values(:aaa,:bbb,:ccc)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":aaa",$aaa); $stmt->bindParam(":bbb",$fp,PDO::PARAM_LOB); $stmt->bindParam(":ccc",$ccc); $stmt->execute(); ■パターン2(ダメ) $sql = "insert into hoge (aaa ,bbb, ccc) values('ああああああ',:bbb,:ccc)"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":bbb",$fp,PDO::PARAM_LOB); $stmt->bindParam(":ccc",$ccc); $stmt->execute(); syntax error at or near ":" at character 50 と文字の置き換えが行われていない模様 どこか間違ってる??バグ
595 :
582 :2010/09/07(火) 17:42:55 ID:el7JUPL1
連投すまそ $sql = "insert into hoge ( bbb, ccc,aaa) values(:bbb,:ccc,'ああああああ')"; $stmt = $dbh->prepare($sql); $stmt->bindParam(":bbb",$fp,PDO::PARAM_LOB); $stmt->bindParam(":ccc",$ccc); $stmt->execute(); と並びを変えるとうまくいく不思議・・・
日本語が悪さしてるパターンかねぇ。あああああじゃなくて abcdefとかだとどう?
597 :
582 :2010/09/07(火) 17:57:29 ID:el7JUPL1
>>597 てことはマルチバイトがらみのバグかね。
それにしてもさすがに5.1.6は古いよ...
599 :
582 :2010/09/07(火) 18:12:37 ID:el7JUPL1
新しい環境入手できたら試してみます。 時代はもう5.3か おっさんには追いつくのが大変だ!
PHP 5.1.6、PostgreSQL8.1.11 はRedhat EL(CentOS)の標準だから このバージョン使ってる所はかなり多いんだよね
RHEL6がでればPHP5.3がついてくるようになるからそれまでガマン。我慢できるもんでもないけど
602 :
nobodyさん :2010/09/08(水) 13:15:03 ID:l4oijTXq
テンプレートをクラスとして継承できるみたいなテンプレートライブラリがあったと思うんだけど、 名前なんつったっけ?
PHPTALか
605 :
nobodyさん :2010/09/09(木) 19:13:26 ID:sJ+nzVRW
質問させてください。 外部サイトのフィードを自サイトのURLでフィードとして吐き出す簡単な方法はないでしょうか? 外部サイトのフィードをjavascriptでパースして整形しようと思うのですが、使用するJSのライブラリが外部RSSを取り込めないため phpで同一ドメイン内でRSSを再構築したいからです。 よろしくお願いします^^
readfile(外部サイトのフィード);
607 :
nobodyさん :2010/09/09(木) 19:30:46 ID:sJ+nzVRW
>>606 おおお!その方法だとブラウザで表示した時の見え方が普通のテキストみたいな感じでしか表示されてなかったので
XMLとして利用できないかと思ったら普通にJSで読み込めました^^
ありがとうございましたー つまらない質問してしまってすいませんでしたー><
XMLとして表示させたいならheaderをきちんと吐いてやればいい
609 :
nobodyさん :2010/09/09(木) 22:58:19 ID:odPf6lN7
データベース板でも質問したのですが、いちおうこちらにも書かせてください。
【OS名】CentOS
【連携ソフトウェア】MySQL-server-5.0.87, Tritonn(Senna), PHP
インストの段階で困ってるんだけど、どなたか相談に…。
サーバを一から環境設定していくのは初めての人間です。
Cent OSで、Tritonn(Senna) x MySQL x php を使いたい。
http://doruby.kbmj.com/fuj_on_rails/20100107/tritonn_ を参考にして
MySQL-server-5.0.87までのインストールは完了。
コンソール上でのmysql、senna動作確認は問題なし。
で、phpをyumでインストしていったのだけれど、
yum install php-mysql で失敗する。
エラーメッセージ:mysql conflicts with MySQL-server など
どうやら MySQL-server-5.0.87 と php のバージョンが合っていないみたいで、
データベース板では、「yumではなくPHPを自前でビルドしてインスト」と回答をもらいました。
その方向で、MySQL-server-5.0.87と競合のないPHPのバージョンを探そうと思いますが、
もし、バージョン等に詳しい方がおられましたら、ぜひ情報を下さい。
別に最新のでも問題ないと思うが
ubuntu 使えばいいのに
612 :
609 :2010/09/10(金) 08:01:48 ID:R2uucJfR
な、なんとか自己解決しました。 PHP 5.2.14ビルドからインストール。 なぜかyum(5.2.13)じゃ通らないのですよね、不思議でした。
MySQLもyumでいれればよかったのに
614 :
nobodyさん :2010/09/10(金) 14:14:40 ID:6JhVNQbk
そんなことできたら不正し放題、ウイルス送り放題だな
それやるならサーバサイドじゃなくてクライアントサイドな
617 :
nobodyさん :2010/09/10(金) 20:06:06 ID:Pzl7vi+8
変数の中に値が入ってるかどうかのチェックを if($var)ではなくif(!!$var)でチェックしてるケースを見かけます。 これはどういう違いがあるのでしょうか。
表の裏の裏は表という事です まぁ結果はboolでの判断になるわけだが そんな変数チェックしてる馬鹿なソースは参考にはするなよ
多分w自信無いなら試してから書けよ $value = 2; if (!$value) {echo "通ったよ";} 上記の場合2が代入された変数に !をつけても通らんだろ? この場合「通ったよ」が表示されるのは 0,"",要素数0の配列,未定義変数の場合等だ 因みに-1でも「通ったよ」は表示されない で、質問の場合はさらにその反転 上記の否定演算での結果が逆になるだけだから表に戻る
621 :
nobodyさん :2010/09/10(金) 23:51:20 ID:fuaKxKw9
超初心者なのでくだらない質問して恐縮なんですが 文字列”aaaa30%aaaaaa”このように文字 数字% 文字というパターンの文字列の中から 数字だけを取得する方法ってどうやればいいんでしょうか?
preg_match \d+%
preg_matchは使っちゃダメ
PHPって使っちゃダメなもの多いよね
preg_matchってなんでつかうのだめなの?
使っていいでしょ 誰がそんな迷信ながしてるの?
自演乙
使っていいトコと使ったらダメな所があるでしょ それを分かった上で使うのなら問題はない
629 :
nobodyさん :2010/09/11(土) 20:55:18 ID:GYi1r8TU
WindowsでもLinux(Ubuntu)でも使える便利なPHPエディタって、 NetBeansとAptana以外に何か良いものはないでしょうか。
良いエディタと言われても人それぞれなので、 どんな機能を欲しているのか、あるいは開発の背景などを言わないとアドバイスできない。 個人的には、vimが大好きだが無難なのはeclipse 有名どころじゃないPHP専用エディタもいくつかあるけどその類はあまりオススメしない。
秀丸最強
PDT2ってどうなん? これってEclipseのプラグインだよね?
633 :
nobodyさん :2010/09/11(土) 22:34:19 ID:GYi1r8TU
>>630 すみません。欲しい機能はNetBeansやAptanaと同等の機能です。
まずAptanaのスタンドアロン版を使ってみましたが、
Eclipseのプラグイン版よりは軽いものの
NetBeansのほうがもっと軽いことがわかりました。
でも、Windows XPだと操作するたびに苦しそうにファンが激しく回転します。
(同程度のスペックのマシンでUbuntu上で動かしても問題ないのですが…)
PCへの負荷が少なくてNetBeansに近い便利さのものがあれば教えてください!
俺はメモ帳で余裕
すごいね ぱちぱちぱち
男は黙ってxyzzy
PHPエディタ
vim or eclipse or emeditor
639 :
nobodyさん :2010/09/12(日) 18:51:24 ID:hAWvhX9i
【OS名】 CentOS 【PHPのバージョン】 5.3 【連携ソフトウェア】 【質問内容】 A.php の中に記述されたリンク <a href="B.php">リンク</a> から B.php を呼び出します。 呼び出された B.php 側で、自分のことを呼び出したA.phpのフルパスをセッションを使わずして取得する ことは可能でしょうか?
641 :
nobodyさん :2010/09/12(日) 19:18:54 ID:hAWvhX9i
>>640 > やるとすればリファラ使えばできる
リファラはたしかノートンとか使っていると正常に取得できなかったりしますよね?
そういう条件をつけていくなら B.php?ref=Aとかこんな感じでするぐらいしか無いよ
643 :
nobodyさん :2010/09/12(日) 21:22:27 ID:hAWvhX9i
ありがとうございました。 素直にセッション使いまつ
セッションでもクッキーの受け入れ拒否してたら URLへの埋め込みになるから セッションID消してアクセスすれば取れないよ
横槍だけど start_session()でセッション使って値保持するのと setcookie()でクッキー使って値保持するのって どう使い分けるべきなのかな? セキュリティを考えて常にstart_session使うべき?
646 :
nobodyさん :2010/09/12(日) 22:47:40 ID:hAWvhX9i
>>644 え、そうなんですかorz・・・
>>639 の A.php というのは日記を記述するページ、 B.php というのは写真とそのEXIF情報を表示するための
ページだったりします。日記の A.php と写真の 0001.jpg は同一フォルダにあります。
<a href="B.php?shashin=0001.jpg">リンク</a>
みたいな感じでどの写真を表示させるかは B.php に渡すことが出来るんですが
肝心の写真のフルパス情報をどうやって渡して良いか悩んでいるわけです。
他の日記はまた別のフォルダに保存していたりするので。
セッションを使えば A.php のフルパス情報を B.phpに渡すこともできますが
セッションの受け入れを拒否している人がいるとこの方法でもダメですよね・・・
shashinにフルパスつければよくね?
648 :
nobodyさん :2010/09/13(月) 10:23:43 ID:qMibvBR2
php5.3でphp_xdebugによるデバッグが上手くいきません zend_extension_tsとextension xdebugの各種設定をしているのですがphpinfo()でxdebugがみあたらないのです 5.2だと上手くいくのですが何か見落としてる箇所はありますか?
649 :
nobodyさん :2010/09/13(月) 14:13:02 ID:/s7P18Wx
PHPで、カッコの中にデータを表示させようとしても表示されません。 $html = file_get_html('echo $product'); 上記のような場合でもカッコの中にデータを表示させる方法はありますでしょうか?
$productの中に何が入ってるのか知らんが、 $html = file_get_html($product); こうじゃダメなのか?
651 :
nobodyさん :2010/09/13(月) 14:31:26 ID:/s7P18Wx
以下の記述をすると $html = file_get_html($product); このようなエラーメッセージが出ます。 Parse error: syntax error, unexpected T_ECHO, expecting ')' コレだけの記述だと正常にデータを表示します。 echo $product; zencartを使用
こうだろ $html = str_get_html($product); file_get_htmlは引数をURLに取るんじゃないのか? PHP Simple HTML DOM Parserの話だよね?
653 :
nobodyさん :2010/09/13(月) 14:59:31 ID:/s7P18Wx
ありがとさーん。
654 :
nobodyさん :2010/09/13(月) 19:25:48 ID:Lm2I1b13
>>647 > shashinにフルパスつければよくね?
それも一つの解決方法なんですが写真の数が多いため全てのフルパスを付けるのは
面倒なこと、将来サーバーを乗り換えたときにフルパスだとディレクトリ名が変更になった場合
全て修正する必要性がでてくるためできればフルパスは含めない方法を探していたわけです。
余談ですがクッキーの受け入れを拒否している端末でも
PUTやGETでA.phpのフルパスをB.phpに渡すことって出来ないですかね・・・
657 :
nobodyさん :2010/09/13(月) 22:12:39 ID:Lm2I1b13
>>656 >
http://jp2.php.net/manual/ja/function.output-add-rewrite-var.php > これ使えばいい
ありがとうございます。
まだ簡単に調べた段階ですが、
output_add_rewrite_var('var', 'value');
関数は画像リンクに限らずページ内に存在するありとあらゆるリンクの最後に ?<var>=<value> を
付与してしまうとのことです。※リンクだけでなくフォームにも勝手に追加しちゃう?!
自分のサイトに訪問してくれた方が画像リンク以外のリンクをクリックしてもURLの最後に意味不明な
?<var>=<value> が付くことになるわけですが混乱したり不快に思ったりしないでしょうか(^-^;)?
あと余談ですが訪問者のブラウザ設定でcookieの売れ入れの有無にかかわらずこの関数は
有効に機能すると考えて差し支えないでしょうか?
658 :
nobodyさん :2010/09/14(火) 11:56:30 ID:v/2zN57l
フルパスを渡すってサイトトップからのパスではなく サーバのTOPからのパス? なぜそれを渡さなければならないかがわからない。 サーバのTOPからのサイトトップのパスを共通定義にでもしておいて それ使ってプログラム書けば、 サーバ移転した時もその一行書き換えればいいんじゃないの?
クラスについての質問ありませんか?
660 :
nobodyさん :2010/09/14(火) 14:43:54 ID:wQYT6X6V
どういう時にクラスを使うべきですか? 自作関数をincludeするのとどこが違うのでしょうか?
くらすってなんですか?
>>660 ・コードの保守が楽になります
・複数人での分担作業が楽になります
・データとロジックを分けることができます
class Keisan
{
public function tashizan($a, $b){
return $a + $b;
}
$keisan = new Keisan();
echo $keisan->tashizan($a, $b);
こういう風に書くこともできます class Keisan { public static function tashizan($a, $b){ return $a + $b; } echo Keisan::tashizan($a, $b);
class Keisan { public function tashizan($a, $b){ return $a + $b; } $keisan = new Keisan(); echo $keisan->tashizan(5, 10);
単純な例出しても、 「え?なんでそんな面倒なことしなきゃいけないの?」ってなるだけだからなぁ
クラスの書き方と使い方を覚えても オブジェクト指向がなんたるかを理解してないと 不思議なコードになるから理解できてないうちは使わんほうがいいよ
■data.php $a=1; $b=4; ■keisan.php class Keisan { public static function tashizan($a, $b){ return $a + $b; } ■program.php include "data.php"; include "keisan.php"; echo Keisan::tashizan($a, $b);
何の意味もない例でした
class BBSWrite { } class BBSRead { } class 2ch { function write(){}; function read(){}; } とかクラス設計がいまいち分からないね
670 :
EM114-48-11-217.pool.e-mobile.ne.jp :2010/09/14(火) 19:04:32 ID:vtvQ2dJO
数ヶ月ぶりに規制解除されたことだしここのksユーザー共の偏差値を上げる為に俺も人肌脱いでやるか
また荒らす気かよ…
すぐ規制されていなくなるからスルーでおk
たぶん君らのレスも無駄だし不要かもしれないよね
674 :
nobodyさん :2010/09/14(火) 19:46:42 ID:J3MSx4E4
test
>>669 俺も俺も。その構造は大体理解できるんだけど
それからどうやって使うのかがいまいちわからないね
インクルードで呼び出すと思うんだけどさ。
複数あると混乱するよね
>>669 とりあえずオレならそんな設計にしないことは確かだ
とりあえずファイル一つにつき1クラスだな 判りやすいから フレームワークの構造考えたらどう使えばいいかわかるんでないかい
678 :
nobodyさん :2010/09/14(火) 20:50:01 ID:lx9NhRJD
わかりました。勉強にもなりますのでぐぐってみます。
それだが、実際に組んでベンチ取るとかしてみた方がいいみたいだぞ? 環境にも左右されるし一概に全部の環境に当てはまるとは言い切れないし
ですよね。 きっと誰かが実装したと思うので、 それを活用したいな、と。
682 :
646 :2010/09/14(火) 21:42:10 ID:xcl5dZPT
>>658 多数の画像リンクを全てサイトトップからのパスで記述するのは労力的にも厳しいです。
その労力を軽減するのがプログラムの役割だと思うのですが現在のPHPだと厳しそうですね・・・
$_FILEでアップロードされたファイルを取得して クライアント側からアクセスできるパスに保存してそのパスを返せばいいんじゃね?
B.phpを同じ階層に置けばいいのでは?
686 :
646 :2010/09/14(火) 22:19:59 ID:xcl5dZPT
>>683 日記に付随する画像ファイルは日記と一緒にアップロードしたきりです。
>>684 日記(B.php)は日記毎に違うフォルダに格納してたりします・・・
687 :
646 :2010/09/14(火) 22:34:20 ID:xcl5dZPT
余談ですが
>>656 さんが紹介してくださった
output_add_rewrite_var('var', 'value');
という関数。これはURLに'var'と'value'の組を付与するという形で別ページのPHPスクリプトに
変数を渡すことを実現しています。あとは受け手のPHPスクリプトの中でGET['var']を指定すれば
'value'の値を入手することが出来る仕組みです。
output_add_rewrite_var() 関数はページ内のありとあらゆるリンクに'var'と'value'の組み合わせを付与
してしまいます。そこでGETの代わりにPUTで変数の値を受けることが出来る関数というのは無いでしょうか?
それがあればリンクを(見かけ上)汚さずに変数の組を別ページに渡すことができるようになるはずです。
>>686 記事ごとにB.phpを作って新しいフォルダに入れてるんですか?
そういう作りはそもそも避けるべきかと。
>>686 そういうときこそクラスで管理する癖をつけたほうがよい
690 :
646 :2010/09/14(火) 23:00:51 ID:xcl5dZPT
>>689 クラス・・・ですか
クラスで管理すると別ページに変数セットを渡したりすることができるようになるんでしょうか?
yes
>>690 class Sample
{
public $number = 1;
public function view()
{
return "ナンバーは". $this->number. "ですね!";
}
}
$obj = new Sample();
echo $obj->$number;
echo "\n";
$obj->$number = 1000;
echo $obj->view();
訂正 class Sample { public $number = 1; public function view() { return "ナンバーは". $this->number. "ですね!"; } } $obj = new Sample(); echo $obj->number; echo "\n"; $obj->number = 1000; echo $obj->view();
694 :
EM111-188-77-232.pool.e-mobile.ne.jp :2010/09/14(火) 23:21:21 ID:o4piNMzk
692=693=名前欄参照
PHP5神過ぎるな
>>646 リファラとかCOOKIE使えない奴はエラーページじゃだめなの?
それがずっと疑問だったんだ
それじゃ訪問者いなくなるぞ
ブックマークできないな
これって何か問題があって出来なくなってるの? 多重継承使えば同じ事できるけど、コードが冗長になるのが気に入らない。。。
>>700 PHPはオブジェクト指向言語じゃないけど、
多重継承なんか使わなくても問題ない。
条件 COOKIE、リファラ使えなくても表示したい 渡されるパラメータ改変されてアクセスされても表示したい こういう謎な状態
今夜はクラスきちがいが沸いてるのか・・
705 :
703 :2010/09/15(水) 00:20:59 ID:???
自己解決しました。
なぜ質問でもないのに勝手に閉じられるw 状況説明してやってるだけだろks
707 :
703 :2010/09/15(水) 00:37:24 ID:???
ごめんなさいozr
708 :
nobodyさん :2010/09/15(水) 08:29:41 ID:1uGBmNKk
IEやchromeでセッションが保存されない問題ではまっております。 firefoxだと問題なく動きます。 ドメイン名にアンダーバーはないので、ドメイン名が原因ではなさそうです。 開発環境はcakePHPなのですが、なにか原因となりそうな部分、 もしくはやってみたらよさそうなことなどないでしょうか? どうぞよろしくお願いします。
cookieの中身をwatchする
今時cakephp(笑い)
それを言い出すといまどきPHP(笑)なわけだが
そういうのはやめようや
とりあえずwiresharkかなんかで通信のぞいて、cookie関係のヘッダの やりとりを観察してみたらどうだ?
そこ突っ込むといまだからPHPだろう いまどきPerl,使うのはオッサンぐらい Rubyは好き物が使ってるだけ Pythonは元々CGIを行うために生まれたものじゃないし
>>714 他言語を貶すような事は書かないでくれ
perlがオッサンというのはちょっとずれてる
YAPCもPHPカンファレンスも年齢層は変わらない。
perlの方が日本発の携帯向けのフレームワークも多いし
今でも主流の一つ。
greeはPHP(藤本さんにはお世話になりました)
mixi・DeNAはperl
案件数ではLLの中ではPHPが一番多い
零細企業ならともかくいつまでもPHP使ったシステムのままってのはどうなんだ・・・ greeも儲かってんだからさっさとシステムを改修したほうがいい そのうち積むぞ
よかったら積む理由を教えてくれないか 時代遅れだけは簡便な
Yahooのような大規模サイトでもフレームワーク使っててもあのクオリティなのに どういう場合に積むのかこりゃ気になるな
ニフティでもCakePHPで構築されたコンテンツもあるけどね どんだけPHPをなめてるんだろうw
処理が増大すると遅くなるとか アクセス過多でレスポンスが遅くなるってのは SpeedyCGIじゃなくてなんだっけか名前忘れたけど それで改善できるんだっけ
処理が増大すると遅くなるのはPHPに限らないと思うけど
PHPの処理機構がとろくて 重アクセスでうんちゃらって記事を見たような
eAccelerator
APCとeAcceleratorどっちがいいの?
記事が書いてたからこうだって洗脳されたやつが1名いるなw
んじゃおまえがまともな記事かいて公開してやれ
誰がどんな記事書こうが、本書こうが、 洗脳されたの一言で済まされたら書く意味がない。 このスレも回答者に洗脳されたの一言で済まされるから存在意義がない。
重いと言われるsmartyもゲーム業界で利用されてるのにねw 記事マンセーおつかれ
>>727 誰が記事を書くかは自由だが自分が試したこともないのにこれは記事に書いてあるからこうだって自己主張するのは違うかな
実際レスポンスってプログラムっていうより、 DBがボトルネックになることがほとんどなんじゃないの?
smartyが遅いのは毎回コンパイルするように設定してるからだろ
>>730 個人的にはDBと回線が多いかな
SQLをあまり知らない人が、1度のクエリで済むところを何度もクエリ発行
→それをPHPで加工とかして無駄に負荷がかかるというのも結構見る
DBに登録されている時間から24時間経ったかどうか調べるだけで
PHP側でmktime使ったりとかもよくある(INTERVAL 1 dayとかdatediffとか知らない)
(この程度なら体感できる差はでないけど)
あとは無駄に凝ったJavaScriptを書いて、クライアント側で負荷がかかるとかも多い
もちろんPHPは関係無い
PostgreSQLが未だに「VACUUMするだけで早くなった」というのが多いのと同様に
php.iniとhttpd.confの設定と、アクセラレータ使うだけで問題解決の場合も結構多い
733 :
nobodyさん :2010/09/15(水) 13:59:16 ID:tjiwRP0q
要は道具は人の使いようによっていくらでも かわるさ。 別にPerlだろうがPHPだろうがRubyだろうがJavaだろうが 好きなものを使えばいい。
木槌で金槌を叩くんですね
高木先生のサニタイズするなをどう捉えたのか分からないがまったくサイニタイズしないで出力するバカが新人にいてクソワロタ
サニタイズするなじゃなくてサニタイズ言うなっていう主張だったはずだが
サンプル見て書いたんだけど、なんか動かないんだけど??? <?php if(a$ = 1){ print "a$ は " + a$ + " です。": }then{ exit(): }else{ b$ = *a: a++: print a: } ?>
738 :
737 :2010/09/15(水) 15:35:18 ID:???
解決しました
>>735 内部では生のまま扱ってsmartyで$default_modifiers使うのが
いまのとこ俺としては一番楽だな。
入り口でエスケープ加工とかすると長さ調べたりといった処理で
わけわかんなくなってだめだわ。
解決してません。何で動かない???
パスワードをばれないようにしたいのですが セッションに格納したらバレませんか?
>>737 すごく簡単な事だけど
スレのルールを守らない質問には答える義務はありません
義務とかどうでもいいんだけど、教えてよ!!
a$ = 1: print a$: これだけでもエラーが出る。わけわかんない。
釣り乙
釣りもここまでくると冷めるな
もういい。教えてで聞いてくる。
>>741 スレタイ
なんでパスワードをセッションに格納する必要があるの?
750 :
737 :2010/09/15(水) 17:16:32 ID:???
はい、時間切れ。 おまいらこんなあからさまな引っ掛けも分からないでやんの。 カス決定。
748 名前:nobodyさん[sage] 投稿日:2010/09/15(水) 16:00:05 ID:???
もういい。教えてで聞いてくる。
749 名前:nobodyさん[sage] 投稿日:2010/09/15(水) 16:14:23 ID:???
>>741 スレタイ
なんでパスワードをセッションに格納する必要があるの?
750 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
ちょっと気になったんだけどさ、PHPって言語はPerlだよな・・・? F-BASICとPHPしかプログラム組んだことないんでわかんないwwww
∩___∩ / | ノ ヽ / / > < |/ そんな餌パクッ | //// ( _●_)/ミ 彡、 l⌒l ノ / __ \ \ヽ . (___) \__) . O| / | /\ \ | / ) ) ∪ ( \ \,,_)
\ ∩─ー、 ==== \/ ● 、_ `ヽ ====== / \( ● ● |つ | X_入__ノ ミ 、 (_/ ノ /⌒l /\___ノ゛_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ======(´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;;
756 :
741 :2010/09/15(水) 17:54:02 ID:???
パスワードをcookieに保存するとばれますよね? なのでsessionに保存しようと思うのですが cookieとsessionは同じですか?
やべぇ マジで初心者だw
100MBぐらいのテキストをセッションに保存したらわかるんじゃねw
759 :
741 :2010/09/15(水) 18:03:35 ID:???
すいません、質問なのにsageてしまいました…
最近の流行はmemcached
>>756 >cookieとsessionは同じですか?
違う
簡単に言うと、cookieはクライアント側に、sessionはサーバ側に格納される
そのためセッションIDが盗まれる事はあっても、sessionの中身を直接見られる事は普通は無い
>>749 で聞きたかったのは、パスワードをセッションに入れて持ち回す理由が知りたかった。
762 :
741 :2010/09/15(水) 18:31:39 ID:???
sessionの中身って・・・
何が言いたいのかはっきりしろよ
764 :
741 :2010/09/15(水) 18:41:01 ID:???
それ、リアでよく言われるんです。なんで??
>>756 sessionだってクッキー使うんだからsessionで発行したクッキーをハイジャックされりゃあ同じ事
768 :
nobodyさん :2010/09/15(水) 20:14:43 ID:tjiwRP0q
test
769 :
646 :2010/09/15(水) 20:17:24 ID:KXuGaOGr
いろいろ検討しましたがsessionを使う方向で調整していこうと思います。 アドバイスありがとうございました(´・ω・`)ノシ
cookie使わなくてもsession使えるし セキュリティに拘るならsession IDとIPを紐付けしたりリクエスト毎にsession ID変えたりhttpsで丸ごと暗号化したり
771 :
741 :2010/09/15(水) 21:36:18 ID:???
暗号化って、SSLのことですか?
772 :
646 :2010/09/15(水) 22:02:53 ID:KXuGaOGr
ところでsession情報をURLに表示させないようにするには 訪問者の方がブラウザでcookieを受け入れてもらうよう設定してくるのを望むほか無いんでしたっけ?
クッキーを拒否ってるクライアントの事は考えないのですか、そうですか
775 :
646 :2010/09/15(水) 22:32:50 ID:KXuGaOGr
>>773 > hiddenでもたせれば?
http://www.yc.tcu.ac.jp/~yamada/doc/php/0802.html のサイトの
> ■HTMLフォームのhiddenコントロールでセッションIDを引き渡す方法
で解説している方法ですね。
<form action="session_start6a.php" method="post">
<input type="hidden" name="<?=session_name()?>" value="<?=session_id()?>">
<input type="submit" value="次ページ">
</form>
確かにこの方法ですとcookieを拒否している人がリンクをクリックしてもURLにsession変数関係のゴミが
付くことはなくなりますがリンクは input で実現しなければならないんですね・・・
単なる画像リンクなんで input で表示するのはちと大げさかと・・・
普通の <a href="photo_hyouji.php?file=shashin_01.jpg">写真</a> という感じで、なおかつURLにゴミが
付かないようにセッション情報を渡せれば万々歳なんですが・・・
statefulにしろカス
ブラウザのURLに出るのが嫌なのか? ならGETじゃなくてPOSTにすりゃいいんじゃね
>>775 B.phpをA.phpと同じ場所に置くという話で解決したんじゃなかった?
779 :
646 :2010/09/15(水) 23:08:36 ID:KXuGaOGr
>>777 > ならGETじゃなくてPOSTにすりゃいいんじゃね
<a href="photo_hyouji.php?file=shashin_01.jpg">写真</a>
の書式でGETではなくPOSTにする方法はありますか?
>>778 やはり管理上写真を表示するPHPファイルと、日記のPHPファイルは別ディレクトリの方がいいかと・・・
あるよ ただそれはjavascriptだからここじゃスレ違いになる 調べてみるといいよ
>>646 javascriptでならPOSTはできるが
javascript切ってる人がいるかもしれないのでだめだよな
質問時にもうちょっとやりたい事と現状を整理して書くべきだ
あと条件もあるなら条件も
リファラとれないやCOOKIE使えないなんて
WEB全体で考えると数%だろそれをフォローする労力と
その見返りからも考えるべきだな
まぁ仮に貴方のサイトでそれらの人が5割超えるとかって話なら別だが
>>779 > <a href="photo_hyouji.php?file=shashin_01.jpg">写真</a>
> の書式でGETではなくPOSTにする方法はありますか?
アホだとは思うが
hogehoge/photo_hyouji.php?file=shashin_01.jpg
fugafuga/photo_hyouji.php?file=shashin_01.jpg
hagehage/photo_hyouji.php?file=shashin_01.jpg
みたいにsessionidをディレクトリに含めて
rewriteでどのディレクトリにあっても同じCGI呼ぶようにすればいい
>>779 > やはり管理上写真を表示するPHPファイルと、日記のPHPファイルは別ディレクトリの方がいいかと・・・
どういう理由で?
そうしたせいで今困ってるわけじゃないの?
あ、いい方法を思いついた! A.phpと同じディレクトリにB.phpを読み込むC.phpを置く。 ■A.php <a href="C.php?file=B.phpのパス">写真</a> ■C.php <?php require_once($_GET['file']); ?> こんな感じにしておけば、B.phpで画像のパスは不要となり、ファイル名だけでいける。
何そのセンスのない方法は クラス使えばいいでしょ
>>785 クラスでの解決策を提示してから言いなよ
お前のクラスの事なんかしらねぇよ
関係ないけどサイト上からHTTPリクエスト送ってヘッダーとか見れるサイト教えてください
meta tagの中にrdf使った複雑な補足説明みたいなのものを記述するのってだめなんでしょうか
チンピラが復活するとスレの進行速度はええな
なんか無駄なことに労力かけてるようにしか見えないな...
おまえらPHPも使いこなせないくせに偉そうな無駄レスしてんじゃねえぞ
798 :
nobodyさん :2010/09/16(木) 12:01:55 ID:/BVvHaMj
セッション変数を複数利用する場合、hiddenを使ったほうがいいでしょうか? firefoxでは動作するのに、IEやChromeでは途中でセッションがなくなってしまうバグが起きていて悩んでいます。 ※ ちなみにセッションの中身はこんな感じです。 (これが多すぎるのか、別に容量に問題が出ないレベルなのかは分かっておりません) array 'total_page' => int 1 'totalItems' => int 9 'lastPageItems' => int 9 'lastPageSignal' => boolean true 'page_list' => //ここがたまに100行の配列になる時もある。 array 0 => int 1 'page_number' => int 0 'item_number' => int 0 'Config' => array 'userAgent' => string '7c0b362895da60915e17b51a0a55e3aa' (length=32) 'time' => int 1284607023 'timeout' => int 10 'category' => string '500592' (length=6) 'date' => string 'pubdate:after 08-2010 and pubdate:before 10-2010' (length=48)
799 :
798 :2010/09/16(木) 12:06:53 ID:/BVvHaMj
ちなみに、セキュリティ的には外部に見られても問題ない情報です。
セッションは鯖側に普通は保持されてクライアントとやりとりするのは セッションIDだけだから、中身の多い少ないでクライアント依存の問題 が出るとは普通考えられないな。 クライアント依存の問題は似たような問題で悩んだ人がいないかぐぐって 解決されてればラッキー、みつからなければ頑張って自分で追いかける しかないよ。まずはクライアントーサーバ間のやり取りを追いかけてどっち の問題か切り分けるのが第一歩だと思う。
801 :
nobodyさん :2010/09/16(木) 12:18:57 ID:zCfQEIBb
クラス内に持ちたい配列を別ファイルに書いておいてincludeしようとしてますが syntax error, unexpected T_INCLUDE_ONCE, expecting T_FUNCTION in includeした行 と出てしまってうまくいきません。 ぐぐっても情報を見つけられないのですが、どうすれば良いでしょうか。 params.php var $test = array( array('id' => 1, 'name' => 'yui'), array('id' => 2, 'name' => 'mio'), ... ); test_model.php <?php class TestModel extends AppModel{ include_once('params.php'); ... }
802 :
798 :2010/09/16(木) 12:38:34 ID:/BVvHaMj
>>800 レスありがとうございます。とても参考になります。
セッションIDの中の中身が多くなっても、影響はなさそうだということですね。
さらに、この程度なら上限のサイズにも達していないだろうということですよね?
実は、処理ごとにvar_dumpを何行試したりして、firefoxとIEでの違いを
チェックしているのですが、IEだとなぜかセッションの挙動が変わって原因がつかめないのです。。
かれこれ昨日からググったり、debugしたり、18時間ぐらいずっとやってて、かなり近いとこまでたどり着いたけど、
そもそも全部配列に格納して、hiddenでやればいいんじゃないか?と思ったわけです。
>>801 行数多くなるから詰めてあるけど
自分で整形して見やすいようにしてから見てね
■program.php
include "setting.php";include "class.php";$obj = new B();
echo $obj->text_A, "\n";echo $obj->text_B, "\n";$obj->setText();echo $obj->text_B, "\n";
$obj->hash = $ary;print_r($obj->hash);
■class.php
class A{public $text_A = "This is A.";public function getText(){return $this->text_A; }}
class B extends A{public $hash;public $text_B = "This is B.";public function setText(){$this->text_B = parent::getText();}}
■setting.php
$ary = array("1ch", "3ch", "4ch", "6ch", "8ch", "10ch", "12ch");
おかしくなったからやっぱ1つづつ張るわ ■program.php <?php include "include.php"; include "class.php"; $obj = new B(); echo $obj->text_A, "\n"; echo $obj->text_B, "\n"; $obj->setText(); echo $obj->text_B, "\n"; $obj->hash = $ary; print_r($obj->hash);
<?php class A { public $text_A = "This is A."; public function getText() { return $this->text_A; } } class B extends A { public $hash; // 外部ファイルに書いた配列データが入る所 public $text_B = "This is B."; public function setText() { $this->text_B = parent::getText(); } }
806はclass.php ■setting.php <?php $ary = array("1ch", "3ch", "4ch", "6ch", "8ch", "10ch", "12ch");
>>806 ちなみにクラスの中にincludeをする書き方は今日からやめよう
809 :
808 :2010/09/16(木) 13:07:16 ID:???
アンカーミス
>>801 ね
↓みたいにクラスの中にinclude使うのは今日からやめよう
class TestModel extends AppModel{
include_once('params.php');
...
}
AppModelってことはcakeとか使ってたりするのか
はてなも馬鹿な解答が増えたもんだ
知恵袋とか教えて●●とかの質問系のサイトって質問とは関係ない回答してポイントを稼ぐサイトでしょ
「セッションIDの中の中身が多くなっても」なんて言い回しを見ると あきらかに理解できてなさそうだなぁ。近くに聞ける人はいないの?
>>814 聞ける人がいない(聞きにくいも含む)からネットで質問するのだろう
816 :
798 :2010/09/16(木) 14:24:21 ID:/BVvHaMj
>>810 ありがとうございます。
クッキーの容量制限とセッションの容量制限は同じだと思っていました。
>>814 恥ずかしながら、今回、セッションを一から勉強している段階です。
近くに聞ける人は今いないもので。。
カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
画像の表示がぐるぐる変わるサイトを作っています。
そのページナンバーやカテゴリ、期間指定などをセッションでやりとりしていたのですが、
これを機会に全部hiddenにいれて、GETで受け渡し、それぞれのページをURLコピペできる
ようにすればいいのではないか?と考えました。
GETの制限文字数に余裕があるなら、この考えは悪くないでしょうか?
ぐるぐる変わるサイトっていうのはランダムなのか序列なのかとかもっと具体的に書いてもらえれば助言できるんだが
>>816 hiddenでやると構造もったデータはシリアライズしてエンコードデコード
してみたいな手間がかかるし、場合によっては改竄対策もいるし、
ページサイズでかくなるしといろいろあるから、あまりお勧めはしないな。
特に今回は配列いれてるみたいだし。
そもそもPHPのクッキー使ったセッション維持なんて世の中でものすごく
たくさん使われているのでIEでうまくいかないなんてことがあったら
大問題になってるはずだけどそんな話はきかんぞ。firefoxとIEじゃなくて
自分の環境の問題だったりしないか。片方にだけ変なセキュリティソフト
入れてるとかそういう類。
819 :
798 :2010/09/16(木) 14:44:19 ID:/BVvHaMj
820 :
798 :2010/09/16(木) 14:49:47 ID:/BVvHaMj
>>818 なるほど。どうもありがとうございます。
一から全部hiddenで書き直そうとする瞬間だったので、本当に助かりました。
もう少し、セッション周りで自分の環境の問題を調べてみます。
>>816 >カテゴリごとにそれぞれページ数があって、ボタンをクリックすると
>画像の表示がぐるぐる変わるサイトを作っています。
セッションもhiddenも使う必要ないと思うんだけど
822 :
798 :2010/09/16(木) 15:25:14 ID:/BVvHaMj
>>821 本当ですか。、というと、どうやればいいのでしょうか。
ジャバスクリプトとかかな。。 いや、そんな難しいことしなくて、なにかあるのかな。
オブジェクトの生存期間?ってリクエスト受けて表示するまでですか? 共通の処理をする場合はstaticメンバ関数でよいですかね?
824 :
823 :2010/09/16(木) 15:49:38 ID:???
あ、すいません書き込むスレ間違いました
class Hoge { function __construct() { echo "construct"; } function __destruct() { echo "destruct"; } } new Hoge(); これをしてみればわかる
829 :
823 :2010/09/16(木) 16:49:46 ID:???
自己解決したのでもういいです。
ID出さないとこうなるんだよ
ああ、そういうローカルルールあんのね
835 :
nobodyさん :2010/09/16(木) 18:11:38 ID:UCptVaL2
勝手言ってすいませんが、急いでます! 任意の深さを持つ配列を作成したいのですがどうすればよいでしょうか 例えば、 $key = array( 'k0', 'k1', 'k2' ); $value = 'v'; $array = get_array( $key, $value ); とした場合、 $array['k0']['k1']['k2'] = 'v'; と言う結果を得たいのです。 こんな関数 get_array の実装がわかる方おられましたら教えてください。 ※もちろん、 $key の数は可変です
function get_array($key, $value) { $r = $value; foreach (array_reverse($key) as $k) { $r = array($k => $r); } return $r; }
お礼お礼うるせーな
839 :
nobodyさん :2010/09/16(木) 18:34:15 ID:cwt3W9Qn
Windowsで複数のPHP(cli)を走らせているのですが、 1つの cmd.exe が約2.5MB、1つの php.exe が約13MBメモリを消費しているようで、 大量のプロセスを立ち上げることが出来ません。 HTTPd上で走らせた方がメモリが節約できたりするのでしょうか? よろしくお願いします。
とりあえずバージョンとかも書いたら? thread版とnon thread版のどちらの使ってるのかも書いてくれないと回答に困るかな
835=
>>838 解決したらデカイ態度になるのイクナイ
842 :
839 :2010/09/16(木) 18:44:32 ID:???
>>840 PHP 5.2.10 (cli) (built: Jun 17 2009 16:16:57)
php-5.2.10-Win32.zip です。thread版だと思います。
843 :
nobodyさん :2010/09/16(木) 18:47:13 ID:UCptVaL2
>>836 様
ありがとうございましたm(__)m
徹夜で半分気を失ってたところです。
ほんとにすいません。
本当に気絶していました。
すいません。
すいません。
>>844 5.3.3に変えても、約11.3MB消費します。
減った分も、Unlha などのモジュールが無効になった為ではないかと思います。
いやまだバグ直ってないよ
>>804-809 ありがとう。
では自分の例だと、こういう風になるのかな。
params.php
<?php
$test = array(
array('id' => 1, 'name' => 'yui'),
array('id' => 2, 'name' => 'mio'),
...
);
test_model.php
<?php
class TestModel extends AppModel{
public $test;
...
}
test_controller.php
<?php
function some_func(){
include "params.php";
$testObj = new TestModel();
$testObj->test = $test;
...
}
つまりクラス内部でのincludeをやめて、外から代入してやると。
クラス内部でincludeしてはいけない理由は、PHPではできないからでしょうか?
いや、クラス内部からincludeすることはできる constructを使えばな でもしないほうがいい
850 :
nobodyさん :2010/09/16(木) 20:59:56 ID:1fMzrbOR
Amazon EC2 の Windows Server 2008 Datacenter に Zend Server CE (ZendServer-CE-php-5.3.3-5.0.3-Windows_x86.exe) を入れようとしたんですが、 インストール途中で、「Error: -1622 インストールのログ ファイルを開くときに、エラーが発生しました。 指定されたログ ファイルの場所が存在し、書き込み可能であることを確認してください。」 というエラーメッセージが表示され、インストールに失敗します。 何か分かる方いますでしょうか?
権限がないからじゃねえの
>>849 試しにコンストラクタでやってみたら、できました
何故しない方がいいんでしょうか?
>>852 いずれ分かるときがくるさ
ぽまえならたぶん意味が分かる日はそう遠くないと思う
855 :
nobodyさん :2010/09/16(木) 21:40:10 ID:zUsTEVn5
session_start() を実行すると相対パスリンクに対しては全てsession情報が付き、絶対パスリンクに対しては session情報が送られないという決まりがあります。 それをさらに突き進め、相対パスのリンクでも事前に指定した特定のリンクだけにsession情報を送り、 それ以外のリンクはたとえ相対パスの形であっても絶対パスのリンクと同様にsession情報は 送らないように設定することは可能でしょうか?
PEARのHTTP_Request2でWebページのレスポンスを取得した後 そのページにあるFormの〜番目にあるValue値を取得することは可能でしょうか もし無理ならば 他の方法を教えてください
857 :
856 :2010/09/16(木) 21:42:15 ID:qlMmQX9a
858 :
nobodyさん :2010/09/16(木) 22:05:44 ID:n8iVW5jh
連想配列のキー名をstr_replaceで一括置換する方法を教えてください。 書き方がわからなくて困っています。 foreachでキー名は取れますが、新しいキー名を連想配列に戻す方法がわかりません・・・。 例 array(2) { ["Name1.id"]=> int(1) ["Name1.param"]=> int(45) } をこうしたい array(2) { ["Name2.id"]=> int(1) ["Name2.param"]=> int(45) }
861 :
nobodyさん :2010/09/16(木) 22:17:50 ID:n8iVW5jh
キーと要素が逆になるってことは要素が重複していた場合消えるから気をつけろよ
863 :
nobodyさん :2010/09/16(木) 22:26:01 ID:n8iVW5jh
あ、そうか確かに 結構面倒すね。気をつけます
素朴な疑問。キーを置換する事ってある?
キーを痴漢する
北野きい
mb_send_mail関数でたまーに送信されてないことがあるみたいなのですが一体何が原因でしょう 自分も一回だけ経験しましたが済度試したらうまくいって再現できずいまだに原因が分かりません 第五引数には-fオプションでリターンパスを設定してますが 送信されない時も特になにも帰ってきてません
869 :
867 :2010/09/16(木) 23:40:59 ID:hZDhig7v
ごめんなさい。
テンプレです。
【OS名】FreeBSD
【PHPのバージョン】5.2.14
【連携ソフトウェア】
【質問内容】
>>867
>>869 本題とは関係ないがメールを送るときにmb_send_mail関数は使わない
なぜならmb_send_mail関数は信用できない
この理由はgoogle先生に聞いてね
代わりにmail関数を利用する
ちなみに戻り値がtrueという事ならSMTPの問題でPHPの関係ではない
フルパスを渡す方法を尋ねてた人は もう解決したの?
>>860 値が全て異なるって結構厳しい制約だから素直に新しい
配列作ってしまうほうがいいと思うけどな。
キーを置換しなければいけないようなコードを書くのがきもい
>>220 お礼言えよ!!!!!!!!!!!!!!!
うっせーな
チンピラ荒らすな お前がきてから荒れてるからバレバレだぞ
荒れるような状況に持っていく
>>887 の方が本当はたちが悪い
黙ってられない奴が一番悪いんだよ 言わせんな恥ずかしい
なんで荒れるんだよ レベルひくすぎるだろ
このスレに生息する人 ・ちんぴら ・OCN ・自治厨のつもりだけど周りから見たら荒らしにしか見えない人 ・回答もロクにしない癖に標的を見つけると待ってましたとばかりに登場する人
礼も書けないのもどうかと思うけど
認証系のシステムを作る場合、下手に自分でセッション系の処理を組むよりも Auth.php を使用した方がやはり安全でお手軽でしょうか?
886 :
nobodyさん :2010/09/17(金) 14:00:46 ID:zQJEoB3m
Pear::Authを使用してログインシステムを作っているのですが "db_fields" => "*" を使用して、ログインID/PASS以外のカラム (日本語で保存されているユーザ名)を取得しようとすると 文字化けしてしまいます。 そこでAuthを使用した場合に発生する文字化け回避策を 調べたところ $db->query('SET NAMES sjis'); と記述すれば良いとの事でしたが、 これは、MDBパッケージを使用している場合対処方法であり、 私はMDB2を使用している為、この方法を使う事が出来ません。 因みにDB接続時のDSNの設定では、 mysql://test_user:test_pass@localhost/TEST_DB?charset=sjis しっかりとcharsetとしてsjisを指定しています。 どうすれば文字化けを回避出来るかご教示下さい。
884と886はイコールで回答していいのですか?
888 :
nobodyさん :2010/09/17(金) 14:22:33 ID:zQJEoB3m
>>887 はい、その通りです。
IDを出すのを忘れていたので出しました。
データは何の文字コードで保存されてんの?
891 :
nobodyさん :2010/09/17(金) 14:35:28 ID:B0xV1VRr
WindowsでPHPからsendmailが使いたいんですけどないですか? もしくはsendmailと互換があるものってありませんか?
892 :
nobodyさん :2010/09/17(金) 14:36:22 ID:ZenZaYAa
PHPを書くときにお勧めの環境(デバックとかも含む)を教えてください
>>892 おすすめじゃないけど
netbeans+xdebugつかってる
>>886 わざわざSET NAMES sjis'とやろうとしてたという事は
PHPはsjisで作成しているという事であってる?
もしよくわかってないなら
MySQL側の文字コード関連(show variables like 'character_set%';)
PHP側の文字コード関連(phpinfo()のmbstringの設定)を確認して
ようは、MySQLの文字コード・PHPの文字コードが自分が想定している文字コードかどうかの確認。
次スレ 【PHP】下らねぇ質問はIP出して書き込みやがれ 98 【PHP】下らねぇ質問はIDとIP出して書き込みやがれ 98 【PHP】下らねぇ質問はID出して書き込みやがれ 98 【PHP】下らねぇ質問はID出して分かりやすく書き込みやがれ 98
>>4 1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
↑
今からEUC-JPなんて使わないしほとんどそういうサイトも見かけない
Shift_JISは携帯サイトで使うし書き換えたほうが良いと思うんだがどうだろう
内部エンコードは別にShift_JIS使う必要はない というかUTF8一択で良いだろ
>>897 初心者が内部エンコーディングとスクリプト自体をShift_JISするとトラブルだらけになるだろ。
携帯サイトも普通はDBやPHPをUTF-8で統一した上で
出力直前でShift-JISに変換するのが良いよ
900 :
886 :2010/09/17(金) 16:32:21 ID:zQJEoB3m
901 :
nobodyさん :2010/09/17(金) 17:33:21 ID:na186H29
902 :
EM111-188-12-75.pool.e-mobile.ne.jp :2010/09/17(金) 18:03:43 ID:rm9K3xNr
低レベル乙
906 :
nobodyさん :2010/09/17(金) 18:24:30 ID:na186H29
DOMでやりたいことをやろうとしていきなり詰まりました land.toでPHPを実行したら DOMDocument::loadHTML() expects parameter 1 to be string, array given in /省略 と出ました $doc = new DOMDocument(); これがエラーになっているようですが 何かおかしいところがあるのでしょうか
907 :
737 :2010/09/17(金) 18:31:13 ID:???
>$doc = new DOMDocument(); >これがエラーになっているようですが 何かおかしいところがあるのでしょうか エラーメッセージは、そうは言ってないようなんだが。
>>906 取得したいFormのサンプルをここに書いて
909 :
nobodyさん :2010/09/17(金) 18:35:33 ID:na186H29
すみません コピペする行を間違えていました <?php require_once "HTTP/Client.php"; $login_url = "url"; $client =& new HTTP_Client(); $client->get($login_url); $Res=$client->currentResponse(); $doc=& new DOMDocument(); $doc->loadHTML($Res); $test=$doc->getElementsByTagName('a'); echo $test; ?> です
910 :
nobodyさん :2010/09/17(金) 18:37:49 ID:na186H29
>>908 <form action=" " method="post" >
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="hidden" name=" " value=" " class="">
<input type="submit" name=" " value=" " class="">
<input type="submit" value=" " class="">
</form>
>>909-910 $Resをvar_dumpで見てみればわかるかと
欲しいのは$Res['body']じゃないの?
>>909 $doc->loadHTML($Res);の後に$doc->saveHTML()を書いてみ
913 :
nobodyさん :2010/09/17(金) 19:01:49 ID:na186H29
>>911 申し訳ありません
$Res['body']のことを失念していました
直して
<?php
require_once "HTTP/Client.php";
$login_url = "
http://www.mbga.jp/.pc/[email protected] &login_pw=dattin72 ";
$client =& new HTTP_Client();
$client->get($login_url);
$Res = $client->currentResponse();
$Res = $Res['body'];
$doc=& new DOMDocument();
$doc->loadHTML($Res);
$test = $doc->getElementsByTagName('a');
echo $test;
?>
これで一応できるようになりましたが…
まだエラーがありました
HTMLをロードしている間にエラーが発生しているようです
まだ修正する必要があるようですが 頑張ってみます
>>913 サンプルね
文字コードもエラーに関係するからちゃんと変換してあげる事
■test.php
$url = "index.html";
$toEnc = "UTF-8";
$file = file_get_contents($url);
$enc = mb_detect_encoding($file, "auto", true);
$file = mb_convert_encoding($file, $toEnc, $enc);
$doc = new DOMDocument();
$res = $doc->loadHTML($file);
echo $doc->getElementById("test")->tagName;
■ index.html
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>New Document</title></head>
<body>
<div>
<form action="" method="post" id="test">
<input type="hidden" name="a" value="1">
<input type="hidden" name="b" value="2">
<input type="hidden" name="c" value="3">
<input type="hidden" name="d" value="4">
<input type="hidden" name="e" value="5">
<input type="submit" value="send">
</form>
</div>
</body>
</html>
文字コードがおかしいと以下のエラーが出るからね Warning: DOMDocument::loadHTML(): htmlParseStartTag:
>>914 なるほど・・・こういう使い方もありましたか
参考になりました ありがとうございます
917 :
nobodyさん :2010/09/17(金) 19:44:38 ID:na186H29
getElementById("test")->getAttribute("a"); で値を取得しようとしたらできませんでした・・・
そりゃできねえだろ・・・
自己解決したのでもういいです。
924 :
nobodyさん :2010/09/17(金) 20:19:50 ID:na186H29
違ってたのですかorz
aの値を取得しようとしていたのですが…
>>920 ?
>>924 さっきと書き方換わるけどHTMLはさっきのやつでサンプル
$url = "index.html";
$file = file_get_contents($url);
$doc = new DOMDocument();
$doc->encoding = "UTF-8";
$res = $doc->loadHTML($file);
$items = $doc->getElementsByTagName('input');
$cnt = $items->length;
echo $items->item(1)->getAttribute('value')."\n";
echo $items->item(4)->getAttribute('value')."\n";
>>924 DOM使うならDOMのことをもうちょっと勉強した方が良い
もしこのDOMパーサがJSと同じ動作をするのであればnameがaのをとるのは
>>920 が書いてるようにfirstChildでいい
getElementById("test")->firstChild
もしくは
getElementById("test")->children[0]
こんな感じだ
あとはnameから直接取得とかな
getElementsByName("a")->item(0)
>>926 上から目線、カッコ悪いよ
AC公共広告き(ry
>>917 htmlにaという属性はないから取得できる訳ないでしょw
>>917 htmlにaという属性はないから取得できる訳ないでしょw
>>917 htmlにaという属性はないから取得できる訳ないでしょw
>>917 htmlにaという属性はないから取得できる訳ないでしょw
全然おもしろくない
935 :
928 :2010/09/17(金) 23:17:33 ID:???
荒らしかw aって属性はない事をしたのに何だこいつらw どうせgetAttributeの使い方知らないんだろうなw
setAttribute使えば属性作れる
自己解決したのでもういいです。
938 :
nobodyさん :2010/09/18(土) 00:39:14 ID:fDVENpH6
既存のシステムにphpで15万行(コメント、空行を除く)のソースがあるのですが、 これを他の言語(rubyが第一候補)に置き換えようとした場合、 何人月くらい掛かるか、だいたいの目安を教えて頂けますか? 発注する金額のおおよその目安が知りたいです。 過去ログ見ると、1人月で1万行以上書けるという人も見掛けますが、 そうすると大体15人月で1500万円程度でシステム開発会社に発注可能でしょうか?
はてなで聞いたほうがいいんじゃないの?
15万行で1500万w
941 :
nobodyさん :2010/09/18(土) 00:52:46 ID:fDVENpH6
>>939 最近はてなで聴いても、以前よりも質が良くない回答ばかりなので、
利用者数が多いこちらでお聞きしました。
>>940 少し、安いでしょうか?
ただ、単価も100万円で想定していますので、
かなり腕がいい人に、やって貰えるのではと思っています。
今のシステムは使いにくく、又仕様バグで一部手動でやっているところもあるので、
この際、全て作り変えようと思っています。
腕が良い人3人くらいで、5ヶ月でやって貰えると業務的には大変助かります。
地域とかにもよるけど妥当なとこじゃないかな しかし何故ruby?
全て作り変えるって、ほとんど作り直し?
>>942 ありがとうございます。
Rubyにしたのは、最近の主流になりつつあると日経の雑誌を読んだのと、
あとは、生産性が高いらしいという点です。
ちなみに、金額は妥当ということですが、もう少し安くなったりしますか?
会社は、東京ですが、田舎の会社に発注すれば交渉次第で1000万円程度になりますか?
>>943 今のシステムは、画面も良くないし、分かりにくいし、バグもあるので、
それらを一般的なレベルに直してもらい、あとは他の会計パッケージと連動して決算処理までできればと思っています。
ドキュメントはあまりありませんが、ソースは納品時の一式があります。
>>941 悪い事は言わない。
やめとけ。手動でやってるところだけ自動化した方が良い。
946 :
nobodyさん :2010/09/18(土) 01:16:32 ID:fDVENpH6
すみません、age忘れました。
rubyの方が明らかに単価高いだろ 不満ある部分の改修と自動化できてない部分の自動化を どこかもっと優秀な所に頼めば? あとシステム的な所でどうなのかっていうのを どこかコンサルに入ってもらうとかさ・・・
Rubyが主流になりつつあるってホント?現場でも他社の社長からも聞いたことないが。 ほぼPHP一色に感じるが。違うなら、俺の見てる世界が狭いんだな。 システムやバグの改善も含めるなら、移植じゃなくて作り直したほうがいい。
安く上げようとすると逆にバグ埋め込まれたりするから困る
Rubyは、phpの4分の1の行数で書けるらしいから、生産性は良いだろうね。 ただ、技術者がphpと比べて少ない。
1/4の行数で書けるっていっても メソッドをつなげて書けるからじゃないの?
ステップ数は変わらん罠
rubyだと、例えばDBへの更新処理もSQLを書かなくても自動でやってくれるから、 コードそのものが不要になって、コード量が激減するという話だけど。
アホや フレームワークと言語を同列に考えるアホがおったで rubyやってるやつはほんまアホやのぉ
今や言語とFWは一体だろ。切り離して考える方がアホ。 精神分裂病じゃないの?
お前らがどんだけアホかを確認するために、rubyを勉強してみたくなった
RailsのORMは便利だけど速度を犠牲にするのはなぁ
最近の SQL書いたら負け みたいな風潮はどうにかならんもんかね
>>941 マ板で聞いたほうがいいぞ
ここはガキしかい居ないから
>>958 だからといって、プログラムに直接SELECTとか書いてあったら、
すごく興ざめだけど。
961 :
nobodyさん :2010/09/18(土) 11:05:07 ID:0ynij3di
fsockopenでウェブからデータを取得・加工して保存しているのですが、 gzipを解凍する際に、gzdecodeだとエラーが出るため、 一旦取得したデータをファイルに保存して、gzopenで開いて処理しています。 一旦ファイルに保存したりせずにgzipを解凍する方法は何か無いでしょうか? よろしくお願いします。
$body = "gzipされたデータ";
echo gzread(gzopen("data:application/x-gzip;base64,".base64_encode($body),"r"),1048576);
もしくは
echo file_get_contents("compress.zlib://
http://www.example.com/ ");
964 :
961 :2010/09/18(土) 12:10:07 ID:???
ありがとうございます! こんなやり方があるとは… サンプルコードも頑張って読んでみます。 ありがとうございました。
965 :
nobodyさん :2010/09/18(土) 12:15:59 ID:3DxtMwFg
Windowsでメール送信のテストがしたいんですけどsendomailと互換性のある無料のsmtpサーバソフトってありますか? PHPで動かせるものでお願いします
>>925 indexのvalueを日本語にしたところ文字化けしました
UTF-8だからでしょうか…
Shift-JISでやっても同じでした
↑ 文字化けは何度も出てるだろーが 自分で過去ログ嫁 出来損ないの馬鹿
自己解決したのでもういいです。
971 :
nobodyさん :2010/09/18(土) 15:38:24 ID:LxDnyvQU
$kensakumoji = "あいうえおかきこけこさしすせそ あいうえおかきこけこさしすせそ"; ↑から "き"を先頭に5文字抜き取るコードを教えていただけないでしょうか? (文字列に"き"は1回、もしくは複数回、登場するかもしれません) お忙しいかとは思いますが、よろしくお願いします。
別に忙しくないけど少しは自分で考えろ
複数回登場したらどうして欲しいのか分からないな
974 :
971 :2010/09/18(土) 15:59:42 ID:LxDnyvQU
説明不足でスミマセン 検索ヒットが1個でも、複数個でも、抜き取った文字列を配列に入れて頂ればと思います。
>>971 マジレスするがそんなの小学生でも組めるぞ。
アホ杉
>>968 普通自分の環境で文字コード変えるでしょ
$doc->encodingの値を変えるなり、予め文字列をコンバートしとくとかすればいいじゃん
>>971 コードを書いてくれじゃ誰も答えてくれないと思うぞ。
自分でコード書いてみてうまく動かないから、
どこが間違ってるか教えて欲しいのならわかるが。
>>971 文字列の出力方法程度の事は分かりますか?
背伸びをせずコツコツと勉強していきましょう
980 :
971 :2010/09/18(土) 16:44:45 ID:LxDnyvQU
重ねて説明不足ですみません。 $kensakumoji = "あいうえおかきこけこさしすせそ あいうえおかきこけこさしすせそ"; // $kensakumojiという文字列から "き" の登場回数を検索 substr_count($file, "き"); for("き" の登場回数分ループ){ // $kensakumojiという文字列から "き"が何文字目にあるか調べる $mojime = ここがわかりません // $mojimeから5文字分を抜き取る echo (substr($kensakumoji, $mojime, 5)."<br>"); }
>>980 正規表現 ^.*?([き].{5}).*?$
982 :
971 :2010/09/18(土) 16:46:43 ID:LxDnyvQU
>>980 は間違いでした、訂正です。
$kensakumoji = "あいうえおかきこけこさしすせそ あいうえおかきこけこさしすせそ";
// $kensakumojiという文字列から "き" の登場回数を検索
$kaisuu = substr_count($kensakumoji, "き");
for("き" の登場回数分ループ){
// $kensakumojiという文字列から "き"が何文字目にあるか調べる
$mojime = ここがわかりません
// $mojimeから5文字分を抜き取る
echo (substr($kensakumoji, $mojime, 5)."<br>");
}
>>982 何度も書かせんな
正規表現:[き].{5}
984 :
971 :2010/09/18(土) 16:59:01 ID:LxDnyvQU
>>983 正規表現というモノを、どのようにコード化すればよいのでしょうか。。。
php 正規表現でggったの?
986 :
971 :2010/09/18(土) 17:29:50 ID:LxDnyvQU
>>985 正規表現に関する例文が沢山あったのですが
私の目的とするモノは見つけられませでした
ぜんぜんピンと来ない 「あいうえお」じゃなくて具体的な例で何がしたいのか教えてくれ。
インクリメンタルサーチじゃねえの? まあ思い切り答えがかいてあるのに理解できない奴が作れるとは思えんが
スマートフォン対応のサイトを構築しておりますが、 PHPのiPhone対応の状況はどうでしょうか? この点、あまり情報がないので、対応されている方がいらっしゃいましたら、 アドバイスや構築の際の覚悟などについてご教示頂ければ幸いです。
>>989 問題ないよ
というかサーバサイドは関係なくないか?
それともiPhone対応を謳ったテンプレートとかフレームワークを探してるって意味?
>>976 サーバ側の文字コードをUTF-8にしてencodingの値をUTF-8 や Shift-JISにしても文字化けしました
>>972 どこまでは文字化けせず、どこで文字化けするのか
原因を自分で切り分けて確認しろよ。
文字化けってのは結局ブラウザの表示文字コードが一致してないわけだから
ブラウザの文字コード変えてみて正常に表示できる文字コードを調べろ。
宿題聞くの辞めてほしい
>>992 まず取得した文字列の文字コードはなんなの?
スクリプトファイルの文字コードは?
数カ月書き込めなかったやつが増えたのか以上な伸びだな とりあえず次スレ立てますよ
999 :
nobodyさん :2010/09/18(土) 19:25:21 ID:qF/0CouG
【OS名】CentOS 5.5 (32bit)
【PHPのバージョン】5.3.3
【連携ソフトウェア】Qdmail
【質問内容】
問題点:メールのタイトルが特定の文字列のときに文字化けしてしまいます。
タイトルが「メール」のときは文字化けするんですが「テスト」なら文字化けしません。
タイトルが文字化けするときの文字列を本文に書くと同じく文字化けします。
どこか見直す点はありますでしょうか?
ちなみに$mail->charset('UTF-8', 'base64');にしてもiso-2022-jpからutf-8になるだけで改善されませんでした。
メール→文字化け
テスト→正常
あかさたなはまやらわ→正常
アカサタナハマヤラワ→文字化け
ちなみに「あかさたなはまやらわ」のときのメールヘッダは
Subject: =?iso-2022-jp?B?GyRCJCIkKyQ1JD8kSiRPJF4kZCRpJG8bKEI=?=
ですが、
「アカサタナハマヤラワ」のときは
Subject: =?iso-2022-jp?B?GyRCZWIbKEI/GyRCZWIbKEI/GyRCZWIbKEI/GyRCZWIbKEI/GyRCZWMbKEI=?=
=?iso-2022-jp?B?GyRCNGUlb2VjXGUmJmVjGyhCPxskQmVjGyhCPw==?=
となっています。二行になって頭にTabが入っているようです。
↓のファイル自体はUTF-8で作られています。
require_once 'qdmail.php';
$mail = new Qdmail();
$mail->to('
[email protected] '); // 実際はGmail宛 Yahoo宛も同じ結果です
$mail->subject('メール');
$mail->text('ここに本文');
$mail->from('
[email protected] ', '管理者');
$mail->send();
新スレでどうぞ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。