トップページphp
1001コメント320KB

【PHP】下らねぇ質問はID出して書き込みやがれ 94

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2010/03/17(水) 23:17:41ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 93
http://pc11.2ch.net/test/read.cgi/php/1266229386/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん2010/03/17(水) 23:18:35ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 92
http://pc11.2ch.net/test/read.cgi/php/1263035502/
【PHP】下らねぇ質問はID出して書き込みやがれ 91
http://pc11.2ch.net/test/read.cgi/php/1260247989/
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
0003nobodyさん2010/03/17(水) 23:19:20ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん2010/03/17(水) 23:20:05ID:???
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2010/03/17(水) 23:20:48ID:???
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に保存?
 → 好きにしてください
0006nobodyさん2010/03/17(水) 23:21:30ID:???
      ■□■□■□■□テンプレここまで■□■□■□■□
0007nobodyさん2010/03/17(水) 23:46:36ID:???
でかした
0008nobodyさん2010/03/18(木) 00:07:27ID:???

↑これは乙
0009nobodyさん2010/03/18(木) 01:11:53ID:BU8CJWOl
関数の中でグーロバル変数を参照するには
global $test と $GLOBALS['test'] 以外に方法ってないですか?
0010nobodyさん2010/03/18(木) 01:21:12ID:???
引数で参照渡し
0011nobodyさん2010/03/18(木) 01:31:11ID:???
>>9
グローバル変数を返す関数を書けば、間接的にアクセスはできる

function getGlobalVar() {
global $test;

return $test;
}

そのグローバル変数が何らかのクラスのインスタンスなら、クラス変数にする。
文字列、数値なら、$GLOBALSで十分かと。
0012nobodyさん2010/03/18(木) 09:59:41ID:???
URLから値の受け渡しをしています。
hoge.php?moji=test#hoge
のような場合、#を受け取るためにはどうすればいいですか?
$_GET['moji'];の返り値はtestです。
test#hogeを受け取ることは可能でしょうか。
0013122010/03/18(木) 10:00:22ID:3nNsoQtD
IDだし忘れてました
0014nobodyさん2010/03/18(木) 10:41:43ID:???
それはブラウザが持つデータだからね
どうしても受け取りたければ「#」を「%23」に変えてみてはいかがか
0015nobodyさん2010/03/18(木) 10:56:31ID:3nNsoQtD
>>14
ありがとうございます。
ひとまずは%23で対応して今のダメ仕様を修正します。
0016nobodyさん2010/03/18(木) 13:06:03ID:TIxzPczz
CSRF対策なんですが、ワンタイムトークンの場合、

ワンタイムトークン生成

DBにinsert&入力画面にhiddenで出力

submitで送信&postで受け取ったトークンが正しいか確認

書き込み

って流れであってますか?

CSRFの対策についてはワンタイムトークンがいいとか、だめだとか諸説あるようですが
結局どれがいいのでしょうか?
0017nobodyさん2010/03/18(木) 14:06:20ID:???
気になるなら複数の予防線をはるしかない

絶対にGETは使わない
前画面からセッションの発行
書き込み動作確認画面用のトークンの発行
Cookieにトークンを埋める
送信されたアクションに対して、それらを照合するロジックをつける

他にも書き込み時に、認証コードを手作業で入力させる等の手もあるが、
利用者の手間になるような方法は嫌われるので選びたくないな
Captcha画像でクリックさせるのが関の山か
0018nobodyさん2010/03/18(木) 14:34:05ID:TIxzPczz
>>17
ありがとうございます。
0019nobodyさん2010/03/18(木) 15:12:37ID:???
PHP5でメールフォームの確認画面を
最も効率良く楽に作成する方法って何でしょうか?
(というか皆どの様に開発してますか?参考までにお聴かせ下さい)

自分の場合は
・form.html (入力画面)
・form_confirm.php (確認画面)
・form_ok.php (メール送信処理・完了画面)
の3ファイルを作って、confirm.phpの方に

<?=htmlspecialchars($_POST["name"])?>
<input type="hidden" name="name" value="<?=htmlspecialchars($_POST['name']?>">

という風な記述をしているのですが、これがどうも面倒で…。
入力画面と確認画面を1ファイルで済ませる様な書き方だと
どうしてもソースが乱雑になってしまいますよね。
0020nobodyさん2010/03/18(木) 16:12:53ID:???
最近、アンケートのフォーム作ったけど、そのときは
同じURLに集約して、メインのスクリプト内でフォーム
の状況を判別して、画面ごとのテンプレートをその後
で読み込むようにしていたよ。Cookieとかリファラとか
で、正しくその画面にちゃんとブラウザから辿りついた
のかをチェックする処理も共通化できる。
002192010/03/18(木) 18:23:59ID:???
いろいろありがとうございます!
0022nobodyさん2010/03/18(木) 18:56:20ID:Pe46n0U8

http://www.php.net/manual/ja/indexes.php
このページでリンクが付いてなくて太字のものって削除された関数でしょうか?
たとえばapd_set_socket_session_trace()とかです
0023nobodyさん2010/03/18(木) 19:07:50ID:???
入力されたページあるいはファイルは存在しませんでした。
0024nobodyさん2010/03/18(木) 20:39:52ID:???
GD使って数式を画像として表示しようとしているんですが、「・」ができません。
その他日本語がダメです。
print"日本語"はできます。
GDをコメントすると
Warning: imagettftext() [function.imagettftext]: any2eucjp():
だそうです。
mb_convert_encoding($str,"UTF-8","EUC-JP")
としてもだめでした。
何か思い当たる事があれば教えてください。
お願いします。
0025nobodyさん2010/03/18(木) 21:10:56ID:???
「・」に該当するフォントがない
自分のパソコンにインストールされている物が、必ず相手の環境にあると思ったらそれは間違いだ
開発する側は、自分の常識は他人の非常識で動こうぜ
0026nobodyさん2010/03/18(木) 21:11:27ID:???
関数の使い方をマニュアル等で確認
0027nobodyさん2010/03/19(金) 01:49:32ID:???
連想配列で重複チェックをしようとしているのですがまったく分かりません・・・。
$keyがユーザー名、$valがパスワードでユーザー名の重複チェックをして重複したらエラーを出すようにしたいのです。
どうしたらいいのでしょう・・・。
0028nobodyさん2010/03/19(金) 02:45:50ID:???
>>27
$id = 'user';
$pass = 'pass';
foreach ($IDとパスの配列 as $key => $val) {
if ($key == $id && $val == $pass) {
die("重複しています");
}
}
それとIDな。
0029nobodyさん2010/03/19(金) 02:50:34ID:???
>>24
そもそも数式に「・」なんて使うのか?
どうしてもってなら、LineToとかドットを書く関数使って
□□□□
□■■□
□■■□
□□□□
みたいな点を書けばいい。めんどくさいけどな。
0030nobodyさん2010/03/19(金) 07:45:11ID:???
>>27
ユーザ確認
if (isset($arr[$id])) {
echo "重複";
}
パス合致確認
if (isset($arr[$id]) && $arr[$id] == $pass) {
echo "パス合致";
}
0031nobodyさん2010/03/19(金) 10:53:20ID:???
>>30
ありがとうございます。
issetでいけたのですねw

あとdieでエラーさせる時にフォーム画面が消えずにそのまま下に出てしまう・・・。
なぜですかorz
perlはこんなんじゃなかった気がするのに・・・。
0032nobodyさん2010/03/19(金) 11:10:35ID:???
>>30より>>28の方が何かしっくりきましたw
ありがとうございますw
0033nobodyさん2010/03/19(金) 11:12:46ID:???
どちらも効率悪い認証方法だな
0034nobodyさん2010/03/19(金) 11:43:21ID:???
mb_send_mailで""などの特殊な文字をメール送信すると受信時"?"に文字化けしてしまいます
スクリプトの文字コードはUTF-8、受信されたメールはcharset=ISO-2022-JP、
確認画面上では正常に表示されているのですが対処法はないものでしょうか

PHP5
0035nobodyさん2010/03/19(金) 11:46:02ID:???
mb_send_mailは使うな氏ねカス
mailを使え
0036nobodyさん2010/03/19(金) 12:10:20ID:???
PHP 5.3.2 Released!
[04-Mar-2010]

The PHP development team is proud to announce the immediate release of PHP 5.3.2. This is a maintenance release in the 5.3 series, which includes a large number of bug fixes.

Security Enhancements and Fixes in PHP 5.3.2:

* Improved LCG entropy. (Rasmus, Samy Kamkar)
* Fixed safe_mode validation inside tempnam() when the directory path does not end with a /). (Martin Jansen)
* Fixed a possible open_basedir/safe_mode bypass in the session extension identified by Grzegorz Stachowiak. (Ilia)

Key Bug Fixes in PHP 5.3.2 include:

* Added support for SHA-256 and SHA-512 to php's crypt.
* Added protection for $_SESSION from interrupt corruption and improved "session.save_path" check.
* Fixed bug #51059 (crypt crashes when invalid salt are given).
* Fixed bug #50940 Custom content-length set incorrectly in Apache sapis.
* Fixed bug #50847 (strip_tags() removes all tags greater then 1023 bytes long).
* Fixed bug #50723 (Bug in garbage collector causes crash).
* Fixed bug #50661 (DOMDocument::loadXML does not allow UTF-16).
* Fixed bug #50632 (filter_input() does not return default value if the variable does not exist).
* Fixed bug #50540 (Crash while running ldap_next_reference test cases).
* Fixed bug #49851 (http wrapper breaks on 1024 char long headers).
* Over 60 other bug fixes.
0037nobodyさん2010/03/19(金) 12:12:02ID:???
今回のうpは重要だから今PHP5.3.0〜1を使ってる人はPHP5.3.2にうpしたほうがいいよ
0038nobodyさん2010/03/19(金) 12:15:44ID:???
レン鯖借りてるけど古いままなんだよな
安いから仕方ないがセキュリティに真剣じゃない鯖会社って
0039nobodyさん2010/03/19(金) 17:35:42ID:SW7s0cVl
質問させください

UTF-8で

<?php echo strftime("%Y年%m月%d日", time());?>

とやると、%dの部分が日付(DAY)に変換されず、%dという文字列のままになってしまいます。
SJISやEUCの時は問題は起こりませんでした。
月と%dの間に、半角スペースや、何か適当な1バイト文字を置くときちんと変換されます。

マルチバイト文字によるおかしな挙動だとは思うのですが、どう修正すればきちんと動きますでしょうか?

ぐぐったところ
mb_language("uni");
mb_internal_encoding("utf-8");
こうするべきという記述を発見したので、試してみましたが症状は変わりませんでした。
また、この2つが正常終了を表すTRUEを返しているのも確認済みです。

ご教示よろしくお願いいたします。
0040nobodyさん2010/03/19(金) 17:48:12ID:???
だからバージョンぐらい書いてくれない?
PHP5.3.2でそのコードを実行したら2010年03月19日と表示したよ?
0041nobodyさん2010/03/19(金) 17:55:24ID:SW7s0cVl
すいませんでした。
Ver5.2.6ですが、早速5.3.2に入れ替えてみます。

【OS名】windowsXP SP3
【PHPのバージョン】php5.2.6

xamppでテストしています
0042nobodyさん2010/03/19(金) 17:57:40ID:SW7s0cVl
すいません。原因がわかりました。
Windowsだからですね。
strftimeはPHP上で処理せず、Cライブラリに処理を委譲しているようなので、そのCライブラリの側が原因のようです。

Linux環境にもっていったらうまく変換されました。失礼しました。
0043nobodyさん2010/03/19(金) 21:22:54ID:bPeaTmWJ
Twitter API を Service_Twitter を使って利用しています。
USER A が USER Bをフォローしているかを調べたいと思っています。

Service_Twitterでは戻り値がJSON形式で返ってくるようなので

$jd = new Jsphon_Decoder;
$twitter = new Services_Twitter();
$oauth = new HTTP_OAuth_Consumer(
consumer_key,
$consumer_secret,
$consumer->getToken(),
$consumer->getTokenSecret()
);

$twitter -> setOAuth($oauth);

$jd = $twitter ->friendships->exists("ユーザーAのScreenName","ユーザーBのScreenName");

のようなソースを書いていますが $jd に値が返ってきません。
TRUEもしくはFALSEが返ってくると思うのですが。
ブラウザ上では 「Not Found」 と返されていますが渡しているユーザーのScreenNameに間違いはありません。

解決方法があれば教えて下さい。
0044nobodyさん2010/03/19(金) 23:15:41ID:h08zA6/I
phpを実行したのですが、真っ白画面です。
ソースを見るとちゃんと表示されているのですが、それがきちんと表示されなく、POSTで渡した値もとれてないようです。
ほかのphpファイルはきちんと実行出来ています。
原因はどんなことが考えられるでしょうか?
0045nobodyさん2010/03/19(金) 23:17:31ID:???
ワロス
0046nobodyさん2010/03/20(土) 00:18:00ID:???
var_dump($_REQUEST);
var_dump($_SERVER);
これを付け加えて

>ちゃんと表示されているのですが、それがきちんと表示されなく

日本語覚えなおして、1読んで出直してきな
0047nobodyさん2010/03/20(土) 00:22:51ID:???
>>46

>ソースを見るとちゃんと表示されているのですが、それがきちんと表示されなく、
0048nobodyさん2010/03/20(土) 00:35:11ID:???
>>43
http://php.net/manual/ja/function.json-decode.php

json_decode でやってみれ。

でもできなきゃ、var_dump や print_r 使って戻り値の内容を確認してみろ。
0049nobodyさん2010/03/20(土) 00:36:06ID:???
考えられる原因は、視力が悪いんだと思います
0050442010/03/20(土) 00:37:59ID:7GREwXAK
自己解決しました。お手数おかけして申し訳ないです。
ifやelseのカッコの対応があってなかったようです。
0051nobodyさん2010/03/20(土) 04:56:02ID:???
httpなどのパスを一意化する方法ありますか?
0052nobodyさん2010/03/20(土) 05:18:22ID:???
>>51
そのままでも一意だと思うけどファイル名として使いたいとか?

あと質問はID出してくださいな
0053nobodyさん2010/03/20(土) 05:44:54ID:W6ikhWcl
>>52
http://hoge.jp/uuu
http://hoge.jp//uuu
http://hoge.jp/ooo/././../uuu

これは同じURLと思いますが一意でないんです。
一番上のurlを求めたいです。
0054nobodyさん2010/03/20(土) 05:55:56ID:???
>>53
標準機能にはないな
http://nashruddin.com/PHP_Script_for_Converting_Relative_to_Absolute_URL
こんなん見つけたけど、
http://hoge.jp/ooo/././../uuu は解釈出来なかった

もっといいの探すか、ちょっといじって自分で作るしかないかな
0055nobodyさん2010/03/20(土) 07:29:28ID:???
URLのパス修正書いてみた
http://codepad.org/Woc567uB
codepadのエラーは無視していいと思う・・

デバッグよろ^^;
0056nobodyさん2010/03/20(土) 09:50:51ID:???
環境変数に入ってるんじゃね?って思ってやってみたら、そもそも././が省かれていて話にならなかった
0057532010/03/20(土) 12:09:51ID:W6ikhWcl
thx!
よさげ
0058532010/03/20(土) 12:10:35ID:W6ikhWcl
55=56ですか。駄目なんですか?
0059nobodyさん2010/03/20(土) 12:23:30ID:???
>>55
<a href="//2ch.net">http://がない版もあるぜよ</a>
0060532010/03/20(土) 12:31:51ID:W6ikhWcl
はじめに$url = str_replace("\\", "/", $url);入れとく良いみたいです。
ローカルファイルを一意にしたいのですが。
C:\pppが c:///ppp などとなります。/が増えます。
0061nobodyさん2010/03/20(土) 12:34:55ID:W6ikhWcl
相対指定ははじめに今のこカレントディレクトリをつけてから
やれば良いんでは。
カレントディレクトリを知るには、引数からでは無理なので
http付きとしていいのでは
0062nobodyさん2010/03/20(土) 12:39:19ID:???
>>53
http://jp.php.net/manual/ja/function.realpath.php


function get_absolute_path($path) {
$parts = array_filter(explode("/", $path), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
if ('.' == $part) continue;
if ('..' == $part) {
array_pop($absolutes);
} else {
$absolutes[] = $part;
}
}
return implode("/", $absolutes);
}
0063nobodyさん2010/03/20(土) 12:58:01ID:W6ikhWcl
これいい。これ完璧かも。thx
0064nobodyさん2010/03/20(土) 15:06:42ID:???
>>55
http://ideone.com/00vgxXl8
こっちならエラーでない
0065552010/03/20(土) 17:37:01ID:???
>>64
codepadより見た目いいな
ありがとう

0066nobodyさん2010/03/20(土) 20:44:34ID:???
つまらない質問で申し訳ありません
よくプログラムで見る$to->OAuthRequest(〜などの
->とはどのような意味があるのでしょうか
0067nobodyさん2010/03/20(土) 20:48:03ID:cSBO/oUO
PHPのDOMを使って、getElementsByTagName()メソッドでタグを検索するのですが、
タグが見つからなかったときにタグを作成するという方法はどうするのでしょうか?
タグが見つからないとgetElementsByTagName()メソッドはFatal errorを吐いてしまいます。
エラー制御演算子は負荷が高いということなので、なるべく使いたくないのですが・・・

---test.xml---
<root>
<value1>hogehoge</value1>
</root>

---test.php---
$xml = new DOMDocument('1.0', 'EUC-JP');
$xml->load('test.xml');

$root_list = $xml->getElementsByTagName('root');
$root_node = $root_list->item(0);

$value2 = $root_node->getElementsByTagName('value2'); //value2要素は存在しないのでFatal error


(理想としては、

$value2 = $root_node->getElementsByTagName('value2');
if(!$value2){
$vlaue2 = $xml->createElement('value2');
$root_node->appendChild($value2);
}

というようにしてみたい。)
0068nobodyさん2010/03/20(土) 21:15:57ID:SPy4ZUkx
つかほんとに下らないんだけど
printでダブルクォート表示するのってどうやるんだっけ?
0069nobodyさん2010/03/20(土) 21:20:00ID:???
>>66
クラスのメソッドへのアクセス
class Test
{
  public function method() {
    print 1;
  }
}
t = new Test();
t->method();


>>68
print '"';

print "\"";
0070nobodyさん2010/03/20(土) 21:21:32ID:???
>>69
ありがとうございます
0071nobodyさん2010/03/20(土) 21:23:09ID:???
違う。クラスじゃなくてオブジェクトだからな
0072nobodyさん2010/03/20(土) 21:23:10ID:???
>>67
試してないけど
try {
  $value2 = $root_node->getElementsByTagName('value2');
}
catch (Exception $e) {
  $value2 = FALSE;
}
if ($value2) {
  //続き
}

もしくはtryの中で続きを書いちゃってもいいし
0073nobodyさん2010/03/20(土) 21:28:29ID:???
>>71
そうだね、すまん

>>66
正確には

class Test
{
  static function classFunc(){}
  public function objectFunc() {}
}
$t = new Test();//インスタンス(オブジェクト)生成
$t->objectFunc();//オブジェクトのメソッド

Test::classFunc();//こっちがクラスのメソッド

かな
0074nobodyさん2010/03/20(土) 21:37:38ID:???
クラスとオブジェクトは並列する概念じゃねぇよ
クラスをインスタンス化したのがオブジェクト
0075nobodyさん2010/03/20(土) 21:38:19ID:cSBO/oUO
>>72
すみません
完全な自分の勘違いでした。

Fatal errorが発生するのは、getElementsByTagName()メソッドを使った時ではなく、
返り値のDOMNodeListから取り出したDOMNodeを使った時にFatal errorが発生するということでした。

$root_list = $xml->getElementsByTagName('root');
$root_node = $root_list->item(0);

$value2_list = $root_node->getElementsByTagName('value2');
$value2_node = $value2_list->item(0);
$node = $value2_node->getElementsByTagName('string'); //$value2_nodeは存在しないオブジェクトなのでFatal error


お騒がせして誠に申し訳ございませんでした。
0076nobodyさん2010/03/20(土) 22:28:44ID:???
みんな綺麗なコードかけるようになるまで何年かかった?
0077nobodyさん2010/03/20(土) 22:32:30ID:???
15年だけどまだだなぁ
0078nobodyさん2010/03/20(土) 22:38:33ID:???
ネットに公開してる人のソースコードってみんな綺麗だよね、鬱になりそう
0079nobodyさん2010/03/20(土) 22:48:18ID:???
綺麗なコード書けるようになった
と思った瞬間に止まる
0080nobodyさん2010/03/20(土) 23:32:12ID:???
>>68
// ヒアドキュメント
echo <<<EOF
"
EOF;


// NowDoc (PHP5.3以降)
echo <<<'EOF'
"
EOF;
0081nobodyさん2010/03/20(土) 23:34:33ID:???
printでっつてんだろカス
0082nobodyさん2010/03/20(土) 23:41:52ID:???
echo を printに置き換えられることも知らないのかカスは
0083nobodyさん2010/03/20(土) 23:53:48ID:???
じゃあprintで書けよw
0084nobodyさん2010/03/20(土) 23:56:07ID:???
FOE!FOE!
0085nobodyさん2010/03/21(日) 01:43:30ID:5ebOvBjC
そういえばなんでprintなんでしょうね。
値を返さないechoのほうが速いはずなんですが。

それはそうと質問があります。
【OS名】xp
【PHPのバージョン】最新
【質問内容】リファラを取得できません。
テストしたブラウザのバージョンも最新。
$ref = $_SERVER['HTTP_REFERER'];
echo $ref;

FireFoxやChromeだと正しく表示されますが、IEだとNULLでした。なぜ?
0086nobodyさん2010/03/21(日) 01:56:46ID:???
HTTPヘッダー確認できる?
0087nobodyさん2010/03/21(日) 02:25:16ID:5ebOvBjC
getallheaders()でヘッダ確認しましたが、IEのみReferer;が格納されないようです。
特にリファラ偽装などは設定していないのですが。
0088nobodyさん2010/03/21(日) 02:53:05ID:???
>>87
IE8で再現出来ないから、
http://www.vector.co.jp/soft/winnt/net/se308001.html
こういう感じのソフトで生のHTTPヘッダーを確認してみてくれい
0089nobodyさん2010/03/21(日) 02:55:41ID:???
ありがとうございます、やってみます。
0090nobodyさん2010/03/21(日) 03:15:54ID:CFDZ8J9i
エラーがでるから添削して
<?php
include("../scripts/conf.inc.php");
$conndatabase = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or trigger_error(mysql_error(),E_USER_ERROR);
$db = "$mysql_database";
$user = user("username");
$id = addslashes($_POST["id"]);
$title = addslashes($_POST["title"]);
$text = addslashes($_POST["text"]);
$url = addslashes($_POST["url"]);
$id_from=maketransid();
$sql = "SELECT * FROM whitead WHERE id = '$id'";
$rs = mysql_db_query($db,$sql);
while($row=mysql_fetch_array($rs)){
$point = $row[4] * 100;
$sql = "insert into email_ads(emailid,id,description,site_url,ad_text,run_quantity,run_type,value,vtype,timer,login,hrlock,cheat_link,creation_date)
values('".$id_from."','".$user."','".$title."','".$url."','".$text."','".$row[2]."','".clicks."','".$point."','".points."','".$row[3]."','".0."','".0."','".0."','".date('Y-m-d-H-i-s')."')";
}
$res = mysql_query($sql) or die(mysql_error());
?>
0091nobodyさん2010/03/21(日) 03:18:21ID:???
values('".$id_from."','".$user."','".$title."','".$url."','".$text."','".$row[2]."','".$clicks."','".$point."','".$points."','".$row[3]."','". 0 ."','". 0 ."','". 0 ."','".date('Y-m-d-H-i-s')."')";
0092nobodyさん2010/03/21(日) 03:40:11ID:CFDZ8J9i
>>92
ありがとう!うまくできた。
↓動作はしても半端なくおもいの・・・・or2
<script language="php"> include("setup.php");</script>
<center>
<?php
include("../scripts/conf.inc.php");
$conndatabase = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or trigger_error(mysql_error(),E_USER_ERROR);
$db = "$mysql_database";
$id = addslashes($_POST["id"]);
$title = addslashes($_POST["title"]);
$text = addslashes($_POST["text"]);
$text = nl2br($text);
$url = addslashes($_POST["url"]);
$sql = "SELECT * FROM whitead WHERE id = '$id'";
$res = mysql_query($sql) or die(mysql_error());
$tr = "<tr>";
$trs = "</tr>";
while($row=mysql_fetch_array($res)){
$point = $row[4] / 1000;
0093nobodyさん2010/03/21(日) 03:40:56ID:CFDZ8J9i
print("<form method=\"post\" action=\"self_regist.php\">");
print("<input type=\"hidden\" name=\"id\" value=\"$id\">");
print("<input type=\"hidden\" name=\"title\" value=\"$title\">");
print("<input type=\"hidden\" name=\"text\" value=\"$text\">");
print("<input type=\"hidden\" name=\"url\" value=\"$url\">");
?>
<input type="hidden" name="user" value="<script language="php"> user("username");</script>">
<?php
print("<TABLE border=1>");
print("<TBODY>");
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[1]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[2]."</td>");
0094nobodyさん2010/03/21(日) 03:41:53ID:CFDZ8J9i
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[3]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$point."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[5]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[6]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>$title</td>");
print $trs;
0095nobodyさん2010/03/21(日) 03:46:11ID:CFDZ8J9i
print $tr;
print("<TD>test:</TD>");
print("<td>$text</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>$url</td>");
print $trs;
print $tr;
print("<th colSpan=2><input type=\"submit\" value=\"送信\" class=\"send\"></th>");
print $trs;
print("</TBODY>");
print("</TABLE>");
}
mysql_close();
?>
</center>
0096nobodyさん2010/03/21(日) 10:58:13ID:TTlWvHhB
functionとclassの違いって何でしょうか
0097nobodyさん2010/03/21(日) 11:24:28ID:???
文字の長さ
0098nobodyさん2010/03/21(日) 11:43:30ID:???
クラスってのは3年B組
関数ってのは用務員
クラス内の関数(メソッド)は給食係とか保健係
0099nobodyさん2010/03/21(日) 11:57:19ID:???
>>96
クラスっていうのは板の名前(Webプログラミング)
関数っていうのはスレの名前(【PHP】下らねぇ質問はID出して書き込みやがれ 94)
0100nobodyさん2010/03/21(日) 11:59:05ID:???
大喜利スレになってもうた・・
0101nobodyさん2010/03/21(日) 12:00:18ID:???
$obj = new Webプログラミング;
echo $obj->【PHP】下らねぇ質問はID出して書き込みやがれ 94;
0102nobodyさん2010/03/21(日) 12:28:59ID:Pf4rphJX
ファイルの管理ってどうしてますか?

例えば完成したシステムAがあるとして、
そこから一部分だけ追加・変更したいとします。
しかし、Aはそれだけで完成しているから、
余計な機能を付けてバグが出た時に困る。

かといってAをコピーしてA"にして変更していくのも非効率な気がして・・・
0103nobodyさん2010/03/21(日) 12:30:41ID:???
・cvs使う
・コメントしとく
・継承する
0104nobodyさん2010/03/21(日) 12:33:39ID:sYkTdyYJ
自前コピーが確実だよ。zipにして固めてセットとして
公開用としてweb上にでも置いておけば安心。
0105nobodyさん2010/03/21(日) 12:35:36ID:sYkTdyYJ
ソースコード管理ツールで自動バックアップしていた時期もあるけど
複数ファイルを更新した場合どれとどれの組み合わせだと動作するのか
わからなくなる。zip固めが安心。失敗したらzip復元すればいい。
0106nobodyさん2010/03/21(日) 12:37:46ID:???
出ないようにちゃんと設計やればいいんじゃね
0107nobodyさん2010/03/21(日) 15:11:03ID:???
>>105
svnなら、タグ付けたり、ブランチ切っておけばいいんじゃないの
安定してることが確認出来たら、トランクにマージ。

リリースはタグやブランチでエクスポートすればいいし。

ほかのSCMはシラネ。
01081022010/03/21(日) 16:44:08ID:Pf4rphJX
みなさん、ありがとうございます。
SVNは使っていますが、「このclassファイルだけ修正したい」
と言う時にちょっと不便なんですよね。。

そのファイルを使いながらバグが見つかったりする時もあるし、
実際は1ファイルで済まない時が多くて、どう管理するか迷います。
まだあまり使いこなせていないだけなのかも知れませんが。

とりあえず、zip固めにして何か修正・追加加えたい時は
コピーしてファイルを修正するようにします。
0109nobodyさん2010/03/21(日) 16:55:09ID:6nW4u3iT
function checkCookie(){
if(isset($_COOKIE['checkCookie'])){return 1;}
else{
$expire = time() + 86400*14;
if(setcookie("checkCookie",time(),$expire)){return 1;}
else{return 0;}
}
}
このような関数でクッキーが有効かチェックしているのですが、機能してないようです。
もちろんブラウザの設定でクッキーを無効にしてテストしてます。
問題点はどこでしょうか?
0110nobodyさん2010/03/21(日) 17:10:11ID:???
>>108
このclassファイルだけ修正したい。
ってときに便利なのがsvnですよ。
0111nobodyさん2010/03/21(日) 17:11:19ID:G7Ek1+IS
svnの導入の仕方を教えてください
windowsです
0112nobodyさん2010/03/21(日) 17:23:37ID:???
なるほど継承してアップデートってのもありか…

そんなうまいこと設計できないけど
0113nobodyさん2010/03/21(日) 17:24:12ID:???
>>111
そのくらい、自分で調べろw。
http://kuronuko.com/web/subversion.html
0114nobodyさん2010/03/21(日) 17:30:55ID:67bsJ4U+
>>48
ありがとうございます。
var_dumpでやってみた結果、bool(false)という結果が返ってきてました。
ずっと、print_rで見ていたのでなにも表示されずでした。

しかし、どのIDを使っても false が返ってきます。
フォローしている場合は true が返ってくるはずなのですが。

var_dump(($twitter->friendships->exists("ユーザーAのScreenName","ユーザーBのScreenName")));

こんな感じでソースは書いております。

なにが原因でしょうか?
ご教授下さい。
0115nobodyさん2010/03/21(日) 17:31:31ID:G7Ek1+IS
>>113
ありがとうございます
トータスSVNっていうのを入れるとフォルダに変なマークが付いたのでやめて、svn.exeだけをインストールしました
あと、個人でPHPスクリプトを書く場合でもSNVの導入は便利でしょうか?
あと、PHPだけじゃなくてHTMLとかにも使えますでしょうか?
上記のURLは便利で大変重宝しており感謝して折ります
宜しくお願いいたします
0116nobodyさん2010/03/21(日) 18:12:50ID:6nW4u3iT
Firefoxなどのブラウザ側でクッキーを拒否してたとしても
setcookieの引数が正しければtrueが返って来るのでしょうか?
0117nobodyさん2010/03/21(日) 18:16:53ID:???
>>116
ブラウザでクッキーを有効にしていたらtrueが返ってくるとかどこかで書いてあったの?
ちゃんとマニュアルくらい読んだほうがいいよ
0118nobodyさん2010/03/21(日) 18:28:42ID:6nW4u3iT
>>117

function checkCookie(){
$expire = time() + 86400*14;
if(!setcookie("checkCookie",time(),$expire)){return 0;}
else{
if(!isset($_COOKIE['checkCookie'])){return 0;}
else{return 1;}
}
}

こうすればよいですね!ありがとうございます。
0119EM114-48-97-102.pool.e-mobile.ne.jp2010/03/21(日) 19:31:44ID:???
おいこらさっさと質問ぶつけてこいや〜〜〜〜〜〜〜!
0120nobodyさん2010/03/21(日) 19:32:29ID:???
OCN vs イーモバイル!
0121nobodyさん2010/03/21(日) 20:43:30ID:???
WiMAXの方がよくね?
0122nobodyさん2010/03/21(日) 21:47:22ID:???
あえてうぃるこぬ
0123nobodyさん2010/03/21(日) 22:10:24ID:???
>>115
>個人でPHPスクリプトを書く場合でもSNVの導入は便利でしょうか?

便利です。
エンバグ恐れずに手を入れられます。
何か新しい機能を入れる場合でも、ブランチで存分に試せます。
使ってるのが自分ひとりでも、こういうのを覚えてしまうとかなり気楽になる。

>PHPだけじゃなくてHTMLとかにも使えますでしょうか?

テキストファイルなら何にでも使えます。
(オフィスのファイル等のバイナリファイルにも使えるけど)
0124nobodyさん2010/03/21(日) 22:27:11ID:sYkTdyYJ
必要なときにzipで固めた方が簡単で速い。
挑戦するときにzipにしておく、完成したらzipにしておく。
管理ツールは重いし、常駐するし良くない。
0125nobodyさん2010/03/21(日) 22:28:35ID:sYkTdyYJ
しかもシステムが破損すると取り出せない。自分で壊すこともある。消しても問題とか思って。
0126nobodyさん2010/03/21(日) 22:53:54ID:???
自動バックアップで壊れて全部消えたとかそういうのもあるな。
VisualStudioとかw
0127nobodyさん2010/03/22(月) 00:04:02ID:rMqH0aHx
APCについて質問です。

ファイルアップロード中に同じサーバー上で apc_fetch() を呼べば、
引数さえあってれば進捗状況が見れるという解釈で合っていますか?

下ソースのtest.phpをブラウザから二つのウィンドウ(A、B)で開き、
Aでアップロード中に、Bで表示しようとしたんですが、apc_fetch()による結果が空です。
ですが、Aでのアップロードが終わった時に、Aに>>128のような結果が表示されました。

【環境】
APC Version 3.0.19
PHP Version 5.2.12
Server Software : Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

-----------------------------
test.phpソース
-----------------------------
<?php
print_r(apc_fetch('upload_abc'));
?>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="APC_UPLOAD_PROGRESS" value="abc" />
<input type="file" name="upload_file" />
<input type="submit" />
</form>
0128nobodyさん2010/03/22(月) 00:05:31ID:rMqH0aHx
-----------------------------
表示結果
-----------------------------
Array
(
[total] => 16982
[current] => 16982
[rate] => 616952.19311244
[filename] => 91b9b7998269669e83a94bc5cd95de8b_400.jpg
[name] => upload_file
[temp_filename] => /var/tmp/phpZtvdO8
[cancel_upload] => 0
[done] => 1
[start_time] => 1269183432.2302
)
0129nobodyさん2010/03/22(月) 00:33:03ID:POFKX9jJ
デザインパターンってどうやって学ばれました?
ネット上にあまりないのですが
0130nobodyさん2010/03/22(月) 01:33:18ID:???
>>129
PHP特化では、見つからないかもしれんね。
比較的syntaxが似てるC#やJava+デザインパターンで検索するといいかも。

ちなみに自分は、今は亡きCマガの連載で勉強した。

あと、デザインパターン勉強するなら、クラス図やシーケンス図が読めないとつらいかも。
ほかには、多態や継承がバンバンでるから気をつけてね。
0131nobodyさん2010/03/22(月) 03:15:45ID:a2delEMy
phpでファイル転送の処理内容をツラツラと書き連ねていきたいのですが、そういったことは可能ですか?



report-slow-request 100% 3725 3.6KB/s 00:00
find-junk 100% 5385 5.3KB/s 00:00
convert-db 100% 7548 7.4KB/s 00:00
upgrade 100% 3379 3.3KB/s 00:00
0132nobodyさん2010/03/22(月) 04:38:32ID:Rk6TrDyI
配列から特定部分の取り出しでお助け頂きたいです。

http://www.imagecheese.com/gallery/ee.jpg

上記のような配列で、array[0]['Keyword']['name'] の部分だけをユーザーごとに取り出したいです。
例えば、 

address が"test@test.com" は "授業"、"テーマスタティ"
address が"test2@test2.com" は "エクササイズ","オープン"

といったような形でループ処理をしたいのですが、よい方法はないでしょうか?

0133nobodyさん2010/03/22(月) 04:46:45ID:???
array_mapとかarray_walk使う方法もあるけど単純にやるなら

foreach ($array as $row) {
foreach ($row['keyword'] as $keyword) {
$result[$row['address']][] = $keyword['name'];
}
}
0134nobodyさん2010/03/22(月) 04:51:22ID:Rk6TrDyI
>>133
ありがとうございます!

ありがたく参考にさせて頂きたいと思います。
0135nobodyさん2010/03/22(月) 05:04:04ID:Rk6TrDyI
>>133さん 上手くいきそうです。 ありがとうございます!
0136nobodyさん2010/03/22(月) 05:27:50ID:???
すみません
最近のyoutubeのAPIに対応したソースがあるサイトってありませんか?
どれも動かないんです
0137nobodyさん2010/03/22(月) 05:33:45ID:???
どれも動かないんならどれもだめだろう
0138nobodyさん2010/03/22(月) 06:07:13ID:???
諦めます
0139nobodyさん2010/03/22(月) 07:23:28ID:QPPKsgL4
ボタンとボタンの上に0という数字を配置して
ボタンを押すごとにその数値が増えていくというものはPHPで作れますか?
0140nobodyさん2010/03/22(月) 08:20:58ID:Rk6TrDyI
ローカルでメール送信のテストをしたいのですが、てっとりばやいオススメの方法はあるでしょうか?

1 プロバイダのメールサーバを使う?? (さくらとOCNとgmailのアカウントあり)
2 メールサーバをローカルで立てる?


とりあえず

ini_set( "SMTP", "adminname.sakura.ne.jp" );

とさくらメールのSMTPをいれて試したけどダメでした。。
01411392010/03/22(月) 10:40:17ID:???
自己解決しました
0142nobodyさん2010/03/22(月) 13:15:15ID:???
>>140
それが一番良いと思うよ
0143nobodyさん2010/03/22(月) 13:16:58ID:???
>>140
ごめん、142は読み間違えた・・。

ini_setじゃなくて、php.iniに直接書けば?
あと、さくらの場合、smtp_portを587にしないと駄目だよ。
0144nobodyさん2010/03/22(月) 13:19:17ID:???
>>140
xmail
0145nobodyさん2010/03/22(月) 13:25:55ID:???
radishおすすめ
0146nobodyさん2010/03/22(月) 13:26:43ID:???
radishは古いxmailにしとけ
0147nobodyさん2010/03/22(月) 13:41:15ID:???
PDOでSQLite3に接続してるんですが、
fetchメソッドのoffsetが効かなくて困ってます。

$sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 10);

こんな感じでやると検索結果の10行目から取得し始めると思ってたんですけど
間違ってますか?





0148nobodyさん2010/03/22(月) 20:51:06ID:r5y42//h
htaccessの問題の気がするのですが

RewriteEngine On
RewriteRule ^search\/([A-Z0-9]{10})$ http://example.com/dev/search.php?q=$1

これをdevに置いて、http://example.com/dev/search/ABCDEFGH10
にアクセスしても、ABCDEFGH10をgetできてないようです。
PHP側の処理に問題があったりするのでしょうか?
0149nobodyさん2010/03/22(月) 20:54:45ID:???
正規表現を練習できるサイトとかないかな
0150nobodyさん2010/03/22(月) 20:55:02ID:???
>>148
RewriteLog 取ってみるといいよ。
0151nobodyさん2010/03/22(月) 21:09:38ID:r5y42//h
>>149
練習かどうかは分からないが、便利
http://www.rubular.com/

>>150
ありがとうございます。
ですが、やってみると500エラーになってしまうようです。
レンタルサーバーの共用プランではログは取れないのでしょうか?
0152nobodyさん2010/03/22(月) 21:11:06ID:???
>>149
今度からスレタイをちゃんと読めよ。

ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
0153nobodyさん2010/03/22(月) 21:16:09ID:???
>>151,152
マスターできる気がする
01541272010/03/22(月) 21:30:08ID:???
>>127はPHPプロ掲示板に聞きにいってきます
0155nobodyさん2010/03/23(火) 00:51:02ID:unctT7f6
質問です。
UTF-8の環境でmb_strcut("あいうえお",0,7)とした時、"あい"と表示された後次の文字が文字化けしてしまいます。
原因は"う"の1バイト目までしか出力されないからのようですが、このように余った時"あい"までの出力で止めるようにすることはできるのでしょうか?

試した環境、win32 PHP 5.3.0
0156nobodyさん2010/03/23(火) 00:57:32ID:???
自己解決しました。
>encoding パラメータには文字エンコーディングを指定します。省略した場合は、内部文字エンコーディングを使用します。
とマニュアルに書いてあったので文字コードの指定を省略したのが原因でした。
0157nobodyさん2010/03/23(火) 09:43:05ID:???
内部文字エンコーディングを適切に設定してないのが根本原因じゃないの?
0158nobodyさん2010/03/23(火) 15:23:09ID:ssmJpUwM
質問させてください
この度、WinからcentOS5.4へ移行し、PHPを実行しようと思ったのですがどうにもうまくいきません
まず、Apacheを入れようとしたら、make installの所でエラーが出、しかもエラー内容が分からなかった為
centOSに標準で入っているApache(2.2.3)、Mysql、PHP(5.1.6)をインストールしました
例えばyum install phpとか、yum install http-serverとかを実行しました

で、centOSでApacheの公開フォルダ(Winではhtdocs)が/var/www/html/だと知ったので、そのフォルダ内にphpのファイルを置きました
phpinfo.phpとか、index.htmlのようなファイルをhttp://localhost/phpinfo.phpと実行するとちゃんとブラウザに内容が表示されます
しかしながら、/var/www/html/フォルダ内にtestやphpMyAdminのようなフォルダを入れると、
The requested URL /test was not found on this server
のようにエラーが出てしまいます
これはどうしてなのでしょうか?
どのようにすれば意図したようにきちんと表示されるのでしょうか?

php.ini、http.confはデフォルトのままですが、phpinfoで確認した所、php.iniの場所はちゃんとなっておりました
また、/etc/httpd/conf/httpd.confを調べてみた所、
ServerRoot "/etc/httpd"
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
のように特におかしいような気もしませんでした
0159nobodyさん2010/03/23(火) 15:42:58ID:???
リクエストされたページが見つからないそうです
0160nobodyさん2010/03/23(火) 15:46:17ID:???
パーミッションだったりして。
0161nobodyさん2010/03/23(火) 16:01:08ID:???
apacheのエラーログは?
0162nobodyさん2010/03/23(火) 16:12:28ID:ssmJpUwM
パーミッションはdrwxr-xr-x となっております
一応Readと実行権限はあると思います

Apacheのエラーログは今見てみます
0163nobodyさん2010/03/23(火) 16:24:05ID:ssmJpUwM
[Tue Mar 23 14:46:48 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 14:46:48 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 14:46:48 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 14:46:48 2010] [notice] Digest: done
[Tue Mar 23 14:46:48 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Tue Mar 23 14:48:48 2010] [notice] caught SIGTERM, shutting down
[Tue Mar 23 14:51:22 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 14:51:22 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 14:51:23 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 14:51:23 2010] [notice] Digest: done
[Tue Mar 23 14:51:24 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Tue Mar 23 15:14:13 2010] [error] [client 127.0.0.1] File does not exist: /var/www/html/test
[Tue Mar 23 15:14:13 2010] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico
[Tue Mar 23 15:48:31 2010] [notice] caught SIGTERM, shutting down
[Tue Mar 23 15:51:07 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 15:51:07 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 15:51:08 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 15:51:08 2010] [notice] Digest: done
[Tue Mar 23 15:51:09 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations

のようになっております
0164nobodyさん2010/03/23(火) 16:41:20ID:???
/var/www/html/test/(スラッシュあり)は?
01651632010/03/23(火) 16:49:36ID:???
>>164
どういう事でしょうか?
例えばtestフォルダを表示したい時にhttp://localhost/testではなく、http://localhost/test/でアクセスということでしょうか?
それともtest内にtest.phpとか入れてって事でしょうか?
どちらもやはりエラーになってしまいました

もしやと思い、testフォルダの名前をtest/と変えてみましたが、/は含められないとLinux側でエラーが出ました

0166nobodyさん2010/03/23(火) 16:58:21ID:???
>>165
いまちょっとググってみたんだけど
もしかして/etc/httpd/conf.d/welcome.confとか読み込まれてない?
0167nobodyさん2010/03/23(火) 16:58:26ID:???
>testフォルダを表示したい

スレ違いだし、なにをしたいんだ一体
表示させたいページ用意してないだけと違うかと
0168nobodyさん2010/03/23(火) 17:25:09ID:ssmJpUwM
>>166
welcome.confは、ErrorDocument 403 /error/noindex.htmlと、noindex.htmlを表示するのだと思うのですが、それとは違うようです
良く分からないのですが

>>167
すみません

例えばtest.phpという
<?php echo"test";
ファイルを/var/www/html下に置くとブラウザ上にtestと表示されます
しかし、これがディレクトリ構造を持つようになると、途端にエラーが出てしまいます
例えば、/var/www/html/test/test.phpとかになると、上記のように存在しないとエラーになります

>testフォルダを表示したい
Winの頃は、htdocs下にtest/test.phpを置き、localhost/testとすると、そのディレクトリ構造が表示されましたが、という事を言いたかったのです

今まではApacheのhtdocs下にphpMyAdminを入れて使っていたのですが、Linuxで同じように公開されているフォルダ内に入れたらそのフォルダと中身が認識されないので困ってしまって
01691672010/03/23(火) 17:28:29ID:???
じゃあhttpd.confのDirectoryIndexディレクティブで設定してないだけでしょ
あとtestディレクトリでアクセスしてtest/と補完されないならmod_dirモジュールがApacheに組み込まれてないとかか
01701682010/03/23(火) 17:53:08ID:???
皆さん、申し訳ございません
何が理由かわかりませんが、急にtestフォルダを読み込むようになりました
今までと同じ状態だったのですが・・・
ただ、phpMyAdminは何故かパーミッションでアクセス拒否が入っておりますが
お手数お掛け致しました
0171nobodyさん2010/03/23(火) 18:20:57ID:Gn31sNCx
別ドメイン間でファイルの書き込み操作を行いたいのです。

php初心者です。
一つのバリューサーバーで全ドメイン管理しています。
ドメイン取得もバリューでしました。

AのドメインのファイルにB、C、Dというドメインから直接書き込みを行いたいのですが
上手く行きません。

Aドメイン内のファイルをB、C、Dから読み込みは出来ます。(ちなみに)

パーミッションの設定はいじってみましたが、解決しません。
その問題ではないようです。

どなたかご教授いただけませんでしょうか。
よろしくお願いいたします。
0172nobodyさん2010/03/23(火) 18:22:36ID:???
できるわけねえだろks
0173nobodyさん2010/03/23(火) 18:25:49ID:/hsQzdjS
PHPを起動しろ そしたらアクセス出来る
0174nobodyさん2010/03/23(火) 18:38:27ID:a2W0beeP
貴方は「いじめられる側にもいじめの原因がある」と思ってませんか
或いは「死刑には凶悪事件の抑止力がある」と思ってませんか
或いは「掲示板で不愉快になったらその原因は発言者にある」と思ってませんか

これらの考えの根っこは、実は同じです(※善悪の話ではありません)

これまで当たり前だと思って、深く考えなかったこと・・・
周りに言われるままに、何の疑問も抱かなかったこと・・・
それらが本当に正しいのか、ちょっと立ち止まって考えてみませんか


いじめに関するよくある勘違い
http://mamono.2ch.net/test/read.cgi/youth/1268212962/

死刑制度に関するよくある勘違い
http://society6.2ch.net/test/read.cgi/court/1268212298/

外界は内界を映し出す鏡だって言ってたようちの嫁も
http://academy6.2ch.net/test/read.cgi/philo/1264845494/
0175nobodyさん2010/03/23(火) 18:40:06ID:???
>>174
環境くらいかけks
0176nobodyさん2010/03/23(火) 18:49:27ID:???
なんでこんなとこで宣伝するんだろ
0177nobodyさん2010/03/23(火) 19:34:09ID:Gn31sNCx
>>175さん
環境はどのあたりを書けばよいでしょうか?
このあたりでしょうか?

バリューサーバーの環境
PHP Version 5.2.5

Directive Local Value Master Value
==============================
allow_call_time_pass_reference On On
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off

他にどの部分を書けばいいのかよければ教えて下さい。
初心者ですみません。
0178nobodyさん2010/03/23(火) 19:45:35ID:???
同じユーザで管理してたら普通にできると思うが
自前のサイトからCIAのサイトを書き換えようみたいなこと考えてるなら>>172
0179nobodyさん2010/03/23(火) 19:49:12ID:???
もっとPHPらしく殺伐としろやks
0180nobodyさん2010/03/23(火) 21:26:41ID:???
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1238417757
0181nobodyさん2010/03/23(火) 22:10:26ID:???
>Phar アーカイブは PHP V5.3 に追加されたかなり便利な機能です。

ファイルI/Oは減少しそうだけど、便利ですか?
0182nobodyさん2010/03/23(火) 22:12:51ID:???
>>1
0183nobodyさん2010/03/23(火) 23:00:49ID:RFIu07UK
広告をランダム表示しようとしてもできません。
グーグルで調べて、何回が試してみました。


<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$rndtxt[3] = 'テキスト4';
$rndtxt[4] = 'テキスト5';
$length = count($rndtxt) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$rndtxt[$num]");
?>

でphpファイルを作成してアップ


<!-- PHPランダム広告 ここから -->
<? include("/rndtxt.php"); ?>
<!-- PHPランダム広告 ここまで -->

をファイルに入力して読み込みを行うようにする。


こんな感じでやってみたのですが、アップロードすると表示部分が下のようになってしまいます。なにが悪いのか教えてください。

Warning: main(/pph/ttt.php) [function.main]: failed to open stream: No such file or directory in (ファイル位置の表示) on line 25

Warning: main() [function.include]: Failed opening '/pph/ttt.php' for inclusion (include_path='.:/usr/local/php4/share/pear') in (ファイル位置の表示)on line 25
0184nobodyさん2010/03/23(火) 23:20:40ID:???
キャッシュしろよ
0185nobodyさん2010/03/23(火) 23:22:15ID:/hsQzdjS
ファイル位置=カレントの違いだろ
0186nobodyさん2010/03/24(水) 00:55:17ID:???
<? include("/rndtxt.php"); ?>
がエラー。
ファイルがその場所にないんだろ。
同じディレクトリなら
include 'rndtxt.php';
で十分
0187nobodyさん2010/03/24(水) 00:58:45ID:dTWj0POb
HTTPでHEADクエリ送信してファイルの有無を確かめたいのですが
どうすればいいのでしょうか?
0188nobodyさん2010/03/24(水) 01:46:02ID:X47Xx9mp
スレ違いかもしれませんが質問させてください。
(スレ違いの場合はお手数ですが誘導の方お願いいたします。)

風俗のリンク集なんかで「本日出勤中」というようなサイトをみかけますが
これはどのような仕組みで表示しているのでしょうか?

ttp://www.delihels.com/main.php
(このようなサイトです)
0189nobodyさん2010/03/24(水) 01:55:47ID:???
>>188
サーバ・クライアント方式

とでも言えばいいのか
0190nobodyさん2010/03/24(水) 01:57:04ID:???
>>187
HTTPリクエスト投げてレスポンスコードを見る

とでも言えばいいのか
0191nobodyさん2010/03/24(水) 01:58:58ID:???
各店が出勤情報を提供してるんじゃないの
0192nobodyさん2010/03/24(水) 02:05:37ID:???
ナニコレ新手の宣伝?
0193nobodyさん2010/03/24(水) 02:46:17ID:Kwea1nv5
>>184
>>186
>>185

ありがとうございます
0194nobodyさん2010/03/24(水) 06:13:51ID:X47Xx9mp
>>188です。
お答え頂いた方々、どうもありがとうございました。

各お店の専用ページのようなものがあり、そこからお店側が更新して、
サーバに反映されてるんですね!!・・・?

これってRSSなんかじゃできないですよね・・・
勉強が必要ですね・・・

ありがとうございました。
0195nobodyさん2010/03/24(水) 09:17:55ID:???
>>194
イメージ的にはそれで正解だと思います。
ただRSSに拘る必要はない仕組みです。
0196nobodyさん2010/03/24(水) 11:03:40ID:WEWtuFeV
171です。

>>178さん
同じユーザで管理しています、もちろん。
ですが、ドメインが変わると書き込みが出来ないんです。(呼び出しは出来ます)
書き込み用のファイルの設定を変えなければならないのでしょうか?
0197nobodyさん2010/03/24(水) 11:13:42ID:???
>>196
だからドメイン関係ないって
www.omae.comからwww.google.comにおいてあるファイルを書き換える事できないだろ?
フォームにPOSTして書き込むかローカルで書き込むファイルのパス指定しないと。
どういう関数使おうとしてるとかもっと詳しく書かないとこれ以上わからんよ。
0198nobodyさん2010/03/24(水) 12:25:32ID:WEWtuFeV
171です。

FORM METHOD="POST" action="

action="
↑の続きに別のドメインを書けば書き込めるということでしょうか?
0199nobodyさん2010/03/24(水) 12:29:13ID:???
同じ鯖ならさー
システムコールで弄ればいいじゃない
0200nobodyさん2010/03/24(水) 12:34:28ID:???
まずサーバーサイドスクリプトが何なのか調べた方がいいかも
0201nobodyさん2010/03/24(水) 13:18:49ID:???
A鯖/view.php:
<?php
$file = 'add.txt';
touch($file);
chmod($file, 0666);
if(isset($_GET['add'])){
file_put_contents($file, $_GET['add']);
}
echo htmlspecialchars(file_get_contents($file));
?>

B鯖/input.php:
<form action="A鯖/view.php" method="get">
<textarea name="add"></textarea>
<input type="submit">
</form>

B鯖から入力してA鯖に書き込んで表示できる。
こんな感じか?
0202nobodyさん2010/03/24(水) 14:32:22ID:???
攻撃されたらひとたまりもなさそうだな
0203nobodyさん2010/03/24(水) 14:49:46ID:WEWtuFeV
171です。

>>201さん
ありがとうございます。
できました。
0204nobodyさん2010/03/24(水) 14:52:04ID:JopdS9PV
>>201

function h($str){
02052042010/03/24(水) 14:54:44ID:JopdS9PV
>>203

途中送信すまん。

function h($str){
return htmlspecialchars($str);
}


h($_GET['add'])とした方が良い。

あと、CSRF的に危ないかも。。
0206nobodyさん2010/03/24(水) 15:00:53ID:???
>>205
>h($_GET['add'])とした方が良い。

なんで?
0207nobodyさん2010/03/24(水) 15:05:05ID:JopdS9PV
>>206
XSS危なくね?
0208nobodyさん2010/03/24(水) 15:18:03ID:???
>>207

>>201はサンプル程度のつもりだろうからセキュリティ対策がどうとかは別として
そこを関数にしたところで変数の中身は変わらないとおもうんだが。。
0209nobodyさん2010/03/24(水) 15:25:39ID:JopdS9PV
1回くらいだったら関数にしなくてもいいけど、何回もhtmlspecialchars()よりはh()の方が楽かと
0210nobodyさん2010/03/24(水) 15:57:47ID:???
ENT_QUOTESやらんのかい!
0211nobodyさん2010/03/24(水) 16:00:03ID:???
htmlspecialcharsだけがサニタイズだと思ってる奴は素人
XSSでも喰らってろ
0212nobodyさん2010/03/24(水) 16:00:56ID:???
動く動かないはともかくきめえ
0213nobodyさん2010/03/24(水) 16:26:29ID:???
素人丸出しワロタ
0214nobodyさん2010/03/24(水) 16:35:12ID:???
はいはい。叩くの楽しいよねー。
0215nobodyさん2010/03/24(水) 16:38:42ID:???
htmlspecialcharsのラッパなんていまさらだな
CakePHPにもh()あるしな
0216nobodyさん2010/03/24(水) 16:38:46ID:???
批判だけなら誰でもできる
0217nobodyさん2010/03/24(水) 16:47:12ID:9W7AG8ph
少々質問させてください。

現在作成中のWebサイト上で、ユーザー登録をするページを作成中なのですが、
登録ページ内で入力されたユーザーIDが既に登録されている物と重複しないかの確認をさせたいと思っています。

この場合、どのようにすればよいのでしょうか?
データベースにはMySQLを使用しています。
0218nobodyさん2010/03/24(水) 16:59:01ID:???
>>217
DBに既にあるか無いかを調べればいいよね
0219nobodyさん2010/03/24(水) 17:55:47ID:???
検索すればええんちゃうの
0220nobodyさん2010/03/24(水) 17:57:11ID:JL5BpxOE
PHPマニュアル
http://douseidoumei.com/phpman1/
0221nobodyさん2010/03/24(水) 18:12:40ID:???
>>220
公式じゃないところを持ってくるのは宣伝したかったから?
0222nobodyさん2010/03/24(水) 18:29:28ID:???
>>221
perlの方にもあったから宣伝。スルーで。
0223nobodyさん2010/03/24(水) 19:51:05ID:K69tMWx3
マニュアルの見方を教えてください。
例えばmysqliを例にすると、
http://jp2.php.net/manual/ja/book.mysqli.php
mysqli::method
mysqli->method
の2種類の書き方がありますが、
これは前者がstaticメソッドで後者がインスタンスメソッドであることを意味するのでしょうか?
もしその場合mysqliのコンストラクタはstaticコンストラクタということでよろしいでしょうか?
あとmysqli_queryのパラメータは、
mixed mysqli::query ( string $query [, int $resultmode ] )
となってますが、[, int $resultmode]って書いてるとこはどういう意味なのでしょうか?
string $query, int $resultならわかるのですが、この[]の意味はなんなんでしょう?
よろしくお願いします。
0224nobodyさん2010/03/24(水) 20:23:03ID:???
>>220涙目wwwwwwwwwwwwwwwwwwwwwwww
0225nobodyさん2010/03/24(水) 20:30:43ID:???
ナカシマ マサアキ君 ピーンチ
0226nobodyさん2010/03/24(水) 20:40:37ID:???
>>223
>これは前者がstaticメソッドで後者がインスタンスメソッドであることを意味するのでしょうか?
おk
>もしその場合mysqliのコンストラクタはstaticコンストラクタということでよろしいでしょうか?
これはよくわからない
>string $query, int $resultならわかるのですが、この[]の意味はなんなんでしょう?
関数呼び出し時、省略できます
0227nobodyさん2010/03/24(水) 21:00:31ID:FLvwWD9b
20100324203804686
みたいな日時の文字列を
2010-03-24 20:38:04.686
のように変形するコードを、短く格好よく書いて!

preg_match( '/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)$/',$time, $m )
これ使う長くてダサいので、もxも
0228nobodyさん2010/03/24(水) 21:07:49ID:???
どうせ関数にするんだから短くする必要ないやん
0229nobodyさん2010/03/24(水) 21:09:05ID:???
また正規表現君か
0230nobodyさん2010/03/24(水) 21:12:12ID:K69tMWx3
>>226
どうもありがとうございます。
省略可能とのことですが、これを自分で定義する場合はどうするのでしょうか?
function hoge($a, $b=NULL)のようにデフォルト値を入れるのでしょうか?
またfunction hoge($a, $b=NULL, $c=NULL, $d=NULL)のようになっていて、
$aと$dにパラメーターを入れたい場合、中間にある$bと$cは省略できないという認識であってますか?
つまりhoge("a", "d")ではdが$bになってしまうのでhoge("a", NULL, NULL, "d")としないといけませんか?
0231nobodyさん2010/03/24(水) 22:52:07ID:+UL/zmjA
DLL aをアップロードして読み込むことは出来ますか。
php.iniに登録していない独自の拡張モジュールを使いたいのですが
0232nobodyさん2010/03/24(水) 22:54:44ID:???
>>227
$datetime = '20100324203804686';
$format = '0000-00-00 00:00:00.000';
$result = '';
for ($i = 0, $j = 0, $len = strlen($format); $i < $len; ++$i) {
$result .= $format[$i] === '0' ? $datetime[$j++] : $format[$i];
}
var_dump($result);

あんまかっこよくないしループもホントはしたくない。もxも
0233nobodyさん2010/03/24(水) 23:01:02ID:???
>>231
DLLということはWIN?
ならextとかextensionフォルダに突っ込めばいい。
無理ならdl();
それも実行時のディレクトリにphp.iniを置く。ってできたっけ
0234nobodyさん2010/03/24(水) 23:06:00ID:+UL/zmjA
サンクス。
サーバーで動くバイナリ用意すれば非対応の機能もうごかせるってことですか。
0235nobodyさん2010/03/24(水) 23:09:23ID:+UL/zmjA
注意: この関数は、PHP が safe-mode で動作している場合は無効となります。
http://php.net/manual/ja/function.dl.php
0236nobodyさん2010/03/25(木) 01:08:46ID:???
>>227
ダサく書いてみた。
$datetime = '20100324203804686';
$t = sscanf( $datetime , "%4s%2s%2s%2s%2s%2s%3s");
print sprintf ("%s-%s-%s %s:%s:%s.%s",$t[0],$t[1],$t[2],$t[3],$t[4],$t[5],$t[6]);
0237nobodyさん2010/03/25(木) 01:14:05ID:slfY8WwG
phpで、繰り返し出てくるチェック処理を、staticメソッド(いわゆるクラスメソッド)で実装しようと思うのですが、
こういう使い方は間違ってますか?


■インスタンスメソッドの場合
$check = new Check();
$result = $check->checkInput($hoge);

■クラスメソッドの場合
$result = Check::checkInput($hoge);

クラスメソッドのほうはnewしなくていいから便利かなと思ったのですが、、、
よろしくご教示お願いします。

インスタンスメソッドとクラスメソッドの使い分けの考えかたも教えていただければと存じます。
0238nobodyさん2010/03/25(木) 01:47:34ID:???
>>237
「入力が同じであれば、出力も同じとなる」の様な場合は、クラスメソッドを使う。


内部の状態(インスタンスフィールドの値)に応じて、「入力が同じでも、出力が異なる」ような場合、
または、メソッド実行した結果、内部の状態が変化する場合はインスタンスメソッドを使う。

これを踏まえて、

> phpで、繰り返し出てくるチェック処理を、staticメソッド(いわゆるクラスメソッド)で実装しようと思うのですが、
> こういう使い方は間違ってますか?

内部の状態に依存しないのであれば、クラスメソッドで問題なし。依存するならインスタヌメソッドとなる。
0239nobodyさん2010/03/25(木) 02:01:36ID:???
>>237
入力内容のチェックだけならスタティックメソッドでおk
メンバー変数(プロパティ)使わないだろうし
0240nobodyさん2010/03/25(木) 03:14:08ID:wY11EtqU
PHPでプログラムを書く場合
ソースファイルの文字コードは何にするのがスタンダードですか?
0241nobodyさん2010/03/25(木) 03:38:10ID:p6Ic0f1/
日本語使わなければUTF8もEUCもsjisも同じだろ
0242nobodyさん2010/03/25(木) 04:11:36ID:???
何も考えずにutf8で書いとけば大丈夫
02431472010/03/25(木) 04:26:53ID:???
自己解決したので一応報告。
どうやらPDOのSQLiteはスクロール可能なカーソルをサポートしていないので
offsetが使えないんだとか。
↓のURLで外人が書いてくれてた。つーか情報これだけかよ。

http://www.php.net/manual/ja/pdostatement.fetch.php
0244nobodyさん2010/03/25(木) 04:58:11ID:???
>>242
合州国?
反日サヨクか?
合衆国をわざわざ合州国なんて書くのはサヨクだけだぞ。
「合衆国」は“United States”の対訳語ではなく、「共和制」(Republic=君主のいない、民衆から元首を選ぶ制度。合衆国の保守本流)
ないしは「民主主義」(democratic 合衆国左派) の古い訳語であり、「合衆制度により治められる国」という意味だぞ。
本当に日本で教育受けてんのか?
日教組の左翼教師に捏造史の教科書丸暗記させられただけだろお前の地域は。
英語の"state"は日本語の「州」とは全く異なる概念であり、“United States”の訳語であるならば「連邦」と書くのが正しい。
サヨク同士でやり取りする辞書とネット工作に使う辞書は分けとかないとこういう所で簡単にボロが出るんだよ。
0245nobodyさん2010/03/25(木) 10:16:49ID:???
一瞬考えちまったじゃねーか
02462272010/03/25(木) 10:18:55ID:???
>>232 >>236
ありがとう!でもダサいよね。

strftimeとstrptimeを使えばいいかな? と思ったんだけど
PHPだとstrftimeの引数ってUNIXTIMEなんだよね。
はっきりいって、これを設計したやつはアホだと思う。

なんで往復できるように作らないんだよ、氏ねよ、ほんとに。
0247nobodyさん2010/03/25(木) 10:53:22ID:3VlbO4al
http://www.php.net/manual/ja/indexes.phpに載ってるXMLWriter::textについて質問です

これはどういう風に使うのでしょうか?
PHP5.3.1で

$text = "HelloWorld!!";
XMLWriter::text($text);

としてもエラーになります。
どなたかご教示お願いします
0248nobodyさん2010/03/25(木) 11:10:45ID:???
まず、そのURLを出してきている時点でマニュアルを読んでないだろ
0249nobodyさん2010/03/25(木) 11:18:58ID:3VlbO4al
248さんアドバイスありがとうございます
URLは正しくはhttp://www.php.net/manual/ja/function.xmlwriter-text.phpになります
使い方にbool text ( string $content )と書いてありますがこれはどのように書くのでしょうか?
0250nobodyさん2010/03/25(木) 11:22:23ID:???
>>249
classの使い方をわかってないと厳しいと思うよ
「php XMLWriter」で検索してでてくるサイトのサンプルを見たほうが良い
0251nobodyさん2010/03/25(木) 11:24:08ID:???
最近のPHPの本って完全Windows対応の物しか出てないね・・・
Linuxのリの字も消えてるというか・・・
後Xammp
0252nobodyさん2010/03/25(木) 11:25:47ID:???
インストール以外に機種依存はほぼない。
持っているやつが多い方むきになるだろ
0253nobodyさん2010/03/25(木) 11:35:07ID:???
IISでPHPが安定して動くようになってきたのもありますね
0254nobodyさん2010/03/25(木) 11:35:49ID:???
初心者向けがwindowsになるのはしょうがないよ
linuxから教えてたらページ足りないし初心者混乱するし
0255nobodyさん2010/03/25(木) 11:43:21ID:3VlbO4al
>>250さん検索キーワードを添えて頂きありがとうございます

$obj = new XMLWriter();
$obj->openMemory();
echo $obj->text("test");
とすることで動作を確認できました。


一つ疑問があるのですが>>4
>→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
とあるのですが

XMLWriter::textという風に書くことはできないのでしょうか?
0256nobodyさん2010/03/25(木) 11:54:58ID:???
質問です。
OS WindowsXP
PHP php5.2.6
にて、XAMPPで勉強中なのですが、1点分からない挙動がありました。

require_once('MDB2.php');
とこのようにPEARのPHPを指定しているのですが、ふとini_get('include_path')を出力してみたところ、PEARにパスは通っていませんでした。
(Eclipse上で、デバッグ起動しました)

なぜinclude_pathが通っていないのに、読みこめてしまうのでしょうか?

PHPの仕様で「PEARには勝手にパスが通ってることになるんだ」というのであれば良いのですが、
XAMPPが勝手に裏でごにょごにょだと、いざLinuxに移行した際などにハマりそうで…。
0257nobodyさん2010/03/25(木) 11:56:15ID:Irf8TYh6
すいませんID出し忘れました、>>256です。
0258nobodyさん2010/03/25(木) 11:57:32ID:???
XAMPPを使ってるようじゃLinuxに移行したらパニくるだろうね
WAMPで導入しなされどうせ一回インストールすればいいんだから
0259nobodyさん2010/03/25(木) 11:58:59ID:???
質問部分ガン無視レスワロタw
0260nobodyさん2010/03/25(木) 12:05:51ID:???
>>259=質問者乙
0261nobodyさん2010/03/25(木) 12:08:00ID:???
>>258
どうパニくるの?
例えばcentOSであれば標準で入っているものをyumすればいいだけだけど、個別に入れる時とか、>>256のようにパス設定等の問題でって事かな?
それともパーミッションだとか文字コードって事かな?
0262nobodyさん2010/03/25(木) 12:08:55ID:???
>>256
(Eclipse上で、デバッグ起動しました)

同じXAMPPのPHP5.2.6で
include_pathを空にして試してみたら普通にエラー吐くよ
0263nobodyさん2010/03/25(木) 12:11:14ID:???
linux使ってるのにソースコードからコンパイルできない奴ってまだいたの?
0264nobodyさん2010/03/25(木) 12:12:26ID:???
で,linuxのインストールはディストリビューション使ってるんだろ?
0265nobodyさん2010/03/25(木) 12:13:37ID:fXHFk6pN
文字化けが直りません。

デフォルトでEuc-jpを使用しているサーバーで、
スクリプト上で
mb_internal_encoding("Shift_JIS");
header ("Content-Type: text/html; charset=Shift_JIS");
Htmlのメタタグで
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
という処理をやっても文字化けします。
もちろんファイルもShift-jisで保存してます。

なのにPCから閲覧して表示の文字コードをEuc-jpにすると普通に見えるんです・・・。
他に修正すべきところってあるんでしょうか?
0266nobodyさん2010/03/25(木) 12:19:46ID:???
>>230
おk
0267nobodyさん2010/03/25(木) 12:23:52ID:???
OS使ってる時点でダサい
0268nobodyさん2010/03/25(木) 12:26:13ID:???
えっ
0269nobodyさん2010/03/25(木) 13:04:14ID:???
>>262
空っぽはともかく、
ini_set('include_path', ini_get('include_path'));
これでも動かなくなりましたね。

XAMPPが裏でこっそり。なのでしょうか・・?
0270nobodyさん2010/03/25(木) 13:06:49ID:Irf8TYh6
>>269です。
失礼しました。269の奴は私の勘違いでした。(コマンドライン実行してました)

>>256の件は相変わらず起こる状態です。
0271nobodyさん2010/03/25(木) 13:34:36ID:???
おれはxampplite使ってるけどPEARパス始めから通ってるぞ
phpinfo()で読み込んでる設定ファイル確認してみ
0272nobodyさん2010/03/25(木) 13:55:57ID:???
__autoload()なんてことじゃないよな
0273nobodyさん2010/03/25(木) 18:14:37ID:???
もうphpも終焉気味だな
0274nobodyさん2010/03/25(木) 18:32:25ID:???
CGIでは一番敷居が低いであろう言語だからね
0275nobodyさん2010/03/25(木) 18:34:08ID:???
Python流行らねーかな
0276nobodyさん2010/03/25(木) 18:35:24ID:???
pythonは文字コードがイミフで諦めた
0277nobodyさん2010/03/25(木) 18:36:02ID:???
何が終焉なのかわからないが革新的な代替技術はでてきてないでしょ
ほとんどの鯖に入ってて覚えやすいものといったらPHPかPerlしかないし
モバイル分野が活発でSNSアプリが流行っててクライアントサイドが熱いといっても
サーバ処理部分は結局PHPとか使わざるをえないわけであって
スレの活気が昔よりないのは初心者が減ってるのと運営が暴走して最近アク禁しまくってるせい
ブログやSNSがなかった時代はHTML覚えて自分でいろいろ作りたいなんてのもあったが
今は用意されてるのが多いしそういう意欲をもつやつが昔ほど少ない
0278nobodyさん2010/03/25(木) 19:05:53ID:???
マジレス(;゚Ж゚;)ブホォ
0279nobodyさん2010/03/25(木) 21:45:57ID:oHiCs4cC
ファイルを読み込んだり書き込んだりする前に
file_existsを使って事前チェックすればPHP側のエラーを出さずにすみますが
同じようにDBが繋がるかを事前にチェックする方法はないでしょうか?
@で制御して繋いでみるしかないでしょうか?
0280nobodyさん2010/03/26(金) 06:27:03ID:dSbdTEMe
ググったソースコードphpファイルとしてを鯖にうpしました。
内容はファイルの作成とディレクトリの作成です。

無事作成出来ましたが、権限が鯖の?アパッチにあるようで、FTPでいじれません…
削除したいのですが、方法ありますか?

削除cgiなども試しましたがダメでした。
6.ql.bzの鯖つかってます。
0281nobodyさん2010/03/26(金) 07:50:59ID:???
アップロードしたPHPファイルが削除できないの?
それともPHPで作成したファイルが削除できないの?
後者ならPHPのchmod関数で権限を変えてから消すか、直接PHPで消せると思うよ
0282nobodyさん2010/03/26(金) 07:51:28ID:???
FTPで消せないってのは考えにくいけどなぁ。
まあどうしても駄目なら、PHP通してchownとかchmodしてみれば?
0283nobodyさん2010/03/26(金) 08:08:19ID:dSbdTEMe
>281
後者です。
ホント初心者なんで、まさかこんな事になるとは。。。
>281,282
chmodとchown関数調べてみます。
02842802010/03/26(金) 08:30:25ID:dSbdTEMe
[public_html](初めからあったディレクトリです)
麓cgi-bin](上に同じく)

こっから下は試行錯誤して出来て消えなくなったものです。こんな感じの構成です。
麓test_dir]
麓test]
和aaa(アパッチ権限のファイルがあります。消えません。)
test_
和aaa
user

という構成になってるのですが、
ググって出てきたchmodとchown関数のソースをどこに置いて、実行すればいいのかが分からないです。
出来ればこれをここに置いてアクセスしろ!みたいな感じでソース下さればありがたいです…
ttp://www.phppro.jp/phpmanual/php/function.chown.html
ここ見たんですがファイルのパスをどうすればいいのか?ユーザー名ってなんぞ?ってな状況です><
02852802010/03/26(金) 08:32:57ID:dSbdTEMe
あ、インデント無効でズレました;
とにかくいっぱい消せないってことです…
0286nobodyさん2010/03/26(金) 08:40:22ID:???
消したいファイルとフォルダ全てに対して
<?php
chmod('aaaa', 0777);
chmod('test_', 0777);
chmod('user', 0777);
?>
みたいにすればいいと思われます
んで、適当な名前付けて、サーバに上げてブラウザからアクセス
02872802010/03/26(金) 09:11:16ID:dSbdTEMe
>286
ありがとうございます!
ちなみにそのphpソースはどこに置けばいいでしょう?
02882802010/03/26(金) 09:15:30ID:dSbdTEMe
あと、
<?php
chmod('aaaa', 0777);
?>
とするとして、aaaaというディレクトリにアパッチ権限のファイルがあるとすれば、それも同時に消せるでしょうか
それとも、中身も一個ずつchmodしないといけませんか?

聞きっぱなしですみません。
0289nobodyさん2010/03/26(金) 09:17:34ID:???
消すのはunlinkな
02902802010/03/26(金) 09:27:23ID:dSbdTEMe
>>289
chmodでパーミッションを変更するんですよね?
そしたらFTPから削除出来るのではなく、unlinkでまた削除しないといけないのでしょうか・・・
0291nobodyさん2010/03/26(金) 09:34:03ID:???
パーミッション777に変更したら手動でもスクリプトでも消せる
02922802010/03/26(金) 09:37:04ID:dSbdTEMe
>>291
ありがとうございます。

<?php
chmod('消えないファイル名', 0777);
?>
のソース実行してもパーミッション644のままです…
0293nobodyさん2010/03/26(金) 09:38:29ID:???
パスはちゃんととおってる?
フルパスで指定してみ
02942802010/03/26(金) 09:41:10ID:dSbdTEMe
>>293
消したいファイルがあるディレクトリにソース置いて実行しました。

フルパスとはURLのことですか?
それともFTPから見たフォルダ/フォルダ/消したいファイルということですか?
0295nobodyさん2010/03/26(金) 09:44:36ID:???
>>294
後者
/home/>>294/public_html/フォルダ/ファイル
みたいな感じ
0296nobodyさん2010/03/26(金) 09:45:42ID:???
>>295
お前、優しいなw
0297nobodyさん2010/03/26(金) 09:47:21ID:???
>>296
お前も手伝えよw
02982802010/03/26(金) 09:50:09ID:dSbdTEMe
>>295
クソったれ初心者に優しくありがとうございます。
ttp://apxxxn.6.ql.bz/user/WS000005.JPG
こんな感じになってます。
フルパスの意味は理解しましたが
homeとは?>>294とは?ってな感じです。
0299nobodyさん2010/03/26(金) 09:54:52ID:???
>>298
Windowsしか知らない世代だからね
WindowsでのDocuments and Settingsだよ
0300nobodyさん2010/03/26(金) 09:59:53ID:???
echo realpath(dirname(__FILE__));
03012802010/03/26(金) 10:22:35ID:dSbdTEMe
>>299
Documents〜って言ったらHDD内のデータの事ですよね?
鯖に置いてるファイルが消したいのですが、連携?してるのでしょうか…

>>300さんは私へのレスでしょうか…日本語で…お願いします><
0302nobodyさん2010/03/26(金) 10:32:36ID:???
>>298
FFFTPを使ってるなら
ttp://www.hereticanthem.com/webtips/215/

これで消えると思うよ
0303nobodyさん2010/03/26(金) 10:36:11ID:???
FFFTP(笑)
0304nobodyさん2010/03/26(金) 10:37:22ID:???
というかファイル削除なんてPHPよりCGIでやったほうが良いんじゃないの?
03052802010/03/26(金) 10:45:54ID:dSbdTEMe
>>302
ありがとうございます、でもNextFTP使ってます…

>>304
cgi使いましたが、無理でした。
なぞです…
0306nobodyさん2010/03/26(金) 10:47:22ID:???
【os】SuSE 9.1 x86_64
【php】4.4.8
【GD】2.0.28
黒のドット絵を、赤に塗りなおそうと

imagecolortransparent(imagecolorclosest($im, 0, 0, 0));
$out = imagecolorallocate($im, 0, 0, 0);
$in = imagecolorallocate($im, 255, 0, 0);
imagefilltoborder($im, 0, 0, $out, $in);

こんな感じでやってみたのですが、赤単色にしかなりません。
どうすればいいですか?
0307nobodyさん2010/03/26(金) 10:48:37ID:5PFtTpzk
ID出し忘れたので、再カキコ。

【os】SuSE 9.1 x86_64
【php】4.4.8
【GD】2.0.28
黒のドット絵を、赤に塗りなおそうと

imagecolortransparent(imagecolorclosest($im, 0, 0, 0));
$out = imagecolorallocate($im, 0, 0, 0);
$in = imagecolorallocate($im, 255, 0, 0);
imagefilltoborder($im, 0, 0, $out, $in);

こんな感じでやってみたのですが、赤単色にしかなりません。
どうすればいいですか?
0308nobodyさん2010/03/26(金) 12:30:11ID:???
>>280
http://jp2.php.net/manual/ja/function.unlink.php
ここからお借り
実行できるならpublic_htmlに適当な名前でUPする
でブラウザから実行
"./test_dir"は消したいディレクトリを書く
例えばtest_dir/testだけなら"./test_dir/test"
<?php
recursiveDelete("./test_dir");

/**
* Delete a file or recursively delete a directory
*
* @param string $str Path to file or directory
*/
function recursiveDelete($str){
if(is_file($str)){
return @unlink($str);
}
elseif(is_dir($str)){
$scan = glob(rtrim($str,'/').'/*');
foreach($scan as $index=>$path){
recursiveDelete($path);
}
return @rmdir($str);
}
}
?>
UPするファイルをcgi-binに置くならパスは
"../test_dir"と書く
実行するときはバックアップを取ってからね
0309nobodyさん2010/03/26(金) 13:19:37ID:???
>280のはSAFEモードかつaaaaの作成者がphpともFTPとも違うんじゃねーの
0310nobodyさん2010/03/26(金) 14:05:06ID:hlkI0cqo
set_time_limit(600)にして、10分間PHP処理を継続して
それ以上かかる処理についてはスルーする方法ってないでしょうか?

今作っているプログラムは、forでデータをチェックして
問題なければ書き込み用の配列に代入し、
forが完了したらfopenでデータを書き込んでいます。
0311nobodyさん2010/03/26(金) 14:09:32ID:???
forの中で時間チェックしてそれ以上は打ち切って書き込み?
03122802010/03/26(金) 14:10:34ID:dSbdTEMe
>>308
ありがとうございます。
URLをうpして実行したらPHPリファレンスかな?が表示されました。
cgi-binでもpublic_htmlで実行しても、真っ白な画面(404ではなかったです)で
FTPから確認しても、消せずでした…

<?php
recursiveDelete("./test_dir/test/aaaa/");

以下そのままのPHPファイルをうpし、アクセスしました。
cgiのディレクトリで実行する場合はピリオドをひとつ増やしました。
何か間違っているのでしょうか…;;
03132802010/03/26(金) 14:12:16ID:dSbdTEMe
>>309
自分でうpしたファイル、ディレクトリの権限は4012ですが
phpで作成したファイルは48でした。
名前の変更、消えないディレクトリへのうp、権限の変更ともに

「削除できませんでした。権限があるか、フォルダの中は空かどうか確かめてください。 」
とはじかれます。
03143102010/03/26(金) 14:14:30ID:hlkI0cqo
>>311
そう言う事って出来るんですか?
forしながら時間チェックって。
03153102010/03/26(金) 14:16:03ID:hlkI0cqo
あ、わかりました。
$start_time = time();
for(){
$check_time = time();
if($check_time > $start_time+600){
break;
}
}

こんな感じですね。勉強になりました。
0316nobodyさん2010/03/26(金) 14:24:59ID:???
もう鯖管に頼んじゃったほうが早いんじゃね…
0317nobodyさん2010/03/26(金) 14:26:46ID:???
レン鯖変えたほうがいいよ
ロリポ最高だよ
0318nobodyさん2010/03/26(金) 14:32:57ID:???
>>317
ロリポもセーフモードじゃん
ああ、ネタで言ってるのか
0319nobodyさん2010/03/26(金) 14:39:14ID:???
>>318
気づいたんなら前半消せばいいじゃん
ああ、ネタで言ってるのか
03202802010/03/26(金) 14:54:01ID:dSbdTEMe
鯖が原因ってのは考えてなかったです。
PHPの練習に使ってるだけなので、有料じゃなければいいのですが…
とりあえず鯖管に連絡してみます。
みなさんご親切にありがとうございました!
0321nobodyさん2010/03/26(金) 14:55:38ID:???
練習で人様の鯖使うとかナメてんな
何でlocalhost使わないんだろう
0322nobodyさん2010/03/26(金) 15:16:35ID:???
↓XAMPPがどうのこうの
0323nobodyさん2010/03/26(金) 15:16:38ID:???
他人の物は俺の物、俺の物は俺の物。
今の子に共有という言葉はありません。
0324nobodyさん2010/03/26(金) 15:21:51ID:???
今のガキが大人になったら犯罪が今以上に増えて恐ろしい世の中になりそう
しかも事件のきっかけがしょうもないきっかけとかなw
0325nobodyさん2010/03/26(金) 15:24:00ID:???
え?練習でレン鯖使うとかふざけてんの?
ゆとるのもいい加減にしろよ
0326nobodyさん2010/03/26(金) 15:35:43ID:???
>>318
今のロリポはphp.ini書き換えてセーフモード解除できる
0327nobodyさん2010/03/26(金) 15:53:36ID:???
>きっかけがしょうもないきっかけ
0328nobodyさん2010/03/26(金) 16:43:44ID:???
ロリポはどうでもいいしスレち
0329nobodyさん2010/03/26(金) 17:06:33ID:???
自動生成したページにコメントを付けられるようにするにはどうしたらよいですか?
0330nobodyさん2010/03/26(金) 17:06:55ID:edKl/0SZ
age忘れ
0331nobodyさん2010/03/26(金) 17:13:07ID:???
エスパーかもーん
0332nobodyさん2010/03/26(金) 17:14:27ID:???
コメントにページIDつけて保存すればいいじゃない
0333nobodyさん2010/03/26(金) 17:26:01ID:???
>>329
フォームもついでに生成してコメントは別ファイルに保存しておけばよい
0334nobodyさん2010/03/26(金) 20:05:21ID:DpRkdepW
define("HOGE_A", 1);
define("HOGE_B", 2);_
if ($test == "A") {
 echo HOGE_A;
} elseif ($test == "B") {
 echo HOGE_B;
}

こんな感じの定数がいっぱいあるのですが
上の呼び出し方だと非効率なのでイメージとして

echo HOGE_$test;
ということをやりたいのですができません
文字列を定数で評価できればいいのですが
何か方法はないでしょうか?
よろしくお願いします
0335nobodyさん2010/03/26(金) 20:14:31ID:???
echo constant("HOGE_" . $test);
0336nobodyさん2010/03/26(金) 20:19:34ID:???
$hoge = {A=>1,B=>2,C=>3}

echo $hoge($test);
これでいいんじゃね
0337nobodyさん2010/03/26(金) 20:20:29ID:???
()じゃなくて[]だった
0338nobodyさん2010/03/26(金) 20:21:49ID:DpRkdepW
>>335
どうもありがとうございます!
マニュアルに書いてないと思って見なかったのですがdefineの関連に思いっきり書いてましたね
反省してきます

>>336さんもレスありがとうございます
今回は定数項目なのでハッシュは見送りたいと思います
0339nobodyさん2010/03/26(金) 20:24:16ID:???
チッウッセーナ
0340nobodyさん2010/03/26(金) 22:24:01ID:VBrvLXHV
phpで既存のexcel(officeは2003)のファイルを読み込んで
データを加工して出力させたいと思っていて調べた所
php reviserかphp excelreaderが良さそうと思ったのですが
どちらがオススメでしょうか?

また良い解説サイトはあるでしょうか?
0341nobodyさん2010/03/26(金) 23:07:50ID:???
phpでやる必要もないが
はじめからデータ場所わかっていれば
例 googleキャッシュ
0342nobodyさん2010/03/26(金) 23:11:48ID:???
POIがいい
0343nobodyさん2010/03/26(金) 23:59:44ID:nTGjIJ+3
みなさんこんばんは
前の方と似た質問ですが別人です。

PHPでエクセルを読み込んでウェブページとして表示したいと思っています。
ttp://etoh.seesaa.net/article/36670358.html
↑このサイトのこのページ↓のようなイメージです。
ttp://iscp.jp/Excel_to_HTML/test/SoftBank_2007.php?t=0
エクセルの行ごとにhtml整形されたデータをphpで
このようにパラメータで呼び出したいです。

このソフトをインストールしてみたのですが
私の環境はオープンオフィスのため動作しませんでした。
同じようなphpスクリプトはありませんでしょうか?
このスクリプトで生成されたソースが分かればいいのですがorz
アドバイスお願いします。
0344nobodyさん2010/03/27(土) 00:01:49ID:???
動くツールでHTML生成しておけ
0345nobodyさん2010/03/27(土) 00:09:57ID:???
オンラインゲーム作りたいんですが
PHPはその用途に向いてるでしょうか?
それともC++が良いでしょうか?
0346nobodyさん2010/03/27(土) 00:13:54ID:???
C++とDirect3DかOpenGLが最良です
0347nobodyさん2010/03/27(土) 00:29:04ID:???
>>346
thx
おとなしくC++勉強します
0348nobodyさん2010/03/27(土) 00:49:39ID:???
オンラインゲームって幅広すぎだろw
0349nobodyさん2010/03/27(土) 01:16:59ID:???
ウェブゲーならPHPでもいいだろ
0350nobodyさん2010/03/27(土) 01:39:19ID:???
基本登録制のウェブゲームで職業とか選んで他のプレイヤーと戦闘したり交流したりってイメージです。
昔やってたDragon of Floorのイメージです。知ってる人いるかな?
0351nobodyさん2010/03/27(土) 01:41:12ID:???
MMORPGみたいにリアルタイムに動かすならFlashかAjaxらへんが必要
0352nobodyさん2010/03/27(土) 02:05:58ID:???
一番向いてると思われるのはサーブレット
Cでトムキャットを超えるものをゴリゴリ書くのもあり
しかしそんな質問するようならPHPで済ませた方が無難だろう
0353nobodyさん2010/03/27(土) 02:11:35ID:???
通信技術よりゲームが出来ない意味ないがな。
一台のPCで出来るゲーム。
構想としてネットワーク考えるのは良いけど。
0354nobodyさん2010/03/27(土) 02:12:46ID:???
ゲームが出来ないと意味ないがな。
キーボードの「と」が押しにくい。初期不良か。
0355nobodyさん2010/03/27(土) 02:34:45ID:???
Penguin Chatをちょっといじった程度ならなんとかなるが
本格的にやるとまずインフラが無理
安いレン鯖じゃまず許可されない
0356nobodyさん2010/03/27(土) 02:45:07ID:???
Barギコオンラインを思い出したw
0357nobodyさん2010/03/27(土) 02:50:37ID:???
とりあえずTCP/IPとJavaをマスターしとけ。話はそれからだ
0358nobodyさん2010/03/27(土) 03:04:56ID:???
出来もしねーやつに言われても
0359nobodyさん2010/03/27(土) 09:51:18ID:???
zendはじまってたな
ttp://www.zend.com/en/company/news/press/zend-to-collaborate-with-adobe
0360nobodyさん2010/03/27(土) 11:35:40ID:mKFS7c+R
Apacheのログを取得してアクセス解析みたいな表示をさせたいと思います。
Apacheのログを取得するのって、fopenを使うのでしょうか?
ググっても、PHPからApacheのログに任意の文字列を追加することしか
紹介しているサイトが無くて、どうすればいいか悩んでいます。
0361nobodyさん2010/03/27(土) 12:20:41ID:???
>>360
どうして自分で試さないの?
0362nobodyさん2010/03/27(土) 12:29:55ID:badDEIlD
SVNを導入してPHPスクリプトを書いた場合
テキストエディタで上書き更新するたびにバックアップみたいなのが増えていくのでしょうか?
0363nobodyさん2010/03/27(土) 13:04:11ID:???
コミットしなければいいのでは
0364nobodyさん2010/03/27(土) 13:07:25ID:???
>>363
暖かい思いやりに感謝する。
0365nobodyさん2010/03/27(土) 13:34:19ID:w96ELak8
ここが一番勢いあるからここで質問するけど
今2chを騒がせてるスクリプト荒らしの対策スレッドや
それに準ずる避難場所しらんかね?
0366nobodyさん2010/03/27(土) 13:39:00ID:???
騒がせてると言われても見たことないけど
0367nobodyさん2010/03/27(土) 13:46:48ID:w96ELak8
VIP,ν即,アニメ板が攻撃範囲みたい、今のところ。
0368nobodyさん2010/03/27(土) 13:48:35ID:w96ELak8
爆撃範囲拾ってきた

被害を受けている板
ニュース速報 , ニュー速VIP , YouTube , ハード・業界 , ソフトウェア , Download , プロ野球 , ポケモン , 番組ch(NHK) , ネトゲ実況 , アニメ , アニメ2 , シャワートイレ・トイレ
0369nobodyさん2010/03/27(土) 15:00:19ID:???
ここはプログラム組む人が集まる板だからそもそも板違い
セキュ板あたりにでもいけばいいんじゃね
0370nobodyさん2010/03/27(土) 15:45:42ID:???
スクリプト荒らしってどんな事するの?
ウイルスコードを書き込むとか?
0371nobodyさん2010/03/27(土) 15:47:47ID:???
知らん
なぜか質問者は該当スレ貼ってくれないし
0372nobodyさん2010/03/27(土) 15:48:28ID:???
>>370
<?php
echo "どうだまいったかカスども!";
?>
0373nobodyさん2010/03/27(土) 15:56:19ID:???
http://www28.atwiki.jp/mopekiti/pages/175.html
連投まとめ

perlのスプリクトみたいっすよ
あと有料の●が必要

金払って何がしたいんだが
0374nobodyさん2010/03/27(土) 16:04:13ID:???
>>345
俺はブラウザゲームに需要があると予測してるから
いろいろゲームやって勉強してるよ
ドラゴンクルセイドとか三国志とか英雄の城とかな
俺がやってるのは英雄の城だ
0375nobodyさん2010/03/27(土) 16:22:48ID:???
有料●ってしたらばには使えないよね?
0376need2010/03/27(土) 16:30:14ID:BLNff2FT
オリジナルの表紙的なのにパスワード付けて
掲示板みたいなのやチャットやらメルマガやらの機能ってつけれますか?
0377nobodyさん2010/03/27(土) 16:35:08ID:???
理解できる文章で
0378need2010/03/27(土) 16:37:21ID:BLNff2FT
会員制サイトって言えばいいですかね?
0379nobodyさん2010/03/27(土) 16:38:15ID:???
>>378
そういうことでしたらできます
頑張ってください
0380need2010/03/27(土) 16:41:56ID:BLNff2FT
5人くらいで共同してやろうとしてるんですけど
僕もですけどみんなそういうの詳しくなくて・・・

ヒント的なのくださいw
0381nobodyさん2010/03/27(土) 16:44:11ID:???
まず貴様の文章を脳内変換するかしないか考えるから年齢教えろ
0382nobodyさん2010/03/27(土) 16:45:53ID:???
スルー決定
0383need2010/03/27(土) 16:47:00ID:BLNff2FT
18歳です
0384nobodyさん2010/03/27(土) 16:49:53ID:???
これ使ってろ
ttp://joomla.jp/
0385nobodyさん2010/03/27(土) 16:50:08ID:???
美少女なら考える
0386need2010/03/27(土) 16:55:09ID:BLNff2FT
ヒントありがとうございました
またみんなと相談してみますでわでわノシ
0387nobodyさん2010/03/27(土) 18:09:59ID:???
$sql = "SELECT * FROM test WHERE id = '***'"; //実際はもっと複雑
$result = mysql_query($sql);

mysql_queryのレスポンスでn秒以上かかったら、強制的に中断したいのですが
どうすれば出来ますか?
0388nobodyさん2010/03/27(土) 18:12:47ID:hCQYGWPc
あげ忘れた。。
0389nobodyさん2010/03/27(土) 18:14:16ID:???
シグナルアラーム
0390nobodyさん2010/03/27(土) 18:48:45ID:???
>>387
SHOW PROCESSLISTやKILLあたり
実行スクリプトでは待ちというか調べられないので別に監視するようなモノを作る感じ
http://dev.mysql.com/doc/refman/5.1/ja/kill.html

またはmysql_unbuffered_queryでなんとかする
http://jp2.php.net/manual/ja/function.mysql-unbuffered-query.php

件数が多くなりそうなクエリーで遅いなら
SQL_BIG_SELECTSやSQL_MAX_JOIN_SIZE
を設定するとか
http://dev.mysql.com/doc/refman/5.1/ja/set-option.html
0391nobodyさん2010/03/27(土) 20:16:16ID:fkziy9mv
htmlspecialchars()の抜け穴を教えてください
0392nobodyさん2010/03/27(土) 20:31:37ID:h7pdGwVR
ログファイルは拡張子を .cgi にすれば他人から覗かれる心配はなくなるとよく言われているけど
これ本当に覗かれる心配はないって断言できるの?

あと拡張子を .cgi ではなく .php にした場合はどう?
これでもログを覗かれずに済む?
0393nobodyさん2010/03/27(土) 20:33:31ID:???
サーバの設定次第
ご自身の環境でお試しあれ
0394nobodyさん2010/03/27(土) 20:42:02ID:???
>>392
.cgiにしたらサーバの設定次第だけど
とにかく実行とか、怖い設定になっていたら
うまくすればログのフリして実行できるんじゃないかな。

あと、phpにしていたら上の問題プラス、
下手い設定でも筒抜けになるな。こえぇーーー
0395nobodyさん2010/03/27(土) 20:46:53ID:???
質問

バーミッションって意味あんの?
書き換え不可にしたって
同じサーバーの奴から参照されてる時点で
バーミッションも変えられてしまうのでは?
0396nobodyさん2010/03/27(土) 20:47:36ID:???
>>391
phpspotでそのネタ見た
0397nobodyさん2010/03/27(土) 21:01:35ID:h7pdGwVR
>>394
> とにかく実行とか、怖い設定になっていたら
> うまくすればログのフリして実行できるんじゃないかな。

だよね(´・ω・`)

ログのフリしてコード実行とか考えるだけで末恐ろしい・・・
やっぱログは .log ファイルに格納して .htaccess でそのファイルに
アクセスできないようにした方がいいよね( ´・ω・)
0398nobodyさん2010/03/27(土) 21:56:20ID:m9Aaq+Yx
お勧めのテンプレートエンジン教えてください
0399nobodyさん2010/03/27(土) 22:00:57ID:???
>>398
include "header.php";
include "menu.php";
include "body.php";
include "footer.php";
0400nobodyさん2010/03/27(土) 22:46:02ID:m9Aaq+Yx
Twigにしました
皆さんありがとうございました
0401nobodyさん2010/03/27(土) 23:49:17ID:???
いや待て *.log がCGIとして動作するように設定されてるとも(ry
04022ヶ月2010/03/28(日) 01:43:36ID:/hrsIc1c
複数サイトのRSSを読み込んで新規順に並べるスクリプトをXML/RSSを使って作っています。
各サイトに画像を割り当てて表示したいと思っています。
RSSは時間順に表示されるのですが、画像の順番が固定されています。

画像には時間情報がないので、画像とサイトを関連付ければ表示できる
ようになると思いますが、その部分が作れません。

よろしくお願いします。

0403nobodyさん2010/03/28(日) 01:51:39ID:???
RSSのURLをmd5でハッシュ化
ハッシュ.jpgでサイト画像を用意

それか重複するドメインがなければ
ドメイン名.jpgとかでもいいんじゃない?
04042ヶ月2010/03/28(日) 03:38:35ID:/hrsIc1c
>>403
ドメイン名.jpgでhttpやら抜いてできました!
ありがとうございます。
0405nobodyさん2010/03/28(日) 10:25:11ID:???
はじめましてphp入門者です

IPアドレスで初回訪問時、2回目以降の訪問のページをわけたいのですがPHPで実現できますでしょうか?

出来るのなら参考に出来るサイトなど教えていただければ幸いです

よろしくお願いします
04064052010/03/28(日) 10:25:52ID:???
すいませんID出し忘れてました>>405です
04074052010/03/28(日) 10:26:34ID:afRJ3+O7
何度もすいません・・・
0408nobodyさん2010/03/28(日) 10:28:01ID:???
PHPに関わらずクッキー食わせて処理してください
04094052010/03/28(日) 10:44:47ID:afRJ3+O7
クッキーではやりたいことが実現できなくて・・・

初回訪問時にIPアドレス、名前を登録して次回以降

こんにちは 名前 さん のような感じで表示したいんです・・・
0410nobodyさん2010/03/28(日) 10:51:26ID:???
IPアドレスは毎回変わるからなぁ・・・ドメイン名にしたって
レベル3以降はころころ変わるからその方法は厳しいん
じゃないの
0411nobodyさん2010/03/28(日) 10:56:50ID:???
>>405
初回訪問フォームでnameを入力させてsubmit

クッキーにname,IP,訪問時間,訪問回数なんかセット

クッキーにこれらの情報が登録されていたら、変更すべき項目をクッキーにセットしつつnameを表示

なんでクッキーでできない?

>>410
クッキーがあれば前回訪問していることがわかるのでIPは関係ない
というかIPを記録する意味がわからないから何とも言えないが
0412nobodyさん2010/03/28(日) 11:00:32ID:???
気が向いたら何時もキャッシュとクッキーを削除している俺のような奴もいる。
そこまで気にするならnameとpasswordで取り扱うしかないかと。
0413nobodyさん2010/03/28(日) 11:05:48ID:???
>>411
410は408に対する409について書いたの
0414nobodyさん2010/03/28(日) 15:40:46ID:???
クッキー→クライアント側でコントロールできてしまう、よって×

IP→固定IPでない限り常に流動的、よって×

同一人物特定可能な機器の固有情報→ないわけではないが機器がない人もいるしセキュリティ的にもやってはいけない、よって×

IDとパスを登録してもらって鯖側で管理する→会員制サイト向け、もっとも現実・実用的
ログイン後にユーザ別に操作する情報があるなら話は別だが「こんにちは名前さん」のためだけにログインさせるのはアフォ

結論、動的ページに感動して初心者にはありがちな行為だがやめたほうがいい。
俺も最初はうれしくてついついサイトのトップにJavaScriptで時計表示したり、
むやみに訪問者のIP出してみたりしたっけなぁ。
今思えば痛々しい。
0415nobodyさん2010/03/28(日) 15:54:28ID:???
IDとパスものクッキー使うが
yahooとか
0416nobodyさん2010/03/28(日) 16:24:20ID:???
そりゃそうだ毎回のログインが大変だからな。
>>414のクッキーってのは初回訪問時(orクッキーが消えた次の訪問時)に
名前を入力させてそれをクッキーに入れるということでしょ。
でもまークッキーが見つからなかったら結局何かを入力するという点では一緒なわけだから、
普通にクッキーが見つからなかったら名前入力させて食わせるでいいと思うけどな。
ただそんなめんどくさいのをユーザーは望まないし、
作り手の自己満足だからやめたほうがいいとは思うが。
0417nobodyさん2010/03/28(日) 17:16:58ID:I5spPOJr
携帯向けサイトを作成していて、認証やID登録にSSL通信を使おうと考えています。
ベリサインのグローバルIDは高すぎるので他の安いものを探しているのですが、
たとえば、ベリサインのセキュアIDにして、
対応している端末はSSL通信を行い、非対応の機種はなんらかの判別処理をして
非SSL通信にしてしまうなんて、都合の良い方法はあるでしょうか?
0418nobodyさん2010/03/28(日) 17:18:04ID:LnmjTtuZ
basic認証を破る方法を教えてください
0419nobodyさん2010/03/28(日) 18:32:25ID:???
ベリサインの手続き踏んで高い金払ってるサイトだから信頼が得られるのに
金払わずに取り繕うなんて馬鹿じゃないの
0420nobodyさん2010/03/28(日) 19:00:28ID:I5spPOJr
>>419
おっしゃることはごもっともです。
ただ、利用者がセキュリティを気にする層と気にしない層がいて、
古い機種を所有している人に特に気にしない層が当てはまるんです。
なので、古い機種を使用しているあまりセキュリティを気にしない人は非SSLで運用を考えているんです。
0421nobodyさん2010/03/28(日) 19:03:21ID:???
セキュリティを気にするのはサイト管理者だろうが
自分がケチなのを利用者のせいにするな
0422nobodyさん2010/03/28(日) 19:09:19ID:???
>>421
営利目的でない為、運用の都合上、コストがそのまま利用者にかかるんですよ・・・。
コストが上がっても、私の腹は痛みません・・・。
扱う情報がメールアドレスと氏名くらいなので、できればSSLを使わずにしたいのですが、
SSLじゃないと嫌だという利用者もいるので、上記のような方法を考えているんです。
0423nobodyさん2010/03/28(日) 19:52:07ID:???
言ってることがよく分からない。

SSL要らないからコスト上げるな、って顧客と
コストかかってもいいからSSLを入れろ、って顧客がいて

どっちにも対応できる道を探してるということ?
0424nobodyさん2010/03/28(日) 19:55:32ID:???
利用者がいるんでしょ
0425nobodyさん2010/03/28(日) 20:17:00ID:???
単純に機種別にSSLかけるかかけないかしたいって読めばいいんじゃねーの
0426nobodyさん2010/03/28(日) 20:40:56ID:???
SSL通信はするけど認証機関はとおさなければ良いんでは
無料
0427nobodyさん2010/03/28(日) 20:42:07ID:???
無料の認証機関ってなかったっけ?
0428nobodyさん2010/03/28(日) 20:49:55ID:???
要するに証明書が対応、非対応の判別処理がphpでできるか?って事じゃね
SSL、非SSLのリンク並べた方が楽じゃね
使いたい奴は使えと、使いたいけど非対応の端末は買い換えろと
0429nobodyさん2010/03/28(日) 21:04:02ID:???
その方法は単純にSSLに対応したサイトだわな
0430nobodyさん2010/03/28(日) 21:04:33ID:???
Rails使えば解決するよ!
0431nobodyさん2010/03/28(日) 22:54:42ID:rVlISy+X
PHPでunixtimeを表示したいのですが、どのようにすれば表示できますか?
0432nobodyさん2010/03/28(日) 22:56:57ID:I5spPOJr
>>423
そういうことです。
>>428
やっぱり、それが賢明ですかね。
>>426
携帯サイトなので、たしかauは通信できなかったように思います。
実機がないのでわからないのですが、そういった記事を目にしたことがあるので。
0433nobodyさん2010/03/28(日) 22:58:42ID:???
>>431
print time();
0434nobodyさん2010/03/28(日) 23:01:51ID:rVlISy+X
>>433
ありがとうございます><
0435nobodyさん2010/03/29(月) 09:47:34ID:4cY5kwZW
すみません、質問させてください。
centOS環境にて、公開フォルダ下にphpMyAdminを入れました。
そしてhttp://localhost/phpMyAdminとブラウザで入れたのですが、
You don't have permission to access /phpMyAdmin on this server.
とエラーが出ました。
で、パーミッションを見てみた所、drwxr-xr-x となっておりました。
しかし、アクセスできるフォルダ(例えばhogeフォルダ)もdrwxr-xr-x とパーミッションはなっておりました。
同様に-rw-r--r--とパーミッションの与えられているphpMyAdmin内のindex.phpにも当たり前でしょうが、
http://localhost/phpMyAdmin/index.phpでアクセスしてもダメでした。
どのようにすればphpMyAdminを実行出来るのでしょうか?
0436nobodyさん2010/03/29(月) 09:56:22ID:???
ちなみに公開ディレクトリはapacheの初期設定のまま?
0437nobodyさん2010/03/29(月) 10:11:49ID:???
>>436
ハイそうです
centOS、Apacheの初期設定のままです
特にphp.iniとかは何もいじっておりません
0438nobodyさん2010/03/29(月) 11:37:55ID:FXTZBx7Y
ローカルでメール送信プログラムのテストをしたいです。

さくらのメールボックスなどのメールアカウントを持っていますが、
POP before SMTPなどややこしい機能があるみたいです。

この場合、ローカルにメールサーバを立てるのが一番手軽でしょうか?
0439nobodyさん2010/03/29(月) 11:46:10ID:???
うん
0440nobodyさん2010/03/29(月) 11:51:52ID:???
お手軽
「windows php メール」とかで検索あれ
0441nobodyさん2010/03/29(月) 11:53:00ID:FXTZBx7Y
ありがとうございました!
0442nobodyさん2010/03/29(月) 13:51:48ID:Th+hpH2Z
お願いします。
これからphpを学ぼうと、Amazonでphpの本を探してみたのですが、どれも高くて気軽に買えません。
phpというと、Wikiなどを見ながらApacheでrep2を一週間かけて動かしたぐらいしか経験無いのですが、
そんな初心者にオススメのphpの本を教えていただけませんでしょうか。
0443nobodyさん2010/03/29(月) 13:55:43ID:???
まずhttp://www.php.net/manual/ja/の言語リファレンスを全部やってから家
0444nobodyさん2010/03/29(月) 14:09:14ID:???
>>442
今までにCとかC++とかPerlとかJavaとか、まあそのあたりの言語でのプログラミングを
してたなら、「PHP 入門」とかでぐぐって出てくる適当なサイトで十分いけるよ。
それでどういうものなのか、とりあえずどう使うのかを掴んだら、後は>>443を随時参照でおk。
0445nobodyさん2010/03/29(月) 15:10:31ID:???
smartyのアンチと信者ども前スレの続きするぞ
ttp://pc11.2ch.net/test/read.cgi/php/1269841264/
0446nobodyさん2010/03/29(月) 15:12:34ID:???
知るかバカ
0447nobodyさん2010/03/29(月) 17:20:21ID:1Ehd5H1b
throwの挙動なんですが、returnと同じでthrowしたらその関数はそこで終了するということでよろしいですか?
0448nobodyさん2010/03/29(月) 17:27:58ID:???
せやで!
04494472010/03/29(月) 17:44:03ID:???
ありがとうー
0450nobodyさん2010/03/29(月) 18:12:06ID:???
throw new Exception();
return;

と書いてた俺に一言
0451nobodyさん2010/03/29(月) 18:16:46ID:???
(;゚Ж゚;)ブホォ
0452nobodyさん2010/03/29(月) 18:16:47ID:???
読みやすくていいと思います・・
0453nobodyさん2010/03/29(月) 19:25:19ID:???
いまどきのまともなコンパイル型の処理系なら、
こんとろーるふろーがそこまで行かないぞって警告くらい出してくれたろうけどなぁ。
0454nobodyさん2010/03/29(月) 19:25:45ID:MUiCUZA9
【OS名】linux
【PHPのバージョン】php5.26
【連携ソフトウェア】特になし
【質問内容】

ブログのコメント機能に似たものをPHPで実装しています。

これを自分のサイトの各ページに読み込ませることで擬似的にブログの様に閲覧者が各ページで
自分の意見を自由に投稿できるようになります。

そこで疑問なのですが、自動的に生成するログファイルの命名規則をどう扱うべきかで悩んでいます。
各ページ毎にログは独立させるつもりなので、ページが複数あれば必然的にログファイルも複数になります。
メンテナンスのことを考えるとログファイル一式は一カ所のフォルダに保存しておいた方がいいと思います。

たとえば次のようなページ構成の場合・・・

/public_html/FolderA/index_1.html
              index_2.html
        /FolderB/FolderC/index_1.html

3つのページにコメントスクリプトを埋め込むので合計3つのログファイルが生成されるわけですが

/public_html/log/

フォルダに3つのログファイルを保存するとき、ログファイルそれぞれのファイル名はどういう規則で
自動生成するべきでしょうか?ちなみにlogフォルダの下にはフォルダは一切作らないでおきたいと
思っています。またメンテナンス性を高めるためログファイルの名前はランダムな文字列ではなく
どのページに関するものか人目で判別できるようなものにしたいと思っています。
0455nobodyさん2010/03/29(月) 19:29:39ID:???
お前の都合に合わせろよ
0456nobodyさん2010/03/29(月) 22:39:29ID:???
PHPのランダム表示についての質問です。
ランダム表示をしてさらに表示頻度を設定したいのですが、どのようにすればいいか教えてください。

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$length = count($rndtxt) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$rndtxt[$num]");
?>

現在は上のPHPで広告をランダム表示しています。
これのテキスト1を60%、テキスト2を20%、テキスト3を20%の割合で表示させたいです。

どのように書けばそのように設定できるのでしょうか?
0457nobodyさん2010/03/29(月) 22:48:10ID:???
>>456
$weight = array(0, 0, 0, 0, 0, 0, 1, 1, 2, 2);
$num = $weight[round(rand(0, count($weight) - 1))];
print("$rndtxt[$num]");

それか0から9のランダムな整数出して
if ($num < 6) {
$rndtxt[0];
}
else if ($num < 8) {
$rndtxt[1];
}
..

とか
広告をランダムに出したいっていう質問かなり多いなw
0458nobodyさん2010/03/29(月) 22:55:14ID:???
>>457
えっ11%で表示したくなったらどうすんの?100個の要素作るの?w
0459nobodyさん2010/03/29(月) 23:02:25ID:???
>>458
スレタイ
0460nobodyさん2010/03/29(月) 23:03:19ID:???
>>457
ありがとうございます。
完成型は下を単純に入れ換えてこうなるのですか?

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
$weight = array(0, 0, 0, 0, 0, 0, 1, 1, 2, 2);
$num = $weight[round(rand(0, count($weight) - 1))];
print("$rndtxt[$num]");
?>

<?php
$rndtxt[0] = 'テキスト1';
$rndtxt[1] = 'テキスト2';
$rndtxt[2] = 'テキスト3';
if ($num < 6) {
$rndtxt[0];
}
else if ($num < 8) {
$rndtxt[1];
}
..
?>
0461nobodyさん2010/03/29(月) 23:10:18ID:???
>>460
上のほうはたぶんそんなんでいけると思うけど、
下の方は別のやり方で

$num = rand(1, 10);//分かりやすく1から10の整数
if ($num <= 6) {//1から6の6割の確立
print $rndtxt[0];
}
else if ($num <= 8) {//7から8の2割の確立
print $rndtxt[1];
}
else {//9から10の2割の確立
print $rndtxt[2];
}
0462nobodyさん2010/03/30(火) 00:25:21ID:???
>>461
丁寧にありがとうございます。
0463nobodyさん2010/03/30(火) 01:48:09ID:vJQ1xggI
クラスオブジェクトを生成するとき、条件に合致しない場合はオブジェクトを生成せずnullを返したいと思っています。

たとえば、MyClassというクラスを作製する際初期値numberが正の値のときは

if ( $obj = new MyClass(5) )
{
・・・
}

普通にオブジェクトを生成し、負の値の時は

if ( $obj = new MyClass(-3) )
{
・・・
}

オブジェクトを生成せずnullを返すようなプログラムを組みたいです。

そういうクラスを作製することは可能でしょうか?
もし可能だとしたら(おそらく__construct($number)に)どう記述すれば実現できますか?
0464nobodyさん2010/03/30(火) 02:00:03ID:???
オブジェクト生成では返り値指定できないでしょ
0465nobodyさん2010/03/30(火) 02:21:32ID:vJQ1xggI
返り値は指定できませんか・・・

代わりに「条件を満たさないときはオブジェクトを生成しない(=newに失敗する)」ようにはできないでしょうか?
0466nobodyさん2010/03/30(火) 02:26:05ID:wKtmg6ou
ですのでで来ません
0467nobodyさん2010/03/30(火) 02:51:17ID:???
>>465
正の値しか受け付けないコンストラクタに何かのミスで負の値を渡された時には
コンストラクタ内で例外を投げて止めるが、
正負どちらの値も有り得るのならstaticなメソッドを用意した方が行儀がいい

class Klass { public static function create($c) { return $c ? new self() : null; }}
0468nobodyさん2010/03/30(火) 03:02:58ID:vJQ1xggI
>>467
ありがとうございました。
メソッドのほうでnullを返すようにさせますm(_ _)m
0469nobodyさん2010/03/30(火) 05:50:51ID:g1YqBDS1
<?php
$foo = 'Bob'; // 値'Bob'を$fooに代入する。
$bar = &$foo; // $fooを$barにより参照
$bar = "My name is $bar"; // $barを変更...
echo $bar;
echo $foo; // $fooも変更される。
?>

これで'My name is Bob'が2回出力されるのがわからない。
$fooが書き換えられたら、元の 'Bob' という文字列は "My name is $bar" に上書きされて消えちゃうんだよね?
そしたら$barと$fooをechoで出力するときに 'Bob' という文字列はどこから来てるの?
0470nobodyさん2010/03/30(火) 07:22:34ID:???
非国民端末iPhoneだけを観覧禁止にすることは可能ですか?
0471nobodyさん2010/03/30(火) 07:28:31ID:???
pandaなんちゃらを弾けばいいんじゃね?ワイファイは知らんが
0472nobodyさん2010/03/30(火) 10:36:09ID:???
>>469
右から評価される

$bar = "My name is $bar"; // $barを変更...
ここは

$bar = "My name is Bob";
という動作になる。
0473nobodyさん2010/03/30(火) 17:36:46ID:dG8PavZ2
$arrayには以下が入ってます。
[0] => 1-text [1] => 2-text [2] => 21-text [3] => 27-text [4] => 3-text
rsortで配列を並べ変えてるんですが
[0] => 3-text [1] => 27-text [2] => 21-text [3] => 2-text [4] => 1-text
このようになります。
下記のように数が多い順に並べ替えたいのですがどの関数を使えばいいのでしょうか?
[0] => 27-text [1] => 21-text [2] => 3-text [3] => 2-text [4] => 1-text
0474nobodyさん2010/03/30(火) 17:40:39ID:???
>>473
http://jp.php.net/manual/ja/function.natsort.php
04754732010/03/30(火) 18:00:50ID:dG8PavZ2
>>474
こんな関数あるの知りませんでした。
ありがとうございます。
0476nobodyさん2010/03/30(火) 18:19:22ID:???
新アルゴリズム 納豆ソート
0477nobodyさん2010/03/30(火) 18:41:47ID:jgFCVhFf
アクセスカウンタの作り方を下記ページで勉強してるのですが、
http://www.phpbook.jp/appli/accesscounter/index3.html
<?php
$counter_file = 'counter.txt';
$counter_lenght = 8;
$fp = fopen($counter_file, 'r+');
★if ($fp){
★if (flock($fp, LOCK_EX)){
$counter = fgets($fp, $counter_lenght);
$counter++;
rewind($fp);
if (fwrite($fp, $counter) === FALSE){
print('ファイル書き込みに失敗しました');
}
★flock($fp, LOCK_UN);
}
}
fclose($fp);

★のつけたところがよくわかりません・・・。if文の == TRUEが省略されてるんだと思うんですが、
全体の意味が理解できません・・。1つ目のifがtrueで処理がされて、その次のif (flock($fp, LOCK_EX))
ここはどういうことなのでしょうか?読み書き禁止 == TRUEの場合?
0478nobodyさん2010/03/30(火) 18:47:09ID:???
>>477
★1つ目:fopenに成功した時
★2つ目:flockでの書き込み禁止ロックが成功した時
★3つ目:flockでのロックを開放する
0479nobodyさん2010/03/30(火) 18:50:45ID:???
>>477

$fp = fopen();
でファイルを正常に開くと$fpはファイルへのポインタになって、失敗するとfalseになる
if ($fp) は if ($fp != false) と同じ

flock($fp, LOCK_EX)は戻り値で成功したらtrue、失敗したらfalseを返す

if (flock($fp, LOCK_EX)){

$succeed = flock($fp, LOCK_EX);
if ($succeed){
と同じ
0480nobodyさん2010/03/30(火) 18:53:51ID:???
リソース型は特殊だけどリソースが返ってくるということはbooleanでtrueであることだと思えばよい。
そのほかの型については、
http://php.net/manual/ja/types.comparisons.php
例えば、$x = 0;のboolean項目はFALSEとなっているので、
if ($x)は通らないがif(!$x)は通る。
04814772010/03/30(火) 19:03:25ID:???
うおーみなさん素早いレスありがとうございます!
ひとつづつ噛み砕いてみます!
04824772010/03/30(火) 19:14:26ID:???
大変すみませんまたよろしいでしょうか・・・・
$fp = fopen($counter_file, 'r+');
★if ($fp){
ここでr+にして、まず読み書き許可しますよね?

★2つ目 flockでの書き込み禁止ロック
ここで、どうしてすぐに書き込み禁止にしてしまうのでしょうか・・?
イメージとして、読み込んだテキストから数字8を取り出して、1つ足して数字9にして
ファイルを閉じる、というのがあるのですが、書き込み可能にしてすぐ書き込み禁止にする
行為がイメージつきません・・・だもんで、★2つ目から下の文の内容もよくわからんのです・・・

04834772010/03/30(火) 19:16:55ID:???
あれ?禁止ロックは条件指定で、実際はしてないのかな?混乱してきた・・・・
0484nobodyさん2010/03/30(火) 19:20:00ID:???
>>483
排他処理でぐぐれ
0485nobodyさん2010/03/30(火) 19:22:29ID:???
>>477のリンクが開けない
0486nobodyさん2010/03/30(火) 19:43:54ID:???
//カウンター数が書かれてるファイル
$counter_file = 'counter.txt';
//カウンターの最大桁数
$counter_lenght = 8;
//ファイルオープン成功時リソースを$fpにセット失敗時は$fp = false;
$fp = fopen($counter_file, 'r+');
//オープン成功してたら
if ($fp){
 //他の訪問者と処理かぶった時にデータが狂わないようにロック
 if (flock($fp, LOCK_EX)){
  //カウンター数を桁数分読み込む
  $counter = fgets($fp, $counter_lenght);
  //読み込んだカウンター数に1足す
  $counter++;
  //ファイルを上書きするためにファイルポインタを先頭にもっていく
  rewind($fp);
  //新しい数値(足した数値)を上書きする
  if (fwrite($fp, $counter) === FALSE){
   //失敗時
   print('ファイル書き込みに失敗しました');
  }
  //ロックを解放し他の人が処理できるようにする
  flock($fp, LOCK_UN);
 }
}
fclose($fp);
0487nobodyさん2010/03/30(火) 19:47:02ID:???
どうでもいいがlenghtじゃなくてlengthな
0488nobodyさん2010/03/30(火) 21:24:19ID:???
恥ずかしいけど間違いじゃないからどーでもいい
0489nobodyさん2010/03/30(火) 21:53:56ID:???
>>488
間違いは間違いだろwww
0490nobodyさん2010/03/30(火) 23:11:49ID:PJO3T1x9
最近wordpressを使いだしてPHPに興味が出てきたんですが、
wordpressテーマみたいに、PHPでソースを吐き出させるPHPと
アプリを作ったりするPHPは別物なんでしょうか?

まずはブログのテーマを作って、その後は検索システムとか掲示板とか作りたいなって
思ってるんですが、書籍を見てても、ブログ系はブログ。アプリはアプリみたいにわかれてるんで、
同じものなのか自信がなくなってしまいました。
0491nobodyさん2010/03/30(火) 23:21:21ID:???
PHPで作れるアプリケーションは大きく分けて3つ

Webアプリケーション
デスクトップアプリケーション(ただし向いてはいない)
コンソールアプリケーション(コマンドラインから使うやつ)

んでブログやらブラウザでサーバにアクセスして動かすものはみなWebアプリケーションだ
0492nobodyさん2010/03/30(火) 23:43:46ID:PJO3T1x9
なるほど、つまり僕が言う物は2つとも同じ種類なわけですね。
ありがとうございます。

これですっきりしたんでwordpressのテーマ作成の本でも探してみます。
0493nobodyさん2010/03/30(火) 23:53:27ID:???
「めんどくさい、使いにくい」と思いながらもWindows使うよりLinux使う比率が圧倒的に高い俺はもはや変態なんだろうな・・・
0494nobodyさん2010/03/31(水) 00:09:51ID:???
if や while が複数の判別式をもっているとき、左から順番に判別されていって false が一つでも返ってきた
段階でそれより右側の判別式の判別は中止されるとおもってよろしいですか?

たとえば

if ( 5 < 0 && 2 < 5)

という判別式の場合、最初の 5 < 0 でfalseが返ってきた時点で残りの 2 < 5 の評価は放棄されると
思ってよろしいですか?
0495nobodyさん2010/03/31(水) 02:01:29ID:???
ホントくだらない質問で申し訳ないのですが
WEB上にあるPHPはダウンロードすることは可能ですか?
とあるスレで外人が親切にfixedしてくれて、ほれこれで動くぞ持ってけ
いわれてるけど名前をつけてリンク先を保存にしてもドキメントしか落とせなくて困ってます。

http://www.arrastheme.com/forums/post5050.html#p5050

wordpressのプラグインget-the-image.phpです
0496nobodyさん2010/03/31(水) 02:16:32ID:???
鯖側のエラーっぽいけど
0497nobodyさん2010/03/31(水) 05:34:24ID:1040mT1O
テスト環境のfedora7では問題なかったのですが
本番サーバのCentOS5/64bitで、escapeshellcmdを通すと日本語(たとえば「てすと」)が
消失する現象が出ています
文字コードはUTF-8です
どうしたものでしょうか
0498nobodyさん2010/03/31(水) 05:44:45ID:???
文字コードをもう一度確認
0499nobodyさん2010/03/31(水) 08:26:19ID:???
文字コード確認してもUTF-8だし
cliだと問題ないなど謎ですが
strtrで自前エスケープするようにしました・・
ちなみに5.2.13です
64bitだからかなぁ・・
0500nobodyさん2010/03/31(水) 09:09:20ID:???
setlocale(LC_ALL, ja_JP.UTF-8); でどうでしょうか。
0501nobodyさん2010/03/31(水) 09:19:16ID:???
いけました!
こんな関数はじめてみました
ありがとうございました
05024772010/03/31(水) 15:20:08ID:???
バイト行ってました・・・
みなさん遅れてすみませんありがとうございました!
テクニックがあるんですね知りませんでした。
理解できました!
0503nobodyさん2010/03/31(水) 16:03:31ID:qgSssQGe
全変数を初期化してもPHP Notice: Undefined offsetが出ることがあるので
error_reporting(1)を最初に追記しました。
PHP Notice: Undefined offsetはでなくなりましたが、error_reporting(1)は
追記したファイルにのみ有効という解釈でいいんでしょうか?
test1.phpとtest2.phpでエラーで発生していて、test1.phpにだけerror_reporting(1)を追記した場合
test1.phpはエラーは出なくなりtest2.phpではエラーは出るという事で大丈夫でしょうか。
0504nobodyさん2010/03/31(水) 16:20:45ID:???
test1.php内で以下のように書けば当然test2.phpでも有効さ
<?php
error_reporting(1);
include './test2.php';
0505nobodyさん2010/03/31(水) 16:49:51ID:???
記号のフォントをGDで使用する方法はありますか?
そもそも、どうやって指示すれば良いのかもわかりません。
hoge.ttfと0×0050とかで指示できたりしますか?
0506nobodyさん2010/03/31(水) 19:21:18ID:???
>>505
記号のフォントってのがいまいちだけど、文字コードと出力される字形は別モンなので単純に
chr(0x50)
でいいんじゃ?
0507nobodyさん2010/03/31(水) 22:34:38ID:5rD6sntL
SimpleXMLElement::xpath->SimpleXMLElement:: addChild($name.$value)みたいには書けないの?
0508nobodyさん2010/03/31(水) 22:42:26ID:F5ZddSdm
PHPで、特定のオブジェクトに対する処理(メソッド実行やプロパティへの代入など)を
一括して行う方法というのは無いでしょうか(オブジェクトの表記を省略したい)。
(VBScriptのWithステートメントのようなモノを考えています)

$object->method1();
$object->method2();
$object->method3();
   これを
With($object){
 ->method1();
 ->method2();
 ->method3();
}
こういう風に省略できたら見た目にもすっきりしていいなーと思うのですが。
また、無いとしたら何か他に何か、良い短縮方法というのはありますか?

因みに間違えてプログラム板でこの質問をしてしまったんですが
「短縮は可読性を下げる」と言われてしまいました。
やはり短縮しないで書いた方がいいんでしょうか。
0509nobodyさん2010/03/31(水) 22:49:36ID:???
残念ながら!
0510nobodyさん2010/03/31(水) 23:07:36ID:???
>>508
return $this;
05114972010/04/01(木) 02:38:01ID:H0tjueQL
調べたところ、ロケールLC_ALLが"C"=7ビット文字列になっていることが原因のようでした
動作は教えていただいた方法で解決できたのですが、
「PHPで使われるロケール設定」はどこで設定したものが使われているのでしょうか?
テスト・本番の両環境で、
/etc/sysconfig/i18n
にてja_JP.UTF-8をロケールに設定しており、
シェル上のlocaleコマンドでも確認できますが、
それはPHP内では使われていないようです。
まともに動いていたテスト環境でも、
LC_CTYPE=en_US.UTF-8;等と設定されており、
これもどこに由来するのか分かりません。
「偶然うまく動いていた」に過ぎないようです・・
0512nobodyさん2010/04/01(木) 02:53:56ID:???
>>511
php.iniのマルチバイト関連と
Webサーバの実行ユーザの環境変数かな
0513nobodyさん2010/04/01(木) 03:12:48ID:???
php.iniは同じものを使っているので
apacheユーザの環境変数っぽいですね
デーモンの環境変数なんて考えたことなかったなぁ・・
0514nobodyさん2010/04/01(木) 10:33:51ID:???
foo: bar
baz
bna
test: hoge
hage: new
hoge

これらの文字を
foo: barbazbna
test: hoge
hage: newhoge
に置換したいのですが何か良い方法はないでしょうか?
0515nobodyさん2010/04/01(木) 10:34:49ID:???
もとの文字列はこうです

foo: bar
 baz
 bna
test: hoge
hage: new
 hoge
0516nobodyさん2010/04/01(木) 10:58:43ID:???
>>514
質問はIDを出しましょう
それとその問題が解けないなら、そもそもプログラミングをする意味が無いと思うよ
まず日本語で処理内容を書き出してみてからPHPに変換してみたら?
0517nobodyさん2010/04/01(木) 20:31:38ID:8+z5A+wF
require_onceで呼び出す際にget形式でパラメーターを渡すことは出来ますか?
0518nobodyさん2010/04/01(木) 20:37:49ID:???
http使って読み込むんなら出来る
でもなんかパラメータ渡したいだけなら、requireの前に変数を定義すればそのまま使えるよ
0519nobodyさん2010/04/01(木) 20:52:22ID:8+z5A+wF
でけた
ありがおう!
0520nobodyさん2010/04/01(木) 22:05:34ID:X1UHe/PE
XML/RSSを使ってRSS受信してサイトに表示するPHPを作ったのですが
ものすごく重いです。自作だとそんなものですか?

無料サービスのはサクサク動くのに、すごく微妙です。
0521nobodyさん2010/04/01(木) 22:18:00ID:???
>>520
自作したの?それとも有り物を設置しただけ?
自作ならソースみないとなんとも言えん
http://ideone.com/
0522nobodyさん2010/04/01(木) 22:28:41ID:X1UHe/PE
>>521
拾ってきたソースを加工したものです。
http://ideone.com/GyBDpmCC
0523nobodyさん2010/04/01(木) 22:46:20ID:???
>>516
うるせーよクズ
解決したわ
0524nobodyさん2010/04/01(木) 22:46:44ID:???
>>520
13個もURLを読み込んでるの?
だとするとページを13個開くのと一緒だから重くなるで

対策としては、一度ダウンロードしたRSSをキャッシュすればいいんだけど、
XML_RSSにキャッシュ機能はなさそうだから

$r =& new XML_RSS($rssurl);
の前に、自前でRSSのキャッシュチェックして、キャッシュがなければダウンロード、あればそのままキャッシュをfopen

まとめると

//URLに対して固有のキャッシュパスを設定
$cache_path = 'cache/' + md5($rssurl);
if (!file_exists($cache_path) || filemtime($cache_path) < time() - (60 * 60 * 6)) {
//キャッシュファイルが存在しない、もしくは6時間以上経過
$f = $fopen($rssurl);
}
else {
//キャッシュを使う
$f = fopen($cache_path);
}

$r =& new XML_RSS($f);

つかれた
0525nobodyさん2010/04/01(木) 22:50:18ID:???
これは一個ずつリクエストと取得を繰り返してるから重いんじゃねーの
マルチスレッド化した方が早くなる
0526nobodyさん2010/04/01(木) 23:00:45ID:???
DBのカラム名について聞きたいのですが、
cakephpに習って管理用カラムをidのauto_incrementとし、
英字のカテゴリ名と日本語のカテゴリ名を設定したいです。
以下のような感じにしようと思いましたが、keyが予約語なので、嫌な感じがします。
一般的に英字と日本語をひとつのテーブルに設定する場合、このようなカラム名にするといいよ
というのが、ありましたら教えて欲しいです。

create table category(
id int not null auto_increment primary key,
key varchar(10),
name varchar(20)
)
0527nobodyさん2010/04/01(木) 23:12:48ID:???
>>526
決まりはないし、PHPの質問でもないし、IDも出してないし
0528nobodyさん2010/04/01(木) 23:23:50ID:???
eng と jp
0529nobodyさん2010/04/01(木) 23:24:15ID:X1UHe/PE
>>524
(´;ω;`)$fopenのところだけ@にしましたが、動きません。

>>525
マルチスレッドですか。ぐぐって見ましたが、概要だけしかわかりませんでした。
ソースが置いてある所があればありがたいです。
0530nobodyさん2010/04/01(木) 23:34:18ID:???
>>529
泣きたいのはこっちだわw
0531nobodyさん2010/04/01(木) 23:38:44ID:X1UHe/PE
>>530
ありがとうございます。以下に変更しましたが、
$cache_path = 'cache/' + md5($rssurl);
の部分のキャッシュを作れていないようで、動作はしますが重いままです。

foreach ($rdf as $k=>$rssurl) {
//URLに対して固有のキャッシュパスを設定
$cache_path = 'cache/' + md5($rssurl);
if (!file_exists($cache_path) || filemtime($cache_path) < time() - (60 * 60 * 6)) {
//キャッシュファイルが存在しない、もしくは6時間以上経過
$r =& new XML_RSS($rssurl);
}
else {
//キャッシュを使う
$r =& new XML_RSS($cache_path);
}
if (PEAR::isError($r)) continue;
$r->parse();
if ($r->getChannelInfo()) $ch[$k] = $r->getChannelInfo();
$ch[$k]['items'] = $r->getItems();
}
usort($ch, "cmp");
0532nobodyさん2010/04/01(木) 23:45:14ID:???
そもそも設計が腐ってる

・キャッシュ表示とキャッシュ作成を別にする
・・キャッシュ作成は定時処理にする

・個々を取得するphpを作成する
・・ajaxで読み込むurlをリクエストし、表示する。
0533nobodyさん2010/04/01(木) 23:45:55ID:???
存在すればそのまま読み書きモードでファイルオープン、
存在しなければ新規作成したうえで読み書きモードでファイルオープンさせたいと思っています。

出来る限りスマートに記述するとしたらどういう方法をとるべきですか?
0534nobodyさん2010/04/01(木) 23:48:57ID:???
fopen($path,"w+")
0535nobodyさん2010/04/02(金) 00:09:05ID:cOHYaj0g
>>532
はい、初めて作るのでその通りです。
1から書くのは不可能なので、なんとか今の技術で作りたいです。
0536nobodyさん2010/04/02(金) 00:11:59ID:???
>>531
大丈夫かよ
cacheフォルダ作って、書き込み権限与えるだけだから
0537nobodyさん2010/04/02(金) 00:50:45ID:cOHYaj0g
>>536
はい、cacheフォルダ作りました。ローカルapacheでエラーになります。
Warning: fopen() expects at least 2 parameters, 1 given in
05385262010/04/02(金) 00:53:20ID:dljz4vKA
すいません。スレ間違えました
0539nobodyさん2010/04/02(金) 01:35:29ID:???
>>537
>>534
0540nobodyさん2010/04/02(金) 01:59:28ID:???
>>523
おめでとう。やればできるじゃない
0541nobodyさん2010/04/02(金) 02:10:49ID:cOHYaj0g
>>539
はい、w+モードにしました。
$f = fopen($cache_path,"w+"); を
$f = fopen($rssurl); の上に持ってきたりとか、いろいろしてみましたが
キャッシュを読み込まないです。

なぜかキャッシュフォルダじゃなく同じフォルダにキャシュらしきものが出来たので
無理矢理それをフォルダに詰めても動かないままです。
0542nobodyさん2010/04/02(金) 02:14:57ID:???
>>541
それキャッシュ読み込むところだから
w+の意味調べた?
>>524をそのまま使わないで参考程度にしなよ
0543nobodyさん2010/04/02(金) 03:08:21ID:???
エラーの意味すら知ろうとしないで答えを知りたがる
ダメだろこいつ
0544nobodyさん2010/04/02(金) 03:42:47ID:???
レンタルサーバーでPHPを使ってログファイルを作成してるんだが
そうやって生成したファイルは所有者が"99"とか"nobody"となっていて
パーミションが rw-r--r-- となっている。

まあこの状態でPHPから追記なり上書きなり自由に書き込めるわけだが
レンタルサーバーのコントロールパネル上から
「全ファイルの所有者をユーザーに変更する」
を実行すると所有者は確かに俺のアカウントになるんだがパーミションが
rw-r--r-- のままだから今度はPHPからそのファイルに書き込みができなく
なるんだよ。再度書き込みがしたければログファイルのパーミションを片っ端から
rw-r--rw- に変更していかなければならない。それも手動で(´・ω・`)

手動だから当然変更し忘れてしまうログファイルだって出てくるしそうなると
PHPスクリプトの動作に支障を来してしまう。

PHPでファイル生成時に最初から rw-r--rw- というパーミションのファイルを
生成できれば悩まずに済むんだけどそういう方法って無い?
みんなはこの問題に対してどう折り合いを付けている?
0545nobodyさん2010/04/02(金) 03:48:26ID:???
ログファイルの所有者変更なんてやらなきゃいいだろw
0546nobodyさん2010/04/02(金) 03:52:43ID:???
>>545
確かにログファイルの所有者変更なんてやる必要もないが、他のファイルの所有者変更をしたくなったとき
ログファイルも含めた全てのファイルが道連れに所有者変更されてしまうんだよ。
特定のファイルだけ選んで所有者変更できればこんな質問してない。
0547nobodyさん2010/04/02(金) 04:02:30ID:???
>>544
ttp://jp2.php.net/chmod
0548nobodyさん2010/04/02(金) 04:08:48ID:???
所有者の変更はchownな
05495412010/04/02(金) 06:21:13ID:cOHYaj0g
キャッシュファイルを作成できるようになりました!が、ファイルの中身が空になってしまいます。
そこで以下に変更したらエラーが出てしまいました。syntax error, unexpected T_ELSE
$rはRSSの中身だと思って、それを書き込むために$rをfopenの前に持ってこないと
ダメだと思ってif文の中に2つ$rを定義する文を入れたのですが・・・考え方として間違っていますか?

foreach ($rdf as $k=>$rssurl) {
//URLに対して固有のキャッシュパスを設定
$cache_path = 'cache/'.md5($rssurl);
if (!file_exists($cache_path) || filemtime($cache_path) < time() - (60 * 60 * 6)) {
//キャッシュファイルが存在しない、もしくは6時間以上経過
$f = fopen($rssurl);
$r =& new XML_RSS($f);
if (PEAR::isError($r)) continue;
$r->parse();
if ($r->getChannelInfo()) $ch[$k] = $r->getChannelInfo();
$ch[$k]['items'] = $r->getItems();
}
$f2 = fopen($cache_path,"w+");
fputs($f, $r);
fclose($f);
}
else {
//キャッシュを使う
$f = fopen($cache_path);
$r =& new XML_RSS($f);
if (PEAR::isError($r)) continue;
$r->parse();
if ($r->getChannelInfo()) $ch[$k] = $r->getChannelInfo();
$ch[$k]['items'] = $r->getItems();
}
usort($ch, "cmp");
}
0550nobodyさん2010/04/02(金) 09:18:47ID:BmqWcFAu
学校の休講情報メール通知プログラムを作っています。

1時間ごとにcronで休講情報発表サイトを巡回し、条件にマッチした場合指定のアドレスに休講お知らせメールを送ります。
この時、一度お知らせメールを送った後は、24時間たたないと同じ条件がマッチしてもメールを送らないようにしたいのです。

このような場合、PHP,mySQL,Cronの設定、どの部分でどのように制御すればよいのでしょうか?
ヒントだけでも教えてもらえればありがたいです。

キーワードをサイト情報とマッチさせてメールを送るスクリプトは下記です。
http://www.imagecheese.com/gallery/jpg.jpg

環境:
さくらレンタルサーバ:スタンダード PHP 5.2.12
Cronの設定期間は1時間ごと:
サーバはmySQL
CakePHPで開発です。
0551nobodyさん2010/04/02(金) 10:09:56ID:???
cakeはこっちで
http://pc11.2ch.net/test/read.cgi/php/1268874059/

メールを送った相手と、送る条件と、送信時刻
この3つが鍵なわけだからそれを管理すればいいのでは?
0552nobodyさん2010/04/02(金) 10:16:53ID:???
>>550
メール送付した時にDBに送付日時を入れておいて
次のメール送付時に前回メールの送付日時を確認して24時間たってなければ送付しなければいい

余談だは24時間という計算はDBにやらせたほうが楽
(now() - INTERVAL 1 DAY とか)
05535502010/04/02(金) 10:41:15ID:BmqWcFAu
>>551

Cakeのスレの話題かちょっと悩みました。。

>>552

ありがとうございます。 
現在は

【usersテーブル】 id, address, hash
【keywordsテーブル】 id,name,user_id

といったデータベース構成なので、keywordsテーブルに mail_sent_date というフィールドを
追加するといった形で試してみようかと思います。
0554nobodyさん2010/04/02(金) 12:46:44ID:???
>>547-548
ダメだorz・・・
chownもchmodも効かない・・・

最初にchownでファイル所有者を自分に変更して、そのあとにchmodで0646に変えてやろうと思ったんだが・・・

たぶんレンタルサーバーの管理人以外はchownできないような仕組みになってるんじゃないかな?
そしてchownできない限りchmodも無力化されてしまうと・・・
0555nobodyさん2010/04/02(金) 12:51:24ID:???
レンタルサーバー屋に聞くべき。
超能力者なら分かるかもしれないけど。
0556nobodyさん2010/04/02(金) 12:57:28ID:???
いい加減ID出せやクズが
0557nobodyさん2010/04/02(金) 13:01:17ID:???
こないだもこのネタあったな
0558nobodyさん2010/04/02(金) 13:18:04ID:H+Jv7Iis
【OS名】win
【PHPのバージョン】php5.26

全文の中から、最初の一致分「あいうえお」だけ削除したいのです。

$hoge = "あいうえお、かきくけこ、さしすせそ、たちつてと、あいうえお、かきくけこ";
$aiueo = "あいうえお";
$date = str_replace($aiueo,"",$hoge);

これだと、全ての「あいうえお」が消えてしまいますので、

$aiueo = "あいうえお";
$sakujo = "^.*?$aiueo";

このような最短マッチみたいなのを使って削除したらいんだと思いますが、
どうやればいいのか分かりません。教えて下さい。お願い致します。
0559nobodyさん2010/04/02(金) 13:24:43ID:???
preg_replaceを使うか、preg_matchでマッチした場合のみ文字数分を先頭から切ればよろし
0560nobodyさん2010/04/02(金) 13:27:11ID:???
preg_replace("/$aiueo/","",$hoge,1);
0561nobodyさん2010/04/02(金) 13:51:33ID:???
>>558
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
0562nobodyさん2010/04/02(金) 15:39:52ID:H+Jv7Iis
すみません。上の例だとうまくいくのですが、
僕がやりたいパターンの場合だとうまくいきません。

$hoge = "あいうえお---かきくけこ---さしすせそ---あいうえお---かきくけこ---さしすせそ"

みたいなランダムな文章になってて、

$pattern = "^.*?---";
mb_ereg($pattern,$hoge,$honbun);

を使って、最初の「---」までを抽出しています。
この抜き出した文章を使って

$hoge = preg_replace("/$honbun[0]/","",$hoge,1);

というプロセスを経ると、全く抜けなくなります。
forの中で実行してるので、無限ループに陥って困ってます(汗)
原因を教えて頂けませんでしょうか。
0563nobodyさん2010/04/02(金) 15:43:09ID:???
for文が終了してないからじゃないの?
0564nobodyさん2010/04/02(金) 15:48:48ID:H+Jv7Iis
すみません。forじゃなくて、whileでした。
吐き出すものがずっと同じものなので、抜けないのです。

例を上げますと

hoge ="あえ@えれ---れれあえ@れ---あえ@えれ---あえい@れえれ---えあら@れえ"

のようになってて、@マークがなくなるとwhileを抜けるようにしてるのですが、
最初の「---」までが抜けていないので、@マークが減らずに無限ループに陥るのです。

上の例の$honbun[0]は確実に、抜き出したい文章を抜き出しているのですが、
教えて頂いた構文に入れると、その該当する文章が抜けないのです。
0565nobodyさん2010/04/02(金) 16:07:46ID:???
whileの条件はなんなの?
テストしてるソース張り付けられない?
0566nobodyさん2010/04/02(金) 16:31:04ID:H+Jv7Iis
}while(false!== mb_ereg("@",$honbun));

こんな感じです。

メールアドレスを「---」で区切って格納しているものがあって、
それを上から1つずつ抜き取りたいのだけれども、全部の羅列の中に
同じアドレスが2つ以上あった場合でも、上から1つずつ抜き取りたいのです。

で、一番上のメールアドレスを「---」までで抜き取ったやつを、
$hoge = preg_replace("/$honbun[0]/","",$hoge,1);

教えて頂いた↑で抜き取ると、抜き出せないのです。

ちなみに最初は
$hoge = str_replace($honbun[0],"",$hoge);

これでうまくいっていたのですが、複数ある場合に
全部が抜き出されてしまって、困ってしまって、質問させて頂いたわけです。

0567nobodyさん2010/04/02(金) 16:35:17ID:???
正規表現に引っかかる文字入ってるとか。
0568nobodyさん2010/04/02(金) 16:40:04ID:???
$honbun[0]にpreg_quoteかけるとか。

というか文字列を --- で区切ればいいんじゃないの?
explode使って。
0569nobodyさん2010/04/02(金) 16:41:37ID:???
---で区切っちゃダメだった・・・忘れて。
0570nobodyさん2010/04/02(金) 16:48:58ID:H+Jv7Iis
$honbun[0] = preg_quote($honbun[0], '/');

とりあえずこれを入れると、簡単なソースでは成功しました。
ありがとうございました。

これから実際に使ってるプログラムの方に導入してみて、
ちゃんと動くか実験してみます。ありがとうございました。
0571nobodyさん2010/04/02(金) 17:07:28ID:???
>>544
> PHPでファイル生成時に最初から rw-r--rw- というパーミションのファイルを
> 生成できれば悩まずに済むんだけどそういう方法って無い?
umask
でも大抵はchmod。
0572nobodyさん2010/04/02(金) 17:11:15ID:???
>>570
そもそもの処理でメールアドレスに ---含む場合を想定してないので、もし出来るなら気にしてね。
0573nobodyさん2010/04/02(金) 20:09:21ID:???
>>571
> umask
> でも大抵はchmod。

ありがとう、できたわ(゚∀゚)

http://www.phppro.jp/phpmanual/php/function.umask.html
↑のサイトを参考にして

 $old = umask(0);
 chmod("file.log", 0646);
 umask($old);

でできたわ。所有者が99だったりnobadyであってもumaskつかえばchmod出来ちゃうんだね。
強力なコマンドなぶん、使い方誤るとセキュリティ的にやばそう・・・

ところで冒頭の umask(0) の引数"0"って何を意味してるんだろう?
0574nobodyさん2010/04/02(金) 20:58:12ID:peh3ZVn3
phpスクリプトから同じサーバ内のデータファイルを読み込むとして
phpスクリプト以外からアクセスすると(正確にはサーバ外のファイルから)
アクセスが弾かれるようにするにはどうすればいいんでしょうか?
0575nobodyさん2010/04/03(土) 00:10:03ID:???
>>574
ファイルへのURLを直接入れたら表示したくないってことかな?

権限を上手いこと設定するか、.htaccessあるいはapacheの設定ファイルで
その特定ファイルへのアクセスを禁止する

詳しくは「htaccess アクセス制御」等で検索するかApacheスレへ
0576nobodyさん2010/04/03(土) 10:14:00ID:dm+pMn6c
function returnstr($array) {
..
...
....
return $str;
}

この戻り値を

print <<<HTML
hogehoge{returnstr($a['test'])}hogehoge
hogehoge

HTML;

のように出力の中に書きたいのですがどのように書くのが正しいのでしょうか?
0577nobodyさん2010/04/03(土) 10:17:07ID:???
出来ない
0578nobodyさん2010/04/03(土) 10:18:58ID:dm+pMn6c
$hoge = returnstr($a['test']);
としてそれを入れるしかないってことですね。
ありがとうございます。
05795332010/04/03(土) 12:20:56ID:???
>>534
w+だともしファイルが存在していたとするとそのファイルサイズが0に強制上書きされてしまいませんか?
0580nobodyさん2010/04/03(土) 13:31:38ID:???
質問しようと思って問題部分を見直してたら自己解決した。
($hoge == "foo") で $hoge に 0 が入って true になってた。
比較演算子の問題はちゃんと把握してるつもりだったけど
やっぱりよく注意してコーディングしてないとハマるね
0581nobodyさん2010/04/03(土) 13:50:07ID:???
>>580
なんでtrueになるんですか?
0582nobodyさん2010/04/03(土) 16:17:13ID:???
真実を述べてるから
0583nobodyさん2010/04/03(土) 18:45:24ID:???
>>581
"hoge" は数字にすると0(数値に相当するものが入ってない)だから。
$hogeに数字が入ってると、自動的に数値で比較してくれる便利機能がついてる。

警告の一つも出してくれりゃいいのになぁ。
0584nobodyさん2010/04/03(土) 22:10:28ID:???
<img src="(画像ファイルへのパス)">

のように画像を開くときは画像ファイルへのパスを指定する必要があるわけですが
絶対パス(realpath()で得られるパス)は受け付けてくれません。

代わりにドキュメントルートからのパス(多くの場合はpublic_htmlから)を指定する必要があるわけですが

 /zettai/path/public_html/pic/1.gif

のように絶対パスで与えられているファイル名をドキュメントルートからのファイル名

 /pic/1.gif

に変えるにはどういう方法を使えばいいでしょうか?
0585nobodyさん2010/04/03(土) 23:17:14ID:???
文字列からドキュメントルートからのパスを切り取るというのはどうか
0586nobodyさん2010/04/04(日) 01:01:02ID:???
相対パス求めるアルゴリズム作ってたらなぜか絶対パス求めるアルゴリズム考えてたわw
しかも>>55でもうやってるしwせっかく作ったんだし公開しておこう
http://ideone.com/QMVoQhKL
0587nobodyさん2010/04/04(日) 11:32:33ID:VKZUtm2V
【OS名】FreeBSD 7.1-RELEASE-p10 i386
【PHPのバージョン】PHP 5.2.12
【連携ソフトウェア】
【質問内容】
(sakuraレン鯖使用です)

ttp://www.abe-tatsuya.com/web_prog/php/mail2php.phpのサイトを参考にして
メールを受信してtwitterに投稿するPHPを作っています。

受信したものをそのまま投稿するのは上手くいくのですが、
アドレスに応じて名前を追加しようとするとうまくいきません。
(というより別関数で本文に内容を付加するのがうまくいかないです。)

原因は何でしょうか?
(使用しているファイルを次に投稿します)
0588nobodyさん2010/04/04(日) 11:40:00ID:VKZUtm2V
>>587の続きです
[.mailfilter]
to "| /usr/local/bin/php -q /home/user/www/tweet/mail.php"

[mail.php]
<?php
#-- PEAR の Mail/mimeDecode.php を読み込む
require_once '../../pear/php/Mail/mimeDecode.php';
require_once("post.php");
require_once("xml.php");

#-- メールデータ取得
省略:参考サイト通りstdinで取得
#-- From フィールドの取得
$from = $mail_data->headers['from'];
#-- To フィールドの取得
$ToAddress = $mail_data->headers['to'];
#-- Subject フィールドの取得
$Subject = $mail_data->headers['subject'];
$Subject = mb_convert_encoding($Subject,"UTF-8","JIS");
#-- 本文の取得
$MailBody = $mail_data->body;
$MailBody = mb_convert_encoding($MailBody,"UTF-8","JIS");
//アドレス処理はあとでやる
$fff = "mail";
$aaa = add_name($fff,$MailBody);

$MailBody = $MailBody.$aaa;
//twitter投稿
Post($MailBody);

?>
0589nobodyさん2010/04/04(日) 11:44:58ID:VKZUtm2V
さらに>>588の続きです。
連投スミマセン;;
改行が多すぎるって怒られました><

[xml.php]
<?php
function add_name($from,$body){
$xml = simplexml_load_file('document.xml');
foreach($xml->person as $person){
if($person->mail == $from ){
$body = $person->name . $body;
return $body;
}
}
}
?>

[document.xml]
<?xml version='1.0'?>
<data>
<person>
<mail>mail</mail>
<name>たろう</name>
</person>
</data>
0590nobodyさん2010/04/04(日) 18:50:22ID:z61eZwKM
add_name()の返り値は確認したのか?
0591nobodyさん2010/04/04(日) 19:51:07ID:???
戻り値?返り血?
0592nobodyさん2010/04/04(日) 20:06:00ID:???
いきなりmb_convert_encodingしてるが、
本当に JIS なのか?
mb_language('uni'); // unicode
とかになってないかい?
ちなみに、mb_detect_encoding では正しく JIS が判断できないよ。
バグじゃないけどね。
05935872010/04/04(日) 21:40:37ID:VKZUtm2V
お返事ありがとうございます

>>590
質問内容が悪かったですね(汗
メール送信したときに、add_name()など関数を使うと値が返ってきません。
mail.phpをブラウザで叩いたときは値が返ってきます(echoで確認しました)

>>592
文字コードはとりあえず文字化けしなかったのであんまり気にしていませんでした><
コンバートしなくても良いといいことですか??


0594nobodyさん2010/04/05(月) 06:07:53ID:uTolPHHQ
【OS名】WindowsXP SP3
【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】

a.htmlからa.phpを呼び出しています。
a.htmlには、
<input type="checkbox" name="cb_op3" value="1">
とデフォルトでチェックがされていません。
a.phpでは、
$cb_op3 = $_POST['cb_op3'];
の様に参照しています。

チェックボックスがチェックされていない場合、
PHP Notice: Undefined index: cb_op3 in D:\htdocs\a.php on line XX
のようにPHP Noticeが出力されます。

これが出ないようにするには、どうすれば良いですか?
よろしくお願い致します。
0595nobodyさん2010/04/05(月) 06:53:11ID:???
>>594

$cb_op3 = (isset($_POST['cb_op3'])) ? $_POST['cb_op3'] : "";
0596nobodyさん2010/04/05(月) 06:58:11ID:uTolPHHQ
>>595
ご回答、ありがとうございます。
$cb_op3 = htmlspecialchars(@$_POST['cb_op3']);
とすることで、自己解決しました。
0597nobodyさん2010/04/05(月) 07:06:44ID:uTolPHHQ
【OS名】WindowsXP SP3
【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】

phpのエラーをapacheのエラーログに出力したいのですが、
出来ません。
php.iniのerror_logには何も指定していません。
phpinfo()で確認すると、C:\WINDOWS\temp\php-errors.logとなっています。
試しに、
error_log = "L:\logs\php.log"
error_log = "L:\\logs\\php.log"
等を指定しても、
phpinfo()で確認すると、C:\WINDOWS\temp\php-errors.logと変わりません。

知っている方、よろしくお願い致します。
0598nobodyさん2010/04/05(月) 07:37:57ID:???
>>597
phpinfo() の Loaded Configuration File と別の php.ini を書き換えたりしてない?
0599nobodyさん2010/04/05(月) 07:51:41ID:uTolPHHQ
php.iniをよく見たら、

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
の項に
error_log="C:\WINDOWS\temp\php-errors.log"
の記述が。。。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
の項の
error_log = filename
ばかり変更していました。


でも、紛らわしいよ。。。



ありがとうございました。
0600nobodyさん2010/04/05(月) 22:18:52ID:afFcX18l
【OS名】FreeBSD
【PHPのバージョン】php5.10
【連携ソフトウェア】なし
【質問内容】
csvでやっていた処理を、拡張性を見据えてxmlにしようと思って実験中ですが、疑問ができたので質問させて頂きます。
SimpleXMLElementを使っているのですが、
これは読み出し及び項目追加には便利だとは思います。
しかし、<data></data><data></data>などの配列化した項目を消したりしようとすると途端に不便になりました。
こういうものなのでしょうか?
popやshiftに相当するものを使用し、最後にasXMLで書き出せるというのが理想なのですが、
一度全部読み出し、もう一つオブジェクトを生成し、そちらにプロパティを移して新しいオブジェクトから書き出す
というのはどうも違和感があります。
0601nobodyさん2010/04/05(月) 22:23:23ID:???
$xml = simplexml_load_file($filepath);
foreach($xml->hoge as $foo){
 if ($foo->updatedate+(24*60*60) < time()){
  $foo = null;
 }
}
$xml->asXML($filepath);
例えばこういった組み方をすると、空のゴミタグが残ってしまいますが、ゴミタグも消したいのです。
何か代換手段は無いものでしょうか
0602nobodyさん2010/04/05(月) 22:29:17ID:afFcX18l
すいません。>601age忘れました

現在はこうやっていますが、最初のnewxmlの定義が面倒です

$xml = simplexml_load_file($filepath);
$newxml = new SimpleXMLElement("<?xml version='1.0' ?>\n<root></root>");
$newxml->addChild("bar1",$xml->bar1);
$newxml->addChild("bar2",$xml->bar2);
$newxml->addChild("bar3",$xml->bar3);

foreach($xml->hoge as $foo){
 if ($foo->updatedate+(24*60*60) >= time()){
  $newxml->addChild("hoge",$foo);
 }
}
$newxml->asXML($filepath);
0603nobodyさん2010/04/05(月) 22:30:47ID:afFcX18l
実際にはhogeの部分も階層化させるため、もっと複雑な処理になります。
0604nobodyさん2010/04/05(月) 22:36:54ID:???
【OS名】何でも
【PHPのバージョン】php5.3
【連携ソフトウェア】sqlite3
PHP5に標準搭載されているSQLite3 拡張モジュールで質問です。
close()は必須なのでしょうか? たとえば
$db = new SQLite3("hoge.sqlite");
try {
 $result = $db->query("select ...");
 $row = $result->fetchArray();
 return $row["hoge"];
} catch (Exception $e){
 die();
}
$db->close();
なんていうサンプルを時々見かけますが、これって僕のPHP文法の
理解が正しければclose();は通りませんよね?また
$db = new SQLite3("hoge.sqlite");
try {
 $result = $db->query("select ...");
 $row = $result->fetchArray();
 $hoge = $row["hoge"];
 $db->close();
 return $hoge;
} catch (Exception $e){
 die();
}
だったとしても例外時にはclose()されませんよね? これは
} catch (Exception $e){
 $db->close();
 die();
}
とかいちいちやるものなんでしょうか?
0605nobodyさん2010/04/05(月) 22:58:06ID:???
デストラクタと言うものがあってだな
不要になったときに自動で解放される
0606nobodyさん2010/04/05(月) 23:08:13ID:???
>>605
ということは明示的にcloseしたい理由がなければ放置でもOKってことですか?
上記の例では1番は論外としても2番か、それか記述せずでもOKと?
0607nobodyさん2010/04/06(火) 00:32:21ID:???
実行が終わる直前や

$db = new SQLite3("hoge.sqlite");
たとえばこの変数に
$db = null; とか
$db = array(); とか
$db = new SQLite3("hoge.sqlite"); とか
のように上書きしてしまってもう使えなくなってもデストラクタが動く
0608nobodyさん2010/04/06(火) 00:34:24ID:???
なるほど。じゃあ実質不要ですね。気にしないことにします。
サンクス。
0609nobodyさん2010/04/07(水) 02:22:36ID:DRQlFq+M
フォームからの情報を受け取りたいのですが
urldecodeは必要ですか?
$_GET[] の時点で既にurldecodeされてるのでしょうか?
0610nobodyさん2010/04/07(水) 02:59:21ID:???
<?php
echo print_r($GET);
?>
してみなよ
0611nobodyさん2010/04/07(水) 03:12:56ID:???
やってみます
0612nobodyさん2010/04/07(水) 06:13:24ID:dfs6oC5W
function checkCookie(){
if($_COOKIE['checkCookie']){return 1;}
else{
$expire = time() + 86400*14;
if(setcookie("checkCookie",time(),$expire)){return 1;}
else{return 0;}
}
}

このような関数を作ってクッキーが有効かチェックしたいのですが、オフにしても0が帰ってこないようです。
原因わかりますか?
0613nobodyさん2010/04/07(水) 06:17:39ID:???
>>612
if(setcookie("checkCookie",time(),$expire)){return 1;}
ブラウザの設定でOFFにしてもサーバから送信は可能だから
ここがとりあえず成功しちゃうんだと思われる

0614nobodyさん2010/04/07(水) 06:27:00ID:dfs6oC5W
>>613
ありがとうございます。
ということは、
セットする→セットしたクッキーが存在するか否か
という処理だと行けるってことですよね?
0615nobodyさん2010/04/07(水) 06:32:37ID:???
>>614
一度の処理中での確認はできない
一回送信して次回のリクエストで帰ってくるかどうかでのチェックが必要。

俺がたまにやるのは、ページでセットして、JSでチェックする

index.php
<?php
setcookie("checkCookie",time(),$expire);
?>
<html>
<head>
<script type="text/javascript" src="check_cookie.php"></script>
</head>
</html>

check_cookie.php
<?php
if (!isset($_COOKIE['checkCookie'])) print "alert('no cookie!')";
?>
0616nobodyさん2010/04/07(水) 06:39:12ID:dfs6oC5W
>>615
わかりました。
さんくすです
0617nobodyさん2010/04/07(水) 07:56:30ID:3KWYoUnh
【OS名】WindowsXP SP3
【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】

php5.2.13に対応しているeAcceleratorのバイナリを配布しているサイトはありますか?
0618nobodyさん2010/04/07(水) 08:03:06ID:???
試してないけど
http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds
「eAccelerator 0953 for PHP 5.2.10」とかでいいんじゃないかな
0619nobodyさん2010/04/07(水) 12:05:21ID:qoBEK7gJ
指定したURLに何秒後かに飛ばすことは出来ますか?
0620nobodyさん2010/04/07(水) 12:12:46ID:???
>>619
5秒後にnext.htmlへ飛ばす
header( 'refresh: 5; url=next.html' );

ちなみにHTMLのタグでも可能
<head>
<meta http-equiv="refresh" content="5;URL=next.html">
</head>
0621nobodyさん2010/04/07(水) 12:28:57ID:???
headerはブラウザの設定により飛ばないからmetaの方が良いかも
0622nobodyさん2010/04/07(水) 12:37:23ID:qoBEK7gJ
ありがとうございます。metaでやってみます
0623nobodyさん2010/04/07(水) 13:29:34ID:3KWYoUnh
>>618
5.2.13に対応していますか?
0624nobodyさん2010/04/07(水) 13:45:29ID:???
>>623
わからないから>>618は無視してくれ、すまんな
0625nobodyさん2010/04/07(水) 14:33:07ID:W7cZb24v
掲示板の書き込み確認画面で書き込み内容を表示するときは改行文字を<br>にして表示します。
同意して書き込む際に、hiddenで送る内容ですが、仕様上<br>などのタグをhiddenに含めるとエラーに成ります。
なので、hiddenには<br>などで置換していない状態の書き込みを入れたいのですが、この場合、改行文字がhtmlソースで働いてhtmlソースが乱れてしまいます。
何かで改行文字を置換したいのですが何がいいでしょうか?2chの場合「?」で置換されているようです。
0626nobodyさん2010/04/07(水) 14:47:15ID:???
<input type="hidden" value="aaa

bbb">
みたいな感じでそのままでもいいと思うけど、どうしても変えるなら

<input type="hidden" value="aaa\n\nbbb">
とかかな
0627nobodyさん2010/04/07(水) 14:50:15ID:W7cZb24v
>>626
2chの改行文字の&#10;は全角のはてな。
全角のはてなだったら問題ないですね!
これでいきます。
0628nobodyさん2010/04/07(水) 14:52:19ID:???
全角のはてなの入った文はどうするの?
0629nobodyさん2010/04/07(水) 15:06:59ID:W7cZb24v
改行文字を&#10;で置換して、それをhiddenに入れる。

&#10;を<br>に置換する。

全角のはてなを「&#10;」の実体表記で書かれる、それは&amp;#10になるはず・・・
0630nobodyさん2010/04/07(水) 15:45:55ID:OLVUqXLt
header("Location: ./test.php");
で飛ばす時に一緒にPOSTで値などを渡したりする方法はありますか?
0631nobodyさん2010/04/07(水) 15:46:59ID:???
セッション使えセッション
06326302010/04/07(水) 16:04:23ID:OLVUqXLt
>>631
ありがとうございます。
携帯でもセッション使えるかどうか試してみます。
06336302010/04/07(水) 17:11:09ID:OLVUqXLt
先ほど質問したばかりなんですがすんません。
#index.php
session_start();
$_SESSION['riremito']='ばしるーら';
header("Location: ./test.php");

#test.php
session_start();
echo $_SESSION['riremito'];
としているのに表示されないのですが、書き方間違ってますでしょうか?
0634nobodyさん2010/04/07(水) 17:16:17ID:3KWYoUnh
>>624
いいえ、ありがとうございます。
0635nobodyさん2010/04/07(水) 17:22:16ID:???
>>633
携帯ならsession.use_trans_sidで検索
0636nobodyさん2010/04/07(水) 17:33:46ID:3GsFBU25
mb_regex_encoding("UTF-8");
if(mb_ereg( "[a-z]*",$string))
てすると全部TRUE返ってくるんですが
アルファベットのみの文だけ拾いたいのです
NoEditorというエディタだと拾ってるんですが
どういう事なんでしょうか?
0637nobodyさん2010/04/07(水) 17:41:14ID:???
>>636
0文字の[a-z]にマッチする
0638nobodyさん2010/04/07(水) 18:01:53ID:???
ありがとう*
0639nobodyさん2010/04/08(木) 01:08:32ID:bQ9+sypi
みなさんこんばんは

外部サイトの画像をリサイズしてキャッシュして表示する
スクリプトかAPIのようなものを探してるんですが、
探してる途中にgoogle app engineで作ったと思われる
以下のようなもの(image-resize.appspot.com)を発見いたしました。
ttp://groups.google.co.jp/group/google-appengine/browse_thread/thread/56ba9c4e8fa23d4a

これを画像URLを入れ替えて勝手に自分のサイトで使うと怒られたりしますか?
ちなみに当方英語は読めません
0640sage2010/04/08(木) 09:23:03ID:???
せめて翻訳サイトで見てみるくらいしてみろよ
06416252010/04/08(木) 09:41:24ID:L4uu4ArY
昨日、掲示板の改行文字の件で質問したものですが&#10;ではうまくいきませんでした。
なにか他の考え方がある方はいますでしょうか?
0642nobodyさん2010/04/08(木) 09:51:26ID:???
>>641
改行文字を変換する理由はなに?
0643nobodyさん2010/04/08(木) 09:59:22ID:L4uu4ArY
>>641
調べてみたら「&#10;」って改行文字だったんですね。
2chに書くと全角のはてなになったので勘違いしてました。

2chのように、
フォームから入力してPOSTで送信

確認画面

書き込み

という仕組みなんですが、確認画面で表示するのは改行文字を<br>に置換しますが、書き込み用にhiddenに入れるのを
<br>で置換するとサーバー側の仕様(タグの受信がNGなのです)でエラーを吐いてしまいます。
0644nobodyさん2010/04/08(木) 10:06:18ID:???
>>643
だからhiddenに入れるのをなんで<br>に置き換える必要があるの?
0645nobodyさん2010/04/08(木) 10:08:00ID:???
釣りじゃないの?
0646nobodyさん2010/04/08(木) 10:09:44ID:L4uu4ArY
>>643
hiddenにいれるのが\nのままだとhtmlソースに変な改行が入ってしまうのが気になってるからです。
0647nobodyさん2010/04/08(木) 10:13:24ID:???
つ php エスケープ
0648nobodyさん2010/04/08(木) 10:59:42ID:???
>>646
試してないけど\nを\\nに置き換えればいけるかも

//変換
$text = strtr($text, array("\\" => "\\\\", "\n" => "\\n"));
print $text;

//復元
$text = strtr($text, array("\\\\" => "\\", "\\n" => "\n"));
print $text;

ただ置き換えたい理由を未だ理解できない・・
0649nobodyさん2010/04/08(木) 11:30:09ID:???
<br>にしたままでいいから、 hiddenのとこに書き出すのは  htmlspecialchar かけて。

0650nobodyさん2010/04/08(木) 12:07:50ID:???
それだと2重になるからだめじゃない?
0651nobodyさん2010/04/08(木) 12:12:27ID:bQ9+sypi
>>640
翻訳ぐらいしてるわボケ
お前はコードまで一緒に訳される機械翻訳で意味分かったのか?
0652nobodyさん2010/04/08(木) 12:22:38ID:???
>>646
htmlに余計な改行が入ってソースが気になるなら、そもそもがhiddenなんかに持たせずにphpのsessionに保存すれば?
どうせ、確認画面で表示だけだと値をpost出来ないからhiddenに持たせようとかそんな程度の話でしょう?(勝手な妄想だから、違っても気にするな)
textareaタグを使って、見た目をただの表示っぽく調整するとか、方法はいろいろあると思うけどね。

やりたい事の実現方法案を自分で決めてしまって、その案に対しての技術的な質問をしてもなかなか解決しない場合があるよ。
何のためにhiddenで値を保持しようとしているのか、まずはそこから話さないとアドバイスしにくいんじゃね?
0653nobodyさん2010/04/08(木) 12:25:35ID:???
そういうのにSIDを使いまわすのが理想的なのかは個人による。
たぶんやりたいのは投稿内容の確認画面ではないかとエスパー。
0654nobodyさん2010/04/08(木) 12:27:24ID:???
>>651
640じゃないが、機械翻訳したうえで、オリジナルサイトと両方見ながら読む努力しろよ。
コンピュータ用語なんてまともに翻訳できなくて当たり前なんだから。

そもそも、コードが翻訳された部分なんて、
>これを画像URLを入れ替えて勝手に自分のサイトで使うと怒られたりしますか?
こんなことを知るうえでは無関係な場所だから読む必要ないだろ。
0655nobodyさん2010/04/08(木) 12:59:45ID:bQ9+sypi
>>654
要約するとグーグルのリソースだからつかってもオッケイと言う解釈でオッケイですか?
プログラミングのプロのみなさんのコンプライアンス・ガバナンスの見地に基づいた意見を求めております
0656nobodyさん2010/04/08(木) 13:01:53ID:???
654を

>要約するとグーグルのリソースだからつかってもオッケイと言う解釈でオッケイですか?

こう解釈する奴では、何を教えて貰っても無駄だろ。
0657nobodyさん2010/04/08(木) 13:06:01ID:???
最近の開発者はコピペしまくりだものw
0658nobodyさん2010/04/08(木) 13:06:24ID:bQ9+sypi
雑魚の意見は求めてません
0659nobodyさん2010/04/08(木) 13:08:27ID:???
>>658
あ、わるい。
ずぼしだったんだねW。
0660nobodyさん2010/04/08(木) 13:09:35ID:bQ9+sypi
お前ら、聖人気取りで上から目線だけど
これは良いサイト教えてもらったわ
俺も使っちゃおうとか思ってないか?
とんでもない奴らだな・・・
0661nobodyさん2010/04/08(木) 13:17:38ID:???
>>660
他サイトキャプチャなんて過去スレで既出

本当に翻訳してるのか?
ライセンスにはGPLって書いてあるだろ
06626542010/04/08(木) 13:17:40ID:???
>>656
すげーガッカリです。
> コンプライアンス・ガバナンス
こんな言葉を使ってるくせに、ソースに使用条件が書かれてると思ってるやつの相手をした自分が馬鹿だったね。

>>657
それは開発とは言わん・・・けど
昔後輩として入ってきたやつもそんなことやってたな・・・・
で、一つの関数内で、一つの値を異なった変数名で扱って、まともな動作をしなかったり・・・・
プログラムに向いてない頭としか思わなかったけど。

0663nobodyさん2010/04/08(木) 13:23:27ID:fqmdAirf
質問です。

とあるPHPファイルをincludeして、その中で停止してあるクラスのインスタンスを取得したいとします。
(それを、2〜3回行います)

$name = 'hoge';
require_once($name . ".php");
$c = new $name; // ファイル名と、そのファイルで定義されているクラス名が同じというルールとします。

ただ、こうするとファイル名がかぶった時(別フォルダに、同じ名前のPHPファイルがある)に、クラス名が二重定義になってしまいます。
そこで次は、パスも含めるとします。

$name = 'hoge/are';
require_once($name . ".php");
$c = new str_replace('/', '_', $name); // スラッシュをアンダーバーに置換したものを、クラス名とします。

ただ、これをするとPHPファイルの配置場所が変わった時に、クラス名も変更する必要があり面倒です。
また、そもそもクラス名をいちいちルールにのっとって書かせるのも面倒くさがられるでしょう。

・無名クラスはつくれないのでしょうか?(調べた限り発見できず)
-------$name .php の中身---------
return class{
function hoge(){}
};
---こんな感じでインスタンスを返す---

・一度定義したクラスを、無効にすることはできないでしょうか?
クラス名を全て統一し、2度目、3度目のrequireの前に以前のクラス定義を無効化する

・クラス名を、ファイルパスなどから自動的に生成することはできないでしょうか?
class str_replace('/', '_', __FILE__){} のようなことはできませんでした
0664nobodyさん2010/04/08(木) 13:24:07ID:bQ9+sypi
>>661
>他サイトキャプチャなんて過去スレで既出
外部画像リサイズです。全然違います。

>ライセンスにはGPLって書いてあるだろ
それはコードのライセンスでしょ。
0665nobodyさん2010/04/08(木) 13:25:27ID:fqmdAirf
while('' != $name)
{
require($name . ".php");
$c = new $name;
$name = $c->run(); // 正常終了したら "" を返す。他のクラスに処理をおまかせしたかったら、そのクラス名を返す
}

こんな感じで使うことを想定しています。
0666nobodyさん2010/04/08(木) 13:26:04ID:???
>>660
お前の知識が乏しすぎるだけ。
そもそも、誰も上から目線じゃねーだろ。
お前が努力していないのを指摘してるだけ。

普通にそういうの理解してる連中は、読む努力、理解する努力をしてるの。
お前みたいに「英語嫁ねー」「機械翻訳よみずれー」なんて程度で「教えて」って騒ぐやつに細かく答えてたらきりがないんだよ。
0667nobodyさん2010/04/08(木) 13:28:43ID:bQ9+sypi
>>662
リソースとソースを勘違いしてないか?
俺が言ったのは「グーグルのリソース」でソースコードの事じゃないよ
0668nobodyさん2010/04/08(木) 13:29:06ID:???
ここはそういう奴もOKなスレではあるはずだけど

>・ 質問者として、態度をわきまえること。
これが読めない奴は消えろ
0669nobodyさん2010/04/08(木) 13:36:41ID:???
みんな熱くなって気づいてないけど
そもそもがPHPの質問でもない
0670nobodyさん2010/04/08(木) 13:37:48ID:bQ9+sypi
663さんが可愛そうなのでまた夜にでも来ます^^
663さんを一致団結して支えてください
それまでに俺の答えを用意しとくように
06716612010/04/08(木) 13:42:48ID:???
>>664
>>670
コード読んで無かった、すまんね。

http://image-resize.appspot.com/?url=http://image.gsfc.nasa.gov/image/image_launch_a5.jpg&width=200&height=200
このurl=の部分を変えてimage-resize.appspot.com上で動かすって意味か

そのURLはあくまでもサンプルで、それ用のAPIを公開しているわけではないから一般的にNG。
使い続けても平気かもしれないけど、そもそもそのサイトが存続する保証はないからやめとけ

他サイトの画像を取得してリサイズなんてphpで簡単にできる。
file_get_contentsで画像とってきてGDかimagemagickでリサイズかければいい
リサイズ部分は「class.image.php」とか使うとさらに楽
0672nobodyさん2010/04/08(木) 13:56:29ID:???
こんな奴に丁寧に答えること無いのに
0673nobodyさん2010/04/08(木) 16:15:03ID:???
お前ら煽りには全力で釣られるのに、真面目な質問は全スルーなのなwwww
0674nobodyさん2010/04/08(木) 16:38:25ID:???
>>663
クラスの名前とクラスのファイル名を結ぶところと
実際のクラスのインクルードしてインスタンスを返すクラスを作ったらどうですか。
あと、クラス名がダブる問題は、パス含めれば解決するというのは間違いだと思うけどな。
0675nobodyさん2010/04/08(木) 17:18:57ID:fqmdAirf
>>674
レスありがとうございます。
ちょっとおっしゃっていることが理解できないのですが…。推測で。

ファクトリークラスを作ればよい。ということでしょうか。
それでも結局クラス名をユニークにする必要がありませんか?
どんな階層(includeした中でincludeされたファイルとか)でクラスが定義されても、結局グローバル空間で定義したのと同じ扱いになってしまうようなので。


>あと、クラス名がダブる問題は、パス含めれば解決するというのは間違いだと思うけどな。
a/b_c.php
a_b/c.php

が同じになってしまうので、厳密には解決しませんね。
(ということですよね?)
0676nobodyさん2010/04/08(木) 17:21:47ID:???
モジュール処理などでループさせる時にそういう処理を考えるわ。
そういや、return new require class();でnew require($path);とか出来ないのだろうか、
あとで試してみよっと。
0677nobodyさん2010/04/08(木) 19:19:04ID:QzEBA4At
php+mysqlでの質問です。

mysql関数を使用し、使いやすく穴もないライブラリを作成したとします。

この状態でpdo_mysqlを使用する利点はありますでしょうか?

DBはpgsqlなどに変更せず、mysql一択とします。
0678nobodyさん2010/04/08(木) 19:34:57ID:???
>>677
PDOだとプリペアドステートメントによる2回目以降のキャッシュが期待できるくらいかな
0679nobodyさん2010/04/08(木) 21:36:49ID:i++uHGbD
exit()について質問させてください。
登録用フォームを作っていて、入力欄が空の時に入力を促すために
if文の中でexit("〜を入力して下さい。<a href=hoge.php<戻る</a>";としています。
ブラウザでは特別問題なく表示されていますが、ソースを見ると、当然exitのところで終了しているので、
ヘッダ部分</body></html>などはごっそり抜けてしまいます。
対象が携帯向けなのですが、exitを使用した場合なにか支障が起きますでしょうか?
0680nobodyさん2010/04/08(木) 23:29:39ID:Ypj7nZm8
こんばんわ、セッションの勉強をしてます
ためしに作った以下のカウントスクリプトが動きません。何ででしょうか?

<?php
session_start();
if(!isset($count)) $count=0;
session_register("count");
$count++;
?>

<html>
<body>
セッション名は<?php echo session_name() ?> です。<br>
セッションIDは<?php echo session_id() ?> です。<br>
あなたは <?php echo $count ?> 回目の訪問です。
<a href="<?php echo $PHP_SELF ."?PHPSESSID=".$PHPSESSID ?>">カウントを増やす</a>
</body>
</html>
0681nobodyさん2010/04/08(木) 23:57:17ID:???
register_globalsがoffだから動かないだけ。
ただしsession_registerが先々使えなくなるので使わないのが吉。

検索してマニュアルに目を通せば1分で解決する。
0682nobodyさん2010/04/09(金) 00:19:32ID:???
>>679
不安なら
ob_start('footer');
function footer(){
 echo '</body></html>';
}
06836772010/04/09(金) 00:54:25ID:2yEYSOQo
>>678
プリペアド・ステートメントのキャッシュは盲点でした。
が、1コネクション毎のようなので、今のところ使う機会がほとんどなさそうです…

あえてpdo_mysqlを使う必要はないということですね。
ありがとうございました。
0684nobodyさん2010/04/09(金) 01:18:50ID:???
>>679
まぁHTMLなんて閉じタグなくても滅多に問題おきないから
気にするとしたら自分の満足感くらいだと思う
0685l2010/04/09(金) 02:43:58ID:CD4rw/LK
テキストを1行づつ
$code = mb_detect_encoding($str);
$str_out = mb_convert_encoding($str,"UTF-8",$code);
とすると「m」「l」があるところで
Warning: mb_convert_encoding() [function.mb-convert-encoding]: Illegal character encoding specified in
となります。見た目同じなんですがコピペ検索すると互いに一方はヒットしないです。
FireFoxのアドレスバーにコピペすると□になります。
何なん?なぁ何なん?もう分からへんわ
です。教えてください。
0686nobodyさん2010/04/09(金) 05:43:46ID:???
PearのHTTP_Request2を使ってるんですが、
リクエストで複数行のcookieを送ることはできないんでしょうか?
会員サイトで一度ログインしたセッションを使って再度内容を取得したいのですが、
レスポンスはcookieが2行で返ってくるのにリクエストでは1行しか送れないようでセッションが継続できず困っています。
0687nobodyさん2010/04/09(金) 05:44:38ID:q/M4MThC
PearのHTTP_Request2を使ってるんですが、
リクエストで複数行のcookieを送ることはできないんでしょうか?
会員サイトで一度ログインしたセッションを使って再度内容を取得したいのですが、
レスポンスはcookieが2行で返ってくるのにリクエストでは1行しか送れないようでセッションが継続できず困っています。

age忘れたのでageます
0688nobodyさん2010/04/09(金) 06:26:28ID:???
>>685
エラーはエンコーディングの検出に失敗してるせい
毎行 mb_detect_encoding() をする意味が分からないが…

>>686
HTTP_Request2#addCookie() を2回呼ぶだけで良さそうよ
http://pear.php.net/package/HTTP_Request2/docs/0.5.1/__filesource/fsource_HTTP_Request2__HTTP_Request2-0.5.1Request2.php.html#a505
0689nobodyさん2010/04/09(金) 06:36:59ID:q/M4MThC
>>688
言葉足りず申し訳ないんですがそれだと
set-cookie: name=value; name=value
になってしまうんです
0690nobodyさん2010/04/09(金) 06:50:36ID:???
>>689
なぜHTTPリクエストに Set-Cookie が出てくる
Cookie: name1=value; name2=value なら仕様通りの動きだが
0691nobodyさん2010/04/09(金) 06:54:45ID:q/M4MThC
Set-CookieじゃなくてCookie:でした
0692nobodyさん2010/04/09(金) 08:12:43ID:???
domainやpathが同じだけどもnameとvalueが異なるクッキーを2行送ってくるので
リクエストの際も2行で送りたいのです
現状のaddCookieに2行分を詰め込む方法などはあるのでしょうか?
0693nobodyさん2010/04/09(金) 08:54:04ID:???
cookienameを変えたら?
nameがcookienameの話ならならname=valueを独自変換して取り扱えばいい
0694nobodyさん2010/04/09(金) 10:20:04ID:???
質問が抽象的で何がしたいのかさっぱりわからないんだけど、よく回答できるな
06956802010/04/09(金) 11:11:26ID:1iWtWM0x
>>681
エスパー先生有難うございます。
3分かかっちゃいましたけど解決しました〜;;
0696nobodyさん2010/04/09(金) 13:40:02ID:???
>>688
ファイルを丸ごとエンコードする方法があるのですか?
0697nobodyさん2010/04/09(金) 13:48:56ID:???
逆にmb_convert_encodingに一行しか入れてはならないと誰が決めたのか聞きたい
0698nobodyさん2010/04/09(金) 14:13:35ID:???
誰も決めてなかったらしくエラー吐かなくなった
えらいぞ俺
0699nobodyさん2010/04/09(金) 15:29:21ID:Mp0D6Mth
POSTで送信されたか調べる時、REQUEST_METHODを付けて

if($_SERVER['REQUEST_METHOD'] == "POST" && $_POST["text"] != "")

みたいな方法を知り合いから「するべき」と言われたのですが、
これって別にREQUEST_METHODを付けなくても良いのではないでしょうか?
if($_POST["text"] != "")
だけあれば、十分「POST[text]に値が存在するか)を調べられると思うのですが・・・

なにか理由があってREQUEST_METHODを付ける場合は、その理由を教えてください。
0700nobodyさん2010/04/09(金) 18:35:51ID:???
POSTされていないときに、 $_POST["text"] != "" が null で通るからかな。
0701nobodyさん2010/04/09(金) 18:40:19ID:???
未定義と空の文字列を1つの式で検出するテクニック
if( isset($_POST['example'][1]) ){

}
0702nobodyさん2010/04/09(金) 19:33:09ID:???
>>701
それだと$_POST['example']がない場合にエラーでない?
0703nobodyさん2010/04/09(金) 19:35:30ID:???
へぇ、出なかった!
ほんと自由な言語だわ
07046992010/04/09(金) 20:04:18ID:Mp0D6Mth
みなさんありがとうございます。
少し疑問に思ったのですが、>>700のってどういう場合に起こりえるのでしょうか?
外部フォームからPOSTされたとしても通らないと思うし。
「POSTされてないとき」の場面が想像できません。
0705nobodyさん2010/04/09(金) 20:15:57ID:???
どんまい
0706nobodyさん2010/04/09(金) 20:22:33ID:???
>>704
クライアントからどういうデータがくるかなんてわからない
メソッドなんて自由に変えられるし、
HTML改ざんして$_POST["text"]に該当するフォームを消すこともできる

0707nobodyさん2010/04/09(金) 20:33:09ID:???
ポストされたけど値が無いのと、ポストされてないけど(とうぜん)値が無いときと分ける必要がなければそうだね。
0708nobodyさん2010/04/10(土) 09:26:10ID:3YvP476N
if文での and と ネスト で質問があります。

and でつなげられる場合、出来る限りネストを使わないほうが
処理は速くなるのでしょうか?
0709nobodyさん2010/04/10(土) 10:14:52ID:???
別に同じ
0710nobodyさん2010/04/10(土) 14:30:13ID:???
1994年生まれの人集まれ!★3
http://gimpo.2ch.net/test/read.cgi/nendai/1269784099/
0711nobodyさん2010/04/10(土) 14:54:51ID:3YvP476N
>>709

ありがとうございます。
同じだったとは。。

ループは重くなりやすいけど、ifのネストは関係ないのですね。
0712nobodyさん2010/04/10(土) 15:02:37ID:3YvP476N
たびたび申し訳ありません。

mb_strpos($allInfo, $key) !== FALSE
mb_strpos($allInfo, $key) == TRUE

上と下は同じと考えてよいでしょうか?

可視性から下にしたいのですが、サンプルコードが上のやり方で
書いてあることがよくあるのです。
0713nobodyさん2010/04/10(土) 15:09:07ID:???
全然違う
0714nobodyさん2010/04/10(土) 15:14:07ID:???
>>712
関数の戻り値を調べれば何故そう書いているのかわかると思うんだがな

TRUEと同等値が戻ってきた時とFALSE以外が戻ってきた時
0715nobodyさん2010/04/10(土) 15:32:22ID:3YvP476N
>>713 >>714

ありがとうございます。

mb_strpos
文字列 haystack の中で needle が最初に現れる位置を数字で返します。 needle が見付からなかった場合、FALSE を返します。

と書いてあるので、trueを返すのはでく、数字で返すからこのような書き方じゃないといけないわけですね。
勉強になりました。
0716nobodyさん2010/04/10(土) 16:58:06ID:+kV5bvKp
配列の値を含む文字列を判定するこんな感じの関数ってありますでしょうか?
無いならこのまま使うんですが元々あるならそっち使いたいと思いまして。

function test($arr,$str){
foreach ($arr as $a){
if( strpos($str,$a) !== FALSE )
return TRUE;
}
return FALSE;
}
0717nobodyさん2010/04/10(土) 17:20:07ID:Q/DxsTmS
phpでエラーが発生すると
Warning: 〜 in /home/aaaa/aaaa.php on line 337
みたいにエラーが表示されますが、これを隠すことは出来ますか?
例えば、「エラーが発生しております」のような別の文言にカエルのでもOKです。
0718nobodyさん2010/04/10(土) 17:29:37ID:???
>>716
strpos(implode($arr), $a)
でいいんじゃない?
>>717
エラー制御演算子
error_reporting
display_errors
trigger_error
とか
0719nobodyさん2010/04/10(土) 17:31:25ID:???
ごめん最後はerror_handlerだった
0720nobodyさん2010/04/10(土) 17:41:00ID:Q/DxsTmS
>>718
エラー制御演算子初めて知りました
ありがとうございます
0721nobodyさん2010/04/10(土) 19:18:53ID:+kV5bvKp
>>718
それは結果が違ってくると思います。
おそらく preg_match('/'.implode('|',$arr).'/',$str) > 0 もできないことはないですが
正規表現使わず配列で解釈させたいので>>716のような関数がないのならあのまま使うことにします。
0722nobodyさん2010/04/11(日) 00:06:02ID:???
>>721
結果が違うってなんで?
0723nobodyさん2010/04/11(日) 02:16:00ID:???
>>722
function test($arr,$str){
foreach ($arr as $a){
if( strpos(implode($arr),$a) !== FALSE )
return TRUE;
}
return FALSE;
}
じゃわけわからんし

function test($arr,$str){
if( strpos(implode($arr), $str) !== FALSE )
return TRUE;
return FALSE;
}
のつもりだったとしてもおかしいだろう
0724nobodyさん2010/04/11(日) 02:28:18ID:???
>>723
おかしいってなんで?
0725nobodyさん2010/04/11(日) 02:29:55ID:???
実際走らせてみればいいじゃん。
0726nobodyさん2010/04/11(日) 02:37:29ID:???
>>723が何をいいたいのかはよく分からないけど、

$arr[0] = 'ab'
$arr[1] = 'bc'
で、abを検索するとマッチしちゃうようになると思うよ。
0727nobodyさん2010/04/11(日) 02:38:25ID:???
じゃないや、bbです。
>>723の後者はこれを言ってんのかな
0728nobodyさん2010/04/11(日) 02:49:16ID:???
$str = 'ABC';
$arr = array('AA','AB','AC');
var_dump(
    // AA,AB,ACのどれかが ABC内にあれば真→○
    test($arr, $str),

    // AAABAC が ABC内にあれば真→×
    strpos(implode('',$arr),$str)!==FALSE
);
function test($arr,$str){
    foreach ($arr as $a){
        if( strpos($str,$a) !== FALSE )
            return TRUE;
    }
    return FALSE;
}
求めてるのは上の機能であって下のではないんでないの。
配列の値から文字列探索すんなら in_array array_search 使えばいいだけだし。
0729nobodyさん2010/04/11(日) 03:45:47ID:???
implode使うって話はstrpos($str, implode('', $arr))なんだとおもうよ。
配列の中身を全部連結したものに対して検索すればいいんでない?っていう。
0730nobodyさん2010/04/11(日) 07:03:55ID:???
>>729
パラメータが逆だし
strpos(implode($arr), $str)だと境界がなくなるので結果が変わるっていうことでしょ
絶対に使いそうもない文字をはさんで文字列を作ればOK
strposはバイナリデータOKなので例えば
strpos(implode(0x00,$arr), $str)
0731nobodyさん2010/04/11(日) 08:06:03ID:???
>730
注意: implode()は、歴史的な理由により、引数をどちら の順番でも受けつけることが可能です。
0732nobodyさん2010/04/11(日) 10:01:49ID:3X2bc6FO
配布されてるスクリプトを見ると、
いちいち設定ファイル以外のメインスクリプトでdefinedで定数をチェックして、
なかったら定義したりしてますが、
あれはユーザーが定数を設定するとき削除したりコメントアウトしたり、
予期せぬことをしたときの対策にやっているのでしょうか?
もしそうなら個人的にはそんな勝手にいじるなら動かなくて当たり前ですよ的なスタンスでいいと思うのですが、
何か他に意味はあるのでしょうか?
0733nobodyさん2010/04/11(日) 10:25:51ID:???
>>732
予想外のスクリプトを叩かれた場合の誤動作の穴が生じるのを防ぐため
0734nobodyさん2010/04/11(日) 10:39:38ID:???
いままでMYSQLを必要な分だけぐぐって使ってたのですが、DBサイト作るにあたって真面目に
DB基礎本読んで正規化を学んだんですが、
PHPのサイトや最近流行のPHP+MYSQL本を読んでも、外部キーや参照の話って全くありません。
重複した値があるフィールドは別テーブルにするとか、正規化しても
外部キーとかつかった実例が紹介されてないので、実装していいものか悩みます。
PHP+MYSQLで外部キーや参照を使わない理由ってあるのでしょうか?
0735nobodyさん2010/04/11(日) 10:40:06ID:xQs0jEVq
すいません上げ忘れました
0736nobodyさん2010/04/11(日) 11:25:37ID:???
DBとアプリケーションの関係わかっとるかな?
0737nobodyさん2010/04/11(日) 11:49:58ID:xQs0jEVq
すいません、もうちょっと具体的にお願いします。
たぶんわかってません。
0738nobodyさん2010/04/11(日) 12:36:15ID:???
学ぶよりまず先に手を動かせ
0739nobodyさん2010/04/11(日) 12:58:23ID:???
>>734
MySQLのデフォルトストレージエンジンMyISAMが外部キー制約をサポートしなかったり、
制約自体がデータの不整合を減らすための仕組みなだけなので
面倒くさがりな入門書なら省いちゃうかもね
パフォーマンスのためにあえて使わないケースもあるけど
よく分からないから使わない、はNGだねぇ
0740nobodyさん2010/04/11(日) 13:11:36ID:???
postgresql使え
0741nobodyさん2010/04/11(日) 14:11:50ID:8e9aaJ3F
VBのinstr()関数のような、何文字目に目的の文字列があるか調べ、マッチする文字列があった場合は先頭から何文字目にあるかを返す関数はありませんか?
0742nobodyさん2010/04/11(日) 14:12:44ID:???
あるよ
0743nobodyさん2010/04/11(日) 14:13:09ID:???
なんだっけ・・・
0744nobodyさん2010/04/11(日) 14:20:27ID:???
ねーよ
0745nobodyさん2010/04/11(日) 14:33:37ID:xQs0jEVq
>>738
10年手ばっかり動かして学んでこなかった結果、場当たり的なプログラミングしかできない奴に育ってしまったので
基礎学んでます。
>>739
RDBなのに全然リレーショナルしない話ばっかで、なんか使わない理由あるのかな?ってすごい不思議です。
DB本だとかならず正規化するといいよ!って話がでるのに。
入門書だけでなく、本屋にあるPHP本全部みても話題にでてないし、ぐぐっても解説してるところがほとんどないもので・・・
参照してるやつは消せないとか、具体的な実装例とかそういうのみたかったのですが、自分で試すしかない感じです。

>>741
strposとかpreg_matchとか
0746nobodyさん2010/04/11(日) 14:43:20ID:???
基礎を学びたいと言っておいて結局コピペできるサンプルを欲しがってるだけじゃないの?

DB本で正規化のこと学んで、PHP本でAPIの使い方学べば、あとは自分で正規形のDBを操作するPHPアプリ作れるだろ
0747nobodyさん2010/04/11(日) 14:47:32ID:xQs0jEVq
そうですね。自分で解決することにします。お騒がせしました。
0748nobodyさん2010/04/11(日) 14:51:14ID:???
>>747
ここの連中はバカとはさみは使いようって感じで情報聞き出せればおk程度に思っといたらいいよ
丁寧に聞いてるとなかなか言わないからな、天邪鬼だから。

例えば間違いをわざと誇張するとかオススメ。
自信満々なアホが釣られて正しく答えてくれる。
0749nobodyさん2010/04/11(日) 14:53:59ID:???
そこまでしないと情報を獲得できないなんて情弱は哀れだな
0750nobodyさん2010/04/11(日) 14:57:52ID:???
基本的にすぐ煽るやつは質問者よりも技術的にレベル低い事多いから、
自分で調べた方が速いよ。
>>746とかいい例。
質問の意味を理解してない。
0751nobodyさん2010/04/11(日) 15:01:52ID:???
情弱ほど情弱という言葉使いたがる不思議
0752nobodyさん2010/04/11(日) 16:00:17ID:???
>>748
おまえ、質問したけど態度が悪すぎて答えてもらえなかったから恨んでるんだなw
0753nobodyさん2010/04/11(日) 16:11:17ID:???
>>750
え?普通に合ってると思うが。
0754nobodyさん2010/04/11(日) 16:16:31ID:???
>>739
>よく分からないから使わない、はNGだねぇ
仕事では、「よく分からないものは使わない」が正解だと思うけど
0755nobodyさん2010/04/11(日) 16:17:08ID:???
それが使うべきものかもしれないじゃないか
0756nobodyさん2010/04/11(日) 16:21:46ID:???
だったら、よく分かるまで勉強しろ
0757nobodyさん2010/04/11(日) 16:24:07ID:???
739はそれを言ってるんだろw
0758nobodyさん2010/04/11(日) 16:34:59ID:???
>>752
お前よく釣られるタイプだろw
0759nobodyさん2010/04/11(日) 18:01:14ID:xnCsJMSA
昨日からPHPの勉強はじめたんだがなんでXAMPPじゃ駄目って言う人多いの?
なんかセキュリティがどうとか、本番では使わないとかいってるんだが
0760nobodyさん2010/04/11(日) 18:03:41ID:???
>>759
気にするな
0761nobodyさん2010/04/11(日) 18:10:02ID:???
うむ気にするな 自己責任だ
0762nobodyさん2010/04/11(日) 18:12:05ID:???
>>759
> 昨日からPHPの勉強はじめたんだがなんでXAMPPじゃ駄目って言う人多いの?

俺もそこらへん知りたい。

EclipseでPHPを実装しようと思ってるんだけど
実行環境やデバッグ環境はどれを選んだらいいんだろう?

XAMPPでPHP・Apache・MySQLを一式インストールして実行・デバッグ環境を構築するのが今のトレンド?
0763nobodyさん2010/04/11(日) 18:18:17ID:???
>>762
勉強で使うなら好きにすればいいと思うけど
そもそもなんでDBがMySQLって固定されてるんだ?
俺はPostgreSQL派なのでw

自分用のカラオケ(リクエスト番号)リストのwebアプリを作ったときは、
普通のエディタでつくったけどね
テストは、外部に出てるサーバにあげて、そのまま本番運用w
自分用だしね
0764nobodyさん2010/04/11(日) 18:38:02ID:xnCsJMSA
勉強用で使うなら、って事は将来的には変える事になるってこと?
0765nobodyさん2010/04/11(日) 18:42:10ID:???
XAMPPは開発が楽なように各種設定がセキュリティ的にゆるく
なってるんだよ。
それだけだから気にするな
0766nobodyさん2010/04/11(日) 18:44:10ID:???
>>764
仕事で使うときは必ずしも自分が好きな環境が使えるわけじゃないよ
IDEごときに振り回されるようじゃやってられません
0767nobodyさん2010/04/11(日) 18:55:49ID:???
ニートの俺は勝ち組ってことか
0768nobodyさん2010/04/11(日) 20:15:20ID:???
tet
0769nobodyさん2010/04/11(日) 20:37:42ID:???
仮想環境にLINUXをインストール、LAMPを構築してsambaとかじゃねーか将来のためにヴァージョン管理も入れておけ
0770nobodyさん2010/04/11(日) 22:35:31ID:???
別にXAMPPを使っているからといって大して問題にもならないし
後で困ったらその時また勉強出来ていいじゃまいか
0771nobodyさん2010/04/11(日) 23:28:59ID:???
好きな環境使えばいいよ。
それでやった考え方は言語や環境変わっても役には立つ。
0772nobodyさん2010/04/11(日) 23:36:45ID:???
しかし、apache、php、mysqlをインスコするのが面倒といわれたのには驚いた
0773nobodyさん2010/04/11(日) 23:49:11ID:???
面倒っつ〜かセキュリティ的にね・・・
0774nobodyさん2010/04/11(日) 23:53:42ID:???
http://builder.japan.zdnet.com/news/story/0,3800079086,20384129,00.htm
ここの通りインスコした場合セキュリティ的にはどう?
0775nobodyさん2010/04/11(日) 23:56:59ID:???
>>773
>>765と言ってることが違ってますなあ
0776nobodyさん2010/04/11(日) 23:58:09ID:???
>>772
いや、それは慣れててスムーズに出来ても面倒なことに変りないだろ。
「俺は面倒じゃないぜ!」なんてかっこつけにもなっとらんぞ。
手間かけなくて良いときはかけないほうが賢い。
0777nobodyさん2010/04/12(月) 00:02:10ID:???
はいはいXAMPP使ってる人は賢い賢い
0778nobodyさん2010/04/12(月) 00:04:20ID:???
だからさ、何度も言ってるけどXAMPPは個別に入れてもXAMPP使っても全く同じことができる人のための物で
決して知識の無い初心者でも手軽に鯖環境を構築できるための物じゃないんだよ
0779nobodyさん2010/04/12(月) 00:06:13ID:???
XAMPPはNGってことで
0780nobodyさん2010/04/12(月) 00:16:27ID:???
どうしてもダメだってことにしたい必死な人がいるんだよね。このスレに。
0781nobodyさん2010/04/12(月) 00:18:34ID:???
信者が必死ですね
0782nobodyさん2010/04/12(月) 00:19:31ID:???
XAMPPを入れて完璧に使いこなせてる奴以外は使うな
0783nobodyさん2010/04/12(月) 01:12:05ID:???
>>730
> strpos(implode(0x00,$arr), $str)
この例は動くのか?
0784nobodyさん2010/04/12(月) 01:26:18ID:???
動くが0x00ってつまり0だから意味ない。
意味のあるデリミタにするなら"\x0"かchr(0)じゃないと。

しかしどっちにしろ>>716の関数だと探索するのは$arrのどれか1つであって
$strじゃなくね?
0785nobodyさん2010/04/12(月) 02:08:32ID:???
意味がないというか、意味が変わっちゃうよね。
要素またいでいても引っかかっちゃう。
0786nobodyさん2010/04/12(月) 02:10:30ID:???
え? XAMPPってローカル開発環境でしょ?
いくらなんでもあれそのままグローバルに公開する人いないでしょ。
0787nobodyさん2010/04/12(月) 02:12:51ID:???
いざグローバルになると困るんだとさ。意味がさっぱり分からんけど。
与えられた特定の環境でしか使えない人間が言いそうだよね。
0788nobodyさん2010/04/12(月) 02:18:52ID:???
ああ、XAMPPで入門すると本番環境構築できないよ、ってこと?
そんなのプログラムの勉強とサーバの勉強切り分けりゃいいんじゃねーの?

Linuxメインで開発してる身からするとWindowsは開発環境構築めんどくせーなと
思ってたからXAMPP出たときは便利になったなーと思ったけどな。
0789nobodyさん2010/04/12(月) 02:55:47ID:???
XAMPP使って鯖の質問してくる奴にそう言え
0790nobodyさん2010/04/12(月) 03:58:34ID:???
実際の鯖をインストール&稼働するのではなく仮想的な環境を構築してその中で実行できないものかね?
0791nobodyさん2010/04/12(月) 06:45:02ID:???
すればいいじゃん
楽になる面も多々あるよ
0792nobodyさん2010/04/12(月) 07:22:04ID:???
技術的なことになると簡単なことでもわざわざ難しく書くキチガイが多くて初心者が戸惑いやすいっていう現象が起こっている気がする
本でもネットでも掲示板でもそう
0793nobodyさん2010/04/12(月) 07:47:23ID:???
例えばどういうの?
0794nobodyさん2010/04/12(月) 08:09:50ID:???
ただ単に知識がないから難しく聞こえるだけだろw
0795nobodyさん2010/04/12(月) 08:43:40ID:???
さすができるプログラマさんパネェっす
0796nobodyさん2010/04/12(月) 09:03:59ID:???
XAMPP禁止でいいだろ
信者がうぜえし
0797nobodyさん2010/04/12(月) 09:06:43ID:???
信者よりもアンチのほうが鬱陶しい
好きなもん使えばいいだろ
0798nobodyさん2010/04/12(月) 10:02:04ID:???
Q.xamppを入れるとサーバウェアが入るので外からアクセスうけませんか?
A.LANからはアクセスできますがポートが開いてないとWANからはアクセスできないので平気です
Q.xamppの利点を教えてください
A.設定ほぼ不要ですぐに使えるphpの開発環境が整えれます
Q.このスレではxamppが嫌われてるようですが?
A.そんなことはありません
Q.肯定派と否定派は存在しますよね?
A.そのようですね
Q.肯定派の意見を聞かせてください
A.我々はプログラムをしてるのであってサーバの構築をしているのではないといったところでしょうか
Q.否定派の意見を聞かせてください
A.各個設定できないと問題に対処しきれないといったところでしょうか
Q.具体的にはどういうことでしょうか?
A.開発環境と本番環境では必ずしも環境が同じではないので動く保証がないということです
Q.もう少し具体的に教えてください
A.OSやPHPのバージョンによっては使えなかったり動作が異なる関数があります
バージョン条件は満たしていてもモジュールがインストールされてなかったり無効になっていて使えない関数もあります
直接関係ありませんがDBやhtaccessを絡める場合それらのバージョンにも留意する必要があります
Q.本番環境でつまづかないためにはどうしたらいいですか?
A.本番環境にあわせた開発を心がけましょう
モジュールがインストールされていてかつ有効にされていないと使えない関数はphpinfoを見て使えるか調べましょう
OS・バージョンを確認してPHPマニュアルで使いたい関数がそのバージョンで使えるか確かめます
直接は関係ないですがDBを使う場合やhtaccessを内包する場合等それらのバージョンも関係してきます
Q.結局xamppは使うべきですか?
A.本番環境にあわせた開発を心がけるべきですがそれら環境を整えるのは限界があります
PHPをやるために慣れないOSをいじって挫折したら本末転倒です
なので自信のない人はxamppでもいいと思います
困るケースとしては本番環境で使いたいモジュールが開発環境(xampp)で使えない場合ぐらいです
xampp該当モジュールを有効にするだけでいい場合は調べればすぐに解決できるでしょう
解決に至らない場合でもモジュールに頼らない書き方があればそれを採用すればよいでしょう
xamppユーザは柔軟に対応しましょう
0799nobodyさん2010/04/12(月) 10:04:28ID:???
>直接は関係ないですがDBを使う場合やhtaccessを内包する場合等それらのバージョンも関係してきます
消したつもりだったのにッ
大事なことなので2回言いましたってことで許してね(はぁと
0800修正2010/04/12(月) 10:09:25ID:???
Q.xamppを入れるとサーバウェアが入るので外からアクセスうけませんか?
A.LANからはアクセスできますがポートが開いてないとWANからはアクセスできないので平気です
Q.xamppの利点を教えてください
A.設定ほぼ不要ですぐに使えるphpの開発環境が整えれます
Q.このスレではxamppが嫌われてるようですが?
A.そんなことはありません
Q.肯定派と否定派は存在しますよね?
A.そのようですね
Q.肯定派の意見を聞かせてください
A.我々はプログラムをしてるのであってサーバの構築をしているのではないといったところでしょうか
Q.否定派の意見を聞かせてください
A.各個設定できないと問題に対処しきれないといったところでしょうか
Q.具体的にはどういうことでしょうか?
A.開発環境と本番環境では必ずしも環境が同じではないので動く保証がないということです
Q.もう少し具体的に教えてください
A.OSやPHPのバージョンによっては使えなかったり動作が異なる関数があります
バージョン条件は満たしていてもモジュールがインストールされてなかったり無効になっていて使えない関数もあります
直接関係ありませんがDBやhtaccessを絡める場合それらのバージョンにも留意する必要があります
Q.本番環境でつまづかないためにはどうしたらいいですか?
A.本番環境にあわせた開発を心がけましょう
モジュールがインストールされていてかつ有効にされていないと使えない関数はphpinfoを見て使えるか調べましょう
OS・バージョンを確認してPHPマニュアルで使いたい関数がそのバージョンで使えるか確かめましょう
Q.結局xamppは使うべきですか?
A.本番環境にあわせた開発を心がけるべきですがそれら環境を整えるのは限界があります
PHPをやるために慣れないOSをいじって挫折したら本末転倒です
なので自信のない人はxamppでもいいと思います
xamppで困るケースとしては本番環境で使いたいモジュールが開発環境で使えない場合ぐらいです
開発環境で該当モジュールを有効にするだけでいい場合は調べればすぐに解決できるでしょう
解決に至らない場合でもモジュールに頼らない書き方があればそれを採用すればよいでしょう
xamppユーザは柔軟に対応しましょう
0801sage2010/04/12(月) 10:41:30ID:???
WindowsにXAMPP入れて使ってると構築したりする時間を省けてラクではあるけど
Windowsでは使えない関数があったり、セキュリティとかエラー関係がゆるく設定されていることがあるから
いざ本番のLinux環境で使うと、動かなかったりエラーを吐いたりするってだけ。
最初から本番に近い環境でやってればそういう心配が減るってだけだと思う。
0802nobodyさん2010/04/12(月) 10:44:07ID:???
>>792
簡単なことでも注意すべき点が多いってことじゃないかなぁ
デフォでセキュアにしたらSELinuxとかVistaのUACとかで初心者が参っちゃったじゃん。
なれてればどちらも有効にしておくのが楽になるけども。
0803nobodyさん2010/04/12(月) 11:04:25ID:???
XAMPPの良し悪しが分からないような人に本番なんてないだろ
0804nobodyさん2010/04/12(月) 11:07:36ID:???
>>797
おまえがいちばんうっとうしい
0805nobodyさん2010/04/12(月) 11:27:57ID:???
>>804
一番最後に煽ってないと気が済まないこういうのがいる限りこのスレは伸びる
0806nobodyさん2010/04/12(月) 11:37:23ID:???
>>805
じゃあ、おれも
0807nobodyさん2010/04/12(月) 11:44:39ID:???
>>805自身がそうであることに気づいてないところが笑いどころかw
0808nobodyさん2010/04/12(月) 11:46:29ID:???
>>807
おまえもな
0809nobodyさん2010/04/12(月) 11:48:00ID:???
>>808
おまえもな
0810nobodyさん2010/04/12(月) 11:49:05ID:???
>>809
おまえもだろks
0811nobodyさん2010/04/12(月) 11:49:29ID:???
XAMPPの話はスレ違いだから、二度と話題に出さなければいいだけ
0812nobodyさん2010/04/12(月) 11:50:16ID:???
XAMPPって結局どうなの?
使わない方がいいの?
0813nobodyさん2010/04/12(月) 11:56:05ID:???
振り出しに戻ると
0814sage2010/04/12(月) 11:59:43ID:???
本番と同じ環境が用意できるならそれ使うにこしたこた〜ない
つ〜か>>800で答え出てるんじゃね?
0815nobodyさん2010/04/12(月) 12:05:25ID:???
>>812
自分で鯖構築できる奴だけが使っていいモノ。
鯖構築出来ない奴にWebProgramを弄る資格は無い。
0816nobodyさん2010/04/12(月) 12:21:12ID:???
>>805
嫌われるプログラマの体質でもあるな
0817nobodyさん2010/04/12(月) 12:22:08ID:???
>>815
おまえは何様?
0818nobodyさん2010/04/12(月) 12:23:07ID:???
馬鹿ばっか
0819nobodyさん2010/04/12(月) 12:24:18ID:???
>>817
君と違って鯖構築出来るプログラマ様ですが?
0820nobodyさん2010/04/12(月) 12:32:39ID:???
鯖って・・・恥ずかしく無いですか?
0821nobodyさん2010/04/12(月) 12:39:25ID:???
普通vmware+ubuntuで開発するよねー
0822nobodyさん2010/04/12(月) 12:42:32ID:???
素人はだまってろ
プロはxubuntu一択
0823nobodyさん2010/04/12(月) 12:54:35ID:???
ぼくちゃんこの環境じゃないとつくれーないってか。

どこがプロだw
0824nobodyさん2010/04/12(月) 12:55:41ID:???
>>821
ごめん、VirtualboxとDebianだわ。
0825sage2010/04/12(月) 13:07:38ID:???
おれはVirtualBox + CentOSだな
会社がRedhat使ってるってのも理由だけど。
0826nobodyさん2010/04/12(月) 13:11:29ID:???
俺ぐらいになればどの環境で開発しても本番でも動くから問題ないけどな
そういう心配するやつはフレームワークで開発すればいいよ
共通化しまくってるからあえて環境選ぶ書き方しない限り問題ないだろう
0827nobodyさん2010/04/12(月) 13:12:28ID:???
>>821
>>824
作業用マシンの事を言ってるの?サーバの事をいってるの?

作業用マシンの事なら、仮想環境上でわざわざ作業するの?
サーバの事なら、debian系って珍しいね、CentOS使わないの?
0828nobodyさん2010/04/12(月) 13:13:45ID:???
開発をあえてlinuxでやるのが理解できない
windows持ってない人なのかな?w
0829sage2010/04/12(月) 13:25:15ID:???
本番環境がWindowsって事が今までなかったな。
俺だけかもしれんが。
0830nobodyさん2010/04/12(月) 13:32:31ID:???
>>828
ゲームとかグラフィックス系の事やらないならwindowsより使いやすいと思ってる
開発はNetbeans使ってるからOS差はそんなに関係ないし
やっぱシェルが大きい、細かい事をコマンドでさくさくできるのがいい
あとはサーバと作業用PCのOSが統一できるのも良い

もっともwindowsもPowerShell使いこなしていれば良いのかもしれないが。
0831nobodyさん2010/04/12(月) 13:46:21ID:???
>>829
Windows鯖を提供しててあえてWAMP構成にするようなとこはないよ
WIMA(Windows+IIS+MSSQL+ASP(.NET))が一般的かと
企業のアプリケーション鯖はほとんどそんな感じだが
0832nobodyさん2010/04/12(月) 14:28:00ID:???
脱線しすぎだろw
スレタイみて書き込めよ
0833sage2010/04/12(月) 14:30:43ID:???
pearって時代遅れなの?
pearで不便を感じたことないからそのまま使ってるんだけどzendとかcakeとかの方がメリットあるかね?
0834nobodyさん2010/04/12(月) 15:37:25ID:pqNtwkfV
質問させてください。
同じプログラムを同時に実行しないように出来ませんか?
例えばteratermで人が"hoge.php"を実行しているときは、他の人が"hoge.php"を実行しようとしてもすぐ処理を中止するようにしたいです。
0835nobodyさん2010/04/12(月) 15:47:19ID:???
>>834
古典的だけど、実行時にファイル作って終了時にファイル消すって作りにしたら?

apacheとかにあろうhttpd.pidみたいにプロセスID入れたファイルとかを作り、
「もしそのファイルがあるなら実行しない」をスクリプトの最初に書いておけば良いと思う
0836nobodyさん2010/04/12(月) 15:47:58ID:???
mutex
0837nobodyさん2010/04/12(月) 15:52:05ID:???
とおもったらmutex用意されてなかった。
ファイルロックかなぁ。
0838nobodyさん2010/04/12(月) 16:26:33ID:???
>>833
もう少し勉強しろ
0839質問2010/04/12(月) 16:32:44ID:???
質問させてください。
あるページをFILE関数でHTMLファイルにしたいのですが、
そのページがPOSTされた値を反映するページだと上手くいきません。
例えば
<?php
print'あなたの名前は$_POST['name']です';
?>
を表示しても
「あなたの名前はです」
になってしまいます。
なにか良い方法はありますか?
0840nobodyさん2010/04/12(月) 16:48:38ID:???
>>839
シングルクオート中は変数として評価されないから$_POST['name']という文字列で評価されるはず
あとエスケープしてないので文字列['name']の最初のシングルクオートのところで終了と判断されて
パースエラーになるはずだが
確認してないから断言はできないが
>「あなたの名前はです」
こういう結果はでないんじゃね

↑でいったことを直すには
print 'あなたの名前は' . $_POST['name'] . 'です';
もしくは
print "あなたの名前は{$_POST['name']}です";
といったかんじにする

んでスレタイ読んでね
質問はエスパーすぎてよくわかりません・・・
0841nobodyさん2010/04/12(月) 16:55:39ID:???
>>839
phpのスクリプトはダウンロードできないよ
良い方法もないです
0842nobodyさん2010/04/12(月) 17:05:39ID:???
>>839
エスパーすると

curlでPOSTしてあげて結果のHTMLを受け取ればOK
「php curl post」で検索するといっぱいでてくる。
08438392010/04/12(月) 17:32:32ID:???
>>840-842
返答ありがとうございます。
言葉足らずで申し訳ないです。
前述の条件でPHP実行後のHTMLソースを抜き出したかったのです。
なので、まだググッてはないですが842さんが1番望む答えに近いかも。
またわからなかったらテンプレ読んだうえで再度質問させていただきます。
ありがとうございました
0844nobodyさん2010/04/12(月) 17:36:40ID:???
エスパー力が足りなかった。精進する
08458392010/04/12(月) 17:49:02ID:???
>>844
いやいやいやいや、そんなことないです。
私の質問の仕方が悪すぎました。
本当にすいませんでした。
どうかお気になさいませぬように
0846nobodyさん2010/04/12(月) 17:56:22ID:???
まずはテンプレ読んでIDだそうな
0847nobodyさん2010/04/12(月) 18:06:13ID:???
ID無しにしれっと答えるやつもいるからもう成り立たんぜよ
0848nobodyさん2010/04/12(月) 18:14:44ID:???
テンプレ守ってる奴みたこと無いからな
0849nobodyさん2010/04/12(月) 18:21:49ID:???
点プレとかいらねーし
0850nobodyさん2010/04/12(月) 18:22:01ID:???
perlでの暗号化について質問です。
暗号化により作られた暗号文を毎回同じ結果として出力したいのですが、
何か便利なものはありますでしょうか

Blowfishを使ってみましたが毎回暗号化結果が違います。
use strict;
use Crypt::CBC;

my $key = 'testkey';
my $strings = "test";
my $cbc = Crypt::CBC->new({
key => "$key",
cipher => 'Blowfish',
padding => 'null'
});
my $crypted = $cbc->encrypt_hex($strings);

print $crypted, "\n";

blowfishで不可能であれば何か別の手段を教えていただけると幸いです。
0851nobodyさん2010/04/12(月) 18:28:14ID:???
スレ間違えちゃったんだね
0852nobodyさん2010/04/12(月) 20:22:50ID:???
別の手段にphpが含まれているといってみる
0853nobodyさん2010/04/12(月) 21:34:39ID:???
>何か便利なものはありますでしょうか
PHP
0854nobodyさん2010/04/12(月) 22:30:56ID:???
タイミング的に釣りだろw
0855nobodyさん2010/04/12(月) 23:05:56ID:xbOcApfN
PHPで公開鍵暗号方式を使う方法ってありますか
0856nobodyさん2010/04/12(月) 23:10:08ID:xbOcApfN
http://jp.php.net/manual/ja/function.openssl-public-encrypt.php
あったわ
0857nobodyさん2010/04/12(月) 23:25:38ID:???
go-pear.phpでpearインストールした後に、誤って管理ページのphp消しちゃった…。
どこかででダウンロードできない?
0858nobodyさん2010/04/12(月) 23:28:04ID:???
go-pear.php
0859nobodyさん2010/04/12(月) 23:35:25ID:???
http://go-pear.php/
0860nobodyさん2010/04/13(火) 20:16:02ID:+9H6Il1u
【OS名】CentOS 5
【PHPのバージョン】php5.2.13
【連携ソフトウェア】mysql
【質問内容】
データベースはMySQLで、
15分間隔でやや多めのデータをマルチプルINSERTしているのですが、
この場合は、PDOとMySQLiとでどちらのほうが速いのでしょうか?

マルチプルで一括INSERTしたら終了するPHPを、
cronで15分間隔に動かしています。

PDOのプリペアードステートメントというのは
似たSQLで1行ずつ繰り返しINSERTするような場合に有効なのですか?
0861nobodyさん2010/04/13(火) 20:40:29ID:???
そうです
insert selectのような、一回で複数行挿入するような場合にはさして効果は見込めません
0862nobodyさん2010/04/13(火) 20:43:36ID:ETgmCczc
掲示板のプログラムなんですが、
http://www.1kara.net/php/practice/bbs/source.php
/*----- ※7 -----*/
//最終書き込み番号(logの最初の数字)を取得し、今回の書き込みNoを生成
$lastNo = ereg_replace("^([0-9]+),.+$","\\1",$data[1]);
$putNo = ++$lastNo;

ここがよくわかりません・・・ereg_replace("^([0-9]+),.+$","\\1",$data[1]);
このカッコの中身が・・・これはどう処理されてるんでしょうか?
0863nobodyさん2010/04/13(火) 21:08:36ID:+9H6Il1u
>>861
ありがとうございました。
0864nobodyさん2010/04/13(火) 22:06:37ID:Pebc2mYy
mysqlでinsertしてデータに連番で番号を付けています。
insert完了後にそれが何番であったか知りたいのですが、selectするしかないのでしょうか?
insertの処理で返って来るようにはできますか?
0865nobodyさん2010/04/13(火) 22:09:30ID:???
>>864
AUTO_INCREMENT だよな?
INSERTクリークを発行したあとに
mysql_insert_id()

http://jp2.php.net/manual/ja/function.mysql-insert-id.php
0866nobodyさん2010/04/13(火) 22:13:33ID:???
酔ってて間違えた^^;
×クリーク
○クエリー
0867nobodyさん2010/04/13(火) 22:14:21ID:Pebc2mYy
>>864
ありがとうございます!
0868nobodyさん2010/04/13(火) 22:21:21ID:???
>>862

正規表現を使わない場合はちょっと違う動作にはなるけどこんな感じ

list($lastNo, $tmp) = explode(",", $data[1], 2);

要するにカンマで区切られた文字列から一つ目のカンマの前にある数字を$lastNoに入れるってことかな

0869nobodyさん2010/04/14(水) 16:36:12ID:???
function hoge($arg, $arg1 = 1, $arg2 = 2, $arg3 = 3)

という関数があって
第1引数と第3引数のみ指定して呼び出したい場合は
どうやって記述するのでしょうか?

無理なのかな?
0870nobodyさん2010/04/14(水) 16:41:30ID:???
パラメータをハッシュにしたら
0871nobodyさん2010/04/14(水) 16:54:47ID:???
第2をnullにする
ついでにスレタイ嫁
0872nobodyさん2010/04/14(水) 16:59:27ID:???
nullが入るだけじゃん
0873nobodyさん2010/04/14(水) 17:00:20ID:???
null入れたらだめでしょw
0874nobodyさん2010/04/14(水) 17:07:54ID:???
nullでいいと思うよ
関数hogeの中身をいじれないなら駄目だけど。
0875nobodyさん2010/04/14(水) 17:12:43ID:oynBSGJd
関数hogeはライブラリのため修正できません

null指定したら、nullになりませんか?
0876nobodyさん2010/04/14(水) 17:15:05ID:???
nullになるよ
0877nobodyさん2010/04/14(水) 17:22:04ID:???
一般的なライブラリでそのような事態になるのは、使い方が特殊すぎる、または使い方が悪い
そうではないライブラリなら、ライブラリが悪い可能性がある
0878nobodyさん2010/04/14(水) 17:33:36ID:???
function hogehoge($arg,$arg1=1,$arg3=3,$arg2=2)
{
hoge($arg,$arg1,$agr2,$arg3);
}
0879nobodyさん2010/04/14(水) 18:25:12ID:oynBSGJd
無理ということが分かったので、きっぱり諦めます

ありがとうございました
0880nobodyさん2010/04/14(水) 18:38:28ID:???
はい
0881nobodyさん2010/04/14(水) 18:39:51ID:???
超初心者ですいません。
imgタグを複数取得したいんですが、
preg_match_all('/<img(.*?)>/',$URL,$AAA);
として、

echo $AAA[0];
echo $AAA[1];

とすると、2つめの$AAA[1]はタグ内のsrc以下が表示されてしまいます。
次のimgを出力するにはどうすればいいですか?
基本的すぎると思いますがよろしくお願いします。
0882nobodyさん2010/04/14(水) 18:52:47ID:???
preg_match_all('/<img(?:.*?)>/',$URL,$AAA);

超初心者とか基本的すぎるとかくだらない修飾はいりません。
基本的すぎると卑下するぐらいならマニュアルでも読んでください。
0883nobodyさん2010/04/14(水) 18:58:14ID:???
>>881
var_dump($AAA);
echo $AAA[0][0];
echo $AAA[0][1];
0884nobodyさん2010/04/14(水) 19:42:07ID:???
卑下してることに突っ込むより、スレタイ読んでないことに突っ込め
0885nobodyさん2010/04/14(水) 19:56:19ID:???
>>881
http://php.net/manual/ja/function.preg-match-all.php

ID無しには、それ指摘しないでスルーしとけ書いておくか?
それも読まれずに、ID出せって書き込みが出るんだろ。
それか、質問と回答以外の書き込み禁止にでもするか?

0886nobodyさん2010/04/14(水) 19:58:54ID:???
なんて?
0887nobodyさん2010/04/14(水) 20:08:33ID:???
なにしてもIDなしの質問はなくならないよ
0888nobodyさん2010/04/14(水) 20:28:27ID:???
検索語のリストファイルと辞書ファイルを用意して
for(検索語)の中にfor(辞書)を入れて総当たりで調べるより
効率的な方法ってありますか?
0889nobodyさん2010/04/14(水) 20:29:28ID:???
ありません
0890nobodyさん2010/04/14(水) 20:29:46ID:???
どちらかを連想配列に
0891nobodyさん2010/04/14(水) 20:31:33ID:???
>>887-888
いい流れだ
0892nobodyさん2010/04/14(水) 20:37:07ID:K3XQO6To
>889-891
ありがとうございましたm(_ _)m
0893nobodyさん2010/04/15(木) 12:08:02ID:???
置換で、この文字列次の行の頭に指定した文字列がくるようにできますか?
0894nobodyさん2010/04/15(木) 12:10:37ID:???
>>1
0895nobodyさん2010/04/15(木) 13:55:01ID:???
次スレからは「下らねぇ質問はID出しても出さなくてもいいから書き込みやがれ」だな
0896nobodyさん2010/04/15(木) 14:15:28ID:???
>>895
お前はプログラムをやめろ
冗長的な思考の持ち主には向いてない
0897nobodyさん2010/04/15(木) 14:39:59ID:???
>>896
下らねぇレスですね
0898nobodyさん2010/04/15(木) 15:40:10ID:???
このスレを存続させたいなら従来のようにID無し質問が来たら即
解決しましたのレスを付ける地味な手法を粛々と
0899nobodyさん2010/04/15(木) 16:12:13ID:???
最近じゃ出さないほうが珍しかったのに
ここ連続できてるの見ると同一人物か
前後の流れ見て意図的にやってるとしか思えない
スルーしとけばいいこと
0900nobodyさん2010/04/15(木) 16:14:35ID:???
スレ番70台辺りから>>898みたいなクズが居座りだしたので
ID出すようになったんだよな
いっそIDが出る板に移動した方がいいぐらいだ
09019002010/04/15(木) 18:30:27ID:???
自己解決しました
09029012010/04/15(木) 18:41:05ID:???
と思ったら夢でした。
0903 ◆7700dtA.zw 2010/04/15(木) 19:15:11ID:???
こまけーこと気にしてバカじゃねぇの???
気に食わなければ答えなきゃいいし気にしないなら答えてあげればいい。
マジでぐちぐちバカじゃねぇの???
バカじゃねぇの???
ねぇ死ぬの???
0904nobodyさん2010/04/15(木) 19:33:36ID:???
それを言ったら2ちゃんのレス8割は無くなるしひきニートも9.9割死ぬ
0905nobodyさん2010/04/15(木) 19:47:51ID:???
>>903
気にしてるのは自分でしょうにw
0906nobodyさん2010/04/15(木) 21:26:11ID:???
>>903
どしたの?
0907nobodyさん2010/04/16(金) 00:23:43ID:m1X69OPF
$pattern = "(http://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)";
$replacement = "<a href=\"\\1\">\\1</a>";
$description2 = preg_replace($pattern, $replacement, $description);
echo "<p>". $description2. "</p>";

正規表現置換の後方参照がうまくいきません
\\1がおかしいのか、どこが悪いのかわかりません
お願いします
0908nobodyさん2010/04/16(金) 01:23:13ID:???
\\は\なのだから、\\1は \\\\1だろ
次はIDだしてね
0909nobodyさん2010/04/16(金) 02:08:18ID:???
Windowsです。インストーラー版を使ってC:\PHPにインストールしました。
5.3.1はC:\PHP\php.iniを見に行ってたのですが,
5.3.2はC:\PHP\php.iniを見てくれません。
5.2.12はC:\PHP\php.iniを見に行ってたのですが,
5.2.9はC:\PHP\php.iniを見てくれません。
こんなものなのでしょうか?
あるいはバージョンに関係なく,当方は意図していませんが,
インストールの仕方によって変化するものなのでしょうか?
0910nobodyさん2010/04/16(金) 04:43:23ID:???
>>907
試してないから経験的にいうとデリミタが設定されてないせい
$patternの中身の最初と最後に適当なデリミタを入れてみて
あとエスケープするべき記号が適切にエスケープされていないからそのせいだと思う
後方参照方法は問題ない$nか\\nでOK
0911nobodyさん2010/04/16(金) 07:22:16ID:m1X69OPF
>>910
その二点を修正したら上手くいきました。
本当に助かります。どうもありがとうございました。
0912nobodyさん2010/04/16(金) 19:18:03ID:???
>>909
見てくれないと判断した理由は?
phpinfo()で、どう見える?
0913nobodyさん2010/04/16(金) 22:28:09ID:???
>>912
phpinfo()で,バージョンによって,
C:\PHP
であったり,
C:\Windpws
であったりします。
0914nobodyさん2010/04/16(金) 23:05:13ID:???
レジストリは?
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\バージョン
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\バージョン
HKEY_LOCAL_MACHINE\SOFTWARE\PHP\バージョン
の IniFilePath
0915nobodyさん2010/04/17(土) 00:32:52ID:???
>>914
HKEY_LOCAL_MACHINE\SOFTWARE\PHPには
InstallDir
Version
WebServerType
この3つしかありませんでした。
0916nobodyさん2010/04/17(土) 01:48:47ID:???
>>914
IniFilePathを加えて,C:\PHPを指定して,IISも再起動させてみましたが,infoの表示はC:\Windowsになります。
0917nobodyさん2010/04/17(土) 02:00:08ID:???
ていうか、なんでC:\PHP\php.iniを見てるのかを調べたほうが。
それが標準外の動作でしょ
0918nobodyさん2010/04/17(土) 03:00:09ID:941jDBNR
XAMPPでもいれましょうか。
0919nobodyさん2010/04/17(土) 03:48:21ID:???
>>917
おっしゃる通りです。
どうして,バージョンによっては,C:\PHPにあるphp.iniを見に行くことがあったのか,
よくわからなかったので,質問させていただきました。
お騒がせしてしまして申し訳ありません。
0920nobodyさん2010/04/17(土) 07:08:34ID:???
C:\PHP\php.iniが標準じゃないの?
0921nobodyさん2010/04/17(土) 07:51:39ID:???
Windowsでは正直にIIS使いなさい
Linuxだとapt-get install php5ってコンソールに入力するだけでapecheも一緒にインストールできるからw
0922nobodyさん2010/04/17(土) 13:40:34ID:EvekmtW4
amazonでPHPの本探してたら
「PHP5徹底攻略 エキスパート編」っていう本が中古で8千〜1万円ぐらいで売られてるんですが
この本はそんなに良い本なのですか?
0923nobodyさん2010/04/17(土) 14:16:39ID:???
そうでもない
0924nobodyさん2010/04/17(土) 14:24:54ID:???
良い って言われても基準がわからんだろ。
初心者が買っても意味ないのは間違いない
0925nobodyさん2010/04/17(土) 15:44:08ID:???
>>923
そうですか。。。
ありがとうございます。

>>924
言葉って難しいですね。
ちなみに初心者には意味がないという基準はなんでしょうか?
0926924ではないが2010/04/17(土) 16:20:50ID:???
>ちなみに初心者には意味がないという基準はなんでしょうか?

そういう評をされているものと言えば、初心者向けの解説から始まっていない含まれていない、
これを読んでいる人はそういう部分は習得済みという前提で書かれているものと解するかな、俺は。
0927nobodyさん2010/04/17(土) 16:38:08ID:???
リファレンス読んで理解して実装できる人くらいの意味じゃね
0928nobodyさん2010/04/17(土) 17:07:52ID:???
高いからいい本っていったらそれは違うんじゃね
無駄にページ数が多いだけかもしれないし
共同著書だったり利権者が多すぎて分配を多くするために高く設定してたり
絶版になってプレミア価格がついてたりと
そんなに本が読みたければGoogle BooksでPHPの本探せばいいんじゃないかね
全部は読めないけど読める部分はいっぱいあるし
0929nobodyさん2010/04/17(土) 17:31:53ID:???
googleでPHP 入門でぐぐればいいんじゃね
0930nobodyさん2010/04/17(土) 17:45:05ID:???
phpで正規表現の勉強をしています。色々なサイトを巡回して勉強していたところ
次の携帯の種類を判定する正規表現を見つけました。

if (preg_match("/^SoftBank/i", $ua))
{
 //SoftBank
}

ここで質問なのですが、

@末尾にある「 /i 」 とは何を意味するのでしょか?
A先頭にある「 / 」は何を意味するのでしょうか?

B入力された文字列が "ABC" から始まっているかどうかを
判定する正規表現はどうかけばよいでしょか?
※"ABC"の後はどんな文字列が続いても構いません。

宜しくお願いします。
09319302010/04/17(土) 18:12:24ID:???
自己解決しました
0932nobodyさん2010/04/17(土) 18:14:53ID:???
>>930
マッチ演算子でggr
正規表現でggr
0933nobodyさん2010/04/17(土) 18:22:52ID:???
これはむごい
0934nobodyさん2010/04/17(土) 18:29:13ID:???
>>931
こいつは偽者です。

>>932
燐寸でぐぐったんですがライターが出てきました。
0935nobodyさん2010/04/17(土) 18:29:48ID:TQJa7Fx/
質問させてください。
PHPでブログを作成しています。
SQLiteを使って記事のインデックスを管理しようとしているのですが、データベースで文章はどの程度管理していいものでしょうか?
記事は先頭部分1000文字程度と"続きを読む"で3000文字程度です。
先頭部分だけデータベースに入れてしまうと速度的に遅くなってしまうでしょうか?
0936nobodyさん2010/04/17(土) 18:30:45ID:???
↓このサイトを参考にしているのですがどうしても
末尾の「 /i 」が何を意味するのか書かれていません。


http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm


どなたか優秀な頭脳をお持ちの方お教えください。
0937nobodyさん2010/04/17(土) 18:34:43ID:???
>>935
いくらでもok
0938nobodyさん2010/04/17(土) 18:35:21ID:astqohQF
>>936
どんな文字列にマッチさせたいの?
そっから考えた方がいいんじゃない?
0939nobodyさん2010/04/17(土) 18:36:28ID:???
>>936
だから、ageてIDだせよって。
スレタイを嫁。
0940nobodyさん2010/04/17(土) 18:36:32ID:astqohQF
>>935
mysqlだけど
http://itpro.nikkeibp.co.jp/members/SI/oss/20031007/1/
09419352010/04/17(土) 18:38:01ID:TQJa7Fx/
>>937
え、本当ですか?
別ファイルに保存しようと思っていたのですが、無駄ですか?
数千文字の記事を数千件も入れてしまってパフォーマンスは問題ないのでしょうか?
そのあたりの参考になる本やウェブサイトなどご存知ありませんか?
0942nobodyさん2010/04/17(土) 18:52:06ID:???
>>941
まずは検索しようよ
0943nobodyさん2010/04/17(土) 18:56:14ID:???
え、sqliteってたった数千件で悲鳴上げんの?
そんなもん誰が使うんだよ
09449352010/04/17(土) 18:58:30ID:TQJa7Fx/
みなさまありがとうございます。
とても勉強になりました。
もう少し色々なサイトを見て勉強してきます。
0945nobodyさん2010/04/17(土) 20:16:11ID:???
>>943
誰が悲鳴上げるって?
0946nobodyさん2010/04/17(土) 21:03:29ID:???
SQLiteちゃんが悲鳴あげてる!
0947nobodyさん2010/04/17(土) 21:30:18ID:???
と思ったら余裕すぎて泣いていただけでござる
0948nobodyさん2010/04/17(土) 23:40:18ID:???
FORMからPOSTされたデータでなぜか'が\'に"が"\に変換されてしまいます。
もとにもどそうと思い、mb_ereg_replaceを使用しているのですが、うまく変換できません。
知恵を貸していただけないでしょうか?
$pattern = '\"';
$replace = '"';
$string2 = mb_ereg_replace($pattern,$replace,$string);
他にも色々試したのですが、全部だめでした。
念のために、以下も事前にコールしています。
mb_internal_encoding("EUC-JP");
mb_regex_encoding("EUC-JP");
0949nobodyさん2010/04/17(土) 23:43:01ID:astqohQF
$patternを ' じゃなくて " でかこってみて
似たような事になってそれで解決した記憶がある
09509482010/04/17(土) 23:50:22ID:???
>>949
変換したいものが"なんです
$pattern = "\"";
$replace = '"';
でやってみてもだめでした。
0951nobodyさん2010/04/17(土) 23:59:58ID:???
そもそもなぜ変換されてるの?
09529482010/04/18(日) 00:08:36ID:???
>>951
なぜなんでしょうか・・・
0953nobodyさん2010/04/18(日) 00:17:35ID:???
フィルター?
0954nobodyさん2010/04/18(日) 00:18:43ID:???
magic_quoteじゃないかな
0955nobodyさん2010/04/18(日) 00:25:11ID:???
ああ、レスしてしまった。すまん。
09569482010/04/18(日) 00:33:34ID:???
>>954
これみたいです!
phpinfo()で確認してみたら、magic_quotes_gpcがONになってました。
ずっと悩んでいたので理由がわかってよかったです。
レンタルサーバなのでphp.iniはいじれませんが、.htaccessでOFF設定できるみたいなので、ちょっとがんばってみます。
ありがとうございました。
09579482010/04/18(日) 00:45:49ID:???
みなさまありがとうございました。
レンタルサーバの設定で.htaccessのPHP_flagsも禁止されていましたが、実行時に無効にするという方法で無事に変換されないようになりました。
0958nobodyさん2010/04/18(日) 00:48:15ID:kFnU9JMb
PHP触ったことが無いのですが、仕事で8人月ほどの少し凝ったサイトのPHP案件を請け負うことになりました。
フレームワークを探してみると色々あるようですが、最近の流行はcake phpでしょうか?
個人的にsmartyというテンプレートエンジンにすごく惹かれたのですが、これは現状ではどの程度使われてますか?
あるいは他にオススメがありましたら教えていただけますでしょうか。
宜しくお願いします。
0959nobodyさん2010/04/18(日) 00:48:22ID:???
めでたし。めでたし
0960nobodyさん2010/04/18(日) 02:05:07ID:???
>>956
どういたしまして。
次はIDだそう。

>>958
cakeよく知らないけど cake + smarty でいいんじゃないのかな。
0961nobodyさん2010/04/18(日) 09:08:22ID:???
magic_quoteをプログラムでオフにする方法教えてくれ
0962nobodyさん2010/04/18(日) 09:14:37ID:???
set_magic_quotes_runtime(false);
これか
09639482010/04/18(日) 10:04:59ID:???
>>962
今、外出先で携帯から

magic_quotesでググって出てくるPHPマニュアルのページに書かれてましたよ。
20stepくらいのコードでした。
0964nobodyさん2010/04/18(日) 13:00:40ID:???
1人で開発する場合はsmartyって逆に効率下がりそうだね
0965nobodyさん2010/04/18(日) 13:07:45ID:???
独り言はチラシの裏で
0966nobodyさん2010/04/18(日) 16:01:10ID:MhBI/ZWI
掲示板を作っているのですが、POSTされる文字列が改行なしで横に長いときに、
強制的に改行を入れて整形したいです。
どんな方法がありますか?
0967nobodyさん2010/04/18(日) 16:32:18ID:???
>>966
http://jp.php.net/manual/ja/function.wordwrap.php
0968nobodyさん2010/04/18(日) 16:34:21ID:MhBI/ZWI
>>967
ありがとうございます
0969nobodyさん2010/04/18(日) 23:17:17ID:czBW3Szo
5.3からget_class_varsがprotectedまで返すようになってるようなんですが、
これは外部からアクセスできるメンバだけ返すようにはなりませんか?
0970nobodyさん2010/04/18(日) 23:42:24ID:???
>>969
User Contributed Notesの一番上
0971nobodyさん2010/04/18(日) 23:43:35ID:???
ごめん嘘だった
0972nobodyさん2010/04/19(月) 00:10:49ID:???
>>969
$c = new ReflectionClass('Klass');
foreach ($c->getProperties() as $p) {
  if ($p->isPublic()) {
    echo $p->name, PHP_EOL;
  }
}
0973nobodyさん2010/04/19(月) 00:12:28ID:???
docomo ID を取得するにあたり、
URLに guid=ON がついていない状態でアクセスがあった場合でも

$getValue = $_SERVER['HTTP_X_DCMGUID'];

として、 docomo ID を取得したいのですがどうすれば良いでしょうか?

具体的には、本来は@のURLでアクセスされる事を想定しているのですが、
Aでアクセスがあったとしても docomo ID を取得したいです。

@http://test_domain/get_docomo_id.php?guid=ON
Ahttp://test_domain/get_docomo_id.php

0974nobodyさん2010/04/19(月) 00:15:03ID:???
スレタイ
0975nobodyさん2010/04/19(月) 00:18:52ID:???
>>974
IDの出し方がわかりません。
jane Style を使って書き込みしてますので。
0976nobodyさん2010/04/19(月) 00:22:15ID:???
>>975
スレ違い
0977nobodyさん2010/04/19(月) 00:37:00ID:axuSXXV9
教えてください。
会社のPCに全文検索システムを作りたいと思っています。
Wikipediaで「全文検索」まではたどり着いたのですが、そこから何を選べばいいか迷ってしまいました。

現在はPostgreSQLのtsvecterを使っているのですが、サーバー用ではなく通常のWinXPを使っているのでメモリが1GBしかなく
仕事が山場なこともあって更新が20分ほどかかり、その間サーバーがかつかつになってしまいます。
過去にnamazuを趣味で使ったことがあるのですが、セキュリティ
上の都合でLANが外に繋がっていないので
namazuのインストール手順を見るとPPMファイル(?)のダウンロードが必要とのことでこれも難しいです。
プログラムはMicroSDで持っていこうと思います。
プログラムも趣味程度には書けます。データは5KB×10万件です。
今月末には部署を移るのでその前に良いものを残したいと思っています。
よろしくおねがいします。

【OS名】WinXP メモリ1GB
【PHPのバージョン】5.2.6
【連携ソフトウェア】mysql postgresql perl apache mecabはインストール済み
0978nobodyさん2010/04/19(月) 00:38:30ID:???
>>977
スレ違い
0979nobodyさん2010/04/19(月) 00:41:54ID:???
luceneがいいよ
0980nobodyさん2010/04/19(月) 00:58:21ID:???
docomo 携帯のユーザエージェントを見ると次の表記があるのですが、

TB;W30H19

TB
W*
H*

というのは何を意味しているのでしょうか?

0981nobodyさん2010/04/19(月) 01:10:38ID:axuSXXV9
>>979さん
ありがとうございます。Javaですね…
そういえば得意分野じゃなかったのでわすれてましたがtomcatもeclipiceも入ってたんでした。
プロジェクトに突っ込めば動くかな?明日やってみます。

>>980さん
↓これなんかどうでしょう(特にページ一番下のリンク)
http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/index.html
ドコモの技術情報はトップ>サービス・機能>作ろうiモードコンテンツ、です。(偶然にも関係者なもので)
0982nobodyさん2010/04/19(月) 08:57:58ID:???
携帯電話でWEBサイトにログインした場合の
判定処理をどうしようか迷っています。


携帯電話の場合、セッション管理は意味を成さないので
固体識別番号を何かのアクション(ページ遷移、ボタン押下)時に
常にDBと称号する方が無難なのでしょうか?
0983nobodyさん2010/04/19(月) 09:04:19ID:???
セッション管理は意味を成さないというのは
どういう意味でしょう?
0984nobodyさん2010/04/19(月) 09:05:48ID:???
>携帯電話の場合、セッション管理は意味を成さないので
ひろみちゅのHP見て勉強してから出直してきてね
0985nobodyさん2010/04/19(月) 09:07:48ID:???
ひさびさに見たがまさにタイムリーな話でわろた
0986nobodyさん2010/04/19(月) 09:21:00ID:???
宣言忘れたが次スレたてといた
http://pc11.2ch.net/test/read.cgi/php/1271636105/
0987nobodyさん2010/04/19(月) 15:03:10ID:315TL3PF
質問です

class Hoge
{
var $test = new Test;
}
これがエラーになってしまうのですが、メンバー変数の定義時にインスタンスをセットするにはどうしたらよいでしょうか?
書き方が間違っているのでしょうか?
0988nobodyさん2010/04/19(月) 15:27:21ID:???
>>987
phpの仕様です
メンバ変数定義にメンバ変数に関数や演算子は使えません
コンストラクタでやるしかないですね
0989nobodyさん2010/04/19(月) 15:52:56ID:315TL3PF
あちゃー残念
ありがとうございました
0990nobodyさん2010/04/20(火) 20:58:38ID:???
携帯向けのログイン機能を作成しようと思っているのですが、
AU / DOCOMO / SoftBank の場合には、
取得した固体識別番号だけで登録した名前・メールアドレスを管理するのは危険でしょうか?

つまり、
固体識別番号 + パスワード
の設定も必須にした方が良いのでしょか?

また、携帯からWEBサイトにアクセスする場合に、
特定の固体識別番号になりすまし偽装をする事は可能なのでしょうか?
0991nobodyさん2010/04/20(火) 21:04:47ID:???
固体識別番号 危険
あたりでググればいくらでも出てくる
大手商用サイトでもザルだったりするけどね
0992nobodyさん2010/04/20(火) 22:03:23ID:???
>>991
危険に関する認識が俺と違うっぽいなぁ。
大手商用サイトがザルというのはどういうことを指しているのか書いてみて
0993nobodyさん2010/04/20(火) 22:14:10ID:???
ケータイ脳が大手SI屋にまで侵蝕、SI屋のセキュリティ部隊は自社の統率を
http://takagi-hiromitsu.jp/diary/20100417.html
ユニークIDがあれば認証ができるという幻想
http://takagi-hiromitsu.jp/diary/20100411.html
ウィルコムから回答「契約者固有IDは弊社にとって個人情報」
http://takagi-hiromitsu.jp/diary/20100403.html

高木さんは良い記事書いてる
最近は個人情報を取得しているという認識が欠けてるケータイ脳PGが多いな
0994nobodyさん2010/04/20(火) 22:18:42ID:???
携帯の固体識別番号なんてちょっとPerlやPHP分かれば誰でも取れるいわば”IPアドレス”と同じようなもの
そんなザルなもので認証が出来るなんて考え自体が危険
09959912010/04/20(火) 23:57:56ID:???
>992
自分自身がケータイのヘビーユーザーではないのであまり実例は出せないんだけど
クレカ番号を覚えてるようなサービスでかんたんログインとか、正直怖いと思った
0996nobodyさん2010/04/21(水) 01:40:13ID:???
これ、ただのバナーに見えるけどこれ実は裏で携帯固有ID取ってるんだぜ・・と言うことがよくある
0997nobodyさん2010/04/21(水) 02:25:49ID:???
固体識別番号を送らないように設定すればいいじゃん。デフォでONになってるのは良い面もあり、悪い面もあり。

勝手サイトだからそういう危険をはらんでるのであって、固体識別番号での認識がすべて悪だという風潮は良くない
0998nobodyさん2010/04/21(水) 07:43:28ID:???
悪でしかないでしょ・・Cookie使えれば全てが解決する
そんな考えだからガラケーなんて言われるんだ
0999nobodyさん2010/04/21(水) 10:47:51ID:???
> そんな考えだからガラケーなんて言われるんだ
名言だな
1000nobodyさん2010/04/21(水) 13:20:16ID:???
このスレは1000の風になりました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。