【PHP】下らねぇ質問はここに書き込みやがれ 47
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/26(土) 21:03:53ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0071nobodyさん
2007/06/06(水) 13:33:04ID:???昔SJISでやっていた関係でSJISで飛んでくるアクセスが多いためです。
文字を見て判断というのは
%[0-9]があればSJIS、そうでなければUTF-8といった感じですか?
0072nobodyさん
2007/06/06(水) 13:46:21ID:???$data = mb_convert_encoding($data,"UTF-8","SJIS");
$data2 = mb_convert_encoding($data,"SJIS","UTF-8");
$data3 = mb_convert_encoding($data2,"UTF-8","SJIS");
if($data == $data3) $encoding = "SJIS";
else $encoding = ""UTF-8;
こんな感じで比較するのがよさそうですね。
まともに変換できて元データと同じになるならOK
だめならNG
0073nobodyさん
2007/06/06(水) 15:05:07ID:???0074nobodyさん
2007/06/06(水) 20:25:28ID:???今のコードにフラグのパラメタ追加すりゃいんじゃね
そのパラメタなかったらSJIS
↓↓↓ついでにここは次スレな、現在進行スレは↓↓↓↓
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
以上、誘導ですた
0075nobodyさん
2007/06/07(木) 14:29:44ID:???0076nobodyさん
2007/06/08(金) 22:49:32ID:0lkAmkgGhttp://sv2ch.baila6.jp/graph_load.cgi?pc11.2ch.net のような
グラフを描くことは出来ますか?
0078nobodyさん
2007/06/09(土) 06:33:40ID:???Filemaker使いたいんですけど
0080nobodyさん
2007/06/09(土) 10:48:51ID:???0083nobodyさん
2007/06/09(土) 12:28:40ID:???iODBCならドライバあるってこと?
それとも代替するものがあるとか?
odbc自体はじめて手をつけるので良くわかってないですが…
0084nobodyさん
2007/06/09(土) 16:06:42ID:???0085nobodyさん
2007/06/09(土) 18:50:53ID:???Wikipediaなどで文字列を検索すると、
ttp://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9E%E3%83%B3
のように、URLの後ろに「%E3%83%AD〜」のように表示される謎の文字がありますが、
これを日本語に変換するにはどうしたらよいでしょうか(上のは"ロックマン"で検索)
mb_convert_encoding('%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9E%E3%83%B3','ASCII','auto')
↑のような感じで色々と試し、小3時間くらい悩んだのですが分かりませんorz
Super PHP Masterな先生方、どうかご教授をお願いします。
0086nobodyさん
2007/06/09(土) 19:02:29ID:???http://pc11.2ch.net/test/read.cgi/php/1065258181/
ttp://ja.wikipedia.org/wiki/%55%52%4C%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
ttp://jp.php.net/manual/ja/function.urldecode.php
008785
2007/06/09(土) 19:10:14ID:???神速レス有り難うございます。
早速、トライさせてもらいます。失った3時間を取り戻すために・・・。
せっかくの休日が・・・orz
0088nobodyさん
2007/06/09(土) 19:23:46ID:???だから一緒にがんばろうZE
0089nobodyさん
2007/06/09(土) 20:11:14ID:???ブラウザ毎の互換性を保つためだそうですが、どういう規則で変換しているのでしょうか?
0090nobodyさん
2007/06/09(土) 20:35:57ID:???0091nobodyさん
2007/06/10(日) 03:52:52ID:???【PHP】下らねぇ質問はここに書き込みやがれ 48
らしいのれす
0092nobodyさん
2007/06/10(日) 11:30:20ID:???↑を参考にしながらWinXP SP2、VS2005ProでPHPをコンパイルしてるんですが
"cscript /nologo configure.js"を実行すると↓のメッセージが出て止まります
ERROR: We really need that arpa\nameser.h file - it is part of the win32build package
"arpa\nameser.h"はwin32build\include\の中にあるんですがなにが悪いでしょうか
だれか助けて
0093nobodyさん
2007/06/10(日) 13:15:07ID:hfm7nUZIテーブルが存在しない場合だけ送るにはどうしたらよいでしょうか。
0095nobodyさん
2007/06/10(日) 13:43:42ID:hfm7nUZIありがとうございます!!
0096nobodyさん
2007/06/10(日) 13:52:55ID:???できないの?
0097nobodyさん
2007/06/10(日) 14:06:46ID:???http://www.php.net/extra/bindlib_w32.zipの方のnameser.hを使ってる?
0098nobodyさん
2007/06/10(日) 16:03:23ID:???0099nobodyさん
2007/06/10(日) 18:01:26ID:5wNcTWXc上司からASPも覚えろといわれたので、VBかC#か迷っています。Javaができるので、
たぶんC#もできるかもしれませんが、どちらか迷っています。
私は主にPHPプログラマなので、PHPプログラマとしての皆さんの意見を聞きたいです。
ちなみに入社3年目です。
0102nobodyさん
2007/06/10(日) 19:42:09ID:???いまやるならC#でしょー。
0103nobodyさん
2007/06/10(日) 19:48:16ID:???ttp://q.hatena.ne.jp/1181470206
0104nobodyさん
2007/06/10(日) 19:50:11ID:JEj3O9Ea0105nobodyさん
2007/06/10(日) 20:04:14ID:???0106nobodyさん
2007/06/10(日) 20:11:05ID:m/1AqGfG*テスト
**ああああ
を
<ul>
<li>テスト</li>
<li>
<ul>
<li>ああああ</li>
</ul>
</li>
</ul>
このような感じに置き換えたいのですが、
どのようにしているのでしょうか?
0108nobodyさん
2007/06/10(日) 20:20:15ID:m/1AqGfGを
<ul>
<li>テスト</li>
</ul>
に置き換えるのはできるんですが
*テスト
*テスト2
と、2行並ぶとおきかえれなくなります・・・
2行、先頭に「*」がつくのを判断するのにはどうすれば良いのでしょうか?
それとも、一行ずつチェックしているのでしょうか?
0109nobodyさん
2007/06/10(日) 20:21:11ID:???0110109
2007/06/10(日) 20:22:01ID:???0111nobodyさん
2007/06/10(日) 20:29:09ID:???一行ずつやってるぽい
preg_match('/^(\*{0,3})(.*?)\[#([A-Za-z][\w-]+)\](.*?)$/m', $str, $matches)
0112nobodyさん
2007/06/10(日) 20:30:42ID:m/1AqGfGどうしても<ul></ul>をどこで囲むかが問題になってくr・・・
0113nobodyさん
2007/06/10(日) 20:40:44ID:???0114nobodyさん
2007/06/10(日) 20:41:18ID:m/1AqGfGごめ、ちゃんと文字打ててなかっただけ、気にしないで
0116nobodyさん
2007/06/10(日) 21:24:53ID:1dgBe5c3flock($fp, 2);
rewind($fp);
$buf=fread($fp,1000000);
if($buf==''){error("error load log",$dest);}
PHP4からPHP5に変えて急に一番下のifに引っかかるようになったのですが
どれかの関数が仕様が変わったのでしょうか?
PHP4のほうでは正常に動作します。
0117nobodyさん
2007/06/10(日) 21:28:56ID:m/1AqGfGすんません
焦ってかくとたまにああなるんで・・・
0118nobodyさん
2007/06/10(日) 22:01:09ID:tKezqK1jフォームページ→確認ページ→完了ページ
という遷移で
テキストデータはhiddenで次へ回せばいいのですが
type="file"の$_FILES系はどうやって保持するのがいいのでしょうか?
確認ページでmove_uploaded_fileしてしまうおうかと思ったのですが
見ている人がブラウザを閉じてしまうとサーバー内に宙ぶらりんになってしまいますよね?
0122nobodyさん
2007/06/10(日) 23:23:09ID:hfm7nUZIFORMから空文字送って、それをSQLiteに入れて取り出すと
"ネes"などの変な文字が出てきます。
しかし、if($_POST['hoge'] == ""){ $hoge = ""; }
を挟むとこの問題が回避でき、SQLiteに空文字が保管されます。
不可解なのは、もしフォームからの値が""で無いならば
if($_POST['hoge'] == "")には引っかからないはずなのに
この処理をしないで、sqlite_query_stringsのみをして
保存すると変な文字列が出現すると言うことです。
これは何故なんでしょう。
0124nobodyさん
2007/06/10(日) 23:25:50ID:hfm7nUZIsqlite_escape_stringの間違いです、すみません。
SQLiteモジュール版で2系、PHPは4.4.6です。
0126nobodyさん
2007/06/10(日) 23:53:56ID:???専用鯖か自宅鯖じゃないとすぐ止められる。
0127nobodyさん
2007/06/11(月) 00:47:06ID:???自分でテンポラリファイルのシステムを作るとか
確認の時点ではtmpファイルにしておいて、決定したなら移動させる
tmpのまま残ってるのは次の投稿でチェックして消すと
0130nobodyさん
2007/06/11(月) 04:04:52ID:???0131nobodyさん
2007/06/11(月) 04:34:13ID:ZcbFgCnoあと厳密に比較したいなら===つかとけ
0132nobodyさん
2007/06/11(月) 04:43:37ID:???もしかしたらmove_upload_file()する前のtmpファイルが一定期間は残ってるのかもよ
確認して汁
0133nobodyさん
2007/06/11(月) 04:48:29ID:???>移動または名前の変更が行われていない場合、リクエストの終了時に
>そのファイルはテンポラリディレクトリから削除されます。
らしいから一旦は保存しなきゃダメかな
0134nobodyさん
2007/06/11(月) 08:14:21ID:eDI3UWsOnが素数かどうかを判別する関数書いて、借りてる鯖でとりあえず1億まで
forで回してみたらたらちゃんと動いたぜ!
0136nobodyさん
2007/06/11(月) 09:42:40ID:???つまりRSAでよく使う1024ビットの素数の桁は...
0137nobodyさん
2007/06/11(月) 11:40:46ID:eaoXxzlR本番サーバには4.4.7が入っているんですが、
0.0.1でもバージョンが違えば、変えたほうがいいですかね?
あと、ローカルのWindowsをバージョンアップする場合、
C:\WINDOWSにあるiniとかも新しいファイルに変えなければいけないんでしょうか?
よろしくお願いいたします。
0138nobodyさん
2007/06/11(月) 11:49:06ID:???0139nobodyさん
2007/06/11(月) 11:51:54ID:???バージョンは change log で確認して適当に判断しる
0140nobodyさん
2007/06/11(月) 15:01:59ID:RNtXLFSdない場合、皆さんはどんな方法でやりますか?
以下のようにやっているんですが、かなり無駄な処理をしている気がします…
$date = YYYYMMDD;
function date_check(&$date) {
$year = substr($date, 0,4);
$month = substr($date, 4,6);
$day = substr($date, 6);
// 分解後、生成
$new_date = date('Y-m-d', mktime(0,0,0,$month, $day, $year));
list($y,$m,$d) = split('-', $new_date);
if($year == $y && $month == $m && $day ==$d) return TRUE;
}
0141nobodyさん
2007/06/11(月) 15:04:31ID:irDGLGstmysql_query($sql);
これがローカル環境だとうまくいくのにレンサバに移行したらうまくいきません。
エラーをみると、どうやらMARIOCHARACTERSが大文字であることがいけないようでした。
DBには小文字でテーブル名を登録したからです。
ローカルだと同じ条件下でうまくいったのに・・・
と思ってstrtolower($sql)を施すと、
日本語の部分が文字化けします。
sqlはコードに腐るほど書いているのですべて小文字にするには
膨大な作業時間を要します。
「テーブル名を大文字にする」以外の解決策をどなたか教えていただけませんか?
0142141
2007/06/11(月) 15:05:37ID:irDGLGst$sql="INSERT INTO MARIOCHARACTERS VALUES(0,'ピーチ姫');";
です。
0143141
2007/06/11(月) 15:08:56ID:irDGLGstcheckdate($month,$day,$year)
0144nobodyさん
2007/06/11(月) 15:14:43ID:eaoXxzlR>windowsディレクトリにini入れることが間違ってる
え?そうだったっけ?
俺の環境ではうまくいってますけど・・・
0146nobodyさん
2007/06/11(月) 15:30:13ID:RNtXLFSdありがとうございます
できました
0147nobodyさん
2007/06/11(月) 15:47:03ID:???1)[my.cnf]にlower_case_table_names=1 で起動してみる。 ただレンサバだと無理か?
2)mysql_query($sql) のラッパーを作って、そこで テーブル名を小文字に置換する処理を書く
3)dbのダンプファイルをmysqldumpで吐き出して、テーブル名を大文字に書き換える 。なんだかんだ言って一番楽か
4)一括で、ソース内を置換する。sed awkとかわからんなら、GrepReplaceとかのwindows用置換ソフト使ってみる。
のどれかか
0148nobodyさん
2007/06/11(月) 16:15:17ID:22t8rr67JpGraphじゃこんな細密なグラフは無理じゃまいか?
JpGraphってexcelのグラフみたいな大味なのしかできまい?
0149nobodyさん
2007/06/11(月) 16:16:39ID:???0150リガルド
2007/06/11(月) 17:06:50ID:Aub30YN1もしよければ教えてください。
0151nobodyさん
2007/06/11(月) 17:10:36ID:uKFByx/1aaa.htmlみたいにhtmlファイルじゃないとSEOには向かないのでしょうか?
2.PHPスクリプトでhttp://hogehoge.com/hoge.php/aaa.htmlでアクセスしてきたら
hoge.phpでaaa.htmlを出力するのもSEOには向いてますかね?
いま会社のホームページを個人でSEOやるんですが、PHPで構築するべきか悩んでおります。
どなたかご指摘ください。よろしくお願いいたします
0152nobodyさん
2007/06/11(月) 17:16:20ID:???好きなの探せば
ttp://www.google.co.jp/search?num=30&hl=ja&lr=lang_ja&safe=off&rlz=1B3GGGL_jaJP210JP210&pwst=1&q=php+%E6%8E%B2%E7%A4%BA%E6%9D%BF+%E4%BD%9C%E6%88%90&suggest=0&sa=X&oi=cjkrefinements&ct=result&cd=1
0153nobodyさん
2007/06/11(月) 17:17:11ID:HEK1r48rforeach ($a as $b => $c) {
print "$b と $c\n";
}
$abc = <<<ABC
ABC;
print部分を$abcdの中でループさせたいんですが、調べてみても方法がわかりませんでした。
下らない質問で恐縮ですが、どなたか宜しくお願いします・・・
0155nobodyさん
2007/06/11(月) 17:21:03ID:???ワシのJpGraphは百八式まであるぞ
http://www.asial.co.jp/jpgraph/examples.php
0158nobodyさん
2007/06/11(月) 17:28:57ID:???.phpをはじく検索エンジンはない。だからPHPで問題ない。
特定アドレスで何を表示させるかだけ気にすればいい。
リダイレクトだとかは、物によっては減点される。
っていうか、そういうのがわからない人はSEOしようとするだけ逆効果。
0159153
2007/06/11(月) 17:39:56ID:HEK1r48rすみません、$abcdじゃなくて$abcでした。
<?php
$kore = array('1' => 'abc', '2' => 'def', '3' => 'ghi');
foreach ($kore as $sore => $are) {
print "$sore と $are \n";
}
print = <<<ABC
<body>
なんか文字
<div>
ここに表示させたい
</div>
なんか文字
</body>
ABC;
?>
foreachのカッコ外に書くとループされなくて困ってます
日本語不自由で本当にすみません・・
0160リガルド
2007/06/11(月) 17:42:00ID:Aub30YN10161nobodyさん
2007/06/11(月) 17:43:21ID:???$sth = $pdo->query($sql);
とやると$sthにはPDOStatementオブジェクトが返されるのですが
例えば結果セットが0だったとしても同じオブジェクトが返されます。
その場合、foreach内とかで結果があるかどうか判断するしかないのでしょうか?
例を以下に書くと
foreach($pdo->query($sql) as $value){
$result = true;
}
if(!$true) exit;
と、書くのはあまりスマートじゃない気がするのですが…
0162161
2007/06/11(月) 17:43:47ID:Qju5bIjI0163nobodyさん
2007/06/11(月) 17:44:07ID:???print = <<<ABC
<body>
なんか文字
<div>
ABC;
foreach ($kore as $sore => $are) {
print "$sore と $are \n";
}
print = <<<ABC
</div>
なんか文字
</body>
ABC;
0165nobodyさん
2007/06/11(月) 17:47:43ID:Qju5bIjIそうしようと思ったのですが、var_dumpで見ても全く同じなので困っているのです。
0166nobodyさん
2007/06/11(月) 17:49:24ID:???下記の例1745をどうぞ。
http://jp.php.net/manual/ja/function.PDOStatement-rowCount.php
0167nobodyさん
2007/06/11(月) 17:51:03ID:Qju5bIjIなるほど、大変参考になりました。
ありがとうございます。
0168nobodyさん
2007/06/11(月) 18:18:51ID:???<?php
$kore = array('1' => 'abc', '2' => 'def', '3' => 'ghi');
function hoge($kore){
foreach ($kore as $sore => $are) {
print "$sore と $are \n";
}
}
?>
<body>
なんか文字
<div>
<?php
hoge($kore);
?>
ここに表示させたい
</div>
なんか文字
</body>
0169nobodyさん
2007/06/11(月) 18:27:32ID:NlNPG8R0if($fp >= 1) {$on1="1";}else {$of1="1";}
include("ks2\sm.php");
if($fp >= 1) {$on2="2";}else {$of2="2";}
でループを作るため変数で数字を変えようとしたのですが
include("ks○\sm.php");
if($fp >= 1) {$on●="○";}else {$of●="○";}
○の部分は変数で指定する事が出来たのですが●の部分を
変数で指定する事ができません、つまり
$a=1; としたときに
include("ks$a\sm.php");
if($fp >= 1) {$on$a(ここと)="$a";}else {$of$a(ここが指定できない)="$a";}
$on1と$of1の中身に値を入れることができない
どうすればうまく行くのでしょうか・・・
こんな質問で恐縮ですが、どなたか宜しくお願いします
0170nobodyさん
2007/06/11(月) 18:30:25ID:???2.可変変数を使う
オススメは1
■ このスレッドは過去ログ倉庫に格納されています