【PHP】下らねぇ質問はID出して書き込みやがれ 77
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/12/08(月) 01:27:39ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0797nobodyさん
2008/12/22(月) 14:10:18ID:???ここのサイトなのですが壁紙は全て同じ色なのに
一部分だけ明るくなってます。
どうやってそれをやっているのでしょうか?
自分も真似をしたくて質問させてもらいました。
0803nobodyさん
2008/12/22(月) 14:23:24ID:???精神に障害かかえてるのなら、病院行けよ。
0804nobodyさん
2008/12/22(月) 14:23:44ID:???0805nobodyさん
2008/12/22(月) 15:09:22ID:???PHP5.2.6→PHP5.2.8と久々に更新したくて
↓ここのサイト参考に作業したんですがapacheが走ってくれません
ttp://2php.jp/php/install_php_windows.html#download
落としてきたPHPをフォルダ改名して現PHPフォルダに上書きが良くなかったのでしょうか
C:ドライブ直下に置いたphpフォルダ直下にあるphp5apache2.dllを読み込んでくれません
apacheのhttp.confには表記したのですが↓
LoadModule php5_module "C:/php/php5apache2.dll"
ttp://127.0.0.1/に繋ぐと"It Works!"と表示されます
0806nobodyさん
2008/12/22(月) 15:16:15ID:???大人しく本を買って来て読めw
0807nobodyさん
2008/12/22(月) 15:18:38ID:???だったら動いてるんじゃないの?
0808nobodyさん
2008/12/22(月) 15:24:51ID:???apacheスタートさせるとThe requested operation has failed!って言われます
とりあえず全部削除してもっかいやってみます、なんか使用変更とかで
やらなくて良い手順とか出てきたのかと思って聞いてみました、どうもです
0810nobodyさん
2008/12/22(月) 15:29:24ID:AQe0W6WJちなみにxpのsp3です
0811nobodyさん
2008/12/22(月) 15:29:52ID:???原因究明に必要な事はすべてそこに書いてある。
0812nobodyさん
2008/12/22(月) 15:29:56ID:???0813nobodyさん
2008/12/22(月) 15:30:15ID:???0815nobodyさん
2008/12/22(月) 15:59:34ID:???0818nobodyさん
2008/12/22(月) 16:46:37ID:???接続に失敗したら PDOException を投げるのでそれを掴まえる
ちなみに件のエラーは「オブジェクトを文字列に変換できねぇよバーヤ」って事
http://www.php.net/manual/ja/pdo.construct.php
> try {
> $dbh = new PDO($dsn, $user, $password);
> } catch (PDOException $e) {
> echo 'Connection failed: ' . $e->getMessage();
> }
0820nobodyさん
2008/12/22(月) 16:59:44ID:???・MySQLのテーブル等の文字セットは utf8_general_ci
・phpMyAdminを通して見ると化けていない
・mbstring系の設定は
mbstring.http_input:auto
mbstring.http_output:pass
mbstring.internal_encoding:UTF-8
mbstring.language:Japanese
スクリプト側から SET NAMES 系を発行するのはよくないと聞いています。
では何を使って解決すればいいのでしょうか。
よろしくお願いします。
0821nobodyさん
2008/12/22(月) 17:09:03ID:Cwv0g3tMskip-character-set-client-handshake
0822nobodyさん
2008/12/22(月) 17:10:31ID:Cwv0g3tM0824820
2008/12/22(月) 17:41:45ID:mD1ma74F出し忘れてました。すみません。
>>821-822
ローカルではその方法で可能なのですが、本番のサーバーはレンタルなので、権限がないのです。
query メソッドで SET NAMES 系を発行する場合はやはり、プリペアドステートメントを使わないと問題ありますか?
データ検索のアプリケーションのため、SQLの条件節がリクエストされてからでないと確定せず、使いにくそうなのですが。
0825nobodyさん
2008/12/22(月) 17:46:42ID:???0826nobodyさん
2008/12/22(月) 17:47:27ID:???0827820
2008/12/22(月) 17:48:25ID:mD1ma74Fはい。
my.cnf は通常のレンタルサーバーでは書き換えできないですよね。
0828nobodyさん
2008/12/22(月) 17:49:44ID:???0829nobodyさん
2008/12/22(月) 17:52:00ID:???0830820
2008/12/22(月) 17:54:35ID:mD1ma74F調べてみたのですが、どうも、mysql_connect();でオープンする必要があるみたいです。
PDOを捨てる or query()を使わずにプリペアドステートメントを使うか、の二択でしょうかね。
0831820
2008/12/22(月) 18:05:57ID:mD1ma74F以降のクエリの発行はすべて、プレペアドステートメントを使ってどうにかすることにします。
答えてくださった方、ありがとうございました。
0834820
2008/12/22(月) 18:38:27ID:mD1ma74FSET NAMES 使っちゃうと、もしかしてプレペアドステートメントも使えませんか?
そうなると、mysql_set_charsetを使うためにmysql_* で自作クラスを組むしかないのでしょうか。
0836nobodyさん
2008/12/22(月) 21:21:32ID:b0EzUWObmb_eregにおける全角スラッシュの扱いがおかしい気がする。これバグ?
具体的には
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
は期待した値が$regに格納されてるけど、
mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz',$reg);
にしたらダメ。どーなのこれ。
0837nobodyさん
2008/12/22(月) 21:24:27ID:???ereg関数はマルチバイトに対応していない。
つうか、pregが完璧に上位互換だからpreg使え。eregはPHP6で標準関数から削除される(PECLへ格下げ)。
0838nobodyさん
2008/12/22(月) 21:25:07ID:???0839836
2008/12/22(月) 21:27:41ID:b0EzUWObローカルルールがよく分からんけど、まだage続けたほうがいいのかな?
そちらでは正常に動きますかい?
0840nobodyさん
2008/12/22(月) 21:28:49ID:???0841836
2008/12/22(月) 21:32:29ID:???PHP5.2.6@CentOS5.2で全く同じソース↓を動かしたらまともに動きやがった。
windowsだとtrue1,false2がしゅつりょくされて、centOSだとtrue1,true2が表示される。ナニコレ
if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true1\n";
else
echo "false1\n";
if(mb_ereg('<a>(.+?)</a>(.+)','<a>abc</a>xyz'))
echo "true2\n";
else
echo "false2\n";
php-windowsのバグか?
>>840
そうかwww
0842820
2008/12/22(月) 21:40:42ID:???いろいろ調べました。
結果、PDOには文字セットの変更は伝わらない、伝える手段がないようです。
(SET NAMES しちゃダメってこと……だと思う)。
おとなしく、mysql_* なり mysqli 系にします。
お騒がせしました。
0843nobodyさん
2008/12/22(月) 21:42:41ID:UijRZ2Ey初心者です。10日ほど前に圧縮ファイルをダウンロードさせる方法について聞いた者です。
http://www.phppro.jp/phpmanual/php/ref.zip.html
このページにあるZIPファイル関数というので、
ローカルでは完ぺきにできました。
が、サーバーでは動きません(php4)
エラーは
Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135
135行目は
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
これは、php4では動かないと理解したらいいのでしょうか?
php4でやる場合、フォルダを圧縮するのと、透過的書込みというのを
やる方法はあるのでしょうか?
あるいは、サーバーをphp5のところに引っ越したほうがいいのでしょうか?
0844nobodyさん
2008/12/22(月) 21:54:52ID:???そこのカッコの数があってたら、前の部分でカッコの数があってない
0845nobodyさん
2008/12/22(月) 22:12:22ID:UijRZ2Eyローカルでは動いているので、カッコは合っていると思うのですが。
それなのにエラーが出るのは、
php4ではダメという意味かなと推測しましたが、勘違いでしょうか?
0846nobodyさん
2008/12/22(月) 22:17:40ID:???そこのカッコの数があってたら、前の部分でカッコの数があってない
0847nobodyさん
2008/12/22(月) 22:18:49ID:???勘違いも何も、まったく関係ないエラーメッセージが出てるのに「PHP4ではダメなのかな」っていう発想がずれてる。
出るとしたら Undefined function 〜 とかだよ。
0848nobodyさん
2008/12/22(月) 22:27:31ID:UijRZ2Ey135行目の数行前に
$zip = new ZipArchive();
これがありますが、これが悪いのでしょうか?
0849nobodyさん
2008/12/22(月) 22:28:42ID:???0850nobodyさん
2008/12/22(月) 22:29:52ID:???0851nobodyさん
2008/12/22(月) 22:32:53ID:UijRZ2Eyその前に、圧縮ファイルの中に書き込むデータを記述するところがあって、
そこが悪いことがわかりました。
$data = <<<MESSAGE
なんたらHTML
MESSAGE
この表記に何か問題あるでしょうか?
0853nobodyさん
2008/12/22(月) 22:36:40ID:UijRZ2Ey$data = <<<MESSAGE
なんたらHTML
MESSAGE
の中に、変数を入れているのが悪いのではと推測しますが、
HTMLのなかに変数を入れる場合、変数を""で囲むのでしょうか?
初心者ですみません
Perlでは囲まないような気が
0855nobodyさん
2008/12/22(月) 22:40:02ID:???Parse error: syntax error, unexpected ')', expecting '(' in /〜〜〜〜.php on line 135
'('があるべき場所に予期せぬ')'があります。
0856nobodyさん
2008/12/22(月) 22:43:47ID:???0858nobodyさん
2008/12/22(月) 22:53:14ID:UijRZ2EyMESSAGE; にしていました。
MESSAGEの中に、
<?php
header("content-Type: text/html; charset=sjis");なんたら
?>
これがあるのが悪いみたいです。
これ(<php? ?>)は、どうやって入れたらいいのでしょうか?
外部のテキストデータを読む?
0859nobodyさん
2008/12/22(月) 22:54:27ID:???0860nobodyさん
2008/12/22(月) 22:56:54ID:???0862nobodyさん
2008/12/22(月) 23:07:56ID:UijRZ2Ey<?php
header("content-Type: text/html; charset=sjis");
?>
sjis を変えてもダメで、
header("content-Type: text/html; charset=sjis");
のheaderがダメみたいですね。うーん
0864nobodyさん
2008/12/22(月) 23:19:27ID:UijRZ2Eyこれでいいでしょうか?
0865nobodyさん
2008/12/22(月) 23:22:40ID:???そのつもり無いならとっとと失せろ
0866nobodyさん
2008/12/22(月) 23:32:40ID:???0867nobodyさん
2008/12/22(月) 23:35:36ID:???$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
0868nobodyさん
2008/12/22(月) 23:36:55ID:F+ur7gRG0869nobodyさん
2008/12/22(月) 23:38:53ID:UijRZ2Eyそうです。
皆様
いろいろお騒がせしてすみませんでした。
ZIP関数の例文をコピーしてアップしてみたら、
やはり同じところで同じエラーが出るので、
これは、zip関数が使えないということだと思います。
その場合、どうしたらいいのでしょうか。
PEARでできるでしょうか(フォルダ圧縮、透過的書込み)
0870ただの人
2008/12/22(月) 23:39:08ID:i5NpGqPt最近、PEARを知ったのですがログイン認証機能を設置するのに
Authを使おうか迷っています。
Auth使った失敗談とか教えてくれたらうれしいのですが・・・
0871nobodyさん
2008/12/22(月) 23:39:15ID:???あんなの動くのか
0872nobodyさん
2008/12/22(月) 23:39:37ID:???うざいから、どっか消えろよw
0873nobodyさん
2008/12/22(月) 23:40:50ID:???環境は違うが。
<?php
$data = <<<MESSAGE
<?php
header("content-Type: text/html; charset=sjis");
?>
hogehoge
<b>hogehoge</b>
MESSAGE;
echo $data;
?>
エラーなし、hogehoge って出たぞ。
出るエラーメッセージは何よ?
0874nobodyさん
2008/12/22(月) 23:49:50ID:i5NpGqPt0875nobodyさん
2008/12/22(月) 23:51:32ID:???0876nobodyさん
2008/12/22(月) 23:51:35ID:???リンク先にちゃんと書いてあるし
0878nobodyさん
2008/12/23(火) 00:00:12ID:59V79J7s自鯖ではないので、インストールできません。
やはり、原因はZip関数が使えないのだと思います。
ローカルでは動いていますので。
そういう場合、どうすればいいのでしょうか?
0879nobodyさん
2008/12/23(火) 00:02:20ID:???0880nobodyさん
2008/12/23(火) 00:08:41ID:???0881nobodyさん
2008/12/23(火) 00:11:18ID:???0882nobodyさん
2008/12/23(火) 00:18:06ID:???本気だとしたら本人の頭が改善できないから無理だな。
0883nobodyさん
2008/12/23(火) 00:41:06ID:???0884nobodyさん
2008/12/23(火) 01:33:38ID:59V79J7s検索すると、PECLというのは、PEARとちがって
コンパイルする必要があると書いてあります。
それって、自分でレン鯖に入れることできるのでしょうか?
0885nobodyさん
2008/12/23(火) 01:42:05ID:VpMBr0l7funcA( ABC , DEF );
となっている部分の
ABCとDEFをpreg_matchで取り出すのは簡単ですが、
preg_match( "/.*funcA\s*\(\s*(.+)\s*,\s*([^\)]+)\s*\)/", $xxx, $yyy ) )
でできたのですが、
funcA( funcB( XYZ ) . ABC , DEF );
と入れ子になっていたりすると、
funcB( XYZ ) . ABC
DEF
が取り出せません。
さらに、
funcA( funcB( XYZ ) . ABC ,
DEF );
などとなっていると、さらに厳しいです。
これを鮮やかに取り出す方法はないでしょうか?
よろしくお願いします。
0887nobodyさん
2008/12/23(火) 02:00:17ID:???正規表現一発では無理、仮に出来たとしてもかえって難しい。
状態を持つ再帰構造で頑張るか、ツリー型のデータ構造(Interpretorパターン)を自前で実装する必要がある。
0888nobodyさん
2008/12/23(火) 02:14:55ID:???「有難う」と言う
感謝の心
「すみません」と言う
反省の心
「おかげ様」と言う
謙虚な心
「私がします」と言う
奉仕の心
「はい」と言う
素直な心
0889nobodyさん
2008/12/23(火) 02:29:36ID:6F++HAzmmd5を使って二重投稿の判定をしようと考えています。
本文が64KBなのですが、
md5($str) で、$strに最大64KBもある文字列を突っこんでも一意の値を返してくれるのでしょうか?
DBより前回の投稿本文を取ってくる = $str1 (最大64KB)
今回の投稿本文 = $str2 (最大64KB)
if(md5($str1) == md5($str2)) {
※同じ値なので二重投稿として判定
}
この方法はあってますでしょうか?
0890nobodyさん
2008/12/23(火) 02:40:56ID:???0891nobodyさん
2008/12/23(火) 04:16:18ID:???0892nobodyさん
2008/12/23(火) 04:16:43ID:???MD5 に限らずハッシュ関数ってのは特徴を求めるための関数
一意性を求めるための物じゃないので衝突は絶対に発生する
データベースにデータとそのハッシュ値を保存しておいて、
最初にハッシュ値でざっと比較し、その後精査てな感じで利用される
ちなみに書いてくれた方法だとハッシュ値なんて得ずにそのまま比較するだけでいい
0893889
2008/12/23(火) 04:27:42ID:6F++HAzmありがとうございます。
教えどおり直接比較してみることにします。
ちなみに画像データは
hash_fileで比較しようとしてたのですが、これも直接比較する方法があるのでしょうか?
0894nobodyさん
2008/12/23(火) 04:51:43ID:???0895nobodyさん
2008/12/23(火) 05:08:34ID:KPRHaWl+ここのページのサンプルの、
<?php
class Food {
private $name;
public getName() {
return $this->name;
}
}
これを実行したらエラーになるんだけど、なんで?
0896nobodyさん
2008/12/23(火) 05:13:31ID:???■ このスレッドは過去ログ倉庫に格納されています