【PHP】くだらねぇ質問はここに書き込みやがれpart7
■ このスレッドは過去ログ倉庫に格納されています
0001966
2005/07/12(火) 01:47:09ID:qOoYFCn7ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0102nobodyさん
2005/07/14(木) 18:33:18ID:???んで、フォームから打ち込んだ値をたらい回しにしてたら、いつの間にか「"」の前にエスケープがくっついてた。
なんでだ?
0106nobodyさん
2005/07/14(木) 21:00:05ID:???処理出来るのでしょうか?
例えば、BCCとして"abc@**.jp,[email protected]・・・"とメールアドレス
続けて送信するとします。
サーバの内容にもよるかと思いますが、ご存じな範囲で
結構ですので、教えていただければと思います。
0108nobodyさん
2005/07/14(木) 22:43:44ID:???PHPに移植する場合、どうすればいいか教えてください。
$objWsh = new COM("WScript.Network");
$objWsh->UserName;
$objWsh->UserDomain;
とWSHで取得しようとしてもサーバ側の情報になっちゃって上手く再現できなかった。
$objWmi = new COM("WinMgmts://{" . getenv("REMOTE_ADDR") . "}/root/cimv2");
WMIサービスで取得しようと思ったが、セキュリティ上無理だった。
0112nobodyさん
2005/07/14(木) 23:33:09ID:???select文で日付をwhere条件に含めるに当たって、
一桁の数値には頭に0をつけてからSQLを発行しないといけないのでしょうか?
日付がMySQLでは2005-07-14となっているレコードを
select * from tbl_hoge where date='2005-7-14'
でヒットするのでしょうか?
0113nobodyさん
2005/07/14(木) 23:44:23ID:???0114nobodyさん
2005/07/15(金) 00:27:25ID:???マヌアル嫁
http://dev.mysql.com/doc/mysql/ja/datetime.html
自分で試してみれ。
0116nobodyさん
2005/07/15(金) 01:05:27ID:PzceRiM6function hoge ($a = date("Y-m-d")) {
echo $a;
}
と試したところエラーが出ます。
expecting ")"というエラーなのですが、括弧が足らないのでしょうか?
0117nobodyさん
2005/07/15(金) 01:17:33ID:???function hoge ($a = NULL){
if($a==NULL) $a = date("Y-m-d");
echo $a;
}
とかで
0118116
2005/07/15(金) 01:22:25ID:???どうもありがとうございました。
0119nobodyさん
2005/07/15(金) 01:39:38ID:???0120nobodyさん
2005/07/15(金) 03:17:59ID:???0121nobodyさん
2005/07/15(金) 06:54:27ID:???しているのですが、以前使っていたレン鯖では問題なかったのに、
違う鯖にしたらLocationで飛べなくなってしまいました。
鯖(Apache?)の設定で、Locationが使えないことってあるのでしょうか??
0125121
2005/07/15(金) 07:14:29ID:???してみましたが、全部ダメでした。
echo "テスト";
header ("Location: admin.php");
exit;
で、「テスト」が出力された画面のままで止まり、その後のジャンプがありません。
つまり、Location先が見つからないのではなく、
あくまでもLocation命令そのものが実行されていない感じです。
0127nobodyさん
2005/07/15(金) 07:15:57ID:???そんなことロケーションヘッダが来てるかどうか見ればわかるじゃん
つか相対URLはRFC的にアウトなんじゃないの? 相手が携帯だと特に
0128nobodyさん
2005/07/15(金) 07:20:38ID:???∧ _ - ― = ̄  ̄`:, .∴ ' ・,‘∴ , . ( ) ←>>125
, -'' ̄ __――=', ・,‘ r⌒> _/ /
/ -―  ̄ ̄  ̄"'" . ’ | y'⌒ ⌒i
/ ノ | / ノ |
/ , イ ) , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
0129nobodyさん
2005/07/15(金) 07:23:43ID:???以前の鯖と今の鯖で、スクリプトのソースは全く同じなんでしょ?
それで使えなくなったってことは、Apache側の問題なんじゃないの?
漏れはサーバの知識無いから詳しくはわからないけど。
0130121
2005/07/15(金) 07:30:06ID:???あ・・・、殴られて気が付きましたが、
headerの前にechoで出力しちゃマズイですよね・・・ガクガクブルブル。
echo消したら直りました。ああ、基本的ミスでした。
でも待てよ…、逆に言えば、なぜ前の鯖ではheaderの前にechoがあったのに
正常に動いてたんだろう?? いま再度、前の鯖で試してみましたが、
やはりechoありでも問題なく動きます。なぜ???
・・・・と思ってphpinfoやってみたら、output_bufferingがオンになってますた・・・
ご迷惑かけました逝ってきます欝だ氏のう
0131nobodyさん
2005/07/15(金) 07:36:54ID:???The field value consists of a single absolute URI.
Location = "Location" ":" absoluteURI
0132nobodyさん
2005/07/15(金) 07:44:29ID:???0134nobodyさん
2005/07/15(金) 07:51:45ID:???0136nobodyさん
2005/07/15(金) 08:03:08ID:???0137nobodyさん
2005/07/15(金) 08:05:10ID:???玄人ぶって偉そうに忠告をしたつもりの>>132が、
「専鯖」という強力な返り討ちワードを食らった挙句に
苦し紛れに「無駄」と言い捨て逃亡。
これを「諸行無常」と呼ぶ。
0138nobodyさん
2005/07/15(金) 08:09:06ID:???0140nobodyさん
2005/07/15(金) 08:14:35ID:???専鯖ってのが真実ならテスト鯖じゃないわけで
0141nobodyさん
2005/07/15(金) 08:17:23ID:???0142nobodyさん
2005/07/15(金) 08:17:39ID:???ローカルでデバッグするのに比べて無駄があるとかそんな話じゃないんじゃないのw>>134
0143nobodyさん
2005/07/15(金) 08:22:39ID:???別に逃亡してないんですけど。
手元でやってたら0.1秒で気づくミスだろハゲ男。
ていうかメル欄全角かよ。俺ハズカシス。
0147nobodyさん
2005/07/15(金) 11:21:44ID:???それを違う名前.txtにリネームして同じディレクトリに作成するって
可能でしょうか??
0149nobodyさん
2005/07/15(金) 12:12:18ID:???ありがとうございます
どこか参考になるページとかないでしょうか?
ぐぐってはみたんですがわからなくて・・・
0150nobodyさん
2005/07/15(金) 12:19:59ID:???>それを違う名前.txtにリネームして
>同じディレクトリに作成するって
一気にやろうとしないで、マニュアル見ながら上記を一行ずつ解決していけばいいよ。
0151nobodyさん
2005/07/15(金) 12:20:37ID:???やりたい事がいまいち分かんないけど
opendir、rename、stat辺りを使えばいけると思うよ
とりあえずマニュアルとにらめっこすることをお勧めします
http://www.php.net/manual/ja/function.opendir.php
http://www.php.net/manual/ja/function.rename.php
http://www.php.net/manual/ja/function.stat.php
0152nobodyさん
2005/07/15(金) 13:04:05ID:???どうもありがとうございます
0154nobodyさん
2005/07/15(金) 13:38:55ID:???CSVを読み込んで、テーブルで出力しようと思ってます。
CSV内容
"1","十","aaa"
"2","あ","bbb"
"3","表","ccc"
で、読み込んでるとこのソースが
$fp = fopen("hoge.txt","r");
while($row = fgetcsv($fp,1024))
{
echo "<tr>\n";
foreach($row as $column)
{
echo "<td>".$column."</td>\n";
}
echo "</tr>\n";
}
fclose($fp);
です。
EUCならこのままで問題ないのですが、
出力結果をShift_JISで出力したいんです。
ですが、"表"とか"十"が入ってるデータがあると
そこがうまく取り込めないらしくテーブルが壊れます。
うまいこと取り込む方法ってありますか?
0155nobodyさん
2005/07/15(金) 14:17:35ID:???SJISで出力したいなら、出力前にEUC-JP→SJISの変換を掛ければ良いだけだが。
ファイルの入出力も、ブラウザへも全てSJISでやりたいなら、それぞれの
入出力に変換を掛けるか、内部コードにSJISが利用できるようにコンパイルされた
PHPを使って、スクリプトのコードも全部SJISに統一すれば簡単。
0156nobodyさん
2005/07/15(金) 14:18:03ID:???EUCで全部やって、出力のみをsjisにするとか。
0x5cが下位バイトに来る文字は決まってるから、それに注意してデータを作成するとか(\をつける)。
0157154
2005/07/15(金) 15:10:23ID:???データは外部から抽出されたものをそのまま使いますし
データに\を付けていくのは大変なのでNGです。
>>155
既存のシステムがなかなか停止できないので、
PHPのコンパイルは避けたいです。
mb_convert_encoding関数を使えばできそうなので
やってみようと思います。ありがとうございました。
0158nobodyさん
2005/07/15(金) 16:54:44ID:Fg/gKXLa4行程度のソースなんですが、ここに書いたらまずいですかね?
0159nobodyさん
2005/07/15(金) 17:00:33ID:???0160158
2005/07/15(金) 17:09:27ID:???絵文字が2個以上並んでいると最初の一個しか変換されません。
対処ほうありますでしょうか?
$str = "\x1b\$G\x21\x0fabc"; // 絵文字入り文字列
$regex = '/\x1b\$([E-G])([\x21-\x7a])+\x0f/e'; // 絵文字にマッチする正規表現
echo preg_replace($regex, 'sprintf("<img src=\"%02X%02X.gif\">",
ord("$1"),ord("$2"))', $str); // 絵文字をイメージタグに変換して出力
0161軟式PHP
2005/07/15(金) 17:23:29ID:???$strWrk = 絵文字が入った文章;
do{
$tmp = $strWrk;
$strWrk = preg_replace("/(\x1b[\x24][\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)([\xF])/im","$1$2$4$1$3$4",$strWrk);
}while( $strWrk != $tmp );
俺はとりあえずこんな感じにしてるけど。
0162nobodyさん
2005/07/15(金) 18:51:21ID:???$filename=basename($_GET['filepath']);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile($filepath);
このようなものを作ったのですが、
filepathにrawurldecodeをかければ日本語ファイル名でもダウンロードできるのですが、
ダウンロード時のファイル名が文字化けしてしまいます。
これを解消するにはどのようにすればいいのでしょうか?
これを機会にheader関数もよく勉強したいのでお願いします。
0163158
2005/07/15(金) 21:01:03ID:???理解しようとしてるのですが、なかなかできません。。
$strWrkにvodafone絵文字が入った文章を入れて>>161を通すと絵文字の部分が何かに置き換えられてる
という使い方でよろしいのでしょうか?試してみたのですが echo $strWrk としたところ何も置き換えられないででてくるのですが
使い方間違っていますでしょうか?せっかく書いていただいたので試したいのでよろしくお願いします。
0164軟式PHP
2005/07/15(金) 21:14:31ID:???161のコードを通すと、連結した絵文字を分離するから、
それに対して、>>160のコードを通したらイけると思うけど。
あと
>>\x1b\$G\x21\x0fabc
は1個の絵文字だから意味ないよ。
0165nobodyさん
2005/07/15(金) 21:39:08ID:???どうしたらよい??
0166nobodyさん
2005/07/15(金) 21:40:50ID:???0167nobodyさん
2005/07/15(金) 21:45:48ID:???正規表現にかけるしかないのでしょうか?
0168nobodyさん
2005/07/15(金) 21:49:44ID:???PHPだと最後のチェックボックスの値しか取らないみたいなんだけど…
ASPなら自動でカンマ区切り、
Perlなら区切るモジュールで、
PHPは?
0169nobodyさん
2005/07/15(金) 21:55:15ID:???<input type="checkbox" name="test" value="test1">
<input type="checkbox" name="test" value="test2">
<input type="checkbox" name="test" value="test3">
○
<input type="checkbox" name="test[]" value="test1">
<input type="checkbox" name="test[]" value="test2">
<input type="checkbox" name="test[]" value="test3">
0171nobodyさん
2005/07/15(金) 22:04:07ID:???ttp://www.stackasterisk.jp/tech/php/php02_06.jsp
このあたりを見てください
0172nobodyさん
2005/07/16(土) 02:36:41ID:???0173nobodyさん
2005/07/16(土) 02:53:22ID:???0174nobodyさん
2005/07/16(土) 06:55:00ID:6rljT00vyumでインストールはできないですよね?
makeしてPHPもコンパイルして構築しないとだめですか?
0176158
2005/07/16(土) 11:16:40ID:???すぐ結果報告できなくてすみません。
V603SHから絵文字を入力して試してみました。
$strWrk = $_POST['body']; //$_POST['body'] = (男の子のマーク)(女の子のマーク)
do{
$tmp = $strWrk;
$strWrk = preg_replace("/(\x1b[\x24][\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)([\xF])/im","$1$2$4$1$3$4",$strWrk);
}while( $strWrk != $tmp );
$str = $strWrk;// 絵文字入り文字列
$regex = '/\x1b\$([E-G])([\x21-\x7a])+\x0f/e'; // 絵文字にマッチする正規表現
$str = preg_replace($regex, 'sprintf("<img src=\'%02X%02X.gif\'>",ord("$1"),ord("$2"))', $str); // 絵文字をイメージタグに変換して出力
echo $str;
結果↓
<img src='4721.gif'><img src='475C.gif'><img src='4722.gif'>
男の子と女の子の絵文字を入れると間に違うのが入ってしまうのですが、このほかには何個ならべても
おかしな点はありませんでした。完全ではありませんが私としては満足できるレベルになりました。
ありがとうございました。
どこ調べてもDOCOMOの絵文字についてはたくさん書いてあるのですが、VODAFONEの絵文字については
ネット上でどのように書かれてるかなどみつけられませんでした。絵文字について書いてる本がもう一冊あったので買ってみます。
0177nobodyさん
2005/07/16(土) 11:19:08ID:???<html>
<body>
<?php ほにゃらら ほにゃらら ?>
</body>
</html>
こんな感じでhtmlのなかにスクリプト書きまくってるからかな。
DBの接続とかしてるし。
ob_startとか使ったほうがいいのでしょうか。
0178nobodyさん
2005/07/16(土) 12:29:36ID:???ttp://acapulco.dyndns.org/mod_uploader/#performance
0179nobodyさん
2005/07/16(土) 16:26:26ID:6tLNOCU80180nobodyさん
2005/07/16(土) 16:30:44ID:???0181nobodyさん
2005/07/16(土) 18:18:31ID:mgfMVhVU関数かサブルーチンにしようとおもってるんだけど
どやってするの?
<本プログラム>
&GetDate;
<呼び出しプログラム>
sub GetDate{
$date = date('Y/m/d H:i:s', time());
}
とやってみたら、エラーが出たよ。
0182nobodyさん
2005/07/16(土) 18:18:36ID:wfLNoi6t0183nobodyさん
2005/07/16(土) 18:22:01ID:???どうやったら切れませんか?
0184nobodyさん
2005/07/16(土) 18:27:08ID:???SQL文を発行した際に、例えば
$sql = "select * from tbl_hoge";
$rst = mysql_query($sql);
if(!$rst) print "だめぽ";
といったカンジでMySQLのエラーが出た際にエラーメッセージを表示させていました。
ところがPHPのマニュアルのmysql_queryの部分を見ると
$rst = mysql_query($sql) or die("だめぽ");
というような例文を挙げています。
これらは同じものなのでしょうか?
また、クエリーの結果falseが返ってくるケースとしては
クエリーが文法的に間違っているので撥ねられた場合のみ考えておけばいいのでしょうか?
例えばクエリーに問題がなくともサーバーが不調でMySQLがうまく機能していないとかにも
falseが返ってくることはありえるのでしょうか?
0187nobodyさん
2005/07/16(土) 19:02:16ID:???orはif文などに出てくるorと同じ
左がfalseなら右を実行するので、
mysql_queryがfalseならdieを実行する。
0188181
2005/07/16(土) 19:24:56ID:mgfMVhVUPerlでしか出来ないってこと?
PHPでやりたいのです…。
Callしなくても、includeするだけで変数使えるとか!?
でも、呼び出しプログラムの方のエラーが出るの。
0189nobodyさん
2005/07/16(土) 19:31:11ID:???$date = _GetDate();
function _GetDate() { return date('Y/m/d H:i:s'); }
まず調べれ
0190nobodyさん
2005/07/16(土) 19:39:24ID:???お前が書いてるのはほぼPerlだってこと。
↓くらい読んでから質問しようね。
ttp://www.php.net/manual/ja/language.functions.php
0191181
2005/07/16(土) 20:11:53ID:???$date = GetDate();
<呼び出しプログラム>
function GetDate(){
$date = date('Y/m/d H:i:s', time());
return $date;
}
としてみたけど、やっぱりえらーが出る。
Fatal error: Cannot redeclare getdate() in ......
呼び出しプログラムの2行目ってなってるけど
2行目は呼び出しの所。
何故〜
0192nobodyさん
2005/07/16(土) 20:24:41ID:???エラーメッセージを嫁。頭弱いのか?
ttp://jp.php.net/manual/ja/function.getdate.php を読んで
>>189氏が何故_を先頭に付けたか考えろ。
0193181
2005/07/16(土) 20:30:19ID:???getdateて組込関数が既にあるからか…
ごめんなさい、できました。
ついでに、すごく馬鹿な質問なのですが、
呼び出しプログラムの中で書いてある1個の関数の中に、
本プログラムで使いたい変数がたくさんある場合は
一つ一つreturnしないと、やっぱり無理?
0194nobodyさん
2005/07/16(土) 20:35:41ID:???0195nobodyさん
2005/07/16(土) 20:52:26ID:???関数から複数の値を返したい、ってことを
言っているのか?
0196nobodyさん
2005/07/16(土) 21:07:29ID:???>or die("だめぽ");
このパターンの例文に関してなんだけど・・・
<html>から<body>と
</body></html>を、自分で作った関数で吐かせてる場合は
dieしちゃうと、そのエラーメッセージより後ろは表示してくれなくなるんで困ってます。この辺は皆さんはどんな風にしょりしてますか?
エラーメッセージの後ろに</body></html>をくっつけておくしかない?
0197184
2005/07/16(土) 21:16:59ID:???なるほど。
エラー表示が1行で済みそうです。
どうもありがとうございました。
>>196
自分はエラー表示用関数を作ってます。
コンテンツを適当なヘッダとフッダではさむ通常の表示用関数に、
最後にexit()をつけたものをエラー表示用関数として使ってます。
0198181
2005/07/16(土) 21:17:45ID:???$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);
を外部ファイルに記述し、色んな処理で手軽に$dateや$date_yyyyを使いたいのです。
ただのincludeしただけでも、
print $date;
print $date_yyyy;
のように使えるとは思うのですが、そうすると、外部ファイルの処理を全て動かすことになるので
よくないかな…と。
すみません、何言ってるかわからなくて…。
あと、マニュアルも一応読んでるんですが、よくわからなくて…。
ごめんなさい(´・ω・`)
0199nobodyさん
2005/07/16(土) 21:56:37ID:???外部ファイルの処理を全て。。。という部分が判るようで
判らないんだけど、その部分だけを外部ファイル、他の部分は
別の外部ファイルでいいのでは?
--- date.inc.php ---
<?php
$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);
?>
--- etc.inc.php ---
<?php
//その他の処理
?>
--- 本プログラム ---
<?php
require_once('date.inc.php');
require_once('etc.inc.php');
echo $date;
echo $date_yyyy;
?>
次レスに続けるね。
0200nobodyさん
2005/07/16(土) 22:00:19ID:???元発言だと関数化したい、という話みたいだけど、関数や引数、戻り値が
あまり判っていないようなので、参考までに。
なるべく元のままで関数化しているので、あまりキレイなコードではないけど。
--- date.inc.php ---
<?php
function _GetDate() {
return date('YmdHis', time());
}
function _GetDate_yyyy($date) {
return mb_strcut($date, 0, 4);
}
以下、同様
?>
--- 本プログラム ---
<?php
require_once('date.inc.php');
$date = _GetDate();
$date_yyyy = _GetDate_yyyy($date);
echo $date;
echo $date_yyyy;
?>
0201196
2005/07/16(土) 22:36:12ID:???なるほど。
いいのか悪いのか解らんけど、基本的にスクリプトは最初から最後まで<?phpと?>で囲んでしまって、getメソッドで飛ばしたモード判別変数でcaseで切り替え。
たいていはこんな作りなんで、どうしたものかと、思ってました。
エラーメッセージを引数にした関数を自分で作ってそこで実行すれば便利ですね。
■ このスレッドは過去ログ倉庫に格納されています