【PHP】下らねぇ質問はここに書き込みやがれ 64
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/02/09(土) 14:51:11ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0011nobodyさん
2008/02/10(日) 00:13:48ID:???IDIDって煩い奴は煽りがしにくくなるからとしか見えないのだが
>>10
トリップ嫌われるっつーのは変なコテが沸く所にあるんだろ
一時的なトリップは識別として使えるんだから問題ないと思うが?
それに変なコテ沸けばNG設定で終わりだし
0012nobodyさん
2008/02/10(日) 00:33:14ID:???別にトリップ使って聞くのはなんら問題ない。
それより質問者がちゃんとわかるほうが大事。
0013nobodyさん
2008/02/10(日) 01:04:04ID:???こういう奴には何を言っても無駄だな…。
0014nobodyさん
2008/02/10(日) 01:11:13ID:???もうちょっと何でトリップがダメなのか言ってくれ
0015nobodyさん
2008/02/10(日) 01:29:37ID:???もう少し煽り耐性をつけてください
0016nobodyさん
2008/02/10(日) 03:29:25ID:V6SpMkY1コードはUTF-8です
0017nobodyさん
2008/02/10(日) 04:01:26ID:???ttp://jp.php.net/manual/ja/function.mb-convert-kana.php
0018nobodyさん
2008/02/10(日) 04:03:23ID:???素直に mb_ereg 使った方がいいかも
0019nobodyさん
2008/02/10(日) 04:04:03ID:???正規表現でやるより速そう
ありがとうございました
0021nobodyさん
2008/02/10(日) 04:22:55ID:???0022nobodyさん
2008/02/10(日) 04:43:35ID:???でググッて自分で検証しろ
これぐらいやってから質問したほうが自分のためだよ
0023nobodyさん
2008/02/10(日) 12:40:04ID:???(\xe3(\x82|\x83)[\x80-\xbf])*
0024nobodyさん
2008/02/10(日) 19:37:02ID:XCnCYEX+OS:Red Hat系,SMTPサーバ:Postfix
PHPのソース
<?php
require_once("Mail.php");
$params = array(
"host" => "localhost",
"port" => 25,
"auth" => false,
);
$mailObject = Mail::factory("smtp", $params);
$recipients = "orenchi@mail.jp";
$headers = array(
"To" => "to",
"From" => "from",
"Subject" => "Test Mail"
);
$body = "This is test mail";
$mailObject -> send($recipients, $headers, $body);
?>
require自体はうまくいきました。25番ポートが開放されていることも確認しました。
恐らく$paramsのhost名が間違っているかPostfixの設定がダメなのか、のどちらかだと思われます。
PHPファイルとpostfixが同一サーバ内だからhost=localhostでいけると思ったのですが、main.cfのhostnameパラメで指定したFQDN
に合わせる必要があるのでしょうか。それとも他の設定ミス・・・?
0025nobodyさん
2008/02/10(日) 20:04:57ID:???前スレ埋めようぜ
0026nobodyさん
2008/02/10(日) 23:55:39ID:???>PEAR Mailがうまく動作せず
っておい
>>1の質問する時の注意の3番目を1000回復唱してから前スレに書き込め
0027nobodyさん
2008/02/11(月) 00:14:33ID:???0028nobodyさん
2008/02/11(月) 03:20:16ID:???プロとしてやるならソレはおかしい。
動的な画像もファイルに保存するというのは、少し考えればまずいってことが分かるはずだが。
0029nobodyさん
2008/02/11(月) 04:10:06ID:smM9I7ZN症状としてはphpinfoでmbstring関連のワードが出てきませんし、mb_language() でもFatal errorになってしまいます。
php.iniは;外したりなど行なってますし、以前使っていたphp5のphp.iniバックアップも試してみました。
また、以前は全く問題無く使えていました。ただ、php5だったのは確かですが、バージョンまでは分かりません。
使用OS:win98、Apeche2です。
WINDOWSフォルダ内のphp.iniは色んなサイトのを10種類くらい試してみました。現在は下記のようになっています。
extension=php_mbstring.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8 などなど。
mysqlもinfoにないです。extension=php_mysql.dllコメントアウト済み。
他にチェックすべき点はありますでしょうか?
0030nobodyさん
2008/02/11(月) 04:13:00ID:???003129
2008/02/11(月) 04:22:13ID:???ありがとうございます。
バックアップ用php.iniなど検索して、windowsフォルダ以外全て消してみましたがダメでした。
0032nobodyさん
2008/02/11(月) 05:35:45ID:???1. 他に指定してる extension との絡み
2. php -i | grep Load での php.ini の読まれる所
3. extension_dir
とか、色々考えられるな。その程度の環境晒しじゃ何とも言いようがない。
0033nobodyさん
2008/02/11(月) 11:06:19ID:???パスを切るか、dllあるフォルダに移動するだけで正しく動いたらこれだろうな。
0034nobodyさん
2008/02/11(月) 11:14:05ID:???Configuration File (php.ini) Path を確認してみては?
あと apache経由と直に実行するのでは、使用される php.iniが違ったりするから注意。
具体的な情報もってるわけじゃないけど OSがwin98ってのは気になるなぁ。
0035nobodyさん
2008/02/11(月) 12:19:01ID:???これはサンプルが間違っているんでしょうか。
0036nobodyさん
2008/02/11(月) 12:19:47ID:???http://jonasjohn.de/snippets/php/rand-str.htm
0037nobodyさん
2008/02/11(月) 12:19:55ID:???$abc = $_POST['abc'];
$edf = $_POST['edf'];
$stock = array ($abc,$edf);
$fp = fopen('data.csv','a');
fputcsv($fp, $stock);
fclose($fp);
フォームから投稿された変数abcとedfを配列stockに格納し、
csvファイルに書き出したいのですが、
変数には日本語が入るためその中身を" "で括って保存したい場合、
もっともシンプルに行うにはどのような処理を追加したらいいでしょうか?
正規表現などでそれぞれの変数の文字列を置換しても出来ると思うのですが、
よろしくお願いします。
0038nobodyさん
2008/02/11(月) 12:33:18ID:mbEbK9iH0039nobodyさん
2008/02/11(月) 12:56:56ID:???文字コードに対応するの出すんなら122のが正しいだろうな。
それに記号だったら再計算とかかなり無駄なことしてる>>36のは。
0-9A-Za-zだけのテーブル作ってそこから拾えばいいのに。
0040nobodyさん
2008/02/11(月) 13:22:11ID:???こういうやり方はダメなの?
$fp = fopen('data.csv','a');
$line = '"' . $abc . '","' . $def . '"' . "\n";
fwrite($fp,$line);
fclose($fp);
004129
2008/02/11(月) 14:31:04ID:???ありがとうございます。今の状態は
http.conf に PHPIniDir "C:/php"で、php.iniをc:\phpに移動(他は全部削除)
Configuration File (php.ini) Path no value←これは不味いですか?Loaded Configuration File C:\php\php.ini
C:\>php -i | grep Load
File STDIN:
Loaded Configuration File => C:\php\php.ini
php.iniは
default_charset = UTF-8
extension_dir = "c:/php/ext" (php/ext内に下記dllファイル確認しました)
extension=php_mbstring.dll
extension=php_mysql.dll
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
0042nobodyさん
2008/02/11(月) 14:48:37ID:???自分は、5.0 -> 5.2でそれをやったときに動作しなかった記憶がある。(原因は知らない)
004337
2008/02/11(月) 14:51:02ID:mbEbK9iHありがとうございます。
fputcsvを用いない場合はそれで希望通りの表示がされるようですね。
ただ配列の1変数として変換を行いたい場合の処理も教えて頂けると助かります。
その後色々試してみたのですが、
$abc = '"'.$_POST['abc'].'"'; //abcに「あ」を送信した場合
この時、$abcに"""あ"""が入ってしまうのですがこれは何故でしょうか。
'"'.で文字列を付加したことによって外側の""がつくようなのですが。
実際に文字列を付加しなくても、外側を""で括れる方法などありましたらお願いします。
0045nobodyさん
2008/02/11(月) 15:05:25ID:???php.ini の記述はほんとに *それだけ* か?
php_mbstring.dll の前に違う extension の指定とかないのか?
004729
2008/02/11(月) 15:27:44ID:???今は新しい方のiniファイルを使ってます。
>>45
extension=ほにゃららってところですよね?
extension=php_mbstring.dll
extension=php_mysql.dll
以外は全て「;」がついてます。
ところで、今mbstring使えるようになりました。
状況としては最初からやりなおそうと思って、Windows内php5ts.dllを削除しただけです。
phpのインストールサイトに、「php5ts.dll」をwindowsにコピペとありますが、まだしていません。でもphp infoは表示されます。
これって大丈夫なのでしょうか?いちおう今からコピペ&再起動しますが…
また、Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
となっているのですが、gdがあるのは普通ですか?あと、本当にmbstringが使える場合、上記にmbstringって出てきませんか?
昨日ググってたら、Configure Commandには出るのに、mbstring項目がないって書いてあるサイトがあったような気がします。
004829
2008/02/11(月) 15:45:56ID:???php自体はビクつきながら、このまま使ってみます。皆様、色々とありがとうございました。
004937
2008/02/11(月) 17:17:08ID:mbEbK9iH色々試したみたところ、変数内に"か半角スペースのある場合のみ自動的に"で括るようですね。
取り合えず全ての変数に$abc." "と半角スペースを付加して対応することにします。
ありがとうございました。
0051nobodyさん
2008/02/11(月) 17:35:23ID:???特定のアプリからしか使わないなら、アプリのフォルダでいい。
0052nobodyさん
2008/02/11(月) 17:55:09ID:???0054nobodyさん
2008/02/11(月) 19:15:16ID:???動作させるにはどうすればいいのでしょうか。
OS:windows xp、PHPのバージョン:5.2.5
目的:ファイルのアップロードの進捗を表示できるようにしたい
extensionディレクトリにphp_apc.dllが既にあったのでラッキー、
後はphp.iniだけと思ってextension=php_apc.dllのコメントアウトをはずして
apc.rfc1867 = Onを書き込み、apacheを再起動してサンプルを動かすと
なぜかエラーでapacheが終了。サンプル自体は問題なさそうなので
APCがうまくインストールできてないのが原因だと思うのですが・・・
0055nobodyさん
2008/02/11(月) 20:21:17ID:???0056nobodyさん
2008/02/11(月) 20:39:51ID:???使うのだけ入れることはあるけど、PHPのはえらい数あるからバージョン管理ややこしくなるし
extに入ったままにしといたほうが更新したときに勝手に最新バージョンになるんじゃないかい。
0057nobodyさん
2008/02/11(月) 22:12:41ID:bpntg1wU0058nobodyさん
2008/02/11(月) 22:47:39ID:bpntg1wU$_GET['Keyword']
て、入力されたキーワードは
$Keywordで表示できるんじゃないんですか?
$Keyword= $_GET['Keyword'];
とすれば表示されたからいいのですが
5時間悩みました
php5.2です
0060nobodyさん
2008/02/11(月) 23:43:18ID:???0061nobodyさん
2008/02/12(火) 00:07:29ID:wvmjAnmewhile(!flock($lockfp, LOCK_EX)){
usleep(250000);
}
$result = mysql_query("SELECT COUNT(no) as count FROM テーブル名");
if (!$result) {
die(mysql_error());
}
$row = mysql_fetch_assoc($result);
$i = $row['count'];
$i++;
$sql = "INSERT INTO $tselect (no, 内容) VALUES ('$i', '内容')";
$result_flag = mysql_query($sql);
if (!$result_flag) {
die(mysql_error());
}
flock($lockfp, LOCK_UN);
fclose($lockfp);
これで$iが重複することは無いのか教えてください
0062nobodyさん
2008/02/12(火) 00:13:38ID:???0063nobodyさん
2008/02/12(火) 00:18:43ID:wvmjAnme0064nobodyさん
2008/02/12(火) 00:27:13ID:???insertする$iが存在しないか確認しないと重複するかどうかわかるわけないし
ダメっていうのはすべてが問題外ってことやろ
質問する前にオナニーしておちつけ
0065nobodyさん
2008/02/12(火) 00:30:37ID:wvmjAnme説明不足だった
iは1から連番でつけていてcountで取得した番号=最終行という形になってる
データの削除はしたくないからテーブルにフラグをつけてデータが有効か無効か判断してるから番号の欠落とかはなしと考えてる
0066nobodyさん
2008/02/12(火) 00:32:14ID:???0068nobodyさん
2008/02/12(火) 00:41:37ID:wvmjAnmeテーブル名ということでお願いします
0069nobodyさん
2008/02/12(火) 00:44:54ID:???0070nobodyさん
2008/02/12(火) 01:02:47ID:???0071nobodyさん
2008/02/12(火) 01:05:47ID:???0072nobodyさん
2008/02/12(火) 01:07:30ID:wvmjAnmeデータの行数取得
↓
データの追加
という形でやってるのだが
同時にアクセスがあった場合取得と追加のタイミングで
iが10とすると
1が10という数値を取得して11を追加する
そのときに2も10という数字を読んで同じく11を追加することになるんじゃないのか?
そこでファイルで排他ロックをして終わったらロック解除で自分がロックできない場合は処理を中断というのを想像してたんだが
0073nobodyさん
2008/02/12(火) 01:18:43ID:???0074nobodyさん
2008/02/12(火) 01:19:51ID:???$tselectテーブルのnoにたいしてな
0075nobodyさん
2008/02/12(火) 01:21:35ID:???0076nobodyさん
2008/02/12(火) 01:24:11ID:???0077nobodyさん
2008/02/12(火) 01:25:09ID:???0078nobodyさん
2008/02/12(火) 01:26:25ID:???PHP側でINSERTでリトライさせるには普通に行数取得からINSERTをwhileループでいいのかな?
0079nobodyさん
2008/02/12(火) 01:28:44ID:???0080nobodyさん
2008/02/12(火) 01:29:00ID:???0081nobodyさん
2008/02/12(火) 01:30:06ID:???0082nobodyさん
2008/02/12(火) 01:31:59ID:wvmjAnmeもう一度調べなおしてから書き直してみる
いろいろアドバイスどうもです
0084nobodyさん
2008/02/12(火) 02:09:52ID:fBU5wm/gfile_exists()を使ってるんですけど、絶対に存在してるファイルを対象に
してもfalseが返ってきます
マニュアル見たらセーフモードが関連してるというのでそこも確認したら
OFFになっていて、問題なさそうです
何が原因でしょうか?
0086nobodyさん
2008/02/12(火) 02:59:11ID:???それ出したほうが下手に説明するより早い。
0087nobodyさん
2008/02/12(火) 03:21:03ID:???絶対に間違っていないなら、PHPが動くはず
つまりなにかおかしいか間違っているんだよ
試しにソースと同じところにあるファイルとかで試してみたら?
あとはOSとか環境書くとさらによし。
008884
2008/02/12(火) 03:22:15ID:fBU5wm/g$theFile="../../../sample.jpg";
if(file_exists($theFile)){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
これだけです。 指定したファイルが存在してるのは確認済みです。
0089nobodyさん
2008/02/12(火) 03:24:06ID:???ソースと同じ場所にsample.jpgを置いて。
$theFile="sample.jpg";
で試して味噌
0090nobodyさん
2008/02/12(火) 04:29:19ID:???echo mb_strcut("あいう",0,2,"UTF-8");
→何も表示されない
mb_substrだったら正常に動作した
php5.2.4だけど
0092nobodyさん
2008/02/12(火) 08:11:27ID:S5CbnauFどうするのがいいですか?
0093nobodyさん
2008/02/12(火) 08:28:24ID:???0094nobodyさん
2008/02/12(火) 08:46:22ID:???array_intersect
0095nobodyさん
2008/02/12(火) 08:59:36ID:uKoPznXF@ file:///c:/xampp/htdocs/Project/require.php
A c:/xampp/htdocs/Project/require.php
B c://xampp/htdocs/Project/require.php
どれが一番正しいのでしょうか。
BだとSmartyのテンプレートディレクトリまでのパスでエラーが生じたので、
Aに直すとうまくいきました
0097nobodyさん
2008/02/12(火) 10:42:23ID:???0098nobodyさん
2008/02/12(火) 10:43:56ID:uKoPznXF有賀と御座います。
確認してみたところ、
C:\xampp\htdocs\Project
でした。
009998
2008/02/12(火) 10:59:27ID:uKoPznXFところで、英数字の先頭のみを大文字にするような関数ってありませんでしたっけ・・・?
0100nobodyさん
2008/02/12(火) 11:00:52ID:r62/Kn46何か手掛かりがつかめればと思い投稿しました。
phpでサイトを構築しているのですが、
アクセスログを見ると、不審なログが不定期に記録されています。
たとえば、/foo/index.phpにアクセスがあると、その直後に
数秒間隔で、/index.phpへのアクセスログが数件残ります。
全てのユーザーではなく、全体の数パーセントの人です。
裏でアクセスするようなajaxのような仕組みはありません。
プログラムのミスなのかどうかよく分からないのですが、
どこ当たりがおかしいと思われますでしょうか?
宜しくお願いします。
0102nobodyさん
2008/02/12(火) 11:14:50ID:uKoPznXF有難う御座います。
それでできました〜。
0103nobodyさん
2008/02/12(火) 12:10:44ID:nhL1XBd5現在、PHP5が入ってます。
Tidy関数を使いたいと思っているのですが、PHP5の場合、
--With-tidy でコンパイルしたらOKとネットで情報を得たのですが、
いまいちやり方が分かりません。
telnetやSSH経由でサーバにログインして、コマンドを入力する訳ですが、
具体的にどのようなコマンド入力をすれば宜しいでしょうか?
0105nobodyさん
2008/02/12(火) 12:15:43ID:???0110nobodyさん
2008/02/12(火) 16:17:18ID:4oFdYGhc<?php
header("Content-Type: text/plain; charset=Shift_JIS");
print"<a href="http://www......jp">サイトへ戻る</a>\r\n";
print"END\r\n";
?>
<a href=></a>がリンクにならないでそのまま
<a href="http://www......jp">サイトへ戻る</a>がページにでてきてしまします。
リンクできるようにするにはどうしたらいいですか?
■ このスレッドは過去ログ倉庫に格納されています