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

くだすれPHP(超初心者用)6

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/04/05(日) 22:04:26ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/

前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/

関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0002nobodyさん2009/04/05(日) 22:09:53ID:???
>>1のつづき

PHP>>>越えられない壁>>>PERL
0003nobodyさん2009/04/05(日) 23:04:29ID:???
phpでsplit関数を使用して文字列を配列に格納しょうとしているのですが
 \
エスケープシーケンスをしっかりやっているにも関わらず、
\でsplitが出来ないです。
どうすれば良いでしょうか?

$strCheckpath = "C:\Documents and Settings\All Users\Application Data\Test\AAA\BBB"
echo $strCheckpath;
$strVec = split("\\", $strCheckpath);
print_r($strVec);
0004nobodyさん2009/04/05(日) 23:09:07ID:???
>>3
$p = "C:\Documents and Settings\All Users\Application Data\Test\AAA\BBB";
$s = split("[\\]", $p);
print_r($s);
0005nobodyさん2009/04/05(日) 23:11:33ID:???
普通はexplode使うよな
0006nobodyさん2009/04/05(日) 23:24:16ID:???
>>4 >>5
ありがとうございます。

因みに \ をエスケープする場合のみ

[ ]

で囲む必要があるのですか?
0007nobodyさん2009/04/05(日) 23:27:51ID:???
うまい説明はできないが正規表現を使う場合は囲む必要がある

以下の場合は囲まないとダメ
[0-9]
[a-zA-Z0-9]
[\.]
0008nobodyさん2009/04/06(月) 00:50:54ID:???
>>7
サンクス
0009nobodyさん2009/04/06(月) 05:05:54ID:???
OOPで、
staticな呼び出しって
基本的に非推奨なんだよね?
0010nobodyさん2009/04/06(月) 05:34:24ID:???
>>9
いいえ全然
0011nobodyさん2009/04/06(月) 12:58:37ID:???
クラス作ってみたけどよくわからんから、とりあえず全部staticってのは無しな
0012nobodyさん2009/04/06(月) 15:00:03ID:???
PHPで作られたサイトで
画面の上部のリンクをクリックするとURLの末尾のパス名だけが切り替わって
WEBページ(ファイル)名が表示されない画面がありますけど
あれってどうやってるんですか?

【知りたい作り】
http://TEST/URL_DIR_1/
http://TEST/URL_DIR_2/
http://TEST/URL_DIR_3/

【普通に作るとこうなるんじゃない、と思う作り】
http://TEST/URL_DIR_1.php
http://TEST/URL_DIR_2.php
http://TEST/URL_DIR_3.php
0013nobodyさん2009/04/06(月) 15:12:27ID:???
>>12
rewrite

もしくはPATH_INFO使って処理する
0014nobodyさん2009/04/09(木) 10:30:52ID:8oBHOH+F
配列をPOSTして受け取ることは可能ですか?
0015nobodyさん2009/04/09(木) 11:15:47ID:???
うんname="hoge[]"
var_dump($_POST['hoge']);
0016nobodyさん2009/04/09(木) 16:44:52ID:8oBHOH+F
$_POST['"tuzyo_ninzu echo($hiduke)"']

こんな感じにしたいのですが、大括弧内の書き方が分かりません。。
助けてください。。
0017nobodyさん2009/04/09(木) 17:15:02ID:???
>>16
$_POST["tuzyo_ninzu{$hiduke}"]
じゃだめなんか?
0018nobodyさん2009/04/09(木) 17:17:46ID:???
>>16
??
よくわからない

下みたいにどこに何の変数が入ってるのか書いてくれれば答えれれるが
$array[0][0]="";
$array[0][1]="";
$array[0][2]="";
$array[0][3]="";
0019nobodyさん2009/04/09(木) 17:45:35ID:???
任意のURL内のテキストから特定の文字列を探し出し、そのデータを蓄積するプログラムを作りたいと思っています
PHPで可能でしょうか?
ネットゲームの得点を蓄積してランキングをつくりたいのですが
0020nobodyさん2009/04/09(木) 18:14:28ID:???
>>19
可能
0021nobodyさん2009/04/09(木) 18:25:15ID:???
ありがとうございます
その任意のURLの末尾を日にちによって変えて、定時になったら自動で蓄積するというのも可能でしょうか?
0022nobodyさん2009/04/09(木) 18:31:52ID:???
cron使えば可能
それ以外ならちょっと工夫しないと無理
0023nobodyさん2009/04/09(木) 18:35:46ID:???
UNIXですか
レンタルサーバー上で自動実行させたいんですが、無理っぽいですね
どうもありがとうございました
0024nobodyさん2009/04/09(木) 18:41:44ID:???
普通cronくらい使えるようになってるだろ
0025nobodyさん2009/04/09(木) 18:44:00ID:???
そうなんですか?
こういう構想があるだけでPHPについては初歩の初歩くらいしかわかっていないもので申し訳ない
0026nobodyさん2009/04/09(木) 18:49:23ID:???
少なくともXREAは使えたな
使ったことないけど
0027nobodyさん2009/04/09(木) 19:24:50ID:???
とりあえず@pagesというところで借りました
検索するとperlで任意のURL内のテキストから特定の文字列の値を抜き出す方法はありましたがPHPでそれをする方法がわかりませんでした
LWP::Simpleでいいんでしょうか?
0028nobodyさん2009/04/09(木) 19:53:13ID:???
>>24
なってないよ
禁止してるとこもある
0029nobodyさん2009/04/09(木) 21:36:43ID:???
そりゃしょぼいとこだけだ
0030nobodyさん2009/04/09(木) 22:11:46ID:???
なんか自分の見た世界が全てだって言い切る人っているよね
0031nobodyさん2009/04/09(木) 22:13:39ID:???
って言い切ってるわけか
0032nobodyさん2009/04/10(金) 16:56:17ID:???
>>19ですがまったくわかりません
どういう構成にしたらいいか教えていただけないでしょうか
0033nobodyさん2009/04/10(金) 17:04:12ID:???
>>32
オンラインゲームの公式サイトのランキングページから取得するの?
0034nobodyさん2009/04/10(金) 17:04:33ID:???
構成は、ページ取って来て得点抜き出してデータファイルに書き込みするPHPと、
データファイル内容を計算してランキング表示するPHP
0035nobodyさん2009/04/10(金) 17:10:44ID:???
ttp://tenhou.net/stat/rgz.shtml
えっと、このページの例えばsca20090402.log.gzにアクセスして特定の個室ナンバーの成績のみを取得したいのです
それをサーバー上で自動的にやってほしいのです
定時更新が難しいのならそのページにアクセスする度に自動取得、更新でもできればいいんですけど
0036nobodyさん2009/04/10(金) 17:15:27ID:???
誰かがアクセスした毎にそこのサイトに負荷がかかるわけだ
なめてるな
0037nobodyさん2009/04/10(金) 17:21:25ID:???
身内のみ公開のページで数人単位ですしその程度の負荷は想定内だと思うのですが
とはいうものの申し訳ないです
7日ごとに消えていくようなので7日に一回というのでもいいんですけどcronは難しいみたいでして・・・
0038nobodyさん2009/04/10(金) 17:32:53ID:???
アクセス毎にダウンロードいかせるのではなくて
自分の鯖に足りないものだけを取得するようにしたらいい
0039nobodyさん2009/04/10(金) 17:37:36ID:???
えーっと、readfile関数でできますか?
一応Cはやったことあるんですけど触りだけだったんでよくわかってません・・・
0040nobodyさん2009/04/10(金) 17:53:13ID:???
まず$data=file_get_contents($url)
0041nobodyさん2009/04/10(金) 17:54:25ID:???
できるかできないかの前に自分で試してからやろうな
○○がしたいいから○○関数を使ってこういうコード書いたけど動きませんならまだいいが

まだ君は初歩を勉強してない段階だから背伸びはしないようにな
0042nobodyさん2009/04/10(金) 17:55:36ID:???
>>40
バイナリを読むんだからその書き方じゃアウト
0043nobodyさん2009/04/10(金) 17:56:29ID:???
>>40
フラグにFILE_BINARYを指定しないと読めないみたいですよ先輩
0044nobodyさん2009/04/10(金) 17:58:59ID:???
>>42
バイナリ?なんか勘違いしてる?
0045nobodyさん2009/04/10(金) 18:01:42ID:???
ちょっとした値を渡す時に、hiddenでデータの保持をするのが気持ち悪いので
tmpfile()でサーバにテンポラリを作って値をチェックしてから出力してるんですけど
一般的ではないんですか?
0046nobodyさん2009/04/10(金) 18:22:11ID:???
>>44

>えっと、このページの例えばsca20090402.log.gz
0047nobodyさん2009/04/10(金) 18:22:52ID:???
>>45
別にhiddenでもいいよ
0048nobodyさん2009/04/10(金) 18:24:24ID:???
>>46
いやいや確かにファイル名はtarボールっぽいけどページ開いてみ
0049nobodyさん2009/04/10(金) 19:15:51ID:???
データの取得はできましたがそこから特定の文字列を含む一行の抽出をすることができません
文字数が決まっていないのでsubstr()も使えませんし、strpos()と組み合わせてみてもいまいちでした
何か他に関数があるんでしょうか?

>>38さんがいっているのはfile_get_contents()だと全データを取得するけど特定のデータのみの取得もできるってことですか?
0050nobodyさん2009/04/10(金) 19:29:29ID:???
ヒント
fileとexplode
この二つで大雑把に分解した値にできるので少し考えてからまたこい
1時間ぐらいは粘ってからこいよすぐここに聞いて解決しようとするなよ
0051nobodyさん2009/04/10(金) 20:53:44ID:???
EXPLODEが正常に動きません
何故でしょうか・・・
file関数で取得してexplode関数で一行ずつ配列にするってことでいいんですよね?
そこからL○○○○を含む配列のみを書き出すようにすればいいんですよね?
とりあえず載せてみます

$data = file('http://tenhou.net/stat/dat/sca20090402');
foreach($data as $line){
echo $line."<br />";
}
$array = explode("\n", $data);
print_r($array);

0052nobodyさん2009/04/10(金) 20:55:25ID:???
正常に動かないってそれ本気で言ってるの?
0053nobodyさん2009/04/10(金) 20:58:23ID:???
申し訳ないですけど本気でわかりません
0054nobodyさん2009/04/10(金) 20:59:31ID:???
普通初心者ならPHPの標準関数より自分のコードを疑うんじゃない?
0055nobodyさん2009/04/10(金) 21:01:45ID:???
あ、いや、自分のコードのどこかが悪くて正常に動かないってことだったんですけど、
書き方が悪かったですね、申し訳ない
0056nobodyさん2009/04/10(金) 21:04:17ID:???
>>51
http://tenhou.net/stat/dat/sca20090402をブラウザで開いてみろ
0057nobodyさん2009/04/10(金) 21:11:17ID:???
表示されますけど、なにかまずかったですか?

$data = file('http://tenhou.net/stat/dat/sca20090402');
foreach($data as $line){
echo $line."<br />";
}
この部分は正常に表示できています
explodeで除外するのは改行コードでよかったんでしょうか
0058nobodyさん2009/04/10(金) 21:26:32ID:???
ああ、すみません
表示のテストには軽い別のファイルをつかっていたので気付きませんでした、本当に申し訳ありません
gzっていうのは書庫なんですか?
ttp://tenhou.net/stat/raw.shtmlを使うしかないようですね
0059nobodyさん2009/04/10(金) 21:39:38ID:???
>>57
俺の環境ではそれ正常に表示されないけど
0060nobodyさん2009/04/10(金) 21:40:41ID:???
>>59
>表示のテストには軽い別のファイルをつかっていたので気付きませんでした
0061nobodyさん2009/04/10(金) 21:41:52ID:???
まじで?ここに議論の対象として出してるコードと自分のテストコードが違うとか頭いかれてるの?
0062nobodyさん2009/04/10(金) 21:56:54ID:???
>>57

おれがサンプル書いてやるからこれで勉強しろ
↓のをそのまま貼り付けろ

$txt[]="id,name,age";
$txt[]="1,tanaka,10";
$txt[]="2,kinoshita,20";

foreach($txt as $v){
$v=explode(",",rtrim($v));
print_r($v);
echo "<br>";
}
0063nobodyさん2009/04/10(金) 22:26:25ID:???
$data = file('http://tenhou.net/stat/raw.shtml');
foreach($data as $line){
$line = explode("\n", $data);
echo $line."<br />";
}

$txt[]="id,name,age";
$txt[]="1,tanaka,10";
$txt[]="2,kinoshita,20";

foreach($txt as $v){
$v=explode(",",rtrim($v));
print_r($v);
echo "<br>";
}
としたら
Array
〜中略〜
Array
Array ( [0] => id [1] => name [2] => age )
Array ( [0] => 1 [1] => tanaka [2] => 10 )
Array ( [0] => 2 [1] => kinoshita [2] => 20 )
となりました
explodeで区切ってもそれぞれが$v[i]に格納されるわけじゃないんですね
それはわかりましたが本体のほうはどこが悪いんでしょうか
一行ごと取得して改行で区切るというのがおかしいんでしょうか
0064nobodyさん2009/04/10(金) 22:29:55ID:???
>>63
おまえさほんとに基礎から学んだ方がいいよ
0065nobodyさん2009/04/10(金) 22:35:04ID:???
ちょっと舐めすぎてましたね
今回は諦めますわ
付き合ってくださった皆様本当にありがとうございました
0066nobodyさん2009/04/10(金) 22:46:20ID:???
>>65

とりあえず以下の事を学習したらまたこい

if
for
switch
while
変数の扱い
0067nobodyさん2009/04/10(金) 22:48:57ID:???
どうも、そうやって示してもらえるのはとてもありがたいです
何から手をつけていいかさっぱりなので
またきます
0068nobodyさん2009/04/10(金) 22:50:34ID:???
>>66
おまえ言葉はキツイはけっこう良いやつだな
0069nobodyさん2009/04/10(金) 22:51:24ID:???
ツンデレってやつか
0070nobodyさん2009/04/11(土) 00:40:52ID:???
>>66
とりあえずそれについてはわかったと思います
変数がCと違っててちょっとやりにくいですね

gzopen関数をつかえばhttp://tenhou.net/stat/dat/sca20090409.log.gzは開けましたが文字化けしますね・・・
mb_convert_encoding関数をつかってもどうにもなりませんし
0071nobodyさん2009/04/11(土) 03:26:06ID:???
セキュリティの本読んでたら
PHP_SELF
が危険、って書いてあって、
具体的にどう危険かというと、
javascriptで、任意の文字列を
送り込むことが可能、って書いてあって、
そんで聞きたいのは、
SCRIPT_NAMEでも同様なのかどうかってこと。

htmlspecialcharactersでサニタイズ必要?
0072nobodyさん2009/04/11(土) 12:45:20ID:???
htmlspecialcharactersなんて関数あったっけ?
0073nobodyさん2009/04/13(月) 09:03:05ID:???
>>17

教えていただきありがとうございます!
0074nobodyさん2009/04/13(月) 10:46:33ID:???
>>17
変数に括弧いらないよ
$_POST["tuzyo_ninzu$hiduke"]でおk

下みたいに配列変数の時はいるけどね
$_POST["tuzyo_ninzu{$hiduke[0]}"]
0075nobodyさん2009/04/13(月) 10:47:49ID:???
明示的に変数と文字列を区別するのはいいこと
0076nobodyさん2009/04/13(月) 12:06:41ID:???
phpに.NetのDataTableみたいな便利な昨日は無いの?

配列で代用するしかないの?
0077nobodyさん2009/04/13(月) 12:19:30ID:ecVuinBp
.htaccessで下記を設定し、htmlファイルをPHPとして動作させております。

 RemoveHandler .html
 AddType application/x-httpd-php .htm .html

html内で下記のようにPHPで書かれたhtmファイルをincludeしているのですが、

 <?php include("〜.htm");?>

〜.htmでは通常のPHPの書き方で下記のように書いております。

 <?
 $url = parse_url($_SERVER['REQUEST_URI']);
 $dir = $url['path'];
    :

サーバ移行前では〜.htmもしっかりとincludeされ期待通りの出力がされて
いたのですが、サーバ移行をした途端、〜.htmの内容がそのまま出力され
るようになってしまいました。

何か該当する設定がありましたらご教示いただけると助かります。
宜しくお願いいたします。
0078nobodyさん2009/04/13(月) 12:29:30ID:???
<? ←この記述が設定上許されてないとか?
0079nobodyさん2009/04/13(月) 13:22:46ID:ecVuinBp
>>78
有難うございます。
この設定を有効にするにはどの部分を見てみたら良いか、
できればご教示ください。。すみません。
0080nobodyさん2009/04/13(月) 13:26:22ID:???
javaみたいな表記にしろってことじゃん?それかphp
0081nobodyさん2009/04/13(月) 13:28:30ID:???
php.iniのshort_open_tagをonにすればいいじゃね
0082nobodyさん2009/04/13(月) 14:30:42ID:???
short_open_tagがONの鯖は借りるな!
short_open_tagがOffで動かないソースは書くな!
short_open_tagで書かれたフリースクリプトは今すぐ投げ捨てろ!
0083nobodyさん2009/04/13(月) 15:37:16ID:???
>>81
ありがとうございます。
おかげさまでなおりました。
この場をお借りし御礼申し上げます。

>>82
たしかにこれはよくないですね。。
改善の方向で考えます。
0084nobodyさん2009/04/13(月) 21:15:12ID:???
MySQLのSelectで100件ぐらいデータがヒットしても
それを全部表示しないで、1画面に20件ずつ表示させるには
どうすればいいですか?
0085nobodyさん2009/04/13(月) 21:15:50ID:???
limit 0, 20
0086nobodyさん2009/04/13(月) 21:39:12ID:???
いや、SQLで先頭20件出すんじゃなくて、ECHOで20件ずつ表示していく
(「次」をクリックすると次の20件が表示される)ようにするにはどうすればいいでしょうか?
0087nobodyさん2009/04/13(月) 22:09:51ID:???
DBから取得した値を可変の配列に格納しようと思ってるのですが、
.NetのArryalListに似たコードはありますか?


0088nobodyさん2009/04/13(月) 22:16:36ID:???
まずは.NetのArryalListがどんなものか説明すれば?
0089nobodyさん2009/04/13(月) 22:20:55ID:???
>>86
limit 20,40
0090nobodyさん2009/04/13(月) 22:30:18ID:???
>>88
ぐぐれ
0091nobodyさん2009/04/14(火) 00:51:07ID:???
あの、>>35ですけど取り込むことはできたんですが、文字化けが解決できません
エンコードの問題ではないみたいなんですが・・・
0092nobodyさん2009/04/14(火) 01:24:11ID:???
>>89
それはちゃいますがな
20, 20
0093nobodyさん2009/04/14(火) 08:18:04ID:???
short_open_tagがONの前提でコード書くじゃん。
そしたら、そのサーバーが、設定で
short_open_tagをOFFにしたとたん、
全部のPHPのソースコードが丸見えになるよ。
0094nobodyさん2009/04/14(火) 08:18:47ID:???
>>84,86

PEAR::Pager
0095nobodyさん2009/04/14(火) 08:19:38ID:???
>>85,89は自閉症
コミュニケーション障害
そのくせ自分がえらいと思っている
0096nobodyさん2009/04/14(火) 09:43:28ID:???
自己紹介乙
0097nobodyさん2009/04/18(土) 21:48:56ID:???
PHPの初心者向け教本教えて下さい。
0098nobodyさん2009/04/18(土) 21:54:21ID:???
はじめてのphp言語 プログラミング入門
0099nobodyさん2009/04/18(土) 21:57:10ID:???
独習PHP
実践マスターPHP+MySQL
速効!図解プログラミングPHP + MySQL
0100nobodyさん2009/04/19(日) 11:32:16ID:???
宣伝乙
0101nobodyさん2009/04/20(月) 23:20:17ID:???
どれがいいんだよw
0102nobodyさん2009/04/20(月) 23:46:37ID:???
SJC-Aを落ちた俺がPHPをやりたいと思ってます

と聞きたい事が書いてあった・・・・>>97
0103nobodyさん2009/04/21(火) 05:55:58ID:???
●はじめてのphp言語 プログラミング入門
●独習PHP
●実践マスターPHP+MySQL
●速効!図解プログラミングPHP + MySQL
0104nobodyさん2009/04/25(土) 00:26:24ID:SLuxKVD8
プラグインのsecedit.inc.phpを導入しようとしたらエラーが出て困っています。

ttp://www.luntf.com/?secedit.inc.php#h166c4a3 ←配布元です。を、見ながらやっていたのですが
Fatal error: Call to undefined function plugin_secedit_wrap() 〜〜/pukiwiki/lib/convert_html.php on line 260
と出たため
lib/convert_html.phpの260行目を確認してみたのですが、その部分は配布元に書いてある+部分の追加する文の
$secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
であり、どこがおかしいのかもうさっぱり分からないのです。ならばと思い、前後の文章の
function canContain(& $obj)
{
return FALSE;
}

function wrap($string, $tag, $param = '', $canomit = TRUE)
{
$secedit = plugin_secedit_wrap($string, $tag, $param, $this->id);
return $secedit ? $secedit : parent::wrap($string, $tag, $param, $canomit);
}

function toString()
{
return $this->msg_top . $this->wrap(parent::toString(),
'h' . $this->level, ' id="' . $this->id . '"');
}
}
ここまでをコピペしてみたのですが、エラーの文章は変わりませんでした。
グーグルで「secedit.inc.php エラー」等調べてみたのですが、解決出来るようなものはHITせず、
途方に暮れています。どうか力を貸してください、お願いします。
0105nobodyさん2009/04/25(土) 00:36:18ID:???
lib/pukiwiki.phpに
 require(PLUGIN_DIR . 'secedit.inc.php');
ちゃんと書いてるの?
0106nobodyさん2009/04/25(土) 12:03:06ID:???
>>105
遅くなって申し訳ありません、確認してみたところlib/pukiwiki.php内で
↓のように、}の位置が間違っていた事が原因でした。
require(PLUGIN_DIR . 'secedit.inc.php');
}

修正したところエラーが消え、seceditがちゃんと追加されて問題なく動かせるようになりました。
お手数をおかけしました、ありがとうございます。
0107nobodyさん2009/04/29(水) 23:37:06ID:???
>>106
localにphpの実行環境作りなされ
xamppで充分だから
0108nobodyさん2009/04/30(木) 18:37:16ID:???
あるドメインで、サブドメインを利用して別のシステムを運用しようとしています。
aaaa.hogehoge.jp と
bbbb.hogehoge.jp
この2つはシステム上の関連性はなく、全く別のデータベースを使います。

aaaa.hogehoge.jpではsessionは使えるのですが、bbbb.hogehoge.jpのほうではsessionが使えません。
色々調べてみたのですが、どうもbbbb.hogehoge.jpではクッキーが使えないようで、手動でPHPSESSIDを渡してやるとsessionが使えます。
setcookieを使っても、Windows上でクッキーのファイルも生成されず、クッキー自体が使用不可になっているようです。
ちなみにIE6.0ですが、Firefox2でやると両方ともsessionはOKでした。
こういう事って何が原因なのでしょうか・・・未熟な私にはサッパリわかりません・・・。
0109nobodyさん2009/04/30(木) 18:45:03ID:???
DBもアプリも別のシステムで一切共用部分無いなら aaaa.hogehoge.jp は関係なくね?
IE6.0限定とか言ってるけど、別のクライアント(PC)でもそうなの?
0110nobodyさん2009/04/30(木) 18:55:40ID:???
同じサーバーで同じドメインに共存しているシステムでどうして片方はクッキーが使えないのかな、って。
会社のPCと家のPC、友人のPCで試しましたが同じくIEではダメでFirefoxではOKでした。
友人のPCはIE7.0です。
0111nobodyさん2009/04/30(木) 19:04:54ID:???
>>107
xamppすすめてんじゃねえっ!!!!!!!!!!!!!!!!!
0112nobodyさん2009/04/30(木) 19:12:07ID:???
>108です。
ちなみにこういうスクリプトです。

--- index.php ---
session_start();
session_register("test");
$test = "aaa";
print "<a href='test.php'>".SID."</a>";


--- test.php ---
session_start();
print $test;


$testの部分を$_SESSION['test']とかにしてもダメでした。
0113nobodyさん2009/04/30(木) 19:31:14ID:???
print $_SESSION['test'];
0114nobodyさん2009/04/30(木) 19:50:17ID:???
>>110
情報後出しすんなよ・・・話が>>108と全然違うじゃん。
0115nobodyさん2009/05/01(金) 08:42:59ID:???
後出し?
内容変わってる?
0116nobodyさん2009/05/01(金) 08:52:49ID:???
>>108 「システム上の関連なく」
>>110 「同じサーバーで同じドメインに共存しているシステム」
0117nobodyさん2009/05/01(金) 10:27:25ID:???
>108です。
混乱させてすいません。
サブドメインaaaaとbbbbは、システムとしては何の関連もなく、ただ単に同じサーバー上の同じドメインにあるというだけです。
サブドメインでシステムを切り分けているだけです。

試しにサブドメインaaaaに入っているシステム(sessionもcookieも正常に動作)を、サブドメインbbbbに移してみたのですが、
やはりsessionもcookieも動作しません。ということはスクリプトは関係ないみたいなのですが・・・。
サブドメイン名で何かやっちゃいけない事とかあるのでしょうか?
bbbbというのは仮名称でして、実際に運用しているサブドメイン名は違います。
0118nobodyさん2009/05/01(金) 10:32:53ID:???
PHPは?
0119nobodyさん2009/05/01(金) 10:44:17ID:???
>108です。
追加です。
試しに同じドメイン内に別のサブドメイン名を新たに作り、先ほどのテストスクリプトを入れてみたところ、
キチンと動作しました。
となるとサブドメイン名が怪しいとなるのですが、

(「x」は任意の文字)
sessionとcookieが動作しているサブドメイン名
・xxxx.hogehoge.jp
・xxx-xxxx.hogehoge.jp
(実際に運用しているシステムが入っています)

cookieが動作しないサブドメイン名
・xxx_xxxx.hogehoge.jp
(今回新たに制作するシステムです)

となるのですが、サブドメイン名に命名規則というものはあるのでしょうか?
アンダーバーを入れたのがマズイのかな・・・
ちなみにアンダーバーを入れたサブドメインを3つ作りましたが、3つともcookieは動作しませんでした。
0120nobodyさん2009/05/01(金) 11:28:05ID:???
>>119
ワンクリ詐欺業者乙
0121nobodyさん2009/05/01(金) 11:34:46ID:???
>108です。

ttp://blog.karakuriya.biz/developers/php/000690.html
解決しました・・・。
サブドメインにアンダーバーは使ってはいけないのですね。
初めて知りました。
ちなみにワンクリ業者じゃないでよ。ちゃんとしたシステム会社です。
ドメイン料を払いたくないクライアントさんが結構いますので、そういう場合は自会社のドメインのサブドメインとしてシステムを利用しています。
0122nobodyさん2009/05/01(金) 11:45:05ID:???
そんなどこの馬の骨とも分からないblog信じていいの?
サブドメインが使えるって書いてあるblogがあったらどうすんの?
0123nobodyさん2009/05/01(金) 11:53:31ID:???
>>122
サブドメインのアンダーバー使うとIEでセッションが使えないのですよ
恥ずかしいやつだね
0124nobodyさん2009/05/01(金) 11:54:29ID:???
>>122のレスにクソワロタwwwww
アンダーバーが使えないのは常識だぜ?w
釣りで言ってるだけだよな?wwwww
0125nobodyさん2009/05/01(金) 12:12:39ID:???
一応、貼っておこうか。
ttp://tools.ietf.org/html/rfc1034
0126nobodyさん2009/05/01(金) 12:14:04ID:???
>>122

>>125を100回読んで出直してこいwwwwwwwwwwwwwww
0127nobodyさん2009/05/05(火) 22:43:00ID:???
ファイルをダウンロードさせるときに、
IEとファイヤーフォックスで
仕様が違う、と教科書に書いてあるのだが、
本当なのか?
0128nobodyさん2009/05/05(火) 22:56:47ID:???
うん
0129nobodyさん2009/05/05(火) 23:01:24ID:???
そんで、その教科書に、
「ブラウザによって挙動が違うので、
ブラウザの種別を判定して、
それぞれに最適化された
ダウンロード用のコードを書かないといけない」
って書いてあるんだけど、ほんとにそんな
めんどくさいことするの?
0130nobodyさん2009/05/05(火) 23:16:00ID:???
質問するならもっと具体的に
0131nobodyさん2009/05/06(水) 09:36:38ID:???
エラー表示についてなんですが
借りてるレン鯖では.htaccessでのディスプレイエラー抑制ができないので
ini_set('display_errors', 0)で表示されないようにと考えています
ただマニュアルには
>スクリプトが致命的(fatal)なエラーを発生した場合は その設定は反映されません。
とあります
これはFatal errorのときは上記設定してもエラーメッセージが表示されてしまうということですよね
しかし試しに存在しない関数を呼んでみたところ(Fatal errorがでます)ちゃんと設定が反映されて
画面にはエラーメッセージが表示されません
意図的にFatal errorを出す方法をあまり知らないのですが、エラー内容によってはマニュアルの記述通り
ini_setの設定が反映されないということもあるのでしょうか
表示される可能性があるならini_setでの設定はあきらめてerror_reporting(0)で抑制しようと思うのですが
0132nobodyさん2009/05/06(水) 18:43:38ID:???
3行で
0133nobodyさん2009/05/06(水) 18:59:56ID:???
>>131
ちょっと解釈が違う。マニュアルが言ってるのはFATALでini_setが実行されなかった場合。
ini_setが記述されてるスクリプトそのものがFATAL出さなければ、その後のエラーはもちろん出ない。

で、結局のところ出したいの? 出したくないの?
0134nobodyさん2009/05/06(水) 20:51:06ID:???
>>133
エラーメッセージがブラウザに表示されないようにしようとしています
ini_setは一番最初に書いているので問題なければ以降のエラー表示が制御されるのはわかりました
ini_set時点でエラーが出るかもしれないからそれには@をつけておくとして
あとはスクリプトファイルを開いた時点で出るようなエラーがあったらエラーが表示されてしまうってところでしょうか
ちょっと不安ですがini_setを使う方法でエラー表示を出ないようにしてログを書き出すようにします
ありがとうございました
0135nobodyさん2009/05/07(木) 02:24:31ID:???
__callメソッドから以下の様に異なったシグニチャを持つメソッドに
適切な数の引数を渡すにはどうしたらいいですか?
hoge( $arg1, $arg2 )
fuga( $arg1, $arg2, $arg3)

extract( $args )でだめですた
0136nobodyさん2009/05/07(木) 22:42:34ID:???
>>135
function __call($name, $args) {
call_user_func_array(array($this, $name), $args);
}

引数の数ぐらいは確認した方がいいと思う

後、適当に作ったサンプル
<?php
class Test {
public function __call($name, $args) {
call_user_func_array(array($this, $name . $name), $args);
}

private function hogehoge($p1, $p2) {
printf("call hogehoge : p1 = %s, p2 = %s ¥n", $p1, $p2);
}

private function fugafuga($p1, $p2, $p3) {
printf("call fugafuga : p1 = %s, p2 = %s, p3 = %s¥n", $p1, $p2, $p3);
}
}

$obj = new Test();
$obj->hoge('aa', 'bb');
$obj->fuga('123', '456', '789');
01371352009/05/09(土) 01:45:15ID:???
>>136
トンクスです。あくまで可変長でなければ意味がないため、
今回は暫定でevalを使うことにしました。
$expr = '$return = $exec->invoke( $this->_logic, $dbh ';
 foreach ( $args AS $key => $value) {
  $expr .= ', $args[' . $key . ']';
 }
$expr .= ' );';
eval( $expr );
01381352009/05/09(土) 02:20:39ID:???
連続スマソです。

>>136
求めているものそのものでした。
勘違いしてスルーしてしまうとこですた。
ありがとうございます。

以下経緯
・何だ、オーバーロードか。
・PHPってたしかオーバーロードなかったんじゃネ?
・読み返してみよう。
・メソッド名違うじゃネーか…OTL
・デバッグしてみる
・ktkr
0139nobodyさん2009/05/09(土) 02:22:22ID:???
オーバーロード・・・?
0140nobodyさん2009/05/12(火) 15:55:01ID:???
<?php
$data=array('山田','掛谷','日尾','本田');
$data[0]='よしひろ';
$data[]='薄井';
print_r($data);
?>
0141nobodyさん2009/05/16(土) 02:34:32ID:???
>>139

public hoge($a, $b){
}

public hoge($a, $b, $c){
}

とメソッド名が同一で引数のみが違うものが定義できるのがオーバーロード。

PHPのoverload関数とは違うことを言っているのだとおもいます。
0142nobodyさん2009/05/16(土) 15:25:22ID:9VwjgWwZ
http://beebee2see.appspot.com/i/agpiZWViZWUyc2VlchQLEgxJbWFnZUFuZFRleHQYs-8EDA.jpg
0143nobodyさん2009/05/26(火) 00:25:59ID:???
そもそもPHPを始める前の質問で、恐縮なんですが、
先日、linuxの勉強をしたく、また、脱xamppの為に
自宅のwindows上にvmware player+centOS(CUI)にてローカル環境を作りました。
が、今まで、xamppでしか勉強した事がなかったので、どう言う風にコーディングしていったら良いか、
さっぱりなのですが、皆さんの中で似たような環境でPHPをお書きの方は、どう言う方法で
作ってらっしゃるんでしょうか?よろしければ教えていただけないでしょうか?
・windows上+エディタにてコーディング→SSH,などで放り込んで、動作確認
・Sambaで共有かけて、windows上のエディタから直接centOS内のファイルを直接作成して、そのまま動作確認
・centOS(GUI)+centOS上のエディタにて直接開発
など、皆さんの開発方法、または、お勧めの方法などありましたら
お手数かと存じますが、よろしくお願いいたします。
0144nobodyさん2009/05/26(火) 00:32:09ID:???
PHPの勉強をしたいなら、xamppがおすすめ
0145nobodyさん2009/05/26(火) 01:14:42ID:???
>>143
まず率直に言わせてもらうと「そのくらい自分で調べて決められないうちはlinux習得なんて夢のまた夢」です。

ちなみに私はwinscpでエディタを自分好みのものに紐付けてやってます。sambaもいいですね。
0146nobodyさん2009/05/26(火) 01:44:53ID:???
sambaはパーミッションいじるのが面倒くさい
0147nobodyさん2009/05/27(水) 02:22:00ID:???
昨日に引き続き長文申し訳ないです。
自分の今の環境かき忘れてました。
もともとperlでがちゃがちゃやっているのでEclipseを使っており。
PHPもそのままプラグインつっこんで、Eclips+winscpにて行っております。
しかし、PHPの場合はそれ以上に何か、効率の良い組み合わせないかなぁ
と、そのまんまでいいかさっぱりになったのでだ質問させていただいたしだいでした。

>>144
ありがとうございます。
元々XAMPPはつかっておりましたが、cakephpを触り始めるにあたり、
これを気にlinux系に走りたかったのです。
XAMPPさんにはお世話になりました。

>>145
本当にそうですね・・・。
自分の検索能力の低さに泣きました。
二日ばかり日本語サイトと英語サイトをふらりふらりとしましたが、
開発環境の作り方は書いてあっても、開発アプローチがあまり見つけられなかったもので。
linuxとりあえず現在は付属の--helpやらマニュアルやらを読んで特につまらずいけております。
viが楽しすぎる。でもこれからが、検索能力の低い自分には本当の地獄ですよ。がんばります。
それにしてもwinscp良いですよね…。個人的にはsambaでやるよりも好きです。
ご忠告、情報ありがとうございました!

>>146
sambaはたしかにパーミッションをわざわざ設定するのがめんどいですよね…。
となると、やはり、それ以外の方法になりますねぇ・・・。

現在回りにプログラマもおらず困っておりました。大変助かりました。
皆さんありがとうございまいした。
それでは、失礼いたします。
0148名無し募集中。。。2009/05/27(水) 03:00:59ID:zm02WRTp
xampp for linuxってのがあってだな
0149nobodyさん2009/05/27(水) 23:12:42ID:???
>>147
いちどに二つ変えるのはダメだよ
cakeを学ぶなら、新しい要素はcakeだけにして、
xamppはいままでどおり使わなきゃ。
0150nobodyさん2009/05/28(木) 06:51:29ID:q+a4ZRqn
スレ違いならすみません。
みなさんはブログを1から作ったことがありますか?
僕は上司に頼まれたのですが、1から作ったことがないので
ためらってしまいました。(1人で)
みなさんは1人でブログを1ヶ月で作れといわれたらつくれますか?
できない僕がおかしいのでしょうか。
後できればphp+mysqlでブログの作り方が載っているサイトとかありませんで
しょうか。
googleで検索しているんですが、いいサイトがありません。
こちらもよろしくお願いします。
0151nobodyさん2009/05/28(木) 08:36:11ID:???
どの程度のレベルを求められてる話なのか知らんが、ド素人でも無い限り
一ヶ月もあれば簡単なblogなんて楽勝だろうよ。BBSの延長なんだし。
むしろそれくらい自分で作れないとこの先やっていけんよ。仕事だろ?
0152nobodyさん2009/05/28(木) 12:04:53ID:???
ブログを作るって、ブログシステムを作るって事なの?
それともMovableTypeなんかを使ってブログを作る事?

とりあえずオレは会社の業務命令で自治体向けのSNSシステムを一人で一ヶ月かからずに作った事があるから、出来るんじゃね?
0153nobodyさん2009/05/28(木) 17:32:55ID:???
phpメールフォームを設置しようと思い"sendmail.php"というものをDLしました。
フォームの設置ができ、試しにフォームからメールを送信したのですが指定先に届きませんでした。。

ググったら"sendmail path"というものの設定をしなきゃいけないと出て
書いてあるとおりに設定したのですが、php.infoを見ると"sendmail path"の所が
"no value"となったまま変わらないんです。。
Apacheをリスタートしても変わりませんでした。

教えて頂きたいです。

[php.ini]
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from =xxx@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =/usr/sbin/sendmail -t -i

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
0154nobodyさん2009/05/28(木) 17:39:03ID:???
セミコロン外す必要があるよ
php.iniの編集したことなかったん?
0155nobodyさん2009/05/28(木) 18:04:16ID:???
>>154
ありがとうございます!
やってみます。

はい、編集初めてなんす。。
趣味の範囲でなんですけど俺には難しいっす。
0156nobodyさん2009/05/28(木) 20:36:59ID:pePXJ68I
>>151
仕事です。
>>152
MovableTypeは使いません。
ブログシステムを作るということです。

がんばってみます。
すいません。
泣き言を言って。でも1人で作るというのが怖い。
もし納期に間に合わなかったらとか。
どこかブログの作り方を説明しているサイトはないかな?
本とか。
0157nobodyさん2009/05/28(木) 20:42:18ID:???
>>156
blogの作り方そのものを書いてるサイトはあまり無さそう。
フリーで公開されてるものは多々あるから、それの中身見たほうがいいと思う。
本はそれなりに大きい本屋行けば簡単に見つかると思うが。
0158nobodyさん2009/05/28(木) 20:45:10ID:???
ん、まて。納期って検証込みで一ヶ月か?
本来無茶な期間ではないが、お前さんのスペック(検索力込み)の低さでは無茶かも。
職場の先輩とか相談できる相手いないのかい?
0159nobodyさん2009/05/28(木) 21:02:42ID:???
>>152
おまえのアレ、OpenPNEのソースパクってきて、
見た目を変えただけやん。
0160nobodyさん2009/05/28(木) 21:04:15ID:???
ブログって1から作るのメンドクサイだろ。
ページングやらカレンダーとのリンク、画像のアップロードやらは必須だろうから、素人が1ヶ月では無理だよ。
セッション管理とかからんだら限りなく無理。
0161nobodyさん2009/05/28(木) 21:06:48ID:???
仕様書が無いと仕事ができないくせに、

「プログラマーが一番偉い仕事なんです」

とかってふんぞりかえるのって、なんなの?
0162nobodyさん2009/05/28(木) 21:12:24ID:???
Webアプリでガチガチの仕様書なんて要らないよ。
Amazonやら楽天なんかのシステム規模ならともかく。
要件聞いたらプロトタイプさくっと作って、デモしながら基本設計固めたほうが早い。
0163nobodyさん2009/05/28(木) 22:56:27ID:???
file_get_contentsを使って.txtファイルを読み込んだら
ファイルの中身が改行されずに表示されたんですが
どうすれば改行が反映されるのでしょうか?
0164nobodyさん2009/05/28(木) 22:58:26ID:???
content-typeをtext/plainにするか、改行をbrタグに変換
0165nobodyさん2009/05/28(木) 23:01:28ID:???
>>157
webサイトがないんですよ。
ECサイトは1ヶ月で作ったことがあるんですが、
ブログとなると、カレンダーや画像やRSSやいろいろ
絡んできて。
本でいいのありますか?この間ジュンク堂行ってきたんですが、
カスタマイズ本しかなかった。


>>158
納期って検証込みで一ヶ月です。
ECのほうはそういう本があって無事作れたんですが、
ブログは参考になる本がなくて、webも。
先輩も忙しくて自分で作ってといわれると胃がキリキリ
いたんで。仕様書も自分で作って。
アメーバブログ並を求められるのですが。
これみなさん作れますか?

>>160
めんどくさいというかわからない部分が聞けない
>>162
客に説明しないといけないので、仕様書必須です。
後ブログサイトのデザインもします。
0166nobodyさん2009/05/28(木) 23:10:55ID:???
>>165
ameba級を仕様書+設計+制作+検証込みで一ヶ月か。おまけにサイトデザイン?
そりゃ無理とは言わんが相当無茶なスケジュールだ。先輩が忙しくて構ってられんのも頷ける。
明らかにプロジェクト組んでる奴(上司)がおかしい。

でもECよりは楽だと思うんだけどなぁ。とりあえず考える前に作ってみたら?
0167nobodyさん2009/05/28(木) 23:12:53ID:???
フレームワーク使えるなら一週間でプロトは出来るでしょ
そこからが長いけどw
0168nobodyさん2009/05/28(木) 23:13:05ID:???
なんでwordpressのカスタマイズではダメなのか、
理由は聞いたのか?
0169nobodyさん2009/05/28(木) 23:13:48ID:???
フレームワークってのは
プロトタイプを作るためのものなの?
0170nobodyさん2009/05/28(木) 23:14:09ID:???
ameba並って管理側のシステムも含めてるのかな。だったら無謀。
0171nobodyさん2009/05/28(木) 23:15:17ID:???
>>169 たぶんプロトタイプの解釈が異なってるw
0172nobodyさん2009/05/28(木) 23:21:25ID:???
>>169
お前は何を言っているんだ
0173nobodyさん2009/05/28(木) 23:33:16ID:???
>>164
レスサンクス、だめでした。エディターはEMエディター使っているんですが
改行設定が悪いのかもしれません。どこで設定できるのかわかりませんが
もうちっと調べて見ます。

>>165
ブログ作成なら「作って覚えるPHP+MySQLアプリケーション―
ブログ、ショッピングサイトからマッシュアップまで 」とか言うのがありますが
アマゾンのレビューは良くないですね。
0174nobodyさん2009/05/28(木) 23:47:39ID:???
アメーバブログ級か・・・
見る側のみなら大丈夫かもしれないけど、管理側までとなると一ヶ月では難しいんじゃまいか。
仕事と自分の体、どっちが大事かよく考えて受けた方がいいんじゃない?
01751732009/05/28(木) 23:57:19ID:???
自己解決しますた
01761532009/05/29(金) 03:27:15ID:3dHCHvMm
失礼します。

先ほどsendmailについて質問をさせてもらったものですが、やはり出来ませんでした…
パスを/usr/sbin/sendmail -t -iにするには、何かインストールする必要があるんでしょうか?
Xmailというものが引っかかりDLしていろいろやってみましたがダメでした。
0177nobodyさん2009/05/29(金) 06:51:54ID:???
sendmailのpathが合って無いんじゃない?
which sendmailで探してみ
0178nobodyさん2009/05/29(金) 08:17:22ID:???
localhostが名前解決できてない可能性もある
0179nobodyさん2009/05/29(金) 08:48:02ID:???
つかログくらい見ろって話だ
0180nobodyさん2009/05/29(金) 09:11:52ID:4+pBIE+V
>>166
ECは大角本があって非常に助かりました。
ブログはいい本やサイトがないですが、がんばります。
簡単なのは作れたんですが、カレンダーや管理画面等
が難しく。
>>167
フレームワークはできません。手続き型です。
>>168
自社で開発して販売にもっていこうとしているみたいです。
>>170
そうですか。どうしよう。
>>174
胃が痛いし、夜も眠れません。
0181nobodyさん2009/05/29(金) 09:26:37ID:???
>>180
出来上がったら売るのか…
0182nobodyさん2009/05/29(金) 09:45:58ID:???
正気か・・・
0183nobodyさん2009/05/29(金) 10:03:05ID:???
>>180
カレンダーとか認証とか、pearにいくらでもライブラリすっ転がってるでしょ。
本に書いてある通りにしか書けないタイプだとしたらこの先あまりに辛過ぎる。
つーか間に合わなくてもいいからフレームワーク使っとけ。後で誰も手伝えなくなる。
0184nobodyさん2009/05/29(金) 10:09:19ID:???
>>180
とりあえず納期の事で胃を痛めてても仕方ないから2chなんて見てないで
作業進めちゃったほうがいいよ。販売云々は今は考えるな。営業の仕事だし。
一ヶ月勉強期間もらったと思えばいいんじゃない?
0185nobodyさん2009/05/29(金) 12:06:30ID:b8Gghdtq
下のような感じでページからShowRes()を呼んでデータの取得をしようとしてるんですが
どうしてもGetData()のmysql_queryで値が取れません
$dbhにはリソースIDも入っているしSQL文もphpMyAdminで実行すると問題なく通ります。
またShowRes()を関数にしないでページに直接書くと実行できます。

ずっとはまっててもうトホホな状態です。
何が悪いんでしょうか?

function ShowRes()
{
  $dbh = mysql_connect($db_host, $db_username, $db_password);
  if ($dbh === false) die("db access error!");
  mysql_select_db($db_name, $dbh);

  foreach () {
    $ret = GetData($dbh);
  }
}

function GetData($dbh)
{
  $intRet = 0;
  
  $strsql = "select 〜";
  $res = mysql_query($strsql, $dbh);
  while ($row = mysql_fetch_assoc($res)) {
    $ret = $row;
  }
  return $ret;
}
0186nobodyさん2009/05/29(金) 12:18:27ID:???
そりゃShowRes()の中で$db_host, $db_username, $db_passwordはnullなのでは?
0187nobodyさん2009/05/29(金) 12:36:17ID:???
>>186
う、もろそうでした
includeすればそのまま変数が使えるのかと思ってました。
ありがとうございます
助かりました
0188nobodyさん2009/05/29(金) 16:16:26ID:???
超初心者質問すません…。
ヘッダなどは省略しますが、Webブラウザで、

<?php
print("AAAAA");
print("BBBBB");
?>

のファイルを読み込むと、AAAAABBBBBと表示されますが、AAAAAを表示後、画面をクリ
アしてからBBBBBを表示するには、どうしたら良いでしょうか?

print("AAAAA");
--ここ--
print("BBBBB");


--ここ-- に何を書けば良いのか見当がつきません。
どうか教えてくださりませ。
0189nobodyさん2009/05/29(金) 16:17:51ID:???
クリアって?
0190nobodyさん2009/05/29(金) 16:26:51ID:???
画面を一旦まっさらにすることです。
今まで表示されていた内容を一旦全部消したいのですが…。
0191nobodyさん2009/05/29(金) 16:31:18ID:???
Aは何秒表示するの?
0192nobodyさん2009/05/29(金) 16:46:35ID:???
秒数ではなく、AAAAA画面内でボタンのクリックがあったらBBBBBへ移行したいです。
0193nobodyさん2009/05/29(金) 16:48:26ID:???
Bのページへのリンクを張っておけばいいだけの話ではなくて?
それとも画面遷移なしで変化させたいと?
0194nobodyさん2009/05/29(金) 16:53:03ID:???
AAAAA画面内で、ダウンロード用データの生成を行っているのですが、結構大きなデータで、生成に時間がかかります。
そこで、生成中はAAAAA画面で「生成中です。しばらくお待ちください」のメッセージを表示して、生成が完了したら、
画面遷移なく、「生成中〜」をクリアして、ダウンロード用のボタンを表示したいのです。
0195nobodyさん2009/05/29(金) 16:55:23ID:???
最初にそう言えよ
0196nobodyさん2009/05/29(金) 16:57:46ID:???
超初心者ですから。
やさしくお願いしますです。
0197nobodyさん2009/05/29(金) 17:03:32ID:???
<div id="hoge">生成中です。しばらくお待ちください</div>
処理が終わったらJavascriptで
document.getElementById("hoge").innerHTML = "<input type='button' 〜"
0198nobodyさん2009/05/29(金) 17:54:47ID:???
あざっす!
解決しました。
0199nobodyさん2009/05/29(金) 19:25:42ID:05XbjRtm
PHPでの簡単な入力フォームに挑戦しています。

今の所POSTとsessionを使って
入力ページ(a.php)、確認ページ(b.php) 完了ページ(c.php)
という流れで、

入力したデータをPOSTでb.phpに送る、
b.phpではSESSIONにPOSTを格納、POSTの内容をユーザーに確認させ、
問題なかったら送信をクリック、
c.phpページで「送信しました」表示と共に
指定のメールアドレスにmb_send_mailでSESSION内容を送信して
session破棄
とまでは出来たのですが、

b.php、c.php共にに直接アドレスを入力すれば表示できてしまう状態です。
c.phpではmb_send_mailを使っているので、c.phpに直接アクセスされると
空のメールを指定したアドレスに送信してしまう始末です。

これを
b.phpはa.phpを
c.phpはb.phpを経由しないとアクセスしないようにしたいのですが、
どのようにすれば言いのでしょうか?

リファラで、前のページを取得して、b.phpではa.php以外なら
c.phpではb.php以外なら、error.htmlに飛ばすような概念でしょうか?
0200nobodyさん2009/05/29(金) 19:48:09ID:???
>>181>>182
正気みたいです。毎日社長が進歩確認しにきます。
>>183
フレームワーク聞いてみました。
だめだそうです。手続き型で書いてくれとのこと。
うちの会社だれもフレームワーク使えないからが理由らしいです。
本当はZend Frameworkを使いたかったのですが。
>>184
はい。がんばります。
0201nobodyさん2009/05/29(金) 19:50:41ID:???
なんだネタか…
0202nobodyさん2009/05/29(金) 21:15:52ID:???
a.phpでSESSION変数に何か書きこんで、b.phpでその値を参照&破棄するというのは?
02031992009/05/29(金) 21:36:35ID:???
>>202
レスどうもです。
なるほど、a.phpのほうからb.phpの方へも別のsessionをわたして
issetで判定すればいいんですかね。
c.phpの送信完了画面ではb.phpでSESSIONにPOSTが
すでに格納されてるわけですから、
c.phpでもSESSIONの空判定をすれば
c.phpで空メールが送られてくることもなく
b.php、c.phpともにSESSIONが空の場合、if分岐でエラーの表示をだせばいけそうですね。
sessionで判定という脳みそがなかったです。
ありがとうございます。

ちなみに、ちょっと調べてたらセキュリティソフト等の関係でリファラを残さない人や
ブラウザのプラグインで同じような事をしている人がいるとかで
リファラチェックはあまり使わないほうがいい、という情報もみかけましたが
普通みなさんは、特定のページのみからアクセスを許可させたい場合
どのような処理をされてるのでしょうか?
やはりsessionですか?
02041992009/05/29(金) 22:31:49ID:???
>>202
追記です。おかげさまで解決しました。
最初issetで判定してたのですが、うまくいきませんでしたが
!emptyでSESSIONの空判定をおこなったところ、
SESSIONデータの有無で表示の分岐ができました。
ありがとうございました。
0205nobodyさん2009/05/29(金) 23:26:09ID:???
>>180
できあがったものを売るとして、
wordpressに勝てると思った理由は聞いたのか?
0206nobodyさん2009/05/30(土) 01:00:52ID:???
そもそもWordpressベースのカスタマイズでも自社パッケージにできるのでは
GPLだからソースは出さなきゃならんけど
0207nobodyさん2009/05/30(土) 01:07:23ID:???
ソース出したくない場合、
MySQLみたいにデュアルライセンスの
ブログってないの?
0208nobodyさん2009/05/30(土) 02:05:27ID:???
ライセンスが緩いのは有名どころではApache Rollerくらいじゃね
Javaだけど
0209nobodyさん2009/05/30(土) 02:30:08ID:???
>>180
PHPで出来る部分はさておいたとして、
WYSIWYGとか、どうするんですか。

アメーバとか見たこと無いけど、wordpressとかその他ブログとかCMSに必須ってぐらい
くっついてるけど。
0210nobodyさん2009/05/30(土) 03:22:31ID:???
WYSIWYGこそTinyMCEとかでいいのでは
0211nobodyさん2009/05/30(土) 03:32:05ID:???
LGPLか。
GPLと名のつくものは何となく怪しい雰囲気が満載だな。


0212nobodyさん2009/05/30(土) 03:39:16ID:???
GPLがなんなのかすら理解してないなら使うなよ
0213nobodyさん2009/05/30(土) 03:53:23ID:???
おう、なんなのか理解できないから使わないぜ。
別のライセンスを有するものにGPLライセンスのライブラリを組み込んだらGPLになるのかとか、
さっぱりわからん。
mysqlのFLOSSもさっぱりだったよ。
0214nobodyさん2009/05/30(土) 06:01:27ID:QHjSHhWO
>>205
もうね。だめだよ。
wordpress使うより自社で作ったほうがいいとのこと。
よくわけがわからん。
今日も泊りだな。なにやっているんだが。
>>209
WYSIWYGなんか考えてません。
逃げることを考えています。
0215nobodyさん2009/05/30(土) 12:12:30ID:???
tinyMCE、すごくいいんだが日本語環境は基本、考慮されてないので時々送信内容が消えたりする。
バージョンアップされてさらにバグるようになったし、ダメぽorz
なにかいい代用WYSIWYG、ないもんかのう・・・
0216nobodyさん2009/05/30(土) 12:24:50ID:???
今時日本語だから駄目なんだとかトンチンカンなこと言ってる奴いるのか
0217nobodyさん2009/05/30(土) 21:20:27ID:MvhC1epf
Web制作から来ました
HTMLトップページの一部に文章を書き、その部分が数日経てばor文章が数本溜まれば、
過去ログとしてその部分が「○日の更新」として別のページに自動的に溜まって行くという
簡単なブログのようなシステムを作りたいです

Web制作板でPHPの存在を知って、過去ログの方に自分で文章を書き、
そこから一部分をトップページに反映させるというシステムの方が良いと思いました
とりあえずPHP5とPHPテンプレートエンジンのSmartyはダウンロードしましたが、
そこからどうしたら良いのかさっぱり分かりません
ご教授お願いします
0218nobodyさん2009/05/30(土) 22:13:47ID:SuG3TKng
やり方は無限にあるから、コレ一個で答えられないよ。

簡単な方法は、CSVファイルに、

"年月日","文章"
"年月日","文章"
"年月日","文章"
.....

という風にデータを用意して、PHPで一行づつ読み込む。
年月日と現在日を比較して、条件が合えばトップページに表示し、それ以外は過去ログページに表示するなど。
因みにsmartyは必須じゃない。プログラムとデザインテンプレートを分ける必要があれば使うだけのもの
0219nobodyさん2009/05/30(土) 23:11:23ID:???
ブログ使え
0220nobodyさん2009/05/30(土) 23:19:11ID:???
>>217
まずblogを触って、自分好みにカスタマイズするところから始めたほうがいい。
一から作るのは大変だし、それで文章書く気力失っちゃうのはもったいない。
0221nobodyさん2009/05/31(日) 02:06:11ID:ONuTHT0e
トップページにブログがあるとブログサイトになってしまうのでそれは避けたいです
あくまでトップページの端の短いコラム的な位置づけでやりたいんですが
ブログの日記の部分だけをHTMLの一部に組み込めないですかね
弄ろうとはしてみたんですがどうしても要らないところが残るし、
そのページ全体がブログになってしまいます
PHPをもう少し勉強してみて無理そうだったらHTMLで手動でするしかないですかね
0222nobodyさん2009/05/31(日) 02:37:18ID:V0G3lcFV
>>221
http://www.yumemaboroshi.net/cgi4682/
この手のよくある無料配布モノを弄る所から始める、じゃ駄目なの?
0223nobodyさん2009/05/31(日) 03:29:49ID:ONuTHT0e
>>222
それ落とせなかったので似たようなの探してみました
今まではHTMLでどうにかしようとしかしていなかったので、
PHPのブログ系のものを弄ってみたいと思います

とりあえずPHPとApacheはインストール、設定できました
http://www.rocomotion.jp/php/p_diary_r.phpこれを落してみたのですが、
PHPファイルが関連付けられていないためPHPファイルが弄れません
PHPが正しくインストールできていないのでしょうか?
0224nobodyさん2009/05/31(日) 04:06:56ID:???
俺だったら

・適当なブログを(トップ以外に)入れる
・トップのブログ読み込み部分に<?php include_once('blog_reader.php'); ?>
 とか書いて
・そこで直接DB覗いて新しいのを拾ってくる

とかかな。一からブログ作るなんて面倒すぎ
0225nobodyさん2009/05/31(日) 04:29:37ID:V0G3lcFV
>>223
拡張子が関連づけられてないだけなんじゃないかな。
環境は整っているのなら。

好みや扱う規模によって人それぞれだろうけど、
自分はこのPHPエディタ スタンドアローン版(無料)ていうので十分事足りてるよ
http://phpspot.net/php/pg%82o%82g%82o%83G%83f%83B%83%5E_standalone.html

0226nobodyさん2009/05/31(日) 07:46:48ID:???
初歩的な質問ですみません
GET変数やDB由来のid用変数をいままでctype_digit()でチェック後
念のため(int)で整数化していたのですが10桁を超えると整数の範囲制限に
引っかかるのでこの方法が使えなくなってしまいました
文字列を数字のみにする関数というのはないでしょうか
0227nobodyさん2009/05/31(日) 08:02:24ID:7JVzR7n2
性器表現
intvalじゃだめかぁ
       -2147483648 〜 2147483647

10桁ってどんなサイトmaking doing
0228nobodyさん2009/05/31(日) 09:22:48ID:???
>>227
専用の関数はなさげですか
正規表現は精通してないので漏れがあったらいやだなと思ってたんですが
ctype_digit()を通してからなのでそもそも変換は必要ないともいえるので
preg_replaceで代用してみようと思います。
0229nobodyさん2009/05/31(日) 12:43:25ID:???
大量のCSVデータを読み込んでDBに登録するシステムを作ってるんですけど、
プログレスバーを作ろうとob_flushを使うとfgetcsvで読み込んだデータが化けるんですけど
そんなもんなの?
大量のCSVを読み込ませる時って放置プレーにしてる?
0230nobodyさん2009/05/31(日) 17:51:54ID:???
バーでどの進捗を表そうとしてるのか知らんが、ob_flushで化けてるデータって単に文字コード違いかバイトずれじゃない?
というか加工の必要が特に無いならDB側で直接取り込んで、phpからはレコード数見ながらバー出せばいい話じゃないのかい
0231nobodyさん2009/05/31(日) 18:39:34ID:???
化けるというよりは、データが欠落する感じです。
例えば10行のCSVがあって、foreachかforで10回、回して一行づつSQLを発行して登録する場合、
(取り込むデータを確認して、必要に応じて変化させる必要があるため、LOAD DATA INFILEは使っていません)
4行目までは正常なSQLを発行するのに、5行目からは空白になったり
explodeを使って取り込んだ行を配列に分解するんだけど、正常に分解してくれなかったり
その他の行はちゃんと日本語になってるのに、特定の行だけ意味不明な数字の羅列になったり・・・。
ちゃんと正常に最後まで行くときもあったり、かと思うと次同じ事をやったら今度は化けたりで安定しません。
ob_flushを外すと何回やっても正常に登録されるのでob_flushが原因ではないかと思った次第です。
0232nobodyさん2009/05/31(日) 18:56:27ID:???
ob_get_contentsをコールして無いとかいうオチじゃあるまいなw
0233nobodyさん2009/05/31(日) 20:57:25ID:???
>232 使ってないですね〜

実際のソースです。

function setCSVdata($file="") {
setlocale(LC_ALL, 'ja_JP');
$csvrows = count(file($file));
$handle = fopen($file, "r");
echo str_pad(" ",4096)."<br />\n";
ob_end_flush();
ob_start('mb_output_handler');
ob_flush();
flush();
for ($i=0; $i<=$csvrows; $i++) {
$csv = trim(fgets($handle));
$obj = explode(':', $csv);
  〜〜 SQLを発行 〜〜
  ※この時点で化けます
echo "<script type="text/javascript">setProgressBar(".$i.",".$csvrows.")</script>";
ob_flush();
flush();
}
fclose($handle);
}
0234223(221,217)2009/05/31(日) 21:09:21ID:ONuTHT0e
なんとかブログを設置することが出来ました
設定弄って設置するだけで丸一日かかった…orz
設置したのはこれです↓
http://www.rocomotion.jp/cgi/roco_diary_r.php
で、>>224のようにしたいのですが、設置したものがcgiファイルなんです
しかも言語はPerl?全くPHP関係ないじゃんってなって困っています

できれば一日がかりで設置したのでこのまま先へ行きたいのですが、
今入れたブログに文章を書く→その文章から最新2件をトップページのHTMLの一部分に展開して表示
が理想ですが、無理そうなので
トップページに文章を書く→今入れたブログへコピペ
で妥協するしかないっぽいです
0235nobodyさん2009/05/31(日) 21:23:23ID:???
まぁ初心者が一度に事を進めると大概わけわからなくなって進まなくなるから
妥協の連続で理想に近づけていけば良いんじゃない
0236nobodyさん2009/05/31(日) 21:24:50ID:???
そもそもなんでこのスクリプトを選んだのか
そして元がKENTのCGIらしいがこれじゃ苦労するしかないぞ
02372342009/05/31(日) 21:44:08ID:ONuTHT0e
>>235
ありがとうございます

>>236
設置すらままならず、ググってそれっぽいの一通り設置しまくって
唯一上手く設置出来たのがこれです…orz

その後の調べでJavaScriptでHTMLへcgiのテキストデータを埋め込めそうな気配です
ただ素人目で見ても日記の展開が厄介そうなので別のブログも検討してます
おすすめありますか?
0238nobodyさん2009/06/01(月) 02:25:22ID:???
WordpressかMovableTypeだったら既成のプラグイン組み合わせで全部できそうな気もするが
0239nobodyさん2009/06/01(月) 08:45:06ID:???
>>233
ob_flushは色々気をつけたほうがいい。ググったら速攻で出てきたページを貼っておく。
ttp://d.hatena.ne.jp/shimooka/20070426/1177571621
0240nobodyさん2009/06/01(月) 11:48:51ID:/vKaesuU
php初心者です。
phpには、64bit整数が無いみたいですが、みなさん、どのようにして32bit以上の整数を扱ってますか?

ちなみに、現在、MySQLのbigint型の値をどのようにしてphp側に受け取ろうか、という点で悩んでます。
0241nobodyさん2009/06/01(月) 12:48:49ID:FEmWlQvb
>>240

32bit以上の整数を使ってどんなサイト作ってるの?

オレ初心者だけど文字列として扱うけど
0242nobodyさん2009/06/01(月) 12:57:19ID:???
BCMath?
0243nobodyさん2009/06/01(月) 13:38:00ID:???
pg_copy_fromで一括登録しようと思うのですが、TABLEのPrimary KeyをSERIALで設定しています。

この場合、登録しようとしている配列にはPrimary Keyの設定が必要になってくるのでしょうか?
教えて貰えれば幸いです。

NULLで突っ込めば、データベース側がINSERTと同じように自動的に振ってくれるのかな?
0244nobodyさん2009/06/01(月) 13:39:51ID:???
試してみりゃすぐ分かんだろ
0245nobodyさん2009/06/01(月) 14:02:04ID:/vKaesuU
>>241
32bit整数は単純にDBのサロゲートキーとして使用しています。
なので、php側ではあまり意味を持たないのですが、主キーなので必須なのです。

ちなみに、データは延々と増え続けるので、32bit整数だとすぐオーバーフローになってしまいます。
なので64bit整数を採用しているわけです。

単純にphp側で64bit整数を用意して受け取りたいだけなんですけどね。
それが駄目らしいです<php
0246nobodyさん2009/06/01(月) 14:09:23ID:???
4294967295件もレコードあんの?
0247nobodyさん2009/06/01(月) 14:17:59ID:/vKaesuU
>>246
毎日数千〜数万件のレコードが作成されるので、数年運用すると32bit以上はいくと思います

0248nobodyさん2009/06/01(月) 14:27:17ID:???
>233です。
ob_start('mb_output_handler');

単に
ob_start();
にしたら問題なく登録されました。
日本語が含まれてるのでmb_output_handlerを入れたのですが、これが駄目だったみたいですね。
CSVがShift-JISでDBがUTF-8だったので変換がうまくいかなかったのでしょうか?
0249nobodyさん2009/06/01(月) 14:27:46ID:???
その計算はちょっとおかしいと思うが
まぁPHPでもBIGINTが使いたいなら>>242も言ってるようにBCMathでいいじゃない
0250nobodyさん2009/06/01(月) 14:33:28ID:/vKaesuU
>>242
>>249
ふむふむ
BCMathですか
調査します
0251nobodyさん2009/06/01(月) 15:41:44ID:???
問い合わせフォームなのですが、イレギュラーな行為をしようとすると
挙動がおかしくなってしまいます

form.html→[POST]→confirm.html→[SESSION]→complete.html
              ↓     ↑
           [SESSION]  [POST]
              ↓     ↑
              rewrite.html

基本的に上のような形で作っていて
基本的な動作には問題がないのですが、
ちょっとイレギュラーな動作として、confirm.htmlで確認した後、complete.htmlへのリンクを押さずに、
(confirm.htmlでは「送信する」と称したcomplete.htmlへのリンクがあります)
アドレス直打ちでform.htmlへ戻り、
form.htmlで再度記入して、記入漏れがあった場合
rewrite.htmlでは記入がある問題のない項目は$_SESSIONで自動的に表示されるのですが、
その$_SESSIONが古いままなのです。

分かりにくいですね・・・すみません。例えばですが、初回の訪問で
form.htmlで名前に「太郎」と記入、メールは未記入、確認submitボタン→
confirm.htmlでは$SESSIONに$POSTを代入、その次にメールが空欄なので自動判定してrewrite.htmlへ飛ばす
rewrite.htmlでは名前の項目に$SESSIONを受け取るので「太郎」と表記、そしてメール項目は空欄で、
メール項目の上にメールが未記入ですと表記する。
メールを「123@abc.com」とrewrite.html画面で記入して確認submitボタン→
confirm.htmlでは今度は未記入項目がないので、「問題なければ送信(complete.htmlへのリンク)」をechoで表示、
そして本来ならここで、送信をクリックしてcomplete.htmlへ行くところを・・・・・

クリックせずに、form.htmlと直打ちして最初のフォーム画面に戻る、
そこで今度は名前の項目には「花子」と入れ、メールを空欄のまま確認submitボタン→
confirm.htmlがメールが空欄なので自動判定してrewrite.htmlへ飛ばす
すると何故か、名前欄、メール欄ともに先ほどの「太郎」と「123@abc.com」が表示されてしまうのです。
本来なら、ここでは名前欄に「花子」、メール欄は空欄でメールが未記入です警告がでるはずだと思うのですが・・・。
0252続き2009/06/01(月) 15:44:08ID:???
すいません、長文ですが、もう少しあります。

それでsessionを破棄していないせいかと思い、form.htmlの最初に
session_start();
$_SESSION=array();
session_destroy();
を付け加えてやったのですが、挙動はかわりません。

クッキーやキャッシュのせいかと思って
if(isset($_COOKIE[session_name()])){
setcookie(session_name(), '', time()-42000, '/');}

header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
もform.html追加したのですが、相変わらずです・・・・。

原因はどこだと思われますか?
02532372009/06/01(月) 16:53:29ID:ff8Q7K7b
niftyの無料のやつで作っていたんですが、PHPに対応していないことが発覚しました
通りで設置できないわけだ
>>238のWordpressを導入してみたいのでxrea.comに移ります
0254nobodyさん2009/06/01(月) 16:58:20ID:kn+vnO2F
配列について質問です。
arr=("青","青","青","青","赤","赤")
上記の配列で、countでは、要素数は確認できますが、
青の要素数を数えるには」どうしたらよろしいでしょうか?
0255nobodyさん2009/06/01(月) 17:05:31ID:???
>>251
フォームのデザインパターンがぐたぐた。
もっと参考書見た方がいいよ。
文章わかりずらいす。
ちゃんと読んでないけど、セッションの代入で失敗してるでしょ。
セッションに値が入ってるか一行ずつ確認してみ。
0256nobodyさん2009/06/01(月) 17:15:22ID:???
>>254
array_count_values
0257nobodyさん2009/06/01(月) 17:23:16ID:???
>>256
ありがとうございます。
PHPは関数が豊富で使いやすいですね。
02582512009/06/01(月) 17:27:19ID:???
>>255
レスありがとうございます。
わかりずらくてすみません。

あれからずっと検証してたのですが、
どうやら未入力があった場合にheader(location)で
再入力ページに飛ばしてたのですが、
手動でリンククリック移動にすれば問題なく動作しましたので
header(location)で飛ばす時にsessionが切れてしまうっぽい感じです。

sessionの保存先など再検証してみます。

セッションはheader(location)でページ移動さえしなければ
全てのページで問題なく想定したものがechoで表示できましたので、
代入は問題ないかと思います。
ありがとうございます。
0259nobodyさん2009/06/01(月) 18:01:12ID:???
headerで飛ばすときにSIDを入れたらどうなんの?
っつかSID発行されてる?
0260nobodyさん2009/06/01(月) 18:15:52ID:???
headerで飛ばすのはフォームのパターンですので、
関係ありません。
session_Startちゃんとしてますか?
02612512009/06/01(月) 18:44:40ID:???
>>259
>>260
ありがとうございます。

SIDはについてはまだ検証してませんが
(というかSIDをまだよく理解してないので、勉強します。すみません。)
初心者的な見解ですが、どうやらこれが原因っぽい所にいきつきました。
やはり自分の単純ミスだと思います。
ご指摘の通りheader自体が悪さしてるわけでもないですよね、誤解をあたえるような
記述になってしまいましてすみませんでした。
どうやら自分のheaderの書き方に問題があるんだと思います。

header("location: ******")の****のところを
絶対パスを記入していたのですが(http://www.abc.com/rewrite.htmlのように)
手打ちでform.htmlに戻る時に、アドレスがhtttp://abc.com/form.htmlのようにwwwが抜けていたので
サーバアドレスが変わったと認識されてsessionが切れていたのだでしょうか・・・?
これを相対パスで記述した所、全ての動作が想定したものになりました。

お騒がせしてすみませんでした。ありがとうございました。

ちなみに・・・header("location:")は絶対パスで書くべき、いや相対パスでいい、いやどちらでもなく
完全な形のURL(?)で書かないといけない、と色々情報を見つけたのですが
正式なlocationヘッダの記述の仕方とかあるのでしょうか?
というか、書き方もめちゃくちゃで知識もグダグダだと思うので
色々長文書いてしまいすみません。色々と勉強して出直してきます。失礼しました。
02622372009/06/01(月) 23:30:31ID:ff8Q7K7b
ロリポップで借りてWordpressを設置できました
トップページのHTML内の一部分にWordpressから最新記事2件を全文表示で
載せたいのですが、Wordpressの最新記事の呼び出し方が分かりません
>>224の<?php include_once('blog_reader.php'); ?>でも()内が分からず、
他、調べて出てきたものを試してみてもできませんでした
教えてください、お願いします
0263nobodyさん2009/06/01(月) 23:44:41ID:???
WordPress (ワードプレス) その12
http://pc11.2ch.net/test/read.cgi/blog/1237205315/
0264nobodyさん2009/06/01(月) 23:49:01ID:???
>>262
なんつーか全力で遠回りするタイプの人だなぁ
02652622009/06/02(火) 00:04:45ID:nshP4Iwz
>>264
本当にど素人ですみません
5日前までHTMLを拡張子だとしか認識してなかったレベルです
3日前までPHPは新書の出版社名だと思ってました

>>263のスレに行ってきます
お世話になりました、また移動しますノシ
0266nobodyさん2009/06/02(火) 05:39:38ID:td4jeRp0
携帯サイトの文字コードについての質問です。
現在、php+MySQLで携帯サイト(3キャリア対応)を作成しているのですが
文字コードの問題で文字化け等で困っています。
MySQLは文字コードがutf-8です。

始めは、utf-8でコーディングしていたのですが、携帯サイトはShift-JISの方が良いとの事で
コーディング自体をShift-JISに変えてみたのですが、今はDBからの値が文字化けしてしまっています。
いまは文字コードがバラバラになってしまい統一出来ていない状態です。

・出力部分だけをShift-JISに変換して表示させた方がいいのでしょうか?
(例■$html = mb_convert_encoding($html, "SJIS", "UTF-8");

・それと「SJIS-win」などは使った方がいいのでしょうか?
絵文字などは

mb_substitute_character('none');//存在しない文字コードの処理を設定。
$Pictograph = mb_convert_encoding($Pictograph, 'Shift_JIS', 'Shift_JIS');//絵文字削除

上記のような事をして削除しておりました。
しかし、正常に表示(3キャリア)されるのなら絵文字表示してもいいかなと思っている状態です。

長文申し訳ありません。
0267nobodyさん2009/06/02(火) 08:14:19ID:???
データベースの文字コードをJISにする
以上。
0268nobodyさん2009/06/02(火) 08:16:20ID:???
>262
PHPを出版社だと思ってたなんて・・・ま、オレもそうだったけどw
Wordpressって使ったことないんだけど、RSS出力とかないのかい?

>266
文字コードが違うと文字化けするのは当たり前だろう・・・
HTMLがSJISならDBからの出力もSJISにしないと。
出力するところだけmb_convert_encodingで変換させるといいよ。
DBに登録するときは反対にSJISからUTF-8に変換しないとDBのほうが化けるからね。
02692652009/06/02(火) 11:16:28ID:QiIiWnUH
>>268
あります
でも俺の技術力じゃどうにもできません
今は、
WordPressループを挿入?トップページを静的ページに?
テーマ変更?ページテンプレート使用?
どれがいいか向こうで聞いてます
やっぱり本当は自分でデザインしたHTML内部に埋め込みたいなあ
0270nobodyさん2009/06/02(火) 11:34:43ID:???
技術力がないっていっても、ページの中の一部分にWordpressの記事を埋め込みたいのならRSSがベストじゃないかな。
ググればなんぼでもRSSに関する事が出てくるから調べてみるといいよ。
PEARなんか使えば簡単に使えるから。
PHP5なら最初からRSS関係の関数はあるんでもっと簡単だよ。
配列にRSSで読み込んだ記事が入るんで、普通にそれをprintやechoで出力するだけだし。
0271nobodyさん2009/06/02(火) 12:00:45ID:???
そもそもphpがまったくわかって無いと見たが。
やりたいことのレベルに達するのはかなり苦労しそう。
0272nobodyさん2009/06/02(火) 14:49:38ID:???
DBの文字コードをJISにするって新し過ぎだろ
メール専用DBか?
0273nobodyさん2009/06/02(火) 14:53:47ID:???
だな
普通はEUCだよな
0274nobodyさん2009/06/02(火) 15:01:45ID:???
>>266
docomoの古めの機種は対象外と割り切って、
出力もUTF-8にすればよろし。
0275nobodyさん2009/06/02(火) 18:45:59ID:???
utf-8使えよ
02762692009/06/02(火) 19:03:40ID:???
>>270
RSSでできました!
本当にみなさんありがとうございました
0277nobodyさん2009/06/02(火) 19:09:02ID:???
DBは普通はUTF-8だよな。
最近はHTMLもUTF-8にしてる。
携帯のサイトはSJISだけどね。
0278nobodyさん2009/06/02(火) 23:08:51ID:yP1TTuLt
WordPressのソースコード見て疑問に思ったんです。
基本オープンソースのアプリケーションてMVCはっきりしていないですよねって


実際プロの人っていうか、金もらってWebアプリ作られている方は
どんな感じでコーディングなさっているのかなぁって思ったんです。

0279nobodyさん2009/06/02(火) 23:17:04ID:???
このスレの奴数人は多分SJISとJISの違いを解ってないっぽいな
0280nobodyさん2009/06/02(火) 23:26:34ID:???
DBとコードは全てUTF-8。HTML出力は基本UTF-8で、必要な場合はShift_JIS。

>278
プログラミングでは、上のほうのレベルでは金をもらっているかもらっていないかはあまり関係ない。
Linux開発者は基本的に金をもらっていないわけだが、彼らの技術力には疑問の余地はないだろ。

んで、実際だが。
PHP開発の大半はフレームワークに移行しているらしい(ソースは『PHPプロ!』)ので、恐らく大半がMVC。
うちは自社サービスだが、フリーダムすぎて恐らく参考にならない。
同じサービスのはずなのにエンドユーザ側と管理側でフレームワークが違う、とかあったからな。誰か言えよと。

ちなみにWordPressはプラグインなどの拡張性を考えた結果の設計だろう。特殊な例だと思う。
0281nobodyさん2009/06/02(火) 23:34:03ID:yP1TTuLt
>>280
たしかにプラグイン関連を考えると特殊ですね

お聞きしたいのですがMVCのvはどんな感じでコーディングなさってます?

自分はZF,Smartyです。
0282nobodyさん2009/06/03(水) 00:34:52ID:???
うちではフレームワーク使ってないなぁ。
フレームワークを使う利点がイマイチわからないんだよね。
設計・開発・管理を全て一人でやってるし・・・。
でもそのうちフレームワークに移行しないといけないな、とは思ってる。
思ってるけど時間がなくてなかなか移行に踏み切れない。
0283nobodyさん2009/06/03(水) 00:47:44ID:???
一人なら別にいいんじゃない?
自分なりのフレームワークもどき出来てきちゃうし。
0284nobodyさん2009/06/03(水) 01:28:18ID:???
この自分なりのフレームワークもどきがネックで
色々ごてごて機能追加とか思いついたことくっつけてくと
下位互換が無くなったりして、古いアプリケーションとか放置になるという。
0285nobodyさん2009/06/03(水) 01:57:55ID:???
http://php.dori-mu.net/search.html
これ見て勉強中です。
search.phpのスキルの部分で
$temp_where .= "skill REGEXP '$value' || ";
という部分があるんですが、
これは$temp_where .= "'$skill' REGEXP '$value' || ";
ではないのでしょうか。
なんでskillだけなんでしょうか?
すいません。教えてください。
02862852009/06/03(水) 01:59:39ID:LH3y5rMl
すいません。教えてください。
0287nobodyさん2009/06/03(水) 02:21:04ID:???
>>285
foreach($skill as $value) {
$value = addslashes($value);
$temp_where .= "skill REGEXP '$value' || ";
}
の部分が、ナニしてるか理解出来てないみたいだね。

例えば、$skill = array('a', 'b', 'c')の場合
$temp_whereは
skill REGEXP 'a' || skill REGEXP 'b' || skill REGEXP 'c' ||
という文字列になる。

意味は、取得するレコードを、skillの内容がaまたはbまたはcを含む場合のみに絞り込むってこと

skillはテーブルの列のことであり、$skillとは関係ないの
同じskillという文字が入っているから、勘違いしたんだと思うけど
0288nobodyさん2009/06/03(水) 10:30:53ID:hUsGsYQX
このskillの中身はなんなんでしょうか?
skillはテーブルの列ってどういう意味?
よくわかりません。
後$temp_where = substr($temp_where, 0, -4);
はどういう意味でしょうか?
0289nobodyさん2009/06/03(水) 10:33:47ID:???
>>285でお前が出してるurlに全部書いてあるわけだが、
そもそもデータベースそのものが理解できて無いのか?
だとするとphpの前に勉強することいっぱいあるぞ。
0290nobodyさん2009/06/03(水) 10:50:55ID:???
そのページざっと見てみたがDBの仕組みについてはほとんど触れて無いんだな。
解説も雑だし初心者用としては不向きだと思われ。まだ本買ったほうがいい。
02912802009/06/03(水) 23:14:21ID:???
>281
テンプレートエンジンは基本的にはSmarty一本。デザイナーや企画者に無駄な負荷をかけないための措置。
デザイナーが携わらない社内利用モノとかも、面倒という理由でそのままSmartyになってる事が多い。
ビュー層がHTMLではない場合(CSVとかXMLとかJSONとか)は単純なPHPで処理してる場合もある。
0292nobodyさん2009/06/04(木) 00:27:07ID:???
Smartyってどっちかというとデザイナーに負担掛かるテンプレートな気がする
0293nobodyさん2009/06/04(木) 00:36:02ID:???
プログラミング未経験でこれから始めようと思うのですが
おすすめの参考サイトがあれば教えてください。
0294nobodyさん2009/06/04(木) 00:40:09ID:???
>>293
公式
0295nobodyさん2009/06/04(木) 00:49:02ID:???
http://www.php.net/manual/ja/
このサイトは便利でいいよね
0296nobodyさん2009/06/04(木) 01:06:34ID:???
>>293
プログラムを教えてください
http://pc12.2ch.net/test/read.cgi/tech/1243778529/
02972662009/06/04(木) 03:44:06ID:7qmYMxpO
解答ありがとうございます。
DBの文字コードは変えるつもりはありません。というより他のシステムに支障をきたすので…

今の所はHTMLの出力部分を変数に入れて、「mb_convert_encoding」でSJISにしてして出力する事にしました。
HTML部分を全て変数に入れてしまっているので、かなり強引だと思いますが一応正常に出力出来ました。
0298nobodyさん2009/06/04(木) 06:38:42ID:???
>>294,295
ちょっと自分には難しかったです。
>>296
このスレは分かりやすいですねでも
51レスで終わってるのでそれ以降が分からないorz
0299nobodyさん2009/06/04(木) 07:37:25ID:???
>>298
「2時間目」の講義を希望してるってこと?
0300nobodyさん2009/06/04(木) 08:47:07ID:f7spCjC/
MySQLのREGEXP関数は日本語対応していないようです
ttp://dev.mysql.com/doc/refman/4.1/ja/regexp.html
フィールド名 フィールド型 属性
number int(5) PRIMARY KEY, AUTO_INCREMENT
name varchar(255) NOT NULL
address varchar(255)
gender varchar(255) NOT NULL
skill varchar(255)

今回は「名前」「住所」「性別」「スキル」の4つの条件で検索できます。


0301nobodyさん2009/06/04(木) 08:53:24ID:f7spCjC/
>>293

変数→配列→条件→フォームを使った操作→関数
クラス→SQL→データベース接続→Webアプリを作ろう
→PEAR→フレームワーク

が一般的な流れでおそらく初心者は関数・クラスで挫折すると思う。
自分で本屋に行ってクラスの項目を開いて読みやすい参考書を選ぶとGood!

クラス・メソッド・コンストラクター・プロパティなどがキーポイント
03022982009/06/04(木) 11:31:58ID:???
>>299
yes、phpプロとかてサイト見つけたので
今、参考にしてます。

>>301
やっぱり参考書も1冊は必要なのかぁー
これから本屋行って色々見てきます^^;
0303nobodyさん2009/06/04(木) 11:32:36ID:???
別にいらんと思うよ
0304nobodyさん2009/06/04(木) 13:03:28ID:f7spCjC/
>>302
がんばってね
0305nobodyさん2009/06/05(金) 00:24:57ID:???
>>303
過去に少なくとも一つ、プログライング言語をたしなんでいれば、そうかも知れんが、
未経験者って言ってるから、始めのうちは何か手元にあるといいかもね。

最終的には、公式サイトと適当にググった結果を参照することになるだろうけど
0306nobodyさん2009/06/05(金) 00:50:37ID:???
俺未経験だったけど特にいらんかったよ
0307nobodyさん2009/06/05(金) 02:20:53ID:???
俺は参考書無くても問題なかったぜ自慢はなんの役にも立たん
0308nobodyさん2009/06/05(金) 02:54:33ID:???
・リファレンスを引ける事
・エラーメッセージを読める事(設定をちゃんとして、数十行の英文でもちゃんと目を通す)
辺りは必須だな。2chに限らず、ダメな初心者はこの辺ができていない事が多い。
この辺ができてれば、後は努力でなんとでもなる。

error_reportingとdisplay_errorsに触れてないものは、その時点で紙だろうとサイトだろうとアテにならん。
0309nobodyさん2009/06/05(金) 09:12:47ID:???
>>307
なんで?
0310nobodyさん2009/06/05(金) 17:00:46ID:fRLRCZ+m
$input_mode = ($_GET["mode"]) ? $_GET["mode"] : $_POST["mode"];
↑どういう意味ですか?modeって
0311nobodyさん2009/06/05(金) 17:27:33ID:???
?mode=a
のURLクエリでしょ
0312nobodyさん2009/06/05(金) 17:27:37ID:???
isset抜かしてないか?
$_REQUEST使えよ
03133102009/06/05(金) 17:29:34ID:fRLRCZ+m
やっぱマイナーなソースだよねぇ。
使わねぇでおくわ。
0314nobodyさん2009/06/05(金) 17:32:08ID:???
>>310
PHPマニュアルの比較演算子の三項演算子を参照
0315nobodyさん2009/06/05(金) 20:08:58ID:???
演算子は案山子に似てますか?
0316nobodyさん2009/06/05(金) 20:16:09ID:???
>>310
GETで入ってきた場合は、その値を代入。
そうじゃない場合は、POSTの値を代入。

こういう意味じゃない?
0317nobodyさん2009/06/08(月) 00:39:32ID:???
>>313
全然マイナーじゃない。大抵の言語にある.
可読性高まるし、同じ意味のifより使われる。
0318nobodyさん2009/06/08(月) 15:55:38ID:???
話の流れをぶった切って申し訳ないのですが、PHP4でPDF出力をする必要があります。
色々ググったところ、日本語を使うなら今ならTCPDFがいいという結論になりましたので、それを使うことになりました。
解説サイト(http://www.monzen.org/Refdoc/tcpdf/)を参考に設置したのですが、
真っ白なPDFしか出来ません。上記のサイトの初っぱなのサンプルをそのまま入れても真っ白です。
下の方にある、様々なサンプルもいくつか試しましたがどれも真っ白なPDFしか出来ませんでした。
一体何が悪いのでしょうか?
SourceForgeからPHP4用のTCPDFをダウンロードして、ルート下のincludeというフォルダにtcpdfフォルダをぶち込んで、それをrequireしています。
0319nobodyさん2009/06/08(月) 15:59:15ID:???
一番手っ取り早いのはソース見てどこで想定外の動作してるか調べる
あと公式のドキュメントなりFAQなりを見てみれば?
0320nobodyさん2009/06/08(月) 16:20:57ID:???
>>318
apacheのエラーログになにか残ってないかね?
0321nobodyさん2009/06/08(月) 16:32:25ID:???
>320
特に関連するようなエラーログは残ってないです。
0322nobodyさん2009/06/08(月) 16:53:53ID:???
php5は問題なかったな
公式に書いてある説明だけど

・tcpdfフォルダ全体をchmod -R 644
※FTPソフトからパーミッションを変更する場合はサブフォルダ含めて一個ずつ644に変更
・「cache」と「images」フォルダのパーミッションを666に変更

それかpdfを出力するのにメモリが不足してるのかも。
あと自分で書いたスクリプトの各処理のあとに何がを画面に表示させて、どの行で止まってるのかを調べると良かろう。
0323nobodyさん2009/06/08(月) 17:03:51ID:???
試しにPHP5なサーバーにPHP5用をアップロードしたところ、こちらは正常に表示されました。
PHP4な他のサーバーにPHP4用をアップロードしましたが、こちらはまたもや真っ白でした。
PHP4用は何か他に設定しないといけないところがあるんですかね・・・
パーミッション関係は設定しました(imagesを666にすると、読み取れないとエラーが出たので755にしましたが)。
0324nobodyさん2009/06/08(月) 17:48:19ID:???
php4でも特に設定はいらない
php4でもバージョンはいろいろあるのでそれを確認する
どこで処理が止まっているのかを特定する
chacheフォルダに書き込めるかテストする
お宝画像を発掘しそれをスレ住人に与える
0325nobodyさん2009/06/08(月) 17:56:59ID:???
PHPのバージョンは4.3.2です。
真っ白なページといいましたが、ちゃんとAcrobatReaderは起動してPDFの表示は出来ています。
PDFが真っ白なだけで、生成はされているようです。PDFの情報もきちんと入っています。

とりあえずTCPDFはおいておいて、FPDFにチャレンジしましたが、こちらは
「FPDF error: This version of PHP is not supported」と出てPDFすら表示されません。
公式を見ると、PHP4.3.1以上となっているので、大丈夫なはずなんですが・・・。

もうウチのサーバーではPDFを生成出来ないのでしょうか・・・。
0326nobodyさん2009/06/08(月) 18:03:51ID:???
とりあえずFPDFのソースで、件のエラーの部分をコメントアウトし、強制的に動作させましたが
やはりTCPDFと同様に真っ白なPDFが生成されました。
なにか他の原因がありそうですが、糸口が見つかりません・・・
0327nobodyさん2009/06/08(月) 18:20:15ID:???
セーフモードとかどうなってる
0328nobodyさん2009/06/08(月) 18:23:49ID:???
phpのセーフモードはOFFです。
同じサーバー内で動いているphpMyAdminのPDF出力はTCPDFを使っていると思うのですが、こちらはちゃんとPDFが出力されます。
0329nobodyさん2009/06/08(月) 19:32:32ID:???
images, cache のパーミッション 777 は試した?ここまで開けなくてもいいはずだけど。
あわてていろいろ別のに走ると余計に遠回りになるかもしれないよ。
0330nobodyさん2009/06/08(月) 20:44:25ID:???
images,chcheのパーミッション777は試しました。
PDFlibも念のため試しましたが、やはり真っ白なPDFが開くだけです。
関係あるかどうかはわかりませんがGDライブラリは使えます。
phpMyAdmnのPDF出力は文字化けするものの、ちゃんとPDFが生成されてますので全くPDF関係が使えないというわけではなさそうですが・・・。
0331nobodyさん2009/06/08(月) 21:58:50ID:???
PHPど素人です。

$pos = array("row" => 12.1234 , "col" => 77.1234);
$pos2 = array($pos,$pos,$pos,$pos);
$
$js = array(
array("id" => "icon1" , "name" => "ID_1","pos" => $pos , "size" => 10),
array("id" => "icon2" , "name" => "ID_2","pos" => $pos2, "size" => 10),
array("id" => "icon1" , "name" => "ID_3","pos" => $pos , "size" => 10)
);
0332nobodyさん2009/06/09(火) 00:02:44ID:H57jWlF/
がんばれ!
0333nobodyさん2009/06/11(木) 11:36:52ID:???
質問です。
DBに格納されている日付(TEXT) 「2009-06-11 00:00:00」を
PHPで引っ張ってきて、この日付から例えば1ヵ月後の日付を求めたい場合は
どうすればよいでしょうか?

いろいろ探してみると、strtotimeを使えばよいと書いてあるサイトがありましたが、
>>3,5,7,10,12月の月末に実行すると、そのまま3,5,7,10,12月が返ってきてしまいます。
とのことで、mktimeの使用を推奨しているようです・・・。
0334nobodyさん2009/06/11(木) 11:49:25ID:???
SQLでDBにやらせる手もあるけど、1ヵ月後の細かい定義は?
翌月同日なんだとしたら、31日の1ヵ月後は翌月月末なのか翌々月になるのか
mktimeだと例えば6/31は7/1になるけれども
0335nobodyさん2009/06/11(木) 11:51:38ID:???
1ヶ月後は具体的にどういう計算がいいの?
プラス30日とか、年月日の「月」だけが1加算されればいいとか、
例えば2009-01-31の一ヵ月後はいつになる?
0336nobodyさん2009/06/11(木) 12:30:18ID:???
>>333
DBでやらせたほうがいいよ、PHPのコードも減るし、2038年とかも気にしなくて良くなるし。
0337nobodyさん2009/06/11(木) 14:08:51ID:???
>>334-336
お返事ありがとうございます。
とりあえず、レスした後にmktimeを使用した方法は出来ました。
>>334さんがおっしゃる通り、6/31は7/1になりますね。

恐らく>>334さんがおっしゃることと同様の事を皆様考慮して頂いていたようですが、
「約1ヶ月後」というアバウトな答えで今回は問題ないです。

ですので今回は、取得した日付に「+86400*30」で出すことにしました!
レス下さったのに、申し訳ないです。ありがとうございます。

>>336さんのDBでやらせたほうがいい、という件はどういう方法でしょうか?
DATA_ADD(now(), interval 1 MONTH)のことかなぁ・・・?
0338nobodyさん2009/06/11(木) 15:09:23ID:???
DBでやるのは、DATE_ADDね。

『DBに格納されている日付の1ヶ月後』ということだが
何年まで対応できればいいんだ?
このDBに格納されている日付って、2100年とか3000年とかは無いよね?
0339nobodyさん2009/06/11(木) 16:28:46ID:???
>>338
お返事ありがとうございます。
どんなに対応したとしても2050年もいかないと思います。
0340nobodyさん2009/06/11(木) 16:40:30ID:???
>>339
上にも書いたけど、気にしてるのは2038年ね。
DBに格納されている日付を2038/01/01にして、
それの1ヶ月後を正しく取得できればいいよ。
0341nobodyさん2009/06/11(木) 16:40:53ID:???
2038年は?
0342nobodyさん2009/06/11(木) 17:09:00ID:???
>>340-341
ごめんなさい。そういう意味で仰られていたんですね。
どうしてあげればいいのか私には検討つきません・・・。
0343nobodyさん2009/06/11(木) 17:19:43ID:???
PEARで
0344nobodyさん2009/06/11(木) 17:32:43ID:???
orz
0345nobodyさん2009/06/11(木) 23:29:31ID:???
日付の処理とか、面倒くさすぎてもう理解できません。

受験数学とかで、たまに出るよね。
0346nobodyさん2009/06/11(木) 23:38:44ID:???
既出だけど、日付の足し引き等はDB使った方が簡単だよ。
何でもかんでもPHPでやることはない。
0347nobodyさん2009/06/12(金) 07:13:07ID:???
最初からDBに入っている日付ならそうかもしれんが
そうでないものを別にわざわざDBでやる必要は無いだろ
PHPで+3 daysでできるんだし
0348nobodyさん2009/06/12(金) 10:08:34ID:???
>>347
「+3 days」って具体的に何を使うんですか?
strtotimeなどは2038年問題で駄目だし
PEAR Dateは一部int使ってるから68年以上の期間を扱えないし

php5.2以上ならDateTimeなんでしょうけど。
0349nobodyさん2009/06/12(金) 10:11:24ID:???
何十年も使いつづけるプログラム書いてるって言いたいのか?
どんだけすばらしいプログラムだよ
0350nobodyさん2009/06/12(金) 10:21:36ID:???
30年後も同じサーバ使ってるとは思えないし、PHP自体がサポートされてるかわからんのにw
もしその頃までPHPが存在してたとしても今のバージョン5が動作するサーバもOSすらもないんじゃないか?

PHP案件なんて納品さえできれゃいいんだよw
0351nobodyさん2009/06/12(金) 10:27:54ID:???
5年前に2038年問題でATMが使えなくなったの知らないのか?
ニュースになってるのに、未だに2038年問題すら考えないでモノ作ってるのか?

別に2038年にならなくても、今でも未来日の計算とかするだろ?
0352nobodyさん2009/06/12(金) 10:57:00ID:???
2038年問題すら考えないでモノ作ってるよ
今でも未来日の計算とかしないよ
0353nobodyさん2009/06/12(金) 19:11:51ID:???
僕はPHPよりおにぎりのほうが好きなんだな
0354nobodyさん2009/06/12(金) 20:34:15ID:???
http://stackoverflow.com/questions/985818/php-date-time-current-time-add-minutes

お前らこういうの、答えられる?
0355nobodyさん2009/06/12(金) 21:42:36ID:???
答えてくださいと最初から言えばいいのに
0356nobodyさん2009/06/13(土) 10:47:20ID:???
つか、答山ほど出てるし。
0357nobodyさん2009/06/13(土) 18:50:47ID:CPSa6yMK
データが一行ずつ改行で入っているテキストファイルから、
ランダムの行目の一行だけを取り出すには、どうすればいいんでしょうか?

↓の場合に、$tempに$num行目のデータを入れたいです

$fh=fopen(sample.txt,"r");
$num=rand(1,999);
$temp=;
fclose($fh);
0358nobodyさん2009/06/13(土) 18:58:15ID:???
固定長じゃないなら全部配列に読み込んだほうが早い
0359nobodyさん2009/06/13(土) 19:09:16ID:CPSa6yMK
>>358
さっそくのレス、どうもです。
file関数ですね。挑戦してみます。
0360nobodyさん2009/06/14(日) 10:46:19ID:???
file mt_rand でok
0361nobodyさん2009/06/14(日) 20:12:59ID:???
shuffle()でええやん。
0362nobodyさん2009/06/16(火) 01:15:17ID:???
PHPで正規表現がうまくいきません。

<data info="foo">
"bar"|tr
</data>

このコードで、barをマッチさせたいのですが、

'foo"> "bar'

がマッチしてしまいます。

$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';

この2つを試したのですが、うまくいきません、
どうしたらいいでしょうか?
0363nobodyさん2009/06/16(火) 03:08:37ID:???
>>362
?をつけても前から検索していっちゃうから
"(\w*?)"\|tr とか ^"(.*?)"\|tr
もしくは前後のタグも使用するとか
<data.*?>\s*"(.*?)"\|tr\s*</data>
0364nobodyさん2009/06/16(火) 03:14:28ID:???
s修飾子を取れば悩み事が減るような
0365nobodyさん2009/06/17(水) 03:17:20ID:???
suphpについて語って。
0366nobodyさん2009/06/18(木) 03:48:51ID:???
http://stackoverflow.com/questions/1008668/how-secure-is-a-http-post


これってどうなの?
0367nobodyさん2009/06/18(木) 04:05:39ID:???
何が?
0368nobodyさん2009/06/18(木) 13:25:10ID:???
5.3.0RC3出たんだね
0369nobodyさん2009/06/24(水) 11:55:03ID:???
ショッピングカートのフリーソフトを
ダウンロードしたんですが
上手く動きません
一部文字が文字化けしてしまって
どうしたらいいか分かりません
0370nobodyさん2009/06/24(水) 11:59:50ID:???
おれもわかりません
0371nobodyさん2009/06/24(水) 12:20:23ID:???
そういうのは作者にクレーム入れるのが一番だろ
一部文字だけってことはコーディングミスかmagic_quotes_gpc辺りの設定か
0372nobodyさん2009/06/24(水) 12:26:46ID:???
>>371
その辺の設定とかはよく分からないんです
php始めたばかりで今htmlのホームページをphpに作り変えてる所なんです
0373nobodyさん2009/06/24(水) 13:04:52ID:???
そうですよねー。
分かります、分かります。
0374nobodyさん2009/06/24(水) 13:29:52ID:???
文字コードぐらいphp使うなら勉強しような?な?
0375nobodyさん2009/06/24(水) 13:30:22ID:???
>>369
せめてそのフリーソフトの名前、動かしてる環境くらいは書こうぜ。
こっちもエスパーじゃねーんだから。
0376nobodyさん2009/06/24(水) 13:41:49ID:???
>>375
すみません
環境ってphpの事ですか?
ダウンロードはしていません
さっき試したのはもう消して
また新しいショッピングカートを
探してる所です
0377nobodyさん2009/06/24(水) 13:47:03ID:???
>>376
「ショッピングカートのフリーソフト」はどこで動かしたの?
自分のパソコン?どこかのレンタルサーバ?
0378nobodyさん2009/06/24(水) 13:49:04ID:???
OS、phpのバージョン、apacheなのかIISなのか、自分の状態をこっちに伝える努力をしてくれ。

というか自分で自分の質問見返してみて、回答の余地があると思う?
0379nobodyさん2009/06/24(水) 13:51:06ID:???
医者行って「調子が悪いんです」としか言わないタイプだなw
0380nobodyさん2009/06/24(水) 13:51:09ID:???
>>377
サーバーで動かしました
自分のパソコンでレンタルサーバーです
0381nobodyさん2009/06/24(水) 13:51:52ID:???
>>380
>自分のパソコンでレンタルサーバーです

どっちだよ
0382nobodyさん2009/06/24(水) 13:53:39ID:???
http://pc11.2ch.net/test/read.cgi/php/1244038749/60
うーん
0383nobodyさん2009/06/24(水) 13:54:25ID:???
>>381
すみません
動かしたのはレンタルサーバーです
0384nobodyさん2009/06/24(水) 13:55:21ID:???
マルチ乙
0385nobodyさん2009/06/24(水) 13:58:29ID:???
>>383
とりあえずどっちのスレで続けるか決めてくれ。じゃないともう回答しない。
あとその知識じゃショッピングカートとか無理だからもう少し勉強してからにしな。
0386nobodyさん2009/06/24(水) 14:00:45ID:???
>>383
ショッピングカートのフリーソフトはPHPで作られたモノなんだよな?
それならこっちのスレで続けてくれ。
0387nobodyさん2009/06/24(水) 14:03:38ID:???
>>384
すみません
マルチ乙 Googleで調べました
最初に質問した時によくないレスが
帰ってきたので、こちらにもきてしまいました
これからはこちらだけにしますので
よろしくお願いします
0388nobodyさん2009/06/24(水) 14:10:45ID:???
で、カートのCGIの名前とレン鯖の名前は?

こんだけの情報出すのにどんだけ時間かけるつもりなんだ。
0389nobodyさん2009/06/24(水) 14:15:01ID:???
こっちでやったら?テンプレ埋めてくれそうにないけど。

CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
0390nobodyさん2009/06/24(水) 14:16:56ID:???
たぶん他行っちゃったよw
0391nobodyさん2009/06/24(水) 14:18:03ID:???
>>388
cgiはcart Zでサーバーはイチマンネットです
0392nobodyさん2009/06/24(水) 14:19:22ID:???
Perlじゃねーかよ!!!!!
0393nobodyさん2009/06/24(水) 14:20:07ID:???
ワロタw もう帰れお前
0394nobodyさん2009/06/24(水) 14:22:32ID:???
どっからPHPの話が出てきたの?w
0395nobodyさん2009/06/24(水) 14:23:22ID:???
>>391
とりあえず>>389のスレへ行け。ちっとも話が通じないから解決しそうに無いけどな。
0396nobodyさん2009/06/24(水) 14:25:27ID:???
>>392
だめですか すみません
でもそのcgi単独で動かしてるんですが
それでも動かないものですか?
0397nobodyさん2009/06/24(水) 14:26:41ID:???
Perlじゃねーかよ!!!!!
0398nobodyさん2009/06/24(水) 14:26:55ID:???
惚れ惚れするほど話が通じてないな。おまえら客をもてなしすぎだw
0399nobodyさん2009/06/24(水) 14:27:15ID:???
>>395
またマルチ乙とか言われそうで怖いです
0400nobodyさん2009/06/24(水) 14:29:12ID:???
>>399

PHPではなくPerlで作られたモノだからここはスレ違い
>>389 のスレで続けてくれ。

言語が違えば原因も対処も変わってくるんだよ
0401nobodyさん2009/06/24(水) 14:29:35ID:???
>>399
しらねーよ。このままスレ違いだと言われ続けるよりはマシだと思うがね。
0402nobodyさん2009/06/24(水) 14:30:32ID:???
>>399
黙ってあちこちうろうろするから叱られるんだよ
移動しますって言ってから移ればいい
あと、言うだけ無駄っぽいけど移動先の冒頭にある注意をちゃんと読むこと
0403nobodyさん2009/06/24(水) 14:32:31ID:???
向こうのスレでやめるって言ったの?
まだマルチ継続中では?
0404nobodyさん2009/06/24(水) 14:35:41ID:???
>>400
すみませんphpだと思ってました
ではphp簡単ショッピングカートにします
これも一部文字化けして
ホームページに組み込むと真っ白に
なってしまいます
0405nobodyさん2009/06/24(水) 14:37:07ID:???
問題棚上げのままスクリプト変えんなw
0406nobodyさん2009/06/24(水) 14:37:23ID:???
>>403
はい、言ってません
言ってきます
0407nobodyさん2009/06/24(水) 14:37:26ID:???
さ っ さ と 移 動 し ろ
0408nobodyさん2009/06/24(水) 14:42:23ID:???
>>407
すみません
0409nobodyさん2009/06/24(水) 14:42:59ID:???
>>404
「php簡単ショッピングカート」をダウンロードしたURL書いて

>これも一部文字化けして
これはどういう意味?
・自分のパソコンでエディタ(エディタ名を明記する事)で開いたら文字化けした
・レンタルサーバにアップロードしてブラウザで開いたら文字化けした
0410nobodyさん2009/06/24(水) 14:43:30ID:???
>>409
移動させてやってくれ
0411nobodyさん2009/06/24(水) 14:50:21ID:???
>>410
あれ?PHPじゃないのか?
0412nobodyさん2009/06/24(水) 14:52:11ID:???
phpの質問というよりはCGI(あるいは設置先)固有の質問になっちゃってるからな
0413nobodyさん2009/06/24(水) 14:58:34ID:DVvyB34a
あるイベントのコマーシャルサイトで、ポイント付与システムを導入する運びとなったのですが、どっかでフリーのものが落ちてるの見たことある方いますか?
0414nobodyさん2009/06/24(水) 15:00:33ID:???
>>413
飲料とかでやってるシールの番号入力するタイプの奴?
流石にフリーでは無いんじゃないかな。
0415nobodyさん2009/06/24(水) 15:14:34ID:???
フリーで作る規模じゃないわなw
0416nobodyさん2009/06/24(水) 15:14:38ID:???
>>412
把握した

>>408
>>389のスレに移動して、質問テンプレに従って質問してみて。

ってもういないかな・・・
0417nobodyさん2009/06/24(水) 15:16:37ID:???
最後まで無責任な奴だったな

>>413
ポイント付与システムって何?
0418nobodyさん2009/06/24(水) 15:27:51ID:???
ポインヨとは何かね?
0419nobodyさん2009/06/24(水) 18:29:11ID:???
file_get_contentsを使用して、クッキーを受け取ったらそのまま返すとか可能なの?
0420nobodyさん2009/06/24(水) 18:45:10ID:???
curl がいいよ
0421nobodyさん2009/06/24(水) 19:28:48ID:???
>>419
curlを使用しても無理だった・・・

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $url_ref);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);
curl_close($ch);

Print ($result);
0422nobodyさん2009/06/24(水) 20:33:31ID:DVvyB34a
>>413です。
ある簡単なゲームがあって、勝ったらポイントゲット。
貯めたポイントで違うゲームが購入できる、みたいなシステムです。
楽天のポイント使える懸賞とか、いわゆる出会い系のポイントのやりとり的なのとかも流用できそうなんですが。。。
XOOPSのモジュールも探してみたんですが、どうも見あたらなくてご相談してみました。

ちなみに、1から構築だと納期&金額ってどこらへんが妥当ですか?
0423nobodyさん2009/06/24(水) 20:42:11ID:???
わりと大型案件だからそれなりの額を覚悟しておいたほうがよいかと
実際の金額は見積もりしてもらえとしか言いようがない
0424nobodyさん2009/06/24(水) 22:35:53ID:???
>>422
せめてその要件は最初に書こうぜ。
つかそんな他のシステムと連動しなきゃならんようなポイントシステムがタダで転がってるわけないじゃないw
0425nobodyさん2009/06/24(水) 22:39:27ID:RIqlw2Oq
大きなシステムの一部だけフリーで転がってるもの使え、って言われたら、ちょっともにょるな。
0426nobodyさん2009/06/26(金) 01:41:10ID:KIG44teK
<title>{$hoge->moge}</title>

この{}(波形のかっこ)はいるの?
0427nobodyさん2009/06/26(金) 01:42:15ID:???
試しに外してみ
04284262009/06/26(金) 09:29:34ID:BnlMBA3X
>>427
特に何も起きなかったよ。
修正してるんだけど、ついてる時とついてない時があるんだよね
0429nobodyさん2009/06/26(金) 09:49:06ID:???
>>428
というか何を修正してる上での質問なんだ?
04304262009/06/26(金) 16:32:28ID:???
前に他の人が作ったやつ
0431nobodyさん2009/06/26(金) 22:44:20ID:???
{}は、そこが変数名だと明示する、という意味がある。
 $hoge = 'abc';
 $foo = "$hogedef";
は上手く動かないが
 $foo = "{$hoge}def";
にすれば正しく動く。

つまり答えは、()とかと同じく、状況によっては必須だし、状況によっては省略可能だが、ついてても害はない。
0432nobodyさん2009/06/27(土) 09:43:44ID:???
俺はいつもつけるな。後からソースいじる時にわかりやすいし。
0433nobodyさん2009/06/28(日) 23:00:23ID:aC1PKmhH
簡単にサクサクつくれる代物じゃないよ。
実現するしくみ自体は難しいものでは必要ないけど、
要件と仕様を詰めないといけない。
ゲームってなに?
ユーザー管理は?
そもそもサーバーあるのか?
セキュリティは?

考えることは山ほどあるでしょ。
0434nobodyさん2009/06/28(日) 23:22:14ID:???
遅いよ
0435nobodyさん2009/06/28(日) 23:25:10ID:???
>>433
何故今頃レスつけたし
0436nobodyさん2009/06/29(月) 08:35:00ID:???
今は答えたくない
0437nobodyさん2009/06/30(火) 00:45:13ID:???
実を言うと
include_path
というのが、どういうシロモノなのか、
今だによくわからない。
0438nobodyさん2009/06/30(火) 08:50:09ID:???
便利だよ
0439nobodyさん2009/06/30(火) 12:51:11ID:xD1qhzjw
人のソースを読んでいたら、山ほど、未定義の変数が出てきたぜ。

何これ?どこで値入れてるの?もしかして全部NULLが前提???
動かないじゃん!!!!!!!!

と思ったら、$_POST/GETとかしなくても、変数名とHTMLのフォーム
パラメータ名と一致させれば勝手にとってきてくれるのね・・・orz

基本知らないままPHPを慣れで1年使ってたアホの愚痴ですたw
0440nobodyさん2009/06/30(火) 13:06:48ID:???
register_globalsだろ
悪いこと言わんからやめとけ
0441nobodyさん2009/06/30(火) 13:08:07ID:???
1年使っててregister_globals知らないのは、職業プログラマだったらまずいな。
0442nobodyさん2009/06/30(火) 13:09:58ID:???
register_globals は基本です
0443nobodyさん2009/06/30(火) 13:38:38ID:???
すまん・・基本見直してくるw
0444nobodyさん2009/06/30(火) 14:56:40ID:???
ひょっとしてmagic_quotesも知らない・・・とか・・・
0445nobodyさん2009/06/30(火) 15:55:34ID:???
ウェブ上にある画像をあるキーワードで検索し、その結果をサムネイルとして
サイトのコンテンツにしたいのですが、可能でしょうか?
0446nobodyさん2009/06/30(火) 15:57:12ID:???
可能
04474452009/06/30(火) 16:35:53ID:???
>>446
そうですか

よくよく考えたら、画像が欲しいなら自分で検索するだろうし
あまり必要ないですね。自己満足になるといけないから、止めときます
0448nobodyさん2009/06/30(火) 16:52:53ID:???
>>447
これでも貼っておけば?
<form name=gs method=GET action="http://images.google.co.jp/images" target="result">
<input type=hidden name=hl value="ja"><input type=hidden name=safe value="off">
<input type=hidden name=um value=1><input type=hidden name=newwindow value=1>
<input type=hidden name=sa value="1"><input autocomplete="off" type=text name=q size=41 maxlength=2048 value="">
<input type=submit name="btnG" value="画像検索">
</form>
<iframe src="hoge.html" name="result" width="600" height="400"></iframe>
0449nobodyさん2009/06/30(火) 16:54:40ID:???
Google Image Search の結果を
ImageMagick で縮小すれば 10 分でできそう
0450nobodyさん2009/06/30(火) 17:11:18ID:wbhtxyPs
よろしくお願いします。

表組を描画するというpChartというのを見つけ
http://pchart.sourceforge.net/download.php
から落としたのを解凍して、
そのまま無料レンタルサーバにアップしてみました。

で、http://xxx.com/pChart/Example1.php
などサンプルとおぼしきものにアクセスしてみたのですが
真っ白けでウンともスンとも表示しません。

サーバは「GD Support」enabledになってます。
あとパーミッションはphp604、ディレクトリは777にまでしました。
アドバイスください...
0451nobodyさん2009/06/30(火) 17:18:01ID:???
>>450
その秘密のサーバは PHP エラーをログに残してないの?
もしくは display_errors の設定できないの?
0452nobodyさん2009/06/30(火) 17:20:06ID:???
ちょっとインストールしてみたよ
真っ白で正常だろこれ。
実行後に、http://xxx.com/pChart/example1.png を見てみ
0453nobodyさん2009/06/30(火) 19:23:10ID:???
>>451-451
ありがとう!
仕組みわかった。ああ、pngファイルを書き出してるんすね。なるほど。
今更ながらソース読んでみたら、ああコレか、みたいの見つけました。
サーバにもファイルが生成されてる。いくつもヒントがあったのに気づかなかった自分が恥ずかしい...
0454nobodyさん2009/06/30(火) 20:32:50ID:???
今レンサバのプラン変更をしたので移行作業をしているのですが、
移行前に動いていたプログラムが正常に動かなくなりました。
前も後もバージョンは4.4.2です。

PostgreSQLをつかっているショッピングカートなのですが、
買い物を完了してもDBに格納されずに、
完了の際に送る自動メールが、名前や住所など変数になっている部分が空白になっています。

エスパーな質問かと思いますが大変困っているので、とりあえず質問してみました。
移行の際よくあるミスやトラブルなどございましたらお教えください!
0455nobodyさん2009/06/30(火) 20:38:28ID:???
本当に要エスパーな質問過ぎてどうにもならんw
0456nobodyさん2009/06/30(火) 20:39:56ID:???
Postgresのバージョンや設定が変わったとかいうオチじゃあるまいな
0457nobodyさん2009/06/30(火) 20:40:54ID:???
追加情報です。
移行前は、PostgreSQLのバージョンが 7.3.4で
移行後は 8.1.10に変わっていました。

これってマズイでしょうか・・?
0458nobodyさん2009/06/30(火) 20:45:17ID:???
>>456
やはりマズイですか。。。
ちなみに、Webサイトのアクセスログとして利用しているテーブルには
ちゃんとアクセスが溜まっていっているので、とくに問題ないかと思ったのですが・・。
全く接続できなかったりフォーマットが違ったりしたらアクセスログのテーブルにも挿入されないのでは?
0459nobodyさん2009/06/30(火) 20:47:07ID:???
もう1つ追加情報です。
移行前のDBからはCSVとしてエクスポートして、
移行後のDBにアップロードしました。
0460nobodyさん2009/06/30(火) 20:49:48ID:???
phpの設定だとおもうよ
0461nobodyさん2009/06/30(火) 20:53:55ID:???
>>459
なんかお前さん自身が状況整理できてないようだから自分の中で整理つけてから出直して来い。
0462nobodyさん2009/06/30(火) 20:54:48ID:???
まさかエラー非表示にしてるとかないよな
0463nobodyさん2009/06/30(火) 20:57:47ID:???
非表示にしてたとしてもさすがにapacheのログくらいは見てると思いたい
0464nobodyさん2009/06/30(火) 20:59:59ID:???
>>458
「Webサイトのアクセスログとして利用しているテーブル」とか言われても、
そのログ取得のシステムとショッピングカートの関連とか全く開示されて無い俺らに
どんな回答しろって言うんだお前は。
0465nobodyさん2009/06/30(火) 22:15:40ID:???
ま、多分、さっきのレスで出たregister_globalsだと思われりゅ
0466nobodyさん2009/06/30(火) 22:18:09ID:ToOf0Y/8
初心者なのですがどなたか教えてくれまいか

<?php
$number = 100;
echo "<p>変数の値は $number です";
echo '<p>変数名は $number です';

?>

変数の値は や 変数名は ってやつがうまく表示してもらえないのだが
なぜですか??
0467nobodyさん2009/06/30(火) 22:45:05ID:???
文字コードの設定をした記憶がなければそれが原因
0468nobodyさん2009/06/30(火) 22:54:12ID:???
>>462
エラーは表示にしています。
が、注文完了まで全くエラーが出ません
error_logでメールの内容を直前に吐き出すと変数が空になっています。
その変数はというと、
$sql = "select * from tx where id=$id";

$result = pg_query($conn, $sql);

$name = pg_fetch_result($result, 0, "name");
こんな感じで取ってきているので、やはりPostgreSQLからデータを取ってこれていないようです。
0469nobodyさん2009/06/30(火) 23:33:10ID:???
>>466
マルチ乙
ここの住民は他の質問スレもみてるよ
0470nobodyさん2009/07/01(水) 00:06:41ID:z3HhO0nd
初心者というか、PHPを全く理解していない者なので、
ここで質問していいのやら分かりませんが、困っています。

WordPressで複数のブログサイトを制作してるんですが、
本日各サイトを巡回してみると、あるサイトだけ突然見れなくなっていました。
IEでは反応なし、Firefoxでは「自動転送がループしています」と言われ、
突然の出来事にイミフです。

さらに今まで使っていた管理画面のURLを入力すると、
なぜか「wp-admin/install.php」に飛ばされ、インストール画面になります。
ドメインを変えてみても、トップ・管理画面ともに結果は同じでした。

他のブログもサーバ含めて全く同じ構成・設定なんですが、そのサイトだけ見れない状態です。
ちなみにそのサイトは一週間ほど放置していて、昨日は普通に見れてましたので、
何かを触ったわけでもありません。
これは一体何が原因なんでしょうか…
もし何かお分かりの方がいらっしゃいましたら、ご教示ください。
0471nobodyさん2009/07/01(水) 00:13:03ID:???
>>470

・wpがハックされて設定含めて消し飛んだ。
・借りてる鯖のDBが何かしらの原因で吹っ飛んだ。

どっちにしろその情報だけじゃこれくらいしか想像できん。
04724702009/07/01(水) 00:41:19ID:z3HhO0nd
>>471
まじすか…
そんなことがあるんですね…
DBのバックアップはあるので、何とか再インストールやってみます。
レスありがとうございました。
0473nobodyさん2009/07/01(水) 01:01:16ID:???
>>468
じゃDBに該当データがないのでは?
0474nobodyさん2009/07/01(水) 06:03:34ID:RWA+xdxu
>>454です
まだ解決できません・・・
PostgreSQLのバージョンが変わったっていうのはあまり大きな問題ではないのでしょうか?
7.3.4から8.1.10に変わるとプログラムも全部改修しなければいけないですか?
0475nobodyさん2009/07/01(水) 07:14:36ID:???
>>474
もとの作り方次第
バージョンによる違いの可能性もあるけど、
おそらく文字コードなどの設定かデータを正しく移行できていない
0476nobodyさん2009/07/01(水) 07:38:47ID:RWA+xdxu
これが関係しているっぽいです・・・

http://php.benscom.com/manual/ja/function.pg-last-oid.php
> OID フィールドは PostgreSQL 7.2 からはオプションとなり、 PostgreSQL 8.1 ではデフォルトで存在しません。

このpg_last_oidで前回挿入したレコードを取得しているみたいなんですが、
ここで$oidが取れずにSQLの文法エラーが起きていたようです。

しかし解決法がまだわからず。。。調べ中です。
わかる方は助けてください
0477nobodyさん2009/07/01(水) 08:10:08ID:RWA+xdxu
わかったぞ!
前バージョンでは
default_with_oidsというPostgresの変数が無くて(デフォルトでOn)
現バージョンでは、
default_with_oids = Off
になっていた。

しかしレンサバを使っているので、Postgresql.confは編集できない模様・・・
PHPからOnにできないですかね?
0478nobodyさん2009/07/01(水) 08:23:50ID:???
WITH oids を指定してテーブルを作り直したら?
どっちにしろoidの使用は推奨されていないという事だろうからテーブルの構成自体をやり直したほうがいいと思うけど・・・
0479nobodyさん2009/07/01(水) 08:39:05ID:RWA+xdxu
WITH oid でつくりなおしたんだけど、変わらない・・・
$oid = pg_last_oid($result);
ここで$oidに値が入ってくれないみたいです
0480nobodyさん2009/07/01(水) 08:39:52ID:RWA+xdxu
WITH oidsの間違いです
0481nobodyさん2009/07/01(水) 10:47:39ID:RWA+xdxu
WITH oidsにてCREATEして解決いたしました。
助言をくれた皆様ありがとうございます。
0482nobodyさん2009/07/01(水) 10:50:59ID:???
一番正しい助言は oids を使わないことだと思った
0483nobodyさん2009/07/01(水) 15:02:23ID:???
大文字の4や9を小文字に変換して演算させたいのですが、変換する方法が分かりません。
教えて下さい
0484nobodyさん2009/07/01(水) 15:04:27ID:???
>>483
mb_convert_kana
0485nobodyさん2009/07/01(水) 15:04:44ID:???
翻訳いたします

全角数字を半角に変換する方法を教えて下さい
0486nobodyさん2009/07/01(水) 15:19:18ID:???
>>485
mb_convert_kana
04874832009/07/01(水) 15:46:50ID:???
>>484-486
ありがとー!
出来ました!
0488nobodyさん2009/07/01(水) 20:12:35ID:qb2GZerK
phpのstring型って最大1024byteまでの文字列しか格納できないっぽいんですが、
最大許容量の変更ってできるのでしょうか?

今現在、1024byte以上入るであろうDBからの値をどのように取り出そうか思案中です。
0489nobodyさん2009/07/01(水) 21:29:11ID:???
それはllSayの制限で、phpの制限ではありません。
0490nobodyさん2009/07/01(水) 21:52:39ID:???
>>489
llSayが良くわからないですけど、要するに1024byte制約はしょうがないということになるのでしょうか?
0491nobodyさん2009/07/01(水) 22:18:49ID:vUu+Pn00
なんでそうなるんだw
0492nobodyさん2009/07/01(水) 22:22:45ID:???
>>488
>phpのstring型って最大1024byteまでの文字列しか格納できない
ソースぷりーず。
0493nobodyさん2009/07/01(水) 23:06:52ID:???
>488
ガタガタ抜かす前に試せばいいじゃん。
何十万文字程度なら余裕で入るぜ。
04944882009/07/02(木) 08:53:38ID:???
>>491
>>492
>>493
確かに、サンプルソースとまでいかないまでも、ソースイメージを示せなかったのは申し訳ないです。
下記のソースイメージでも半角英数字1000文字程度で文字列をくっつけられなくなります。

$sql = ' select * from hogehoge '
$sql .= ' where foo.bar = 1 '
for () {
// ここで$sqlに文字列appendしまくり
}
・・・
というだけの単純にsql文をくっつけまくりソースです。

このことから、string型は1000文字=1024byte制限があるのではないかと勝手に推測してました。

でも、何十万文字も入るのであれば、別の原因が考えられますね。
ちょっとappendしない場合はどうなるか適当に試してみます。
04954882009/07/02(木) 08:54:59ID:???

イメージはわかると思うのでどうでも良いとは思いますが、
$sql = ' select * from hogehoge '
$sql = ' where hohoge.bar = 1 '
の間違いでした。
0496nobodyさん2009/07/02(木) 09:02:17ID:???
わけわからん             アーメン
0497nobodyさん2009/07/02(木) 09:04:31ID:???
>文字列をくっつけられなくなります
どんな症状を見てこう判断したか、それがためのソースだろうになぁ・・・
0498nobodyさん2009/07/02(木) 09:21:03ID:???
以下エスパー的回答

できあがった$sqlの内容がおかしいに10000ペソ。
データベースに投げる前にechoで確認すべし。半角スペースがないとかクォーテーションをエスケープしてないとか。
04994882009/07/02(木) 09:21:26ID:???
みなさん、申し訳ございません。

すごい単純ミスでした。

環境だけの問題でした。

原因は eclipse + xdebug環境において、eclipse上で参照できる変数の最大文字数が1024byte制限があるだけのようです。
sql文(1024byte以上の)を生成した場合、eclipseの変数の値参照では途中で文字が切れているのですが、正しく実行できました。

デバッガが整った環境に慣れすぎてしまった私が問題でした。
デバッガはあくまでもデバッガだと改めて考え直さないと駄目ですね。
0500nobodyさん2009/07/02(木) 10:13:39ID:???
そりゃ親切に省略してくれてるだけだろ
0501nobodyさん2009/07/02(木) 10:15:19ID:???
全部表示されたらえらいことになる場合もあるしなw
0502nobodyさん2009/07/03(金) 11:33:57ID:???
test_image.jpgみたいなファイルネームを。
test_image_**.jpgに読み変えてリクエストしたりしたいんですけど、
どうすればいいですか?
※**はランダムな数値が入ります。
0503nobodyさん2009/07/03(金) 11:35:42ID:???
ttp://www.php.net/manual/ja/function.mt-rand.php
0504nobodyさん2009/07/03(金) 11:35:54ID:???
http://www.php.net/manual/ja/function.pathinfo.php
こういうの使うとファイル名と拡張子に分離できる
0505nobodyさん2009/07/03(金) 11:37:17ID:???
>>504
有難うございます。読んできます。
0506nobodyさん2009/07/03(金) 11:50:05ID:???
>>505
$path_parts['filename']が使いたいけど4.4.8なんでダメポ。。。

拡張子は取れるので最悪、test_image.jpg_**.jpgこんな感じで読むしかないのか・・・
0507nobodyさん2009/07/03(金) 11:50:59ID:???
何のシステムを作ろうとしてんの?
0508nobodyさん2009/07/03(金) 12:02:18ID:???
>>507
普通に1つのアイテムに複数画像がある場合、
ランダム上限値とファイルネームの番号が連動していれば、
管理もsqlリクエストも一発で済むかなと思って。
0はFALSE。
0509nobodyさん2009/07/03(金) 12:20:48ID:6dZpOUUM
http:://hogehoge:password@localhost.com/hello.php?cmd=add&user=hoge@pass=hoge
のようなことをwgetみたいにphpでやらせたいのですがcurl以外でもっとお手軽な関数ってないですか?
0510nobodyさん2009/07/03(金) 12:45:56ID:???
file()
0511nobodyさん2009/07/03(金) 12:49:03ID:???
basename()とpathinfo()の合わせ技で楽に出来そうなので
そうしてみます。サンクスコ。
05125022009/07/03(金) 16:43:01ID:???
$test_chenge_image = 5;
$chenge_image_path = test_image;

$chenge_image = '_' . mt_rand(1, test_chenge_image);
$ex_name = pathinfo($chenge_image_path);
$ex_type = '.' . $ex_name['extension'];
$fl_name = basename($chenge_image_path, "$ex_type");
echo $fl_name . $chenge_image . $ex_type;

大体こんな感じで目的達成なんですけど、
もっとエクセレントにそうきゅーとに書けますか?
あと、mt_rand()で出来た数値が1桁なら
01.02.03.04.05みたいにするにはどうすればいいですか?
0513nobodyさん2009/07/03(金) 16:49:17ID:???
自己レス
printf()
0514nobodyさん2009/07/03(金) 16:50:01ID:???
sprintfだろ
0515nobodyさん2009/07/03(金) 17:16:50ID:???
> $chenge_image = '_' . mt_rand(1, $test_chenge_image);
は、こう
$chenge_image = '_' . sprintf($chenge_image . "%0" . 2 . "d", mt_rand(1,$test_chenge_image));
書き換えた。

お前の日記かと怒られそうなので終了。
0516nobodyさん2009/07/03(金) 17:19:43ID:???
いわきりさんのphp_nmz_sample.tar.gz
というものを見てみたいのですがリンクが切れています。
どなたかお持ちではありませんか?

もうnamazuというのは使われていないのでしょうか?
0517nobodyさん2009/07/04(土) 15:06:32ID:bVCHq/G1
SimpleXMLを使って
<a><b>hoge<c>hoge</c>hoge</b></a>
というXMLから
hoge<c>fuga</c>hoge
を取り出すってできませんか?
echo xml->a->b;だと
hogehoge
echo xml->a->b->asXML();だと
<b>hoge<c>fuga</c>hoge</b>
になってしまう
0518nobodyさん2009/07/04(土) 15:07:50ID:???
×<a><b>hoge<c>hoge</c>hoge</b></a>
○<a><b>hoge<c>fuga</c>hoge</b></a>
0519nobodyさん2009/07/04(土) 19:24:14ID:???
>>517
SimpleXMLの範囲では出来ないと思う。
タグcを一旦変換するか、後者の両端のタグをストリップするんじゃダメ?
0520nobodyさん2009/07/04(土) 21:30:50ID:bVCHq/G1
>>519
> 後者の両端のタグをストリップするんじゃダメ?
これしかないかなと思いつつも、
もっと直接的な方法がないかなと
タグを変換ってどうやるんでしょうか?
タグbの名前を変換して
<foo>hoge<c>fuga</c>hoge</foo>とするか
hoge→<c>fuga</c>→hoge
と展開したりってのができないかなと
0521nobodyさん2009/07/04(土) 21:39:46ID:???
>>520
例えば<c>→{c}とか、他に出てこない文字列に置き換えてからパースするとか。
あとで{c}→<c>にもどせばおっけ、っていう意味。

どんな場面でどういう事がやりたいのかにもよるけど。
なんか、htmlのパースしたいようにも見えるな。
0522nobodyさん2009/07/05(日) 07:52:14ID:UWotW+RP
スイマセン、風俗店のサイトで
その店の風俗嬢が写メを載せて近況報告をしているようなものや
リアルタイムで店の近況を口語文で書いていて、風俗嬢の画像などが載っている
ものは
すべてブログを埋め込んでいると考えて良いのでしょうか?
0523nobodyさん2009/07/05(日) 08:05:30ID:???
>>521
xmlをパースしてhtmlを吐く場合に
そのxmlのタグ内をhtml風にマークアップしたい場合
どうやって出力すればいいのかなと
0524nobodyさん2009/07/05(日) 09:02:21ID:???
>>522
考え方はそうだが、ブログとか掲示板とか決まったスクリプトではない。
0525nobodyさん2009/07/05(日) 11:37:56ID:LafHq5/o
初めての投稿ですが教えていただきたいです。
配列を設定して、最大値と最少値と平均値を出す問題を解いているのですが平均がうまく出来ません。
自分の書いたプログラムは下の物になりますがどこがおかしいのでしょうか?
教えてください。
<?php
$data=array(8,7,3,1,4,2,5,6,10,9);
foreach($data as $val){
echo $val." ";
}
$min=100;
$max=0;
$total=0;
foreach($data as $val){
$total=$tatal+$val;
if($val<=$min){
$min=$val;
}
if($val>$max){
$max=$val;
}

}
$ave=$total/10;
echo "max :".$max." ";
echo "min :".$min." ";
echo "ave :".$ave." ;"

?>
0526nobodyさん2009/07/05(日) 11:39:24ID:LafHq5/o
自己解決しました、スレ汚しすいません。
0527nobodyさん2009/07/05(日) 12:49:02ID:???
<?php
$data=array(8,7,3,1,4,2,5,6,10,9);
echo "max :".max($data)." ";
echo "min :".min($data)." ";
echo "ave :".(array_sum($data)/count($data))." ;"
0528nobodyさん2009/07/05(日) 17:08:52ID:???
?>
0529nobodyさん2009/07/05(日) 19:01:31ID:???
閉じタグはいらんよ
0530nobodyさん2009/07/05(日) 19:05:46ID:???
?> (キリッ
0531nobodyさん2009/07/05(日) 20:12:16ID:???
?><!-- P.S. I love you.... -->
0532nobodyさん2009/07/05(日) 21:00:29ID:???
てか、行がおわってない。
0533nobodyさん2009/07/05(日) 21:04:58ID:???
最後の行は ; がなくてもいいよ
0534nobodyさん2009/07/05(日) 21:09:46ID:???
その場合閉じタグが必要。
0535nobodyさん2009/07/05(日) 21:11:44ID:???
>>528 へ戻って繰り返し。
0536nobodyさん2009/07/05(日) 22:19:50ID:???
." ;" これがほんとに意図した出力かと
0537nobodyさん2009/07/05(日) 23:16:31ID:???
後だしじゃんけん?
0538nobodyさん2009/07/06(月) 12:47:06ID:wMd3vz+Y
PHPのよい練習問題が乗ってるサイトってないですか?
0539nobodyさん2009/07/06(月) 12:48:54ID:???
2ch
0540nobodyさん2009/07/06(月) 13:57:22ID:Zv6if7ao
PHPでできることの限界が知りたいです
何ができて
何ができないのか教えてください
0541nobodyさん2009/07/06(月) 13:58:39ID:???
つマニュアル
0542nobodyさん2009/07/06(月) 14:07:26ID:fHQNm0aa
あああっ!mySQL 、日本語キーボードで使っていると `` が入力しにくいんだよこんちくしょうめ
0543nobodyさん2009/07/06(月) 14:12:39ID:???
右手小指と中指で楽じゃん
0544nobodyさん2009/07/06(月) 16:30:25ID:???
自分一人しかアクセスしない管理画面(パスワードとホストで制限)
のフォームとかでもhtmlspesialcharsとかかますべき?
0545nobodyさん2009/07/06(月) 16:41:11ID:???
>>544
かますべきだと思う(´ω`)
忘れた頃に仕様変更したら変なエラーに悩まされるとかいうことが
あるし。
0546nobodyさん2009/07/06(月) 17:23:03ID:???
自分ひとりしかアクセスしなくても、URL見つけられたら・・・という
万が一もあるし
0547nobodyさん2009/07/06(月) 17:31:46ID:???
普通認証かけるだろ
0548nobodyさん2009/07/06(月) 17:44:20ID:???
いやそもそも認証画面での話だろw
0549nobodyさん2009/07/06(月) 17:51:51ID:???
>>548
それは違うと思う
0550nobodyさん2009/07/06(月) 17:55:18ID:???
つか管理画面のフォームで何を表示するのかにもよるんじゃ?
質問者はアクセスするページによってXSSの危険性が違うと認識してる?
パスワードとホストで制限って書いてるからふとそう思った
05515442009/07/06(月) 18:18:24ID:???
データベースの統計情報みたいなやつとか
昨日何人が登録したとか、1ヶ月以上ログインしていないユーザーを
削除するとか
管理人しか使わない訳だし、例えばワード検索で自演XSSやSQLインジェクションができてもいいのかなと
やるには自分で不正コード打ち込まないといけないじゃない?
0552nobodyさん2009/07/06(月) 18:22:45ID:???
打ち込まなきゃいいじゃない?
05535442009/07/06(月) 18:23:36ID:???
だからいらないんじゃないのって
0554nobodyさん2009/07/06(月) 18:37:20ID:???
じゃそれでいいんじゃないのって
0555nobodyさん2009/07/06(月) 18:47:29ID:Cz5ZS8nJ
PHP初心者でsmartyも無知ですが
アドバイスを頂けたらと思っております

<!--{assign var=test value="`$smarty.const.URL_DIR`listblock/list[@].html"}-->
<!--{if $smarty.server.php_self==$test}-->

@のページ時だけ表示
こういう感じでソースを書いてみたら
(例えば.html)で成功したのですが
@の部分を任意の数字のみで複数指定したいのですが
どのようにしてやると宜しいでしょうか?

array(1,5,6,8,10 のような感じになるのでしょうか?
0556nobodyさん2009/07/06(月) 19:05:05ID:???
in_arrayでよいのでわ?
0557nobodyさん2009/07/07(火) 12:33:10ID:???
PHPというかもはや計算の問題なんですが、
$int = 500;
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
echo "{$lv}<br>";
というソースを実行するとLv8<br>が出力されます。
これを
$lv = $int / (ごにょごにょ演算);
的な感じで1行(もしくは数行)にしたいのですが、計算式がわかりません…
$intと比較する数字はコメント部分の通りです。
どなたか教えていただけるとありがたいです。
アホな質問ですいません。
0558nobodyさん2009/07/07(火) 12:36:30ID:???
無理に短くしないで関数にすればいいだけじゃん。

ロジックを整理するならともかく、書き方で短くするだけだと
あとで条件変更しにくくなるよ。

あと、個人的には、$int という変数名はinteger 一般みたい
で抵抗がある。
0559nobodyさん2009/07/07(火) 12:43:51ID:???
forで引いていけばいいじゃん
0560nobodyさん2009/07/07(火) 13:41:04ID:???
switchではダメなん?
0561nobodyさん2009/07/07(火) 14:58:56ID:???
>>557

$int = 500;
$lv = levelcheck($int);
echo "{$lv}<br>";

function levelcheck($int){
if ($int >= 568) { $lv = "Lv9"; }
elseif ($int >= 406) { $lv = "Lv8"; }
elseif ($int >= 278) { $lv = "Lv7"; }
elseif ($int >= 180) { $lv = "Lv6"; }
elseif ($int >= 108) { $lv = "Lv5"; }//5*5*2(50)+4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 58) { $lv = "Lv4"; }//4*4*2(32)+3*3*2(18)+2*2*2(8)
elseif ($int >= 26) { $lv = "Lv3"; }//3*3*2(18)+2*2*2(8)
elseif ($int >= 8) { $lv = "Lv2"; }//2*2*2(8)
else { $lv = "Lv1"; }//0
return $lv;
}
0562nobodyさん2009/07/07(火) 15:07:28ID:???
>>561
頭わりぃw
0563nobodyさん2009/07/07(火) 16:05:37ID:???
>>557
$intがlv0の時1*1*2だと都合がいいので($int+2)で考える。
自然数の自乗の和は1/6*(2n^3+3n^2+n)なので、3次方程式の解の公式に、
a=2,b=3,c=1,d=0を当てはめる。
3次方程式の解の公式は
http://img.f.hatena.ne.jp/images/fotolife/d/deke/20090131/20090131185432_original.gif
こんなかんじ。
あとは自分でがんばってくれ。

0564nobodyさん2009/07/07(火) 16:13:19ID:???
一つの公式作ってそれだけで同じ種類のあらゆる計算に当てはめるって、
誰もが一度はやってみるよなw

数学の世界ならいいけど、コンピュータだと演算方法が限られてるから、
そんなことやっても誰も得しないという。
0565nobodyさん2009/07/07(火) 16:51:38ID:???
>>557が式が欲しいって言うからさ。
0566nobodyさん2009/07/07(火) 17:15:47ID:???
for ($i = 1; $i < 10; $i++) {
print level($i)." ";
}

function level($level) {
for ($i = 1; $i <= $level; $i++) {
$return += (1 + $i) * (1 + $i) * 2;
}
return $return;
}
05675572009/07/07(火) 23:09:14ID:???
みなさんレスありがとうございます。
一応求めていたのは>>563さんのものだったのですが、
アホなので理解できませんでしたw
$lvが増えていくと処理が遅くなりそうですが、
とりあえず現状は9までで間に合うので>>566さんので妥協しようかと思います。
ありがとうございました。
0568nobodyさん2009/07/08(水) 02:20:29ID:???
つ変数の初期化
つpow

てか今の経験値で到達するレベルじゃなくて、今のレベルに必要な経験値を求める関数でいいの?
0569nobodyさん2009/07/08(水) 08:58:54ID:szsLUg6E
>>568
今の経験値からLvがいくつかなのを求めるということでしょ。
0570nobodyさん2009/07/08(水) 09:00:15ID:???
あげちゃったすまそ
0571nobodyさん2009/07/08(水) 10:06:03ID:???
だからそのために1〜99まで毎回ループして比較するわけ?って言ってんの
0572nobodyさん2009/07/08(水) 10:26:11ID:???
その関数で配列作っておいて
配列スキャンするのがいいんじゃないかな。
0573nobodyさん2009/07/08(水) 14:29:28ID:???
99回のループが問題になるって、どんなんだよw
それに、3次の解の公式の方が重たいだろ、複素数出てくるし3乗根出てくるし。
0574nobodyさん2009/07/08(水) 14:36:42ID:???
お前頭悪いだろ
0575nobodyさん2009/07/08(水) 14:44:00ID:???
>>574
理解できないならそう言えばいいのに。
0576nobodyさん2009/07/08(水) 15:55:04ID:???
この一連の流れがまったくわかってない人がいるね
0577nobodyさん2009/07/08(水) 18:11:27ID:m/DVsNfk
PHPの完全な初心者です。
さきほど、http://windows.php.net/download/ よりZipをDLし、本の指示に従い
「php.ini-recommened」をコピーして「php.ini」にしようとしましたが「php.ini-recommened」
が見つかりません(似たようなものなら有りますが)。

DL→解凍した中身は下記の通りです。
http://uproda11.2ch-library.com/185843edT/11185843.jpg 
どうしたら良いでしょうか?
0578nobodyさん2009/07/08(水) 18:23:14ID:???
そのくらいで迷うなら本とバージョンもあわせたほうがいいかもね。

php.ini-development や php.ini-production の中見てみた?
あと一緒に添付されてるinstall.txtとかも読もうぜ
0579nobodyさん2009/07/08(水) 18:25:03ID:???
応用の利かなさっぷりがすごいな…
0580nobodyさん2009/07/08(水) 19:21:59ID:???
>>576
こうだろ。

568==571<今のレベルと次のレベルの経験値を保存しとけばいいだろ。
573<毎回99回のループで計算してなにか問題でも?
0581nobodyさん2009/07/08(水) 19:45:09ID:???
572 でいいと思うのだが
0582nobodyさん2009/07/08(水) 19:53:20ID:???
572でいいな。
0583nobodyさん2009/07/08(水) 23:49:11ID:???
俺も>572のようにLvと総経験値の対応テーブルを持っておくに一票。

・計算式の変更が起きる可能性は高いだろうから、簡単に差し替えられるようにした方が便利
・また、変更があった際に、Lv10とLv2で同じ計算式になるって保証もないので、式の一般化はしない方が便利
・毎回算出しても問題になるような量の計算でもないが、無駄な計算を回避できるに越した事はない

>563 のような式そのものをコードの中に組み込むのは
・後でどういう式で計算してるのか分かるように、ロジックをソースコードの中に書いておきたい
・「ルチ将軍のLvは1300だ」とか「私の戦闘力は53万です」とか、データ量が多すぎで一覧表にしてられない
場合とかかな。
0584nobodyさん2009/07/09(木) 00:29:26ID:???
ワンチップマイコンでもあるまいし今の時代に
ソースサイズ必死で小さくする理由があるんかねw
0585nobodyさん2009/07/09(木) 00:41:28ID:???
そもそもPHPが毎回起動すんだろ。

IF文が200個くらい増えたところで、
起動プロセスよりはるかに軽い。
0586nobodyさん2009/07/09(木) 00:45:18ID:???
PHP毎回起動とか何時代のインフラだよ
0587nobodyさん2009/07/09(木) 00:45:48ID:???
Apacheのプロセスでは?
0588nobodyさん2009/07/09(木) 04:32:30ID:???
>>583は「構造化のススメ」かな?
ソース分けて関数にするだけで>>583のような心配は無くなる。
あとは関数の中身を自分の解りやすいように書けばいい。
0589nobodyさん2009/07/09(木) 04:56:29ID:???
どういう関数にして実際のスクリプトではそれをどう利用すると?
0590nobodyさん2009/07/09(木) 09:55:40ID:???
CG やアクションでも、計算量多いのは予め計算済みの値を配列(テーブル)に入れるのが定石。

function is_next_level($current_level, $current_exp) {
 $level_table = array(
  '1'=>'8',
  '2'=>'26',
  '3'=>'58',
  '4'=>'108',
  '5'=>'180',
  '6'=>'278',
  '7'=>'406',
  '8'=>'568',
  '9'=>'768',
  );

 $next_level = $current_level + 1;

 if ($level_table[$next_level] < $current_exp) {
  return true;
 }
 else {
  return false;
 }
}

$level = 54;
$exp  = 2000;
if (is_next_level($level, $exp)) {
 print 'レベルがあがった。再帰でも使って何レベル上がったか返す関数は自分で書け';
}
0591nobodyさん2009/07/09(木) 10:33:32ID:???
学校の課題とかでスマートに書きたいんじゃね?
0592nobodyさん2009/07/09(木) 11:46:56ID:???
>>591
君、そうとう鈍いだろ
0593nobodyさん2009/07/09(木) 15:05:13ID:9xva5nyV
俺なら手っ取り早くDBに入れるけどなあ
SELECT MIN(level) AS level WHERE exp > 2000
こんなかんじ?
0594nobodyさん2009/07/09(木) 15:06:28ID:???
わざわざDBに計算してもらうの?(驚愕
0595nobodyさん2009/07/09(木) 15:06:57ID:???
経験値取得の度に DB アクセス…
0596nobodyさん2009/07/09(木) 15:35:32ID:???
ソース書く人と仕様を決める人が同じオナニープログラムなら
>>566みたいなのでいいかもしれんが
将来的に拡張される可能性があるなら配列に入れるのが手っ取り早いね
もちろん、いずれは膨大な数になるとかならDBでもいいけど
高々10個足らずの整数値しか取らない変数にDBはありえないでしょ
0597nobodyさん2009/07/09(木) 15:59:42ID:???
572 でいいと思うのだが
0598nobodyさん2009/07/09(木) 19:05:12ID:???
質問者不在の議論が続く…
0599nobodyさん2009/07/09(木) 20:52:57ID:lMkQZB1Q
おしえてください。
PHPで自動的にメールを送って、メルモというメールマガジンにまかせて配布…ということを考えているのですが、うまくいきません。
メールの内容は以下のような内容で文法はあっているでしょうか。

MIME-Version: 1.0
Content-Type: text/plain;charset=ISO-2022-JP
Content-Transfer-Encoding: base64
From: xxxxxxxxxxx@xxxxxxx
To: xxxxxxxxxxxxxx@merumo.ne.jp
subject: =?ISO-2022-JP?B?xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==?=

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

実際の送信の部分は以下のように。
mb_internal_encoding('ISO-2022-JP');
$subject =mb_encode_mimeheader(mb_convert_encoding($subject,'ISO-2022-JP','UTF-8'));
$text=mb_convert_encoding($text,'ISO-2022-JP','UTF-8');
$text=base64_encode($text);
$text=chunk_split($text);
mail($to,$subject,$body,$header)

以下のことは既に確認したのですがいまだにうまくいきません。
・メールアドレスを自分のものにすればYahooメールには届いて、本文が読める。
・受信者・送信者は間違っていない。

あとは、おそらくメルモ側が「管理者からのメールのみ送信する」という設定なので
Fromを正しく認識さしてあげてないのかな…と思うのですが。
0600nobodyさん2009/07/09(木) 21:12:59ID:???
$textはどこいった? mail()に渡してないようだけど
06015992009/07/09(木) 22:17:58ID:???
ぐぁ…すいません、改行制限と戦ってるうちに書き換わってましたが、body→textです。
toだけ書き換えればメール本文は届くことは確認しました。
0602nobodyさん2009/07/09(木) 22:28:48ID:???
そのメルモっていうサービスは
・Content-Transfer-Encoding: base64 を食ってくれるの?
・envelope from と From が違っても受け取ってくれるの?
という辺りが気になった。
0603nobodyさん2009/07/09(木) 22:39:45ID:mlTLaiQM
すみません、教えてください。
言語というよりはインフラの質問です。

Windows 2000 Server, Apache2.2 で PHP4 は動作しましたが、
ibase_connect() がどうやっても Undefined function になってしまいます。

もちろん ext のパスを php.ini の extension_dir に記述しています。
ext に php_interbase.dll もあります。extension も ; コメントをはずしています。
GDS32.dll が必要との事だったので、firebird server/client をインストールして、
GDS32.dll を windows, system32 フォルダにともにコピーしました。

php.ini をしっかり見ているかの確認はしました。
ただ、extension のファイル名を適当なものにしてもエラーにならないのが
少し気になりましたが・・・

どんな些細なことでも良いです。なにか解決の糸口を教えてください。
0604nobodyさん2009/07/09(木) 22:54:27ID:???
apache再起動
0605nobodyさん2009/07/09(木) 23:01:33ID:???
php.iniは複数あるからどれを見てるか・・
0606nobodyさん2009/07/09(木) 23:03:48ID:???
>>604
 php.ini を変えるたびに再起動しました。
 何度やってもだめなので OS も 4〜5 回再起動しました。
 でもだめですた・・・

>>605
 そう思って、extension_dir や include_dir を適当なやつにしてみて、
 エラーになるところまで確認しました。
 向き先は間違っていないと思います・・・orz
0607nobodyさん2009/07/09(木) 23:13:25ID:???
phpinfo()
06085992009/07/10(金) 01:08:50ID:???
ありがとうございます。なるほど…
エンコード方法考えてまた試して見ます。
06096032009/07/10(金) 01:13:26ID:???
>>607
phpinfo() には interbase の出力はありません。
 単純に dll が読み込めていないんだと思います。
 でも、なぜ読み込めないのかが分かりません。。
0610nobodyさん2009/07/10(金) 01:42:54ID:???
>>609
phpinfo()の出力結果で、Loaded Configuration Fileはどこになってる?
自分が呼んでほしいところになってる?

問題なければ、次にコマンドラインから

php -m -c (php.iniへのフルパス)
を実行したらどうなる?
エラー出る?出ない?
interbaseの拡張モジュールは表示される?

これらの結果がどうなるか教えて
0611nobodyさん2009/07/10(金) 01:56:05ID:dQkRWDmk
OS:WinXP-Pro(SP2) ブラウザ:FieFox3.0.11
Apache:2.2.9,PHP:5.2.6

書籍の動作が再現できません。下記コード(抜粋)は
http://uproda11.2ch-library.com/186009Ms1/11186009.jpg 
の表示になりますが、上のtext1フォームに入力してボタンを押しても「」内に表示されません。
※同じくPOSTも駄目です。


コード(専ブラでこのコード自体が実行されるのでJPG化しました)
http://uproda11.2ch-library.com/186010y2f/11186010.jpg

フォームに入力した文字列はFireFoxのURLバーに追記されるだけです。
どこが間違っているのでしょうか? (IEでも駄目でした)
0612nobodyさん2009/07/10(金) 02:02:08ID:???
>>611
そのバーに出てるアドレス(追記前)を書いてみましょう。
0613nobodyさん2009/07/10(金) 02:07:39ID:???
>>611
(1)アパッチ起動してる?

(2)urlにはlocalhostって入力してる?
phpファイルをダブクリでは動かないよ
0614nobodyさん2009/07/10(金) 02:22:30ID:???
どうも。

>>612
file:///C:/php5/hajimete_php5/07-03_01.php?text1=〜
です(『〜』が追記部分)


>>613
アパッチは起動してますが、「urlにはlocalhostって入力してる?」の意味が分かりません。
PHPはプログラム選択で起動させています。
0615nobodyさん2009/07/10(金) 02:29:17ID:???
>>614
ブラウザを開いて、
URL欄に、
localhost
って入れないとダメなのよ。
0616nobodyさん2009/07/10(金) 02:32:26ID:???
URLとWebサーバーのメカニズムを勉強しよう。

まず、URLの記述。 file:// で始まるURLは、HTTPによる
通信を伴わないファイル本体の参照だよ。つまり、Explorer
でファイルを開くのと同じこと。だからソースが表示される。

http:// で始まるURLは、HTTPというプロトコルを通して、
通信先のWebサーバーに接続、それ以降の記述によって、
得るデータは、Webサーバーの処理の任せるということなんだ。

http://www.yahoo.co.jp:8080/movie/
~~~~~ ~~~~~~~~~~~~~~~~    ~~~~~~
@    A            B

@がプロトコル。 Aがホスト名(:がついてるとポート番号指定) 
B以降は、Webサーバー側が勝手に解釈する。

上のレスで localhost 、というのは、同じマシンの中のApacheを
参照するときのホスト名だよ。なので、まずは http://localhost
と書かないと、Webサーバー経由のアクセスにならない。

それから、PHPのメカニズム。
url で、xxxx.php で終わるものをApacheが受け取ると、Apache
は、自分が参照できるPHPファイルを開き、PHPで処理してから
ブラウザに結果を渡すんだ。なので、ソースとは違う表現になる。

1) 自分のコンピュータで正しくApacheが構成されているか確認
  しよう。(http;//localhost:xxx/で確認できる)
2)問題なかったら再度、自分の設置したPHPファイルをApache
 経由で見ることができるか確認しよう。

問題の解決の糸口はここからだ。 たぶん。
0617nobodyさん2009/07/10(金) 02:45:39ID:???
>>615-616
早速のレス有難うございます。

出来ました。<?php phpinfo(); ?> は
http://localhost/hajimete_php5/phpinfo.php で実行できています。
これから、http://localhost/hajimete_php5/07-03_01.php 
とするとOKでした。

なお、本には、「URLにlocalhostを含めましょう」とは一行も書いていません。
プンプン(怒
0618nobodyさん2009/07/10(金) 02:47:14ID:???
>>617
前提知識を書いてないのは確かに親切じゃないけど、
http と、http サーバーのメカニズムはWebプログラム
をするなら前提として知っておく必要があると思うぞ。
0619nobodyさん2009/07/10(金) 02:59:36ID:???
書いてないわけないだろ。なんていう書籍?
0620nobodyさん2009/07/10(金) 03:08:47ID:???
>>617
どの本?
0621nobodyさん2009/07/10(金) 03:19:19ID:???
>>619
はじめてのPHPプログラミング基本編 5.3対応 (TECHNICAL MASTER)
です。

localhostに関しては、スクリーンショット図内のURL欄に小さく印刷しているだけです。
0622nobodyさん2009/07/10(金) 03:24:53ID:???
amazonでも説明不足っていう評価だね
0623nobodyさん2009/07/10(金) 03:25:47ID:???
これなのね。
ttp://www.amazon.co.jp/dp/4798020826/

目次を覗いてみるとChapter07-01に
「ブラウザからプログラムを実行する」って項目があるけどダミーなんだろうか。
0624nobodyさん2009/07/10(金) 03:27:24ID:???
第一章に
 01-01 PHPの世界へようこそ [PHPって?]
 01-02 PHPが動作する環境を準備しよう [PHPのインストールと設定]
 01-03 PHPの動作確認 [PHPの動作確認]
とあるけど俺の幻覚なんだろうか。
0625nobodyさん2009/07/10(金) 03:32:21ID:???
>>624
Chapter07に来るまで apache が出て来ないから
そこからずーっとCLIで練習させる本なのかなと思い込んでみた。
0626nobodyさん2009/07/10(金) 03:34:39ID:???
ttp://www.amazon.co.jp/gp/reader/4798020826/ref=sib_dp_srch_bod?__mk_ja_JP=%83J%83%5E%83J%83i&v=search-inside&keywords=localhost&go.x=14&go.y=8
0627nobodyさん2009/07/10(金) 04:36:31ID:???
>>626
関係ないけど、最近の尼はすごいな!
感動した。
0628nobodyさん2009/07/10(金) 14:15:33ID:???
>>611
だめだぜ。
ちゃんとした本を買わないと。
今すぐそんな本を捨てて
新しい本とマニュアルを読みなさい。
後秀和さんの本はあんまりよくないから
0629nobodyさん2009/07/10(金) 14:18:57ID:???
>>628
Tim、乙
0630nobodyさん2009/07/15(水) 10:16:05ID:???
PHPの本読みまくってたら、
ついに読む本がなくなってきた。
25冊は読んだ。
0631nobodyさん2009/07/15(水) 10:19:59ID:???
自分で本を書け
0632nobodyさん2009/07/15(水) 10:28:57ID:???
自分で本を書くのってどうやるのかな?
はじめに出版社に話をするの?
0633nobodyさん2009/07/15(水) 13:12:38ID:???
PHPのプロの方ですか?
0634nobodyさん2009/07/15(水) 13:27:44ID:???
最近始めた初心者です。
ネットを頼りに独学でやってるのですが、行き詰ってしまいました。
2つ質問させて下さい。

1.formからの入力内容をtxtファイルに書き込む時、ファイルの先頭に追加書き込みする方法を教えて下さい。
2.for文の中で同一の名前の末尾に連番を加えた変数名を作る方法を教えて下さい。$hensu1、$hensu2みたいな感じです。

1に関しては、今はtxtファイルを開くときに、
$fp = fopen($data_file, "a");
としているので、ファイルの最後に追加書き込みされてしまいます。
ファイルを開いた後に
rewind($fp);
と記述してみましたが、意味は無かったみたいです。

2に関しては、
for($i=1; !feof($fp); $i++) {//ファイル最後まで読み込む
$fline = fgets($fp);//1行読み込む
//3パターンどれか当たれ!
 $hensu.$i = explode(",",$fline);
$hensu[i] = explode(",",$fline);
$hensu[$i] = explode(",",$fline);
}
上の3パターンを試してみましたがダメでした。
すいませんが、ご教授お願いします。
0635nobodyさん2009/07/15(水) 13:36:09ID:???
>>634
1)$data_fileの中身を別ファイルなりメモリ上なりに退避させて、
 新規でform内容を書き込んでから、退避しておいたデータを追記する。

2)$hensu1 = '1だよ';
 $i = '1';
 $hensumei = "hensu".$i;
 echo $$hensumei;
06366342009/07/15(水) 14:23:24ID:???
>>635さん
ありがとうございます。
なるほど!1の考え方は思いつきませんでした。
後で試してみます。

2なんですけど、すいません、私の説明がよくなかったですね。
ご教授頂いた方法をforに組み込むと、$hensumeiの中身が「1だよ」〜「5だよ」
と増やせそうですね。
ですが今回やりたいのは、「変数名」の番号を増やしたいんです。

例えば、ループ後に記述された
echo("変数1の中身=". $hensu1 ."<br />\n");
echo("変数2の中身=". $hensu2 ."<br />\n");
echo("変数3の中身=". $hensu3 ."<br />\n");
の結果が、
変数1の中身=犬
変数2の中身=猫
変数3の中身=鳥
といった答えになるようにしたいです。

せっかくご教授頂いたのに、申し訳ありません。
でもそのやり方は、何か別の機会に使わせてもらおうと思います。
06376352009/07/15(水) 14:37:09ID:???
>>634
よく見てご覧。
$iを増やすと、$$hensumeiが「$hensu1」「$hensu2」「$hensu3」に変わっていくんだよ。
0638nobodyさん2009/07/15(水) 15:57:46ID:???
なんで3行目ダブルクオーテーション?
06396352009/07/15(水) 18:45:54ID:???
>>638
ははは・・・

最初は
$hensumei = "hensu{$i}";
って書こうとしたんだけど、混乱させると思って書き直した。
その名残だわ。

小さいことは気にしない、それ♪
06406342009/07/16(木) 19:16:32ID:???
>>635さん
出来た!出来ましたよ!
すごい!ありがとうございます!
お礼が遅くなってしまい、申し訳ありません。
分かりやすい書き方も助かりました。
正直、639の書き方でしたら、まだ理解出来てなかったかもしれません。

まぁ実際には何回か実験→失敗を繰り返してしまいましたが、
仕組みもなんとなく理解して来ました。

それにしてもPHPは楽しいですね。
手品やパズルみたい。
解き方が分かれば、なるほど〜って納得するけど、解き方を見つけるのが難しい。
先週末もそうだったんですが、今週末も家にこもりっきりになりそうです。
0641nobodyさん2009/07/16(木) 22:39:32ID:???
>>640
なあなあ君、初心者だろ?
それ、「可変変数」っていうんだけど初心者が使うもんじゃないよ。
ある程度慣れた人がちょっと技巧的に書く時に使うの。
配列使っとくのがおすすめだよ。
0642nobodyさん2009/07/17(金) 01:15:50ID:???
解決したのでもう結構です
0643nobodyさん2009/07/17(金) 01:53:47ID:???
>>642 = >>640
こういう eval 系処理は初心者に絶対覚えさせたくないよな・・・

>>641 にあるように、配列を使え。java も c++ もできない糞プログラマになるぞ。
いや、PHP 以外、と言ったほうが正しいか。
専用のロジックを使え。たいていの場合、そっちのほうが高速だ。
0644nobodyさん2009/07/17(金) 14:21:40ID:???
行く末を心配する程の有望な新人でない限り、ほっとくのが吉。
0645nobodyさん2009/07/18(土) 03:03:04ID:???
初歩的なことだと思うのですが教えて下さい
変数iに<form method="POST" action="toiawase3.php">を
代入したいのですが
<?php
$i='<form method="POST" action="toiawase3.php">';
echo $i;
?>
とやると空白しか入ってくれません
どなたか入れ方を教えて下さい
0646nobodyさん2009/07/18(土) 03:31:41ID:???
var_dump($i);
06476342009/07/18(土) 20:33:15ID:???
642は私じゃないですよ。
そんな自己中じゃないですw

あれから、635さんに教わったやり方で、変数名を連番化する事は出来たのですが、今度はその変数を表示させる部分でつまづきました。
上手く言葉で表せないので、ソース載せます。

for($i=1; !feof($fp); $i++){//$$の実験
$fline = fgets($fp);//1行読み込む
$hensumei = "hensu".$i;
$$hensumei = explode(",",$fline);
}
echo "jjの実験=". $hensu2[0] ."<br />\n";

この書き方ですと、$hensu2[0] は期待通りに表示されますが、本当は最後のechoでの$hensu「2」の部分を変数化して、例えば
$hensu.$i[0]
みたいな感じにしたかったのです。
色々試しましたが、残念ながら上手くいきませんでした。
というより、$$の仕組みがよく理解出来てないみたい…。
06486342009/07/18(土) 20:34:10ID:???
(つづき)

そこで皆さんがおっしゃっている、配列でのやり方を考えました。
そしたら、そもそもの仕様が間違っていた事に気付いてしまいました。

今回やりたいのは、テキストの上から順に1行読みとった内容を「,」で区切り、
それをその順番のまま表示させるというものですので、以下のソースで対応出来ました。
for($i=1; !feof($fp); $i++){//配列での実験
$fline = fgets($fp);
list($naka1,$naka2,$naka3) = explode(",",$fline);
echo "配列での実験 中身1=". $naka1 ."<br />\n";
echo "配列での実験 中身2=". $naka2 ."<br />\n";
echo "配列での実験 中身3=". $naka3 ."<br />\n";
}

もちろん$$を使ったやり方でも出来るのでしょうが、私にはまだ早かったみたいです。
それにしても、解決方法にも、色々なやり方があるんですね。
配列を使った方法に気付けたのも、みなさんのおかげです。
ありがとうございました!
そして今日もPHPが楽しい!
0649nobodyさん2009/07/18(土) 21:35:33ID:???
>645
ブラウザに出力した時点で、それはタグと見なされます。
0650nobodyさん2009/07/19(日) 00:18:36ID:???
while (!feof($fp)) {
  $fline = fgets($fp);
  $naka = explode(",",$fline);
  foreach ($naka as $i => $value) {
    echo "配列での実験 中身{$i}={$value}<br />\n";
  }
}
0651nobodyさん2009/07/19(日) 00:34:44ID:???
while (!feof($fp)) {
foreach (explode(",",fgets($fp)) as $i => $value) {
echo "配列での実験 中身{$i}={$value}<br />\n";
}
}
0652nobodyさん2009/07/19(日) 02:32:15ID:???
switch文で1つのcaseに2つの条件としたいのですが、うまくいきません。
$tL $init $tLvとあり、if文の場合は

if(($tL == init->a) && ($tLv == 0)) {
・・・
}

これをswitch文で表すにはどうすればいいでしょうか?

switch($tL) {
case ($init->a && $tLv == 0) :
・・・
}
}

などとしましたが、うまくいきませんでした。お願いします。
0653nobodyさん2009/07/19(日) 03:36:46ID:???
またブラウザーゲーかw

switch(true)
とすればできるけどあまりお勧めはしない
0654nobodyさん2009/07/19(日) 09:49:52ID:???
>> switch文で1つのcaseに2つの条件としたい
ここがまちがいだときづけ。
できるできないのもんだいではない。
0655nobodyさん2009/07/19(日) 10:27:29ID:???
知らんやつがPHPコード送ってきた場合、
それを安全に見るにはどうしたらいいの?

エディターで見るのは多分安全だと思う。

いきなりアパッチ起動して、ブラウザで見るのは危険?
なぜなら、ファイルを削除されたりするから。
0656nobodyさん2009/07/19(日) 10:30:20ID:???
知らんやつがPHPコード送ってくる状況がないからわからん
スパムで送ってきたの?
0657nobodyさん2009/07/19(日) 10:36:28ID:???
いや、子分。
知らんヤツという言い方は悪かった。
ようは自分以外が書いたコードを
安全に見る方法が知りたいの。
0658nobodyさん2009/07/19(日) 10:39:42ID:???
なにかあっても損害賠償請求できる範囲の人間ならいきなりブラウザで見てもいいんじゃない?
ソースが読めるならその限りではないけど
0659nobodyさん2009/07/19(日) 10:39:48ID:???
子分から恨みを買ってるかどうかぐらいエディタで見ればいいじゃない。
0660nobodyさん2009/07/19(日) 10:52:45ID:???
エディタでみてみた。
実行するといきなりmailコマンドを実行
するようなソースだった。

ここをコメントアウトしてから実行しないと
そこのメールアドレスにメール飛んじゃう><
06616352009/07/19(日) 10:55:01ID:???
>>660
子分、フルボッコだね
0662nobodyさん2009/07/19(日) 12:26:28ID:???
いままで参考書とか解説サイトとかで
コードを発見した場合、
中味を見ずにいきなり
コピペで実行してたんですが、
(なぜなら安心だから)

こんどからは、まずエディターでじっくり
ソースを眺めて、安全かどうかを確認して、
もし安全でない部分があったらコメントアウトするなり
対処して、それからブラウザで実行、ってしないと
ヤバイ、ってことに気付きました。

他人のコードをさわるってこういうことなのね。
0663nobodyさん2009/07/19(日) 12:35:07ID:???
>662
普通、そうしないか・・・?
自分で書いたコードでさえ、ブラウザで実行する前には一応目を通すのに。
0664nobodyさん2009/07/19(日) 12:49:51ID:???
PHPの勉強なのにソース読まないでまず実行して何が勉強になるんだ・・・?
0665nobodyさん2009/07/19(日) 12:57:31ID:???
PEARのエラー制御ですが、
エラーレベルを最強にしてPEARを実行すると、エラーが
たくさん出まくるので、

(1)エラーレベル0にする
(2)PEAR読み込む
(3)エラーレベル最強にする
(4)本体のコード書く

こういう順番にすればいいんじゃないか?
っておもったのですが 、これであってますか?
0666nobodyさん2009/07/19(日) 13:03:16ID:???
オレ竜は、エラー警告レベル最強にしたぐらいで出まくるのは使わないことにしてる
0667nobodyさん2009/07/19(日) 13:31:56ID:???
エラー出まくるのは開発理念がおかしいので許容できないなら使わない
0668nobodyさん2009/07/22(水) 13:08:49ID:p7cs3Pfv
受信してきた画像ファイルを保存したいのですが
バイナリに戻したデータを単純に保存すると
ヌルバイトの部分が5c80に変えられてしまいます
どうしたらうまく保存できますか?
0669nobodyさん2009/07/22(水) 22:31:57ID:???
その部分のソースかけよ
0670nobodyさん2009/07/23(木) 11:50:25ID:???
「ひとり用wiki」ってソフトがあって、
それの書き込みデーターを、
ノートンが間違ってウイルスと誤認して、
データーを全部削除してしまうという
事件が以前、ありました。

このような事故を防ぐためには、
どのような対策を取ったら
いいのでしょうか?
0671nobodyさん2009/07/23(木) 11:56:20ID:???
それほんとにワームか何か入ってたんだろ
0672nobodyさん2009/07/23(木) 12:15:51ID:???
ノートンの誤認です。
有名な事件です。
0673nobodyさん2009/07/23(木) 12:18:59ID:???
それPHP関係あんの?
0674nobodyさん2009/07/23(木) 12:19:01ID:???
スタンドアローンにしてノートン入れない方法があります
0675nobodyさん2009/07/23(木) 12:57:47ID:???
データーの保存をMySQLにしたPHPアプリの場合、という
意味です
0676nobodyさん2009/07/23(木) 13:15:49ID:???
そういう意味だったのか。
0677nobodyさん2009/07/23(木) 14:17:25ID:???
;セミコロン
を出力するのって、どうやるの?
06786772009/07/23(木) 14:19:27ID:???
わかったから
もういいです。
0679nobodyさん2009/07/23(木) 14:20:17ID:???
普通に出せないか?
0680nobodyさん2009/07/23(木) 14:23:29ID:???
php5.3ってimagejpeg使える?
0681nobodyさん2009/07/23(木) 14:51:55ID:???
print ";";
0682nobodyさん2009/07/23(木) 14:54:51ID:???
>>679
あるよ。
以上。
はい次の方。
0683nobodyさん2009/07/23(木) 16:11:36ID:WhUpMqXo
数値が120,121,122,123,124の時は120を、
数値が125,126,127,128,129の時は125を返したい
(5の倍数に切り下げる)場合は、ドウすれば良いのか?

エクセルでは=FLOOR(数値,5)とすればスグに決着が付くンだが・・・
0684nobodyさん2009/07/23(木) 16:13:21ID:???
人に物を聞く時の態度を先に学びましょう
0685nobodyさん2009/07/23(木) 16:28:28ID:???
なんか特別な関数があるかもしれんが

$n = 124;
print $n - ($n % 5);
0686nobodyさん2009/07/23(木) 16:49:36ID:WhUpMqXo
数値を5で割った余りを数値から引く、ということですね。

>なんか特別な関数があるかもしれんが

ありそうですね・・・色々探したのですが。。。
06876352009/07/23(木) 20:21:37ID:???
普通にfloor()じゃだめなのか?
06886872009/07/23(木) 20:24:42ID:???
忘れてくれ。orz
0689nobodyさん2009/07/23(木) 20:32:06ID:???
roundがあるだろうんぽ
0690nobodyさん2009/07/24(金) 00:12:39ID:???
round でできるならやってみてくれ
0691nobodyさん2009/07/24(金) 00:46:52ID:???
関数使わなくても普通に>>685でいいだろう
0692nobodyさん2009/07/24(金) 00:52:45ID:???
自演乙
0693nobodyさん2009/07/24(金) 04:39:09ID:???
わかったから
もういいです。
0694nobodyさん2009/07/24(金) 09:37:22ID:???
俺の嫁
0695nobodyさん2009/07/24(金) 10:12:22ID:???
ブサイクって
0696nobodyさん2009/07/25(土) 00:23:56ID:???
生きてる意味ないよね
0697nobodyさん2009/07/25(土) 07:56:09ID:???
でも名器
0698nobodyさん2009/07/25(土) 08:30:26ID:???
Q.あなたならどっち?

1.美人でガバガバ。
2.ブスでミミズ千匹。
0699nobodyさん2009/07/25(土) 08:40:22ID:???
1に握りこぶしでも埋めてやる。
0700nobodyさん2009/07/25(土) 09:38:35ID:???
言いたいことも言えないこんな世のなんちゃらって隆が言ってたよ
0701nobodyさん2009/07/25(土) 21:38:49ID:???
>>700
藤井?
0702nobodyさん2009/07/26(日) 11:36:31ID:???
>>700
岡村?
0703nobodyさん2009/07/26(日) 16:45:15ID:???
>>700
高島?
0704nobodyさん2009/07/26(日) 20:24:07ID:???
下のような感じで、sessionでtime()を使って経過時間を出したいんですが(分・秒などへの
変換は省略してます)、sessionではtime()は最後のスタンプしか取れない(残らない)ようで、
"time1"の情報が消えて、"time2"の方の値しかとれず、計算できません。
どうしたらいいでしょうか?

$_SESSION["time1"] = time();
$_SESSION["time2"] = time();

$keika = $_SESSION["time2"] - $_SESSION["time1"];

0705nobodyさん2009/07/26(日) 20:26:33ID:???
time1の結果が取れないってどう確認したの?
0706nobodyさん2009/07/26(日) 20:36:59ID:???
1行目と2行目の間でセッションをまたいでるなら、session_start()が抜けてるとかの初歩的なセッションの使い方ミス。
0707nobodyさん2009/07/26(日) 21:24:39ID:???
>>704
var_dumpでみました(null)。
あと、開始時刻を日時表示すると1970/01/01 09:00:00となります。

>>706
ビンゴでした。
session_start()の位置が悪かったようです。
<html>より上に移動させれば期待通り動きました。

お二方ともありがとうございました。
0708nobodyさん2009/07/26(日) 21:25:17ID:???
>>704じゃなくて>>705
0709nobodyさん2009/07/30(木) 19:12:20ID:???
<?php
$a=0;

if($a){
?>

<p>hello</p>


<?php
}

else {
?>

<p>bye</p>

<?php
}
?>

--------------------------------------
こういうコードって普通なの?
0710nobodyさん2009/07/30(木) 19:47:29ID:???
多く使われてるかどうかは知らん。
けど、PHPの使い方の一つではある。
0711nobodyさん2009/07/30(木) 20:37:46ID:???
普通はテンプレートエンジン
0712nobodyさん2009/07/30(木) 21:20:15ID:???
時間が無いときにたまに使う。
間に入るテキストの量によるかな。
0713nobodyさん2009/07/31(金) 13:13:32ID:VVW/5zpY
お願いだから俺と作業する時はこっちで頼むね

<?php if($a): ?>
<p>Hello</p>
<?php else: ?>
<p>Bye</p>
<?php endif; ?>
0714nobodyさん2009/07/31(金) 13:46:30ID:???
お願いだから私と作業する時はこっちで頼むね

<?php
$greeting = $a ? 'Hello' : 'Bye';
?>
<p>{$greeting}</p>
07157142009/07/31(金) 13:47:26ID:???
あ。バグった。これで。

<?php
$greeting = $a ? 'Hello' : 'Bye';
print <<<_HTML_
<p>{$greeting}</p>
_HTML_;
0716nobodyさん2009/07/31(金) 14:28:31ID:???
絶対一緒に作業したくないなw
0717nobodyさん2009/07/31(金) 19:14:57ID:gwmKk+1i
正規表現がよくわかりません。

mb_ereg_match( "[^a-zA-Z\!-\@\:\-\,\.\s]{2,}", $str )

文字列に英数字記号以外の文字が2回以上連続しているのが
含まれているかどうかを判定したいんですが、これじゃダメなようです。

どこが間違っているんでしょう?

内部エンコーディングはUTF-8、デフォルト言語はニュートラルです。
0718nobodyさん2009/07/31(金) 20:50:38ID:420G9Lso
ダブルクォーテーション("")、シングルクォーテーション('')で処理速度に違いはありますか?
ダブルの方は変数を認識するようなので、同じ文字列だとシングルの方が実行速度が速い気がするのですが
もちろん普通なら人間じゃ体感できない違いなんでしょうが、気になるので教えてください!
0719nobodyさん2009/07/31(金) 20:57:13ID:???
違うっちゃ違う
一例だけど参照するならこんなとことか
http://www.php.lt/benchmark/phpbench.php
0720nobodyさん2009/07/31(金) 21:15:49ID:420G9Lso
>>719
めっちゃ参考になります!ありがとうございます!
0721nobodyさん2009/08/01(土) 00:08:28ID:???
>>717
正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
0722nobodyさん2009/08/01(土) 01:23:40ID:sEcc+VNI
連想配列のインデックス部分だけimplode()みたいなことしたいんだけど
どうしたらよい?
0723nobodyさん2009/08/01(土) 01:34:20ID:???
>>722

implode( "", array_keys( $a ) );
0724nobodyさん2009/08/01(土) 07:05:49ID:RvN4vKjq
<?php
$req="http://api.rakuten.co.jp/rws/2.0/rest?operation=ItemRanking&version=2009-04-15&developerId=&affiliateId=&genreId=409365";

$string = preg_replace('/:/','_',file_get_contents($req));

$xml = simplexml_load_string($string) or die("XMLパースエラー");

$output = "<table>n";
foreach ($xml->Body->itemRanking_ItemRanking->Item as $item) {

$output.= "<tr><td><img src='" . preg_replace('/http_/','http:',$item->smallImageUrl) . "'></td>";
$output.= "<td>商品名:".$item->itemName</td></tr>"; //エラー出る場所です

}

$output .= "</table>n";

echo $output;

?>

エラーが出る場所はわかっているのですがなぜエラーが出るのかがわかりません
楽天APIのXMLをphpで表示したいと考えています

ご教授願います
0725nobodyさん2009/08/01(土) 07:12:32ID:???
>>724
>$output.= "<td>商品名:".$item->itemName</td></tr>";

”の数があってないとか・・・
$output.= "<td>商品名:".$item->itemName."</td></tr>";
07267242009/08/01(土) 07:25:36ID:RvN4vKjq
>>725
まさにその通りでした
当方の質問にお応え頂き誠に有り難う御座います
0727nobodyさん2009/08/04(火) 03:11:34ID:bt+0qZLb
PHPで時刻の差分って出せないんですかね?
8:00 - 0:45 = 7:15 みたいな計算するにはどうしたらいいんでしょう?
0728nobodyさん2009/08/04(火) 03:21:16ID:???
タイムスタンプについてまず知りなさい。
0729nobodyさん2009/08/04(火) 03:25:50ID:???
>>727
echo date('H:i', strtotime('08:00 -45 min'));
0730nobodyさん2009/08/04(火) 03:38:20ID:bt+0qZLb
>>729
じゃあ
8:00 - 6:45 だったら?
結局自分で何時間何分か出して、引かないといけないみたいですね・・・
インターバル計算できないのか・・・
0731nobodyさん2009/08/04(火) 03:40:39ID:bt+0qZLb
date("H:i", strtotime(strtotime("01:00") - strtotime("00:30")))
ってやったら、18:00 ってどういうことなんだ・・・・
0732nobodyさん2009/08/04(火) 03:50:28ID:???
>>ID:bt+0qZLb
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0733nobodyさん2009/08/04(火) 05:00:43ID:???
元の時間をunixタイムで計算してください
それで計算したのを元の時間にもどせばよい
0734nobodyさん2009/08/04(火) 10:31:32ID:bt+0qZLb
>>733
たしかに、strtotime()で、unixタイムは出るので、それ同士を引けば、秒の差分は出たんですけど、
それをどうやって、date("H:i", )みたいに整形して表したらいいのかがわからないんです・・・・




0735nobodyさん2009/08/04(火) 11:52:35ID:???
便乗質問。
>>731
strtotimeの戻り値をstrtotimeに入れてもいいんですか?
0736nobodyさん2009/08/04(火) 11:55:24ID:???
お前は何を言ってるんだ?
0737nobodyさん2009/08/04(火) 12:09:19ID:???
strtorime(strtotime())ってことでしょ
やってみりゃいいじゃないって話だけど
07387342009/08/04(火) 12:12:15ID:bt+0qZLb
自己解決しました
0739nobodyさん2009/08/04(火) 12:36:14ID:???
僕の夏休み
0740nobodyさん2009/08/04(火) 15:56:23ID:???
花火、すいか割り、プール、絵日記…
0741nobodyさん2009/08/04(火) 22:06:13ID:RR0r5hKi
超くだらないことですが、ご教示ください。
http://ansaikuropedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91
アンサイクロペディアのオブジェクト指向のページですが、

function 話す() {
if (($this->今日は話した)) {
$this->好感度--;
return "しつこい";
}
$this->今日は話した = 1;
$this->好感度++;
return "別に";
}

「(($this->今日は話した)) 」はどういう意味なのでしょうか?
コードをみると、「($this->今日は話した == 1)」だと意味が通じると思うのですが・・・
0742nobodyさん2009/08/04(火) 22:06:17ID:???
Aという時間がある
Bという時間がある。

Aをタイムスタンプに直す。
Bをタイムスタンプに直す。

A-Bを計算する。

差分を、好きな形式に変換しなおす。
0743nobodyさん2009/08/04(火) 22:09:52ID:???
タイムスタンプなんかに直さなくていいだろ
0744nobodyさん2009/08/04(火) 22:14:17ID:???
>>741
PHPで1と0をboolで評価した場合前者はtrue、後者はfalseになる
boolで評価するといってもキャストは必要ない
つまり$this->今日は話したは
$this->今日は話した == trueという意味をもっている
つまりあなたのいっている$this->今日は話した == 1と同じ意味です
http://www.php.net/manual/ja/types.comparisons.php
0745nobodyさん2009/08/04(火) 22:26:12ID:???
長々と書いているが、

if(1)

これと同じってことだろ?


説明が長いやつはたいてい、レベルが低い。
よくわかってる人ほど、短く、適切な説明をする。
0746nobodyさん2009/08/04(火) 22:27:06ID:???
PHPで多人数で開発するときでも、
OOP使いまくり、インターフェースで
多重継承使いまくり、にすれば
問題ないんだよね?
0747nobodyさん2009/08/04(火) 22:28:35ID:???
なんでこいつはケンカ腰なの?ストレス溜まってんの?
ストレスのはけ口にされると迷惑ですよ
0748nobodyさん2009/08/04(火) 22:30:48ID:RR0r5hKi
>>744
ありがとうございました。
0749nobodyさん2009/08/04(火) 22:39:50ID:???
>>745
だったらお前も余計なコメント省けw
0750nobodyさん2009/08/04(火) 22:43:34ID:???
>>745
この場合は1じゃなくてif(true)だよ
07517442009/08/04(火) 22:53:59ID:???
>>744
>つまり$this->今日は話したは
>$this->今日は話した == trueという意味をもっている
このつまりってのはいらなかったな
0752nobodyさん2009/08/04(火) 23:31:54ID:???
phpってこれから先ずっとあるの?
0753nobodyさん2009/08/04(火) 23:46:49ID:???
WEBアプリはしばらく続くだろうけど、phpはどうなんだろね
バージョン6が出るかどうかだろうか?

スクリプト言語のバージョン6は、出ないことが運命づけられてる気がするので心配だ
0754nobodyさん2009/08/05(水) 00:22:29ID:???
もう出てるじゃん
0755nobodyさん2009/08/05(水) 00:24:34ID:???
PHPはそれなりに長続きすると思う。
0756nobodyさん2009/08/05(水) 09:47:24ID:gQxriDt5
PHPをバカにしていたが、使いこなせるようになると、
手放したくなくなるな
0757nobodyさん2009/08/05(水) 09:54:59ID:???
使いもせずに評価してたのか
0758nobodyさん2009/08/05(水) 10:12:59ID:???
>>756
そのとおり
で、サイト内に自由に吐き出したい部分だけを
持ってくる
これができるようになると、もっと実感できますぞ
0759nobodyさん2009/08/05(水) 10:52:11ID:???
Sigma Visual Ajax GUI Builder
ttp://www.sigmawidgets.com/products/sigma_visual/

これがもっとうまく作れるようになるともうWindowsイラネってレベルになるのに・・・
0760nobodyさん2009/08/05(水) 16:45:34ID:Oexv7raq
.mailfilterに属性600、改行\nで
to "| /usr/local/bin/php /home/アカ名/www/test.php"
と記入し、メール受信でPHPを起動するようにしたのですが
通常はちゃんと起動するのですが
PHPに
require_once 'Mail/mimeDecode.php';
を書くとメールを送っても
Returned mail: see transcript for details
が返信されて起動しません

php.iniのインクルードは
include_path = ".:/home/アカ名/pear/PEAR"
で、実際にPEAR以下にMail/mimeDecode.phpは存在しています

メール送信からこれを起動させるにはどうすればよいのでしょうか?
0761nobodyさん2009/08/05(水) 17:12:46ID:???
>>760
CLIでphp.ini参照先が違うとか
0762nobodyさん2009/08/05(水) 20:28:36ID:???
PHPによるECサイトプログラミング~ショッピングカートから決済まで
―MySQLのデータベース設計とPHPセッション管理の作法
大角清美

PHPの勉強しようと本屋にいったら「ひろゆき推薦とかいう」すごい本を見つけた・・・
本を開いたときにデスクリムゾンをはじめてみた時のような衝撃を受けた・・・
アマゾンでどんなレビューされてるかと思ったらアマゾンのレビューの
信憑性のうわさは本当だとわかった・・・
0763nobodyさん2009/08/05(水) 23:31:52ID:???
もとがアンサイクロペディアか・・・
どこからネタなのか判断不能だな。
0764nobodyさん2009/08/06(木) 00:11:19ID:???
>752
書いたものをこの先ずっと使いたい、というならJavaかPerlをオススメする。
PHPやRuby, Pythonなんかは後方互換性をあまり重視しない言語。
分かりやすくいえば、今PHP5で普通に書いたコードが、PHP6で動かなくなる可能性というのが、それなりに高い。
0765nobodyさん2009/08/06(木) 01:21:59ID:???
自動的にphp5のコードを6に書き換えるソフトってないの?
0766nobodyさん2009/08/06(木) 01:29:20ID:???
すぐにボツになりそうな組み込み関数とか使わないようにすればいいだけ
0767nobodyさん2009/08/06(木) 07:35:58ID:???
例えば?
0768nobodyさん2009/08/06(木) 09:48:18ID:???
>>764
それは Perl6 は出ないから、という高度な皮肉か?
0769nobodyさん2009/08/06(木) 09:53:56ID:h+wjIr1t
Perlって終わった言語じゃないのか?
これからはPHP
0770nobodyさん2009/08/06(木) 09:58:22ID:???
後方互換捨てた Python 3, Ruby 1.9.1 が出たことで
Python, Ruby は数年は互換性は気にしなくてよさそう。

Perl は Per5 に不満を持っていないから
Perl6 が出てもずっと Perl5 を使いそう。

PHP は x.y.z の z ですら互換性がなくなったり
goto が追加されたりと目が離せません><
0771nobodyさん2009/08/06(木) 09:59:59ID:???
zって何?
0772nobodyさん2009/08/06(木) 10:06:16ID:w20GGpoy
簡単なアップロードスクリプトを作成しました。
<h3>ファイルアップロード</h3>
<?php
// ファイルを保存するディレクトリ
$save_dir = "./";
$enc_disp = "EUC-JP"; // ブラウザ表示文字コード
$enc_file = "SJIS"; // 保存ファイル名文字コード
// ファイルがアップロードされたものなら処理をする
if (is_uploaded_file(@$_FILES["upfile"]["tmp_name"])) {
// ファイル名の文字コードを変換する
$file_name = $save_dir.$_FILES["upfile"]["name"];
$det_enc = mb_detect_encoding($string, $enc_disp . ", " . $enc_file);
if ($det_enc and $det_enc != $enc_file) {
$file_name = mb_convert_encoding($file_name, $enc_file, $det_enc);
}
// テンポラリファイルを保存ディレクトリにコピー
copy($_FILES["upfile"]["tmp_name"], $file_name);
echo "<p>ファイルアップロード完了";
echo "<p>ファイル名:".$_FILES["upfile"]["name"];
}
?>
<form enctype="multipart/form-data"
action="<?php echo $_SERVER["PHP_SELF"]?>" method="post">
<input type="file" name="upfile">
<input type="submit" value="アップロードする">
</form>
実際に使うとアップロードされましたと表示されるのですが、フォルダ内にはファイルが特にありません。
どこが問題で何が原因なのかわからない状態です。
くだらない質問ですがどなたかアドバイスいただけると助かります。
0773nobodyさん2009/08/06(木) 10:09:23ID:???
そりゃ何も判定してないで「アップロード完了」をただechoしてるだけじゃん
どこで想定外の動きしてるかチェックしたほうがいいよ
http://www.php.net/manual/ja/function.move-uploaded-file.php
あとこことか参照
0774nobodyさん2009/08/06(木) 10:47:35ID:???
>そりゃ何も判定してないで「アップロード完了」をただechoしてるだけじゃん
なんか吹いたわ
07757722009/08/06(木) 11:37:21ID:w20GGpoy
>>773
すいません。
ご指摘の通りですね。
改良して問題なく動くようになりました。
ありがとうございます。
0776nobodyさん2009/08/06(木) 11:53:52ID:oShIeqJ9
>>761
CLIを調べてみましたが、レンタル鯖では設定できないようなので
PHPに直接インクルード指定でできました
ありがとうございました
0777nobodyさん2009/08/06(木) 19:20:12ID:???
フォームからPOSTしたパラメータをdBug.phpで見ると、
x, y ってのが入ってるんだけど、何これ?
0778nobodyさん2009/08/06(木) 19:22:29ID:???
dBug.phpで見なくても入ってるだろ?
0779nobodyさん2009/08/06(木) 19:23:35ID:???
ボタンを押した座標。
0780nobodyさん2009/08/06(木) 20:18:23ID:???
>>779
あ、そうなの?知らなかった。
ボタン上の相対座標かな?
0781nobodyさん2009/08/06(木) 20:34:15ID:???
>>780
ここが判りやすい
ttp://www.tagindex.com/html_tag/form/input_image.html
0782nobodyさん2009/08/06(木) 21:10:24ID:???
>>781
d。勉強になった。
0783nobodyさん2009/08/07(金) 23:58:02ID:Q5392INl
質問させてください。
プログラミング超初心者です。
下のコードの、ユーザー定義関数の作成部分で、
いきなり、$in_key とか $in_list とか
急に "$in_"というようになるのが理解できません。
なぜ、$key が$in_key となるのでしょうか。

<?php

$key = "バナナ";
$list[0] = "りんご";
$list[1] = "みかん";
$list[2] = "イチゴ";
$list[3] = "バナナ";
$list[4] = "ぶどう";
$flg = check_proc($key,$list);
if ($flg) {
print "「".$key."」に該当するデータが見つかりました。\n";
}

function check_proc($in_key,$in_list) {
$ret = false;
foreach($in_list as $key) {
if ($key == $in_key) {
$ret = true;
break;
}
}
return $ret;
}

?>
0784nobodyさん2009/08/08(土) 00:02:55ID:???
関数の引数とグローバル変数が一致したらまずいだろ。
0785nobodyさん2009/08/08(土) 00:12:57ID:???
>>784
即レスありがとうございます。
ただ、学習不足のため、いまいち飲み込めません。
"$in_ "というのは、こういう構文の場合に付けるもんだと
理解しておけば良いのでしょうか。
0786nobodyさん2009/08/08(土) 00:20:25ID:???
>>785
半分正解。

"$in_"とか"$tmp_" "$cash_" "$hoge"など、これら関数の名前付けは
機能(処理内容)や個人の趣味。
0787nobodyさん2009/08/08(土) 00:26:17ID:???
>>786
ありがとうございます。
なんとなくですが、わかりました。
hoge とかと同じ感じなのですね。
学習を始めたばかりで、ここでつまづいて困ってました。
ありがとうございました。
0788nobodyさん2009/08/08(土) 00:38:10ID:???
in_array($key, $list)でいいような
0789nobodyさん2009/08/08(土) 00:47:45ID:???
>783
function check_proc($in_key,$in_list)
と定義した関数を
check_proc($key,$list)
と呼び出すと、呼び出した時点での$key, $listの値が、check_proc()の$in_key, $in_listのところに入った処理が実行される。

つまり、$in_keyと$in_listは、keyやlistとはまったく無関係な別の名前でも問題ない。
function check_proc($in_key,$in_list)
の$in_key,$in_listと、その後の関数内の$in_key,$in_listをセットで別のものに置換しても問題なく動く。
関数の中で使う変数名は、外の変数名とは一切関係ない。

ちなみに>784は大嘘をこいてるが、別に一致してても問題ない。
人によっては多少読みづらくなる、というだけ。特に初心者には意味が分かりづらくなるだろうな。
0790nobodyさん2009/08/08(土) 00:49:55ID:???
参照渡しじゃなくて値渡しだよの一言で済むような
0791nobodyさん2009/08/08(土) 00:53:57ID:???
>>786
"$in_key,$in_list" を
"$x,$y" として、実行してみたら、同じ結果が得られました。
構文の意味自体は、まだ飲み込めないのですが、こういうことなのですね。

>>788
まだ基礎の基礎の段階なので、応用はちょっと。。
8月から始めたので、まだチンプンカンプンです。
0792nobodyさん2009/08/08(土) 01:07:30ID:???
>>789
>>790
とてもわかり易い解説ありがとうございます。
ちゃんと意味まで理解できました。(多分ですが)

「ユーザー定義関数に戻り値を指定して、呼び出し元の変数の値を変更する」
とテキストに書いてあるのですが、>>789さんが言っていることですね。
つまり、$key と$in_key は、全く別で構わない。
だから、"$in_"を$x,$yに変更しても同じ結果を表示したのですね。
$key と$in_keyが似ていたので、かえって混乱してしまったようです。
ありがとうございました。
0793nobodyさん2009/08/08(土) 02:09:42ID:???
自分でよく分からないコード書く前にマニュアルを一読することをオススメするよ
0794nobodyさん2009/08/08(土) 14:47:01ID:???
スレタイが「超初心者」なんだからかまわんだろ。
0795nobodyさん2009/08/08(土) 14:55:27ID:???
超初心者だからマニュアルを読まなくていいという考えは良くないよ
0796nobodyさん2009/08/08(土) 15:14:43ID:???
読めには同意、しかし、読んでもなんのことだかじぇんじぇん解らないだろうな、とも思う。
0797nobodyさん2009/08/08(土) 15:21:38ID:???
じゃ解るようになるにはどうすればいいの?
0798nobodyさん2009/08/08(土) 16:52:03ID:???
関数や変数の概念や書式なんてそれこそ「猛禽類でも分かるPHP」みたいな本が
一番力入れて書いてるところだろ。
0799nobodyさん2009/08/08(土) 17:14:28ID:???
そういや、プログラム始めたての頃、
変数名は自分で決めるんだって気がつくのに、ちょっとかかったなぁ・・・
0800nobodyさん2009/08/08(土) 18:28:28ID:???
変数名決めるのに和英辞書はかかせませんね!
PHP7とかなったら変数名に2バイト文字が使えるようになったり・・・して・・・
0801nobodyさん2009/08/08(土) 18:39:36ID:???
相当前から使えるが
0802nobodyさん2009/08/08(土) 23:03:06ID:???
$名前 = '山田太郎';
0803nobodyさん2009/08/08(土) 23:10:03ID:???
$人物 = array( "名前" => "山田太郎", "趣味" => "女装" );
0804nobodyさん2009/08/08(土) 23:21:41ID:???
TBS

 春の番組改編以来

 最高視聴率!!!!

 やっぱり事件ほどおいしいものはない@TBS
0805nobodyさん2009/08/08(土) 23:51:30ID:???
連想配列って、

$pg = array(
 'This is a' => 'pen.',
 'I am a' => 'boy.',
 …

みたいに、スペース入ったらいかんの?
0806nobodyさん2009/08/09(日) 00:11:19ID:???
そのくらい自分で試せるだろ
0807nobodyさん2009/08/09(日) 00:51:53ID:???
>>805
こっちのパソコンで試してみたが、
特にエラーは出なかった。
0808php2009/08/09(日) 01:25:12ID:???
画像がアップロードされたら、その画像の保存とはまた別に
画像のファイルサイズを圧縮した画像も別ディレクトリに保存する
にはどうすれば良いでしょうか?

例えば、 test.jpg ファイルがアップロードされた場合

1) img/test.jpg
2) img2/test_assyuku.jpg

という風に自動で保存したいと思っています。

0809nobodyさん2009/08/09(日) 02:03:49ID:???
圧縮ってのがどういう事かわからないけど、画像の大きさを変更して保存なら
GD使うなりImagick使うなりすればOK
PHP4ならGD、PHP5ならImagickかな。どっちにしてもモジュールが入ってないとダメだから
レン鯖ならphpinfoで確かめてみるとよろし
08108082009/08/09(日) 02:11:10ID:???
>>809
ありがとうございます。
因みにサクラ鯖上に乗せたいと思っています。

PHP5を使用しておりますのでgoogleでImagickを調べて試してみようと思います。
0811nobodyさん2009/08/09(日) 10:56:44ID:???
>>810
古い記事だが、GD入ってるならアップロードと画像加工を一つにした「CLASS.UPLOAD.PHP」がおすすめ
http://www.moongift.jp/2007/05/class_upload_php/
0812nobodyさん2009/08/09(日) 14:18:33ID:???
PHPの閉じタグについての質問なんですが、

余計な空白や改行が出力されないように、ファイルの最後の ?> を書かないようにした方が良いのか、
return; で戻った方が良いのか、一番安全な方法はどちらかあるいは他の方法でありますでしょうか。

バージョンや環境によらず、両方ともいつでも使えるでしょうか?
0813nobodyさんNGNG
( ̄ー ̄)ニヤリッ(わっ)
0814nobodyさん2009/08/09(日) 14:30:51ID:???
>>812
つマニュアル
0815nobodyさん2009/08/10(月) 00:13:28ID:???
超初心者用スレなんだから、行き先ぐらい示してあげようよ

閉じタグについてはここ
http://www.php.net/manual/ja/language.basic-syntax.instruction-separation.php

returnについてはお好きにどうぞ
0816nobodyさんNGNG
phpで2証スクリプトは作れますか?
0817nobodyさん2009/08/10(月) 18:21:19ID:???
>>816
できると思うよ
0818nobodyさんNGNG
作ってください
0819nobodyさん2009/08/10(月) 19:16:57ID:???
いいよ
0820nobodyさんNGNG
どうやって作るの?
0821nobodyさん2009/08/10(月) 19:31:23ID:???
>>820
つかったことないんだけど、
どんな仕様のプログラムですか?
0822nobodyさんNGNG
全然わかんない。
0823nobodyさん2009/08/11(火) 01:16:38ID:???
>>811
ありがとうございます。

因みに自分でアップローダを作ってみたのですが、
どうもクラックされたっぽいです。
(クラックっていうか侵入されたかも)

現在、自分の運営しているサイトのアップローダは何かファイルがアップロードされた場合
ファイルの種類や投稿者の情報とか色々と記憶しているのですが、
昨夜(2:00過ぎ)にそのアップロードされたファイルの一覧ページを見てみたところ
確かに「Explorer.php」というファイルがアップロードされていました。

一番気がかりなのは、もう一度ページをリロードすると消えていました。
DBへのアクセス権ものっとられていたりするのでしょうか?
非常に心配です。



08248232009/08/11(火) 01:29:03ID:???
あと、現在サクラ鯖をレンタルしphpを動かしているのですが、
アップロードされた場合に弾くべきファイルとして、
*.php *.en *.ja

を禁止していたのですが perl(触った事が無いですが)とかも
アップロードされると外部から実行されてしまいますよね?

その場合にperlのアップロードを弾く場合にはどうすればよいでしょか?
perlの拡張子は *.pl なので

*.pl.ja 等を弾けば良いでしょうか?
0825nobodyさん2009/08/11(火) 01:33:15ID:???
>>824
「特定のファイル形式を弾く」よりも、「特定のファイル形式以外拒否」の方がよくねか?
0826nobodyさん2009/08/11(火) 01:35:28ID:???
>>825
おおぉー。。。。
そうですね。。。
ご名答です。

因みに一時的にphpスクリプトをアップロードされ、次の瞬間にそのファイルが無くなったということは
侵入された可能性はありますか?
0827nobodyさん2009/08/11(火) 01:51:51ID:???
不安ならホストアドレス、あるいはIPを制限すればいいと思います
0828nobodyさん2009/08/11(火) 01:53:18ID:???
>>827
串さしてホストを変えながら攻撃されてます。
0829nobodyさん2009/08/11(火) 02:13:40ID:???
プロクシー経由を弾けばいいんじゃね?
0830nobodyさん2009/08/11(火) 02:15:46ID:???
簡単に串経由かどうかを判定する方法はありますか?
あと、Torとか使ってくる奴もいてうざくてしょうがないです。
0831nobodyさん2009/08/11(火) 02:37:13ID:???
>>826
アップロードディレクトリでスクリプト実行できないようにしなよ
今のセキュリティホール全開な仕様が異常だと認識したほうがいい

>侵入された可能性はありますか?
スクリプト実行と侵入は違う気がするが
suexecが有効ならサーバ内のファイル構成を見られたりファイル消されたりする可能性はある

とにかくPHP周りを強化するよりサーバ周りの設定を強化したほうがいい
0832nobodyさん2009/08/11(火) 02:44:24ID:???
>>831
>アップロードディレクトリでスクリプト実行できないようにしなよ
ディレクトリに設定する権限は755に設定していますが、
これでは駄目なのでしょうか?

因みにファイル構成を見られる分には別にいいのですが
phpスクリプトのコードまで見られた可能性はありますか?

あと、ちょっと原始的かもしれませんが *.php *.PHP *.pl *.PL *.cgi *.CGI を
全てアップロード付加にしました。

取り合えずこれでアップローダからの侵入は防げるかなと思ってますが、
ベテランの方もし穴があるとすればご指摘願います。
0833nobodyさん2009/08/11(火) 02:46:09ID:???
> 簡単に串経由かどうかを判定する方法はありますか?

ちっとはてめえで調べろよ、横着野郎。
0834nobodyさん2009/08/11(火) 02:50:08ID:???
>>833
考えました。
0835nobodyさん2009/08/11(火) 02:56:58ID:???
>>832
755じゃ実行されるでしょ
ていうか権限の問題じゃない
一番簡単なのはAddTypeハンドラでtextとして実行するようにする
他にもルール作って特定拡張子へのアクセス防いだりなど
htaccessを用いていろいろ対策は可能
0836nobodyさん2009/08/11(火) 03:14:49ID:???
>>835
今日帰って来たら色々とapacheがらみを勉強してみようと思います。

※上でも書いた様に *.php *.pl 等の実行形式のファイル自体はアップロードさせない様に判定ロジックを
組み込みました。
取合えずこれで少しは穴は塞げた(???)と思いましたのでもう寝ます。
ご回答くださった方々ありがとうございました。
0837nobodyさん2009/08/11(火) 14:47:02ID:???
PHPのセキュリティの攻撃となんちゃらの実際

とかって本を読めば?
0838nobodyさん2009/08/12(水) 01:01:23ID:???
>>837
買ってきます。
0839nobodyさん2009/08/12(水) 18:14:55ID:XtZqM+tg
フォームで受け取った$pass(値はhoge)と
同じくフォームで受け取った$idをファイル名に含んだファイルの二行目をfile()で読み込んで
$data[1](値はhoge)に代入して
if($pass==$data[1]){
print"値は同じです".$pass"==".$data[1];
}
else{
print"値は違います".$pass"==".$data[1];
}
を実行すると
「値は違います hoge==hoge」
と表示されるのですが「値は同じです」と表示させるにはどうしたらいいですか?
0840nobodyさん2009/08/12(水) 18:24:11ID:???
var_dumpしてみそ
0841nobodyさん2009/08/12(水) 18:43:49ID:XtZqM+tg
Var_dumpしてみたら@dataの値全部の最後尾に半角スペースがあったんだけど
ファイルを見てみると
hoge
hoge
hoge
で半角スペースなんてないんだけどこれって別のところに原因がある?
代入は$data=file("$filepath");ってやってるんだけど。
0842nobodyさん2009/08/12(水) 18:59:57ID:???
> print"値は違います".$pass"==".$data[1];

print"値は違います" . $pass . "==" . $data[1];
ではないのか?
0843nobodyさん2009/08/12(水) 19:03:38ID:???
書き込みはドット抜けてたけどソースにはかいてある。
0844nobodyさん2009/08/12(水) 19:14:53ID:???
file()で読み込んだら行末に改行コードが入ると思うが。
0845nobodyさん2009/08/12(水) 22:39:56ID:???
>844
が正解。trim()かrtrim()する必要がある
0846nobodyさん2009/08/12(水) 23:23:53ID:???
PHPサイバーテロの技法 攻撃と防御の実際

、、、だった。
0847nobodyさん2009/08/12(水) 23:30:30ID:???
それかFILE_IGNORE_NEW_LINESフラグを付ける。

ttp://www.php.net/manual/ja/function.file.php
>改行記号はついたままとなります。 失敗すると file() は FALSE を返します。
0848nobodyさん2009/08/12(水) 23:38:47ID:???
>>847
何言ってんだよ、$passに改行コードをつけてからコンペアすりゃいいだろw
0849nobodyさん2009/08/13(木) 00:35:56ID:???
Debian lennyのPHP5でPDO+sqlite3を使いたいのですが
どうすればPDOドライバが使えるようになりますか?
0850nobodyさん2009/08/13(木) 00:44:24ID:???
compareをコンペアと発音する若い連中
0851nobodyさん2009/08/13(木) 00:45:29ID:???
>>849
php.iniのPDOの行がコメントアウトされてるから、
コメントアウト;をはずして、
上書き保存して、
アパッチ再起動かな?
0852nobodyさん2009/08/13(木) 01:14:32ID:???
>>851
vimでphp.ini開いて/pdoやってみたけどnot foundって出てきましたorz
0853nobodyさん2009/08/13(木) 01:18:14ID:???
じゃ書いとけばいいんじゃね
0854nobodyさん2009/08/13(木) 01:26:14ID:???
アパッチの設定ファイルのほうだったかな?
httpd.confとか。
0855nobodyさん2009/08/13(木) 03:23:23ID:???
コンボボックスより選択された値をhidden項目に設定し、
その状態で自画面(TestAction)のPHP部分に引き渡したす
為に、次のコードを書いたのですが、エラーが発生してしまいます。

いずれも、*.submit();の実行時にエラーが発生してしまうのですが
どうすればよいでしょか?

function TestSelect(iSelect)
{
  document.getElementById("id_value_set").value = iSelect;


  //■方法@
  document.name_select_page.submit();

  //■方法A
  obj = document.forms["name_select_page"];
  obj.action="TestAction.php"
  obj.submit();

}
<form name="name_select_page" action="TestAction.php" method="POST">
  <input id="id_value_set" type="hidden" value=""/>
  <select onchange="TestSelect(this.options[this.selectedIndex].value)">
    <option selected >1</option>
    <option>2</option>
    <option>3</option>
  </select>
</form>
0856nobodyさん2009/08/13(木) 04:25:57ID:???
value無くね?
0857nobodyさん2009/08/13(木) 05:01:57ID:???
>>855
すごくスレ違いな気がするけど・・
とりあえずIE8でsubmit()の箇所に関してはどちらの方法も動作する。
省略している部分に問題があると思われる。

続きは
+ JavaScript の質問用スレッド vol.72 +
http://pc11.2ch.net/test/read.cgi/hp/1247911761/l50
0858nobodyさん2009/08/13(木) 14:58:14ID:???
$a[0] = "password=zdrup91=";

$s = explode( "=", $a[0] );

こうやると $a[0]の最後の = も消えちゃうけど、
消さずに分離するにはどうしたらよい?
0859nobodyさん2009/08/13(木) 15:13:32ID:???
>>858
そりゃ消えるだろ
デリミタを変えろとしか言いようがない
0860nobodyさん2009/08/13(木) 15:14:40ID:???
正規表現で ([^=]+)=(.*) とかで切り出したら
0861nobodyさん2009/08/13(木) 15:15:27ID:???
もしpassword=が固定ならそれ消すだけでいいし
0862nobodyさん2009/08/13(木) 15:41:40ID:???
>>860
d。でもその正規表現でpreg_split() やったら = だけ切り出されたよ…
0863nobodyさん2009/08/13(木) 15:58:40ID:???
正規表現ならシンプルに下記でいいんじゃない
/^password=(.+)$/
0864nobodyさん2009/08/13(木) 16:07:02ID:???
preg_matchでいいだろ
08658582009/08/13(木) 16:52:21ID:???
みんな、ありがとう。
↓これでいけた。

$s = preg_split( "/=/", $a[0], 2 );
0866nobodyさん2009/08/13(木) 19:07:28ID:???
"France '40" を urlencode() した "France+%2740" を渡して
受け側でGETすると "France+%5C%2740" とかバックスラッシュが
入ってるのはなぜ?
0867nobodyさん2009/08/13(木) 20:11:40ID:???
つmagic_quotes_gpc = Off
0868nobodyさん2009/08/13(木) 21:59:50ID:???
最近magic_quotesの事を知らない人が多いような気がする。
自分もそうだったけど、ハマるとなかなか難しいよね。
0869nobodyさん2009/08/13(木) 22:29:31ID:???
最近はデフォルトでOffじゃないのか?
6ではもう削除されるし
0870nobodyさん2009/08/14(金) 00:21:29ID:???
> 最近magic_quotesの事を知らない人が多いような気がする。

( ´,_ゝ`)プッ
0871nobodyさん2009/08/14(金) 20:37:22ID:WKlKHJBl
""や''の中で使われている{}ってどういう意味なんでしょうか?
0872nobodyさん2009/08/14(金) 20:41:09ID:???
''の中では無いでしょう
0873nobodyさん2009/08/14(金) 20:44:50ID:???
>>431
0874nobodyさん2009/08/14(金) 22:17:30ID:???
$a=1;
$aa=2;

こんなとき、もし

print $aaa;


とかってあったら、PHP君は、

「これって、$aなのかなぁ?$aaなのかなあ?$aaaなのかなぁ?」

って、わけわかんなくなって、
「下半身のクスリなので見せられない」
とかってふぁびょって、逃亡してしまうのです。

それを防ぐための{}です。
0875nobodyさん2009/08/14(金) 22:44:12ID:???
それじゃ$aaaしか解釈されねーよ
0876nobodyさん2009/08/14(金) 23:26:44ID:???
それじゃあ$aや$aaを使いたいときにはどうすんだよ、って話だろ
どんだけ脳味噌腐ってるんだ
機械なんだから、最終的には1通りに決定するに決まってんだろ
0877nobodyさん2009/08/14(金) 23:48:55ID:???
$aか$bのどちらかにカタカナの「ア」が含まれているかどうか判定するのに

if ( mb_ereg( "/ア/", $a . $b ) )

こんな風に書いたら正常に動作しないんだけど、なぜ?
0878nobodyさん2009/08/15(土) 00:09:31ID:???
if( mb_ereg( "[ア]", $a . $b ) )
0879nobodyさん2009/08/15(土) 00:20:10ID:???
>>877
つmb_strpos($a . $b, 'ア');
0880nobodyさん2009/08/15(土) 00:20:40ID:???
>>874==>>876の場合にのみ>>876が成り立ちます。
0881nobodyさん2009/08/15(土) 01:09:05ID:???
>>880
>>>874==>>876の場合にのみ>>876が成り立ちます。
>

ごめん意味がわからない
0882nobodyさん2009/08/15(土) 01:13:14ID:???
>>874==>>876の場合にのみ>>876が成り立ちます。

>>876
>どんだけ脳味噌腐ってるんだ

つまり>>874>>876は脳味噌腐ってる、そういうことです
0883nobodyさん2009/08/15(土) 01:34:00ID:???
>>876
$aaaしか解釈されない話を書いておいて、
>それじゃあ$aや$aaを使いたいときにはどうすんだよ
という話に結びつくわけねーだろアホが
結びつけたいなら例示が誤り
0884nobodyさん2009/08/15(土) 10:47:55ID:kMv36QGK
とりあえず>>874>>876が同一人物ならば、こいつが一番バカだっていうことがわかる。
0885nobodyさん2009/08/15(土) 19:39:15ID:???
date()でタイムゾーンの Z ってどういう風に指定するの?
date("y/m/d H:i:sZ32400",time())
とかやったらダメだった…
0886nobodyさん2009/08/15(土) 19:44:38ID:???
ん?こっちの環境で実行してみたらちゃんとZの所に32400が表示されるけど?
0887nobodyさん2009/08/15(土) 19:50:31ID:???
>>886
ごめん、聞き方が悪かったというか勘違いしていた。

西海岸の鯖を借りていて、time()で取った時間を記録しているんだけど、
それを日本時間で表示したかったの。
夏時間なんかもあるし、他の鯖に引っ越したときのことも考えると
単純に時差を足すのもダメなんで悩んでます。
0888nobodyさん2009/08/15(土) 19:54:23ID:???
タイムゾーン設定すればいいと思うが
0889nobodyさん2009/08/15(土) 21:50:12ID:lF+0GJeW
PHPって単体テストやるんですか?
やるとしたらどうやるんでしょうか?
0890nobodyさん2009/08/15(土) 22:14:56ID:???
やるかどうかはその人次第
ちなみにPHPコアはロクなテストをしていない気がする
ハーネスは普通にPHPUnitがある
0891nobodyさん2009/08/15(土) 22:16:04ID:lF+0GJeW
その人次第ってことは業務でも強制されないってことですか?
0892nobodyさん2009/08/15(土) 23:20:10ID:???
>>887
date()の代わりにgmdate()を使って、9時間分の秒数を足せばいいと思う。
0893nobodyさん2009/08/15(土) 23:22:02ID:???
会社による。
0894nobodyさん2009/08/15(土) 23:50:25ID:???
php.iniなりdate_default_timezone_set()なりで設定するのがベストでしょ?
0895nobodyさん2009/08/16(日) 00:06:27ID:???
time()で取得したデータがあるのに今さら変えてどうなる?w
0896nobodyさん2009/08/16(日) 17:03:40ID:???
php.iniて、そろそろxmlにならないの?
0897nobodyさん2009/08/16(日) 17:09:30ID:???
なんで?
0898nobodyさん2009/08/16(日) 17:42:34ID:???
だいぶ前にPerl本当にちょっとだけやって最近PHP始めたんだけど
Perlだとユーザー定義関数内でユーザー定義関数外の変数が使えたような気がするんだけど
PHPだとできない?ファイルごとにかいてrequireするしかないのかな?
0899nobodyさん2009/08/16(日) 17:45:29ID:???
>>898
global
0900nobodyさん2009/08/16(日) 17:48:09ID:r7x0SQCa
globalは知ってたんだけどglobalの意味をなんかはき違えてたみたいです。ありがとうございました
0901nobodyさん2009/08/16(日) 18:26:29ID:???
>896
現状レベルの設定項目ならXML化など必要ない。
XMLが必須になるような複雑な設定が必要ならば、それは環境依存バグの温床でしかない。
「設定が原因」って問題が、現状ですらこのスレの質問の何割ってレベルに達してる。複雑化させようとか脳味噌涌いてる。

むしろphp.iniっていつになったら削除するの?と言いたい。
0902nobodyさん2009/08/16(日) 22:09:37ID:???
コンフィグの類をXMLにしたがるのって、XMLって言ってみたかっただけだよね?
と思ってしまう。
0903nobodyさん2009/08/17(月) 04:25:59ID:???
ゆとりC#ユーザなんですよ
察してやれ
0904nobodyさん2009/08/17(月) 06:31:09ID:???
いわゆる「全角の法則」ってやつですね。
0905nobodyさん2009/08/17(月) 14:56:46ID:???
PHP始めたくて環境整えたいんですけど、
うちのPCは容量不足でした。
で、ネカフェで一度試そうと思うんですけど、
環境整えるのに30分もかかりませんか?
0906nobodyさん2009/08/17(月) 14:59:27ID:???
使う環境が無ければ始める必要はないのでは。
0907nobodyさん2009/08/17(月) 15:01:29ID:???
Apache+PHPが入らないほど容量が逼迫してるPCってどんだけ
0908nobodyさん2009/08/17(月) 15:15:54ID:???
すいません。容量減らしてみます。

で、30分はかかりませんかね?
0909nobodyさん2009/08/17(月) 15:17:34ID:???
君だとかかりそう
0910nobodyさん2009/08/17(月) 15:24:55ID:???
普通の人なら30分以下ってことですね?
ありがとうございました。
0911nobodyさん2009/08/17(月) 15:33:23ID:???
ネカフェのPCって無法地帯なんですね
0912nobodyさん2009/08/17(月) 15:36:04ID:???
ネカフェのPCは再起動をすると、インストールしたものやダウンロードしたものはすべて消去されるからね。
0913nobodyさん2009/08/17(月) 16:03:58ID:a1cwuPd+
phpで容量不足って
0914nobodyさん2009/08/17(月) 16:30:41ID:???
流行りのミニノートを手に入れてよぉしWEBデザインにもチャレンジとかか
0915nobodyさん2009/08/17(月) 16:52:26ID:qzrG2BQb
いきなり質問して悪いんだが
$a = "abcde";
var_dump($a);
$a = htmlspecialchars($a,ENT_QUOTERS);
var_dump($a);
とすると
htmlspecialchars() expects parameter 2 to be long, string
ってエラーが出るんだが
誰か助けてくださいお願いします
0916nobodyさん2009/08/17(月) 16:54:41ID:???
ENT_QUOTES
0917nobodyさん2009/08/17(月) 16:56:27ID:qzrG2BQb
>916

死にたい
0918nobodyさん2009/08/17(月) 17:06:02ID:???
これに懲りたらIDE使おうな
0919nobodyさん2009/08/17(月) 17:40:59ID:qzrG2BQb
すみません915ですがもう一度質問いいですか
クエリの処理で
function query($sql){
$this->m_Rows = mysql_query($sql,$this->m_con);
if(!$this->m_Rows){
die("error L50
<br><br>{$sql}</b><br>".mysql_error()."".mysql_error());
    }
return $this-m_Rows;
っていう関数があるんですがDBにデータを一個追加しようとすると
You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'DB VALUES
a,'b','c','d')' at line 1
ってエラーが出て上の関数で引っかかってるみたいなんです

超初心者な質問ですみませんが教えてください
0920nobodyさん2009/08/17(月) 17:45:10ID:???
クエリのエラーだよ
SQL文貼ってみ
0921nobodyさん2009/08/17(月) 17:47:40ID:qzrG2BQb
>>920
 すみませんSQL文って何ですか?
INSERT INFO DB VALUES(a,'b','c','d')
これでいいんでしょうか
0922nobodyさん2009/08/17(月) 17:53:41ID:???
>>921
INTOじゃなくてINFOになってるけど?
0923nobodyさん2009/08/17(月) 17:59:09ID:qzrG2BQb
>923
デバッグでただの入力ミスだったら死にたくなりますね
死にたいです
どうもありがとうございました
0924nobodyさん2009/08/17(月) 19:40:49ID:???
もそっとモチつけ
0925代理レス2009/08/17(月) 20:11:45ID:???
windows xp sp3 + php 5.2.10 です。
rarを扱いたいのですが、pecl -v install rar を実行すると
ERROR: The DSP rar.dsp does not exist.
となりインストールできません。

ttp://phpspot.net/php/man/php/ref.rar.html に載っている
php_rar.dll も見つかりません(archive.orgにもありません)。

インストール方法をご教示ください。
0926nobodyさん2009/08/17(月) 20:15:41ID:???
>>925
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-27,GGLD:ja&q=php+rar+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
0927nobodyさん2009/08/17(月) 20:20:22ID:???
PHPでプロセスに対してSIGUSR1って飛ばせますか?
0928nobodyさん2009/08/17(月) 23:16:00ID:???
HTMLのソースにPHPを埋め込むとき、
ドキュメントタイプより上に書いても大丈夫なのでしょうか
普通はbodyの中に書くのが一般的でしょうか
初心者ですみませんがよろしくお願いします
0929nobodyさん2009/08/17(月) 23:49:12ID:???
どっちでもおkだよ
ただし出力には気をつけてな
0930nobodyさん2009/08/17(月) 23:49:49ID:???
>>928
そんなことよりHTMLのcharsetとPHPの内部エンコーディングを気にしろ。
0931nobodyさん2009/08/17(月) 23:50:48ID:???
> HTMLのソースにPHPを埋め込むとき

拡張子は.htmlなのか?w
0932nobodyさん2009/08/18(火) 00:05:47ID:???
>>927
posix_kill
0933nobodyさん2009/08/18(火) 17:06:54ID:???
特殊文字?について、
a?bという表現は、「ab」もしくは「b」にマッチするというのは合ってますか?
合ってるとしたら、?は前の文字を0回か1回という考え方でいいのでしょうか?
0934nobodyさん2009/08/18(火) 17:12:11ID:???
PHP正規表現チェッカー
ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
0935nobodyさん2009/08/18(火) 18:04:23ID:???
>>933
直前の文字があってもなくてもいいという考え方
メジャーなとこだとURLの正規表現で
https?から始まる書き方するね
0936nobodyさん2009/08/18(火) 19:10:56ID:???
935?933
0937nobodyさん2009/08/19(水) 14:19:38ID:lH3P7pqc
if ($_SERVER["REQUEST_METHOD"] == "POST")という記述を行うと
syntax error, unexpected $end in C:\Program Files\Apache Group\Apache2\htdocs\login.php on line 69
というエラーが出るんですが最後の行がL68までしかないんですが?
対処方法教えてください お願いします
0938nobodyさん2009/08/19(水) 14:23:47ID:???
閉じ括弧やendifやヒアドキュメントの終了タグなどがないんでは?
0939nobodyさん2009/08/19(水) 14:28:48ID:???
?> が無いんだろう
0940nobodyさん2009/08/19(水) 14:34:52ID:???
?> は要りません
0941nobodyさん2009/08/19(水) 14:38:54ID:???
?>が無いと、syntax error, unexpected $end in・・・のエラーが出たけどな
0942nobodyさん2009/08/19(水) 14:40:02ID:???
ちなみに、if文がまともに終わってない時の話だよ
if文がちゃんと終わって無くても、?>があればエラーは出ない
0943nobodyさん2009/08/19(水) 14:53:41ID:lH3P7pqc
閉じ括弧のミスがわからんから全部消して書き直したら出来ました
よくわからかったけどありがとうございます
0944nobodyさん2009/08/19(水) 14:56:24ID:???
if文がちゃんと終わってなかったら?>があってもエラー出るだろアホか
0945nobodyさん2009/08/19(水) 15:10:48ID:???
どっちにしてもカッコ悪い話だなw
0946nobodyさん2009/08/19(水) 15:12:38ID:???
>>944
実際にやってみ
0947nobodyさん2009/08/19(水) 15:14:43ID:???
warning無視すか。
0948nobodyさん2009/08/19(水) 15:24:20ID:???
>>946
if (1) {

?>

Parse error: parse error in test.php on line 4
0949nobodyさん2009/08/19(水) 18:05:26ID:lH3P7pqc
すみませんまた質問失礼します
フォームを作っているんですが
ボタンを押すと。。。みたいな動作を記述するとき
if(isset($_POST["sumbit"])) echo 〜
って書いてもデータが反映されないんです
上の条件を消すと通るんですが、これはフォームタグの
<input type="submit" name="submit" value="login">
にどこかミスがあるんでしょうか??
0950nobodyさん2009/08/19(水) 18:07:22ID:???
formのタイプはちゃんとPOSTにしてる?
0951nobodyさん2009/08/19(水) 18:13:25ID:lH3P7pqc
>>950
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">
ってしてますけど間違ってますか??
0952nobodyさん2009/08/19(水) 18:21:07ID:???
つーかあー

if(isset($_POST["sumbit"])) echo 〜
             ^^
0953nobodyさん2009/08/19(水) 18:26:01ID:lH3P7pqc
>>952

ちょっと新しい眼鏡買ってくる

ありがとうございました
0954nobodyさん2009/08/19(水) 18:39:26ID:???
>>951
余談だけど「PHP_SELF」はやめときなさい。
「SCRIPT_NAME」を使おうね。
0955nobodyさん2009/08/19(水) 18:48:15ID:???
SELFだとGETリクエストを紛れ込ませられるんだっけ?
0956nobodyさん2009/08/19(水) 19:11:48ID:???
>>953
おじさん、老眼かい?w
0957nobodyさん2009/08/19(水) 19:18:27ID:???
> このスレッドは、他のスレッドでは書き込めない超低レベル、
> もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
0958nobodyさん2009/08/19(水) 21:42:56ID:???
自分に送るなら空白が吉
0959nobodyさん2009/08/20(木) 09:24:44ID:???
php,mysql に関する質問です。
引数でテーブル名を受け取って、そのままテーブル(行)内容を出力するのはどうすればいい?

function db_print($table) {
 // db接続部分は略

 $sql = "select * from $table";
 foreach ($dbh->query($sql) as $row) {
  // print ($row['name']); //列名を指定すれば出来る
 }
}
0960nobodyさん2009/08/20(木) 11:17:13ID:???
http://jp.php.net/manual/ja/book.mysql.php
この関数群の中に答えがあるはず
0961nobodyさん2009/08/20(木) 12:01:41ID:???
mysql_num_fields と mysql_field_name だぁね
0962nobodyさん2009/08/20(木) 12:16:45ID:???
つーかPear::DBだろ、その書き方だと。
だったらこのあたり見れ。
http://pear.php.net/manual/ja/package.database.db.db-common.tableinfo.php

上のお二方は、pear じゃないDB接続ライブラリを使った場合の話。
db接続部分を略しているとマトモな回答がもらえないぞ。いろいろな
接続方法があるんだから。
09639592009/08/20(木) 12:24:03ID:???
>>960-961
ありがとう。試行錯誤してみる。
ただ、できれば PDO 関数群でやってみたかった。
現状だと print_r でとりあえず出力出来ると分かったけど、
これだと出力形式が固定される気がしたので、質問してみたんだ。

うーん、質問が悪い気がするので取り下げます。
初心者過ぎたな。悪い。
とか書いてたら、>>962ありがとう。
0964nobodyさん2009/08/20(木) 15:39:46ID:???
拡張子を.htm、.htmlのままでphp動かせる?
0965nobodyさん2009/08/20(木) 15:41:14ID:???
Apacheで設定汁
0966nobodyさん2009/08/20(木) 15:45:16ID:???
JavaScriptで

document.write("<a href=http://www.xxxx.com/xxxxx.php>;</a>");

みたいに書くとか。
0967nobodyさん2009/08/20(木) 15:47:13ID:???
リンク貼るだけかよw
0968nobodyさん2009/08/20(木) 18:08:33ID:???
<script type="text/javascript" src="xxx.php"></script>
これで池。
0969nobodyさん2009/08/21(金) 14:52:20ID:???
PHP入門書の中に条件式としてis_int($channel)とあったんですが、
これってどういう意味なんでしょうか・・・

// チャンネルを変える
public function channel($channel) {
if (is_int($channel)) {
$this->channel = (int)$channel;
echo "チャンネルを{$this->channel}に変えました\n";

こういった文です・・・
0970nobodyさん2009/08/21(金) 15:00:16ID:???
http://google.com/search?q=is_int+php
0971nobodyさん2009/08/21(金) 15:29:41ID:???
oopの入門コードだなw
0972nobodyさん2009/08/21(金) 15:30:18ID:???
>>969
無駄の多い書き方だね
intをわざわざintにキャストしてるとこも謎だね
PHPは型が曖昧だから引数に違う型いれられても
自分で判定ロジック書かないといけないってことじゃないかな?
OOPで書いといてなぜException使わないのかと問い詰めたいけど
まぁその入門者は破り捨てていいよ
0973nobodyさん2009/08/21(金) 15:40:47ID:???
たしかにw
intであるのを確認した後でintにキャストってのがなんとも…
0974nobodyさん2009/08/21(金) 15:46:44ID:???
アホな本が多すぎるのが、PHPの困ったところだ。
0975nobodyさん2009/08/21(金) 15:49:23ID:???
あとは検索上位のサイトが平気で嘘を書くのも。
09769692009/08/21(金) 16:08:24ID:???
入門書に対する書き込み多くてかなり焦っております。
信頼できる本やサイトがあればご教授願いたいところです・・・
0977nobodyさん2009/08/21(金) 16:14:52ID:???
大丈夫
どんなクソ入門書からはじめても場数ふめばまともなの書けるようになるから
最初のうちはその入門書のクセがついちゃうけど
だんだんわかってくればかわってくるから平気
PHPスレとか眺めてるだけでも結構勉強になるはずだ
PHP関連スレではPHPマニュアルで勉強しろっていわれるだけだとおもう
http://jp.php.net/manual/ja/index.php
0978nobodyさん2009/08/21(金) 16:18:54ID:???
>>977に同意。
0979nobodyさん2009/08/21(金) 18:49:34ID:???
関数内の配列をGlobalにしたいんですがどうすればできますか?
変数と同じ方法じゃできませんでした。
0980nobodyさん2009/08/21(金) 18:54:32ID:???
まずは試してみたソースを曝すべし
0981nobodyさん2009/08/21(金) 18:59:02ID:???

function MONSTERREAD() {
while(${no}<9){
${no}++;
$fp = fopen("nightwish/".$_SESSION{'id'}."".${no}.".dat", 'r');
$hensu="unit";
$hensu.="${no}";
while (!feof($fp)) {
print $hensu;
global ${$hensu};
${$hensu}['$i'] = fgets($fp);
$i++;
}
}
}
$_SESSION{'id'}=dada;
MONSTERREAD();
$i++;
print $unit1[1];


これを実行するとunit1が行数文出力されてunit2unit3unit4…と続いてunit9で終わってunit1[1]の分が出力されません
0982nobodyさん2009/08/21(金) 19:10:57ID:???
変数は初期化しろ。
ファイルはクローズしろ。
0983nobodyさん2009/08/21(金) 19:15:03ID:???
なんかVBを思い出した
0984nobodyさん2009/08/22(土) 01:13:07ID:???
<?php
function MONSTERREAD($id) {
 $return = array();
 for($no=1;$no<9;$no++){
  $fp = fopen("nightwish/".$id.$no.".dat", 'r');
  $hensu = "unit" . $no;
  $lines = array();
  while (!feof($fp)) {
   $lines[] = rtrim(fgets($fp));
  }
  fclose($fp);
  $return[$hensu] = $lines;
 }
 return $return;
}
$var = MONSTERREAD("dada");
extract($var);

var_dump($unit1);
var_dump($unit2);
09859842009/08/22(土) 01:20:11ID:???
その糞コードのどこが間違ってるかは調べるだけ時間の無駄なので調べていない。

・関数は「値を受け取り、値を返すもの」だ。
 関数内で使う変数は、全て引数として渡せ。
 外で使う値は、常に返り値として返せ。一度で返しきれないなら関数を分けろ。
・変数名に数字を持たせるな。
 1-8までの数字を変数名に持つ、という事は、そいつは論理的には配列として扱うべき変数だ。
・変数名を文字列として扱うな。
 吐き気を催しつつ書いたが、extractはせず$varのまま使うほうが百万倍正しい。
 unit1...unit8となっている配列キーは、1...8の数値になるのが正しい。
・てめぇにオリジナルのプログラムは無理だ。出直せ。
0986nobodyさん2009/08/22(土) 02:50:22ID:???
$hensuの時点で萎える
0987nobodyさん2009/08/22(土) 15:00:18ID:???
$lineindex[$disptree]

こう言う風に書かれた変数はどういう意味になるのでしょうか?
0988nobodyさん2009/08/22(土) 15:01:30ID:???
配列$lineindexのキーが$disptreeのところ
0989nobodyさん2009/08/22(土) 15:06:58ID:???
$lineindex[0]こう言う風に書くと配列の最初の内容を表しますが
0という入れ物の名前が$disptreeに変わっただけなのですね。
0990nobodyさん2009/08/22(土) 15:15:21ID:???
PHPを使用して指定したWEBページの全てを取得し、保存するにはどうすればよいでしょか?

例: http://google.co.jp とtextbox項目に入力し、保存ボタンをクリックすると
   そのページで使用している画像等も全て

 data/googleIndex.html として保存したいです。
 

また、画像を保存する・しないも切り替えられる様にしたいのですが
どうすればよいでしょか?

ヒントをお願い致します。
0991nobodyさん2009/08/22(土) 15:27:20ID:???
PHPで携帯サイトを作っています。
例えばindex.phpが30KBあり、includeするPHPファイルが100KBあるとします。
PHPから吐き出されるHTMLが10KBの場合、携帯で発生するパケットを10KBと考えていいのでしょうか?
0992nobodyさん2009/08/22(土) 15:27:51ID:???
>>990
file_get_contents( $url ) でhtmlファイルを取得したのち、
htmlを解析して、インクルードしてる各種ファイルを取得、CSSファイルがあればさらにそれも解析して使ってる画像を取得、
イメージタグから画像のパスを取得して画像ファイルを取得。
インラインのスタイルを使っているかもしれないからそれも何とかして解析して画像へのパスを取得。
flashもあるかもしれない。javascriptの解析から、使ってるファイルとか画像を取得するのが面倒だな。

ちゃんとしたの作ってくれれば喜ぶ人がいると思うよ。頑張ってね。
0993nobodyさん2009/08/22(土) 15:29:11ID:???
>>991
実際のパケット量見てみれば分かることじゃない。
0994nobodyさん2009/08/22(土) 16:32:20ID:???
>>990
HTMLを全てトレースしてimg srcを見つけたら保存でいいじゃん。
それをON/OFFすりゃいいだろ。
0995nobodyさん2009/08/22(土) 18:26:30ID:???
>>992
>>993
何とかやりたい事が出来そうです。
どうもありがとうございました。
0996nobodyさん2009/08/22(土) 18:27:10ID:???
>>993



>>994
の間違いでした。
0997nobodyさん2009/08/22(土) 19:19:18ID:???
言われたとおりにしたらできましたありがとうございました
0998nobodyさん2009/08/23(日) 13:48:59ID:???
998
0999nobodyさん2009/08/23(日) 13:49:44ID:???
999
1000nobodyさん2009/08/23(日) 13:50:38ID:???
このスレは1000の風になりました
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。