【PHP】下らねぇ質問はID出して書き込みやがれ 97
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/07/23(金) 06:24:51ID:3G71fl8i過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
前
【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0444nobodyさん
2010/08/28(土) 15:26:05ID:???これからどこを正規化したら検索できるようになるんだよ
0445nobodyさん
2010/08/28(土) 15:31:42ID:wQv57lt/http://www.namazu.org/index.html.ja
ただ組み替えないと行けないからめんどくさいだろうけど
0446nobodyさん
2010/08/28(土) 15:45:15ID:???多分正規化という言葉を最近知って使いたいだけなんだろうけど
意味も理解して本当に正規化が必要かどうか判断してから言おうな
0448nobodyさん
2010/08/28(土) 15:53:37ID:???下らねぇ喧嘩スレじゃねーぞカスども
0449nobodyさん
2010/08/28(土) 19:25:42ID:???>>439の項目を見たら正規化って言葉は普通出てこないな
全文検索でSQLのLIKEを使うとINDEXが効かなくて全レコードを舐める事になるから遅くなる
仕様を見て予め後々の事を考える必要はあるかも知れんけどね
0450nobodyさん
2010/08/28(土) 20:07:53ID:????
0451nobodyさん
2010/08/28(土) 20:25:40ID:???まぁ正直な話し>>439がどういう物を想定してるのか
解らない限り正規化含め何が最適解かなんてわからんな
どちらにせよそのテーブルで
正規化する必要性が本のちょっとでもある場所なんて
投稿者名ぐらいしか無いし。それを分けた所で
アプリとしての実行速度が遅くなってはあれだしなw
0452Perl忍者 ◆M5ZWRnXOj6
2010/08/28(土) 20:32:58ID:kvWFLXrw∠ ̄\∩
|/゚U゚Lノ PHPをやる理由はなんですか
〜( ニ⊃
( 丶/
ノ>ノ
UU
0453nobodyさん
2010/08/28(土) 20:36:18ID:???0454Perl忍者 ◆M5ZWRnXOj6
2010/08/28(土) 20:37:46ID:kvWFLXrw∠ ̄\∩
|/゚U゚Lノ てめえが立てろカス
〜( ニ⊃
( 丶/
ノ>ノ
UU
0455nobodyさん
2010/08/28(土) 20:45:14ID:???LIKEで先頭一致の場合はINDEXが使われるが部分一致を使う場合INDEXを定義していても総当りするエンジンが多い
SQLLiteの場合は全文検索のモジュールがあるみたいだから良いかもしれんが
0456nobodyさん
2010/08/28(土) 22:46:12ID:???「SQLite 全文検索」でぐぐってみたら、SQLiteにも全文検索の機能が
あるみたいじゃん。
まあ、和文でやろうと思ったら、SQLiteに備わってるそのままだけじゃなく、
N-gram化か形態素解析との組み合わせになるみたいだけど。
0457nobodyさん
2010/08/28(土) 23:10:43ID:???0458nobodyさん
2010/08/29(日) 01:25:10ID:???0459nobodyさん
2010/08/29(日) 01:33:27ID:???0460459
2010/08/29(日) 01:41:13ID:???0461nobodyさん
2010/08/29(日) 09:43:53ID:???0463nobodyさん
2010/08/29(日) 13:54:07ID:???50%はemacs系
40%はvim系
5%はxyzzy
5%はその他
みたいな感じ
0464nobodyさん
2010/08/29(日) 14:20:54ID:???vimの機動性は素晴らしい。
メールとか原稿書くときはEmacs
0465nobodyさん
2010/08/29(日) 18:48:58ID:istLGNW8ってどうすれば直るんでしょうか?
php.iniのoutput_bufferingをOnにしても直りません。
0466nobodyさん
2010/08/29(日) 20:53:19ID:???◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
0467nobodyさん
2010/08/30(月) 08:36:22ID:???array('abc'=>array('a'=>'orz', 'b'=>'orz=');
みたいな方法でコンフィグを書く事があるのですが
これって一般的にはどうやって値を取り出してるのでしょうか?
0468nobodyさん
2010/08/30(月) 10:21:00ID:???0469nobodyさん
2010/08/30(月) 10:52:17ID:???としたら
$hoge['abc']['a']
$hoge['abc']['b']
でしょ
0471nobodyさん
2010/08/30(月) 11:30:22ID:???0472nobodyさん
2010/08/30(月) 11:32:56ID:???パースする処理を自分で書いてもよし。 というような方向の回答がご希望?
0473nobodyさん
2010/08/30(月) 11:34:35ID:???あとID出して無い質問にマジメに答える事は無い
0474nobodyさん
2010/08/30(月) 11:55:04ID:???気になるなら色んなFWのconfig関連の所みてみれ
0475nobodyさん
2010/08/30(月) 12:49:52ID:njG8UTwtfunction urltest($text)
{
$url = ここら辺がうまいこといかない。1行下もだめかも?
$link = "<A Href=\"$url\">http://などを除いたURL</A>";
$newtext = str_replace('$url', '$link', $text);
return($newtext);
}
?>
http:// や ftp:// 、メールアドレスを置換させようとすると
全く置換してくれないですorz
最終的には、行始めがhttp://で始まらないURLもリンクさせたいです。
例としてhttp://www.2ch.net/というような感じのURL
0476nobodyさん
2010/08/30(月) 13:04:26ID:???そりゃー変数をシングルクォートでくくったらダメだろう。
0477nobodyさん
2010/08/30(月) 13:21:49ID:???$res = preg_replace('/(https?|ftp)(:\/\/([-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+))/',"<a href=\"$0\">$3</a>",$text);
こんな感じで
0478nobodyさん
2010/08/30(月) 14:51:25ID:yNaLEgznあ、やってしまったぽいorz
>>477
http:// から始まるURLにはマッチするけど
www.google.com
photo.google.com
こういうURLには、マッチしないよね・・・orz
0479nobodyさん
2010/08/30(月) 14:59:24ID:???0481nobodyさん
2010/08/30(月) 15:37:40ID:yNaLEgznhttp://<a href="www.google.co.jp" rel="nofollow">www.google.co.jp</a>
<a href="www.google.com" rel="nofollow">www.google.com</a>
hoge@<a href="hogehoge.com" rel="nofollow">hogehoge.com</a>
メールも置換するの?
俺の技術だと無理だわorz
0482nobodyさん
2010/08/30(月) 15:48:50ID:???0483nobodyさん
2010/08/30(月) 17:50:00ID:VlaMGgSYfunction 関数名(ここって何??) {
実装したい処理
}
?>
() の中っていまいちわからないのですが
$abc って書けば、$abcの値のデータ以外は処理しないってことでしょうか?
独学でPHP学んでたら早速躓きましたorz
0484nobodyさん
2010/08/30(月) 17:59:41ID:???0485nobodyさん
2010/08/30(月) 18:05:32ID:???そのfunctionに渡したい値(引数)
この程度で質問にくるようだとキリがないよ
何か本買った方がいいんじゃない?
0486nobodyさん
2010/08/30(月) 18:13:57ID:???http://jp.php.net/manual/ja/index.php
0487nobodyさん
2010/08/30(月) 18:56:15ID:H9RFX+D7結果によってメッセージ等を表示させたり処理を分岐したいのですが・・・。
0488nobodyさん
2010/08/30(月) 18:59:28ID:???0489nobodyさん
2010/08/30(月) 19:13:35ID:???DBの接続は何を使ってる?
PDOならこんな感じ
try{
// クエリを発行
} catch (PDOException $e){
// エラー処理
}
0490nobodyさん
2010/08/31(火) 00:42:22ID:???JavaScriptみたいにブロックがスコープ持たないんですよね?
0491nobodyさん
2010/08/31(火) 06:30:13ID:???{
$extensions = 'com|org|net|gov|edu|mil|us|info|biz|ws|name|mobi|cc|tv|jp';
$patterns = array(
'#([\s{}\(\)\[\]])(([a-z]+?)://([a-z_0-9\-]+\.([^\s{}\(\)\[\]]+[^\s,\.\;{}\(\)\[\]])))#ie',
"#([\s{}\(\)\[\]])([a-z0-9\-\.]+[a-z0-9\-])\.($extensions)((?:/[^\s{}\(\)\[\]]*[^\.,\s{}\(\)\[\]]?)?)#ie"
);
$replacements = array(
"'$1<a href=\"$2\" title=\"$2\">' . 'Link' . '</a>'",
"'$1<a href=\"http://$2.$3$4\" title=\"http://$2.$3$4\">' . 'Link' . '</a>'"
$text = preg_replace($patterns, $replacements, $text); <------ この行でエラー出る。何かおかしいですか?
return($text);
}
0492nobodyさん
2010/08/31(火) 07:33:13ID:???の閉じカッコ
0493nobodyさん
2010/08/31(火) 08:16:28ID:???((https?|ftp)\:\/\/)?([\w-]+\.)+([\w-]+)(\:[\d]+)?([\w\.\*\/\:%,!#~@&=-]+)?
これでURLはマッチすると思う
0494nobodyさん
2010/08/31(火) 08:49:22ID:???PDOだとsetAttributeで設定するPDO::ATTR_ERRMODE属性の値で
エラー時の動作が違うよ。詳しくはマニュアル嫁
0495nobodyさん
2010/08/31(火) 10:08:13ID:mnh9hvQe自前で作ったクラスを、配列であるかのように扱いたいのですが、ちょっと困っています。
ArrayAccess インターフェイスなどを使って、とりあえず一通り実装してみたのですが
array_mergeのような「配列操作関数」に渡すと、お前配列じゃないよねと関数が失敗してしまいます。
私の実装の仕方がまずいのかなと思い、標準のArrayObjectでも試してみたのですが、
array_mergeはArrayObjectも受け付けてくれませんでした
配列操作関数もうけつけてくれる、配列であるかのようなクラスを作るにはどうしたらよいでしょうか?
0496nobodyさん
2010/08/31(火) 10:48:36ID:???0497nobodyさん
2010/08/31(火) 10:50:56ID:???質問の書き方から、初心者と察したので
そういうのまで書くと余計に混乱すると思ったんだが
言葉足らずだったか、補足thx
0498nobodyさん
2010/08/31(火) 12:03:21ID:???0499487
2010/08/31(火) 12:18:33ID:nqVyEYkyありがとう。何となくわかりました。
今は私もPDOを使ってます。
>>498
今ってPDOが人気なんでしょうか?
プレースホルダの動作にセキュリティの問題があるとかで、非推奨、
なんて話を聞いたので、どうしたものかと思ってました。
0500nobodyさん
2010/08/31(火) 12:33:06ID:???0501nobodyさん
2010/08/31(火) 14:49:30ID:naNUn36rを表示したいんだけど、
<?php
require("123.cgi?home=1");
?>
で呼び出せません。
includeでもだめでした。
どうすれば呼び出せますでしょうか?
誰か教えてください。
よろしくおねがいします。
0502nobodyさん
2010/08/31(火) 14:57:15ID:???亀で申し訳ないんだけど一応報告。
ここの内容に該当してました。
ttp://www.phppro.jp/qa/1577
0503nobodyさん
2010/08/31(火) 14:57:40ID:???0506nobodyさん
2010/09/01(水) 06:43:43ID:o7qUnh2A【PHPのバージョン】5.3.3
【連携ソフトウェア】MySQL
【質問内容】
Warning: phpinfo() [function.phpinfo]: It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier.
We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /var/www/html/phpinfo.php on line 9
date関数を使うとこのエラーが出るのでphp.iniに
date.timezone = Asia/Tokyo
と設定しましたがエラーが消えません(コメントアウトは外しました)。
phpファイルに
date_default_timezone_set('Asia/Tokyo');
を記述すると消えます。
試したこと
date.timezone = "Asia/Tokyo" とダブルコーテーションで囲ってみたけどダメだった。
ini_get('date.timezone') をechoしてみたが何も表示されなかった。
php.iniのファイルパスは確認しています。
php.ini修正後にapacheは再起動しています。
どなたかお願いします><;
0508nobodyさん
2010/09/01(水) 10:34:04ID:???0509nobodyさん
2010/09/01(水) 13:54:56ID:???0510anybody
2010/09/01(水) 14:19:00ID:???phpソースを探してます。ライブラリー、コードのアドバイスいただけますか。
0511nobodyさん
2010/09/01(水) 15:10:34ID:???0513nobodyさん
2010/09/01(水) 15:25:18ID:???0514anybody
2010/09/01(水) 15:28:25ID:???すいません、何となくわかりそうで分からないです。何かヒントいただけますか。
0516nobodyさん
2010/09/01(水) 15:43:30ID:???正規表現は他の人にまかせるとして
HTMLソースはfile_get_contentsでとってこれる
PHP: file_get_contents - Manual
http://jp2.php.net/manual/ja/function.file-get-contents.php
0517anybody
2010/09/01(水) 15:56:22ID:???hタグの中身だけを表示するには、file_get_contentsで範囲指定するばいいのですか。
まだphp初めて間もないのですいません。
0518nobodyさん
2010/09/01(水) 16:18:58ID:???まず、file_get_contentsで指定したURLのHTMLソースを全部とってくる
次に、とってきたソースからh?タグを正規表現で抜き出す。
HTMLソースは>>516のマニュアルの
「例1 とあるウェブサイトのホームページのソースの取得と出力」
を試してみて
0519nobodyさん
2010/09/01(水) 16:34:07ID:???$subject = file_get_contents("http://www.yahoo.com/"); // >>516
$pattern = '/<h[12].*?>(.*?)<\/h[12]>/is';
preg_match_all($pattern, $subject, $matches); // http://jp.php.net/manual/ja/function.preg-match-all.php
var_dump($matches);
0520nobodyさん
2010/09/01(水) 16:40:58ID:???0521anybody
2010/09/01(水) 17:36:27ID:???>>518
>>519
アドバイスありがとうございます。 >>519のコード試したら出来ました。
これから自分でも書いてみてみようと思います。並び替えとか表示の仕方を書いてみようと思います。
アドバイスしてくれた方ありがとうございます。
0522nobodyさん
2010/09/01(水) 18:19:47ID:AryEx4i2#URL
$text = preg_replace("/(((http[s]?:\/\/)|(w\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/is", "<a href=\"$1\">$1</a>", $text);
$text = preg_replace("#(^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $text);
$text = substr($text, 1);
return($text);
で、なんとかマッチするようになりましたが、問題が出てきました
http://www.google.co.jp/ ⇒ <a href="http://www.google.co.jp/">http://www.google.co.jp/</a>
www.google.co.jp ⇒ <a href="www.google.com">www.google.com</a>
hoge@'hogehoge.com ⇒ <a href="mailto:hoge@'hogehoge.com">hoge@<a href="hogehoge.com">hogehoge.com</a></a>
こんな感じになってしまうのですが以下のようにしたいのです。
<a href="http://www.google.co.jp/">www.google.co.jp</a>
<a href="http://www.google.com">www.google.com</a>
<a href="mailto:hoge@'hogehoge.com">hoge@hogehoge.com</a>
力を貸してください。
0523nobodyさん
2010/09/01(水) 20:46:21ID:???0524nobodyさん
2010/09/02(木) 08:54:57ID:???0525nobodyさん
2010/09/02(木) 10:44:58ID:???クォートを除去してaタグにしたいってことだよね?
0526nobodyさん
2010/09/02(木) 11:47:25ID:DFmmGQxCいちいちechoとかprint文を書くのが面倒なのですが、
簡単にデバッグするにはどうしたらよいですか?
0527nobodyさん
2010/09/02(木) 11:48:07ID:BtsWFfEu>>524
どうすればいいですかね?
>>525
ttp://www.google.co.jp/ ⇒ <a href="ttp://www.google.co.jp/">ttp://www.google.co.jp/</a>
www.google.co.jp ⇒ <a href="www.google.com">www.google.com</a>
hoge@'hogehoge.com ⇒ <a href="mailto:hoge@hogehoge.com">hoge@<a href="hogehoge.com">hogehoge.com</a></a>
こんな感じになってしまうのですが以下のようにしたいのです。
<a href="ttp://www.google.co.jp/">www.google.co.jp</a>
<a href="ttp://www.google.com">www.google.com</a>
<a href="mailto:hoge@hogehoge.com">hoge@hogehoge.com</a>
の間違いです。
0528nobodyさん
2010/09/02(木) 13:36:28ID:???$pattern = "/((^|[\n ])([a-z0-9&\-_\.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+))|(((http[s]?:\/\/)|(w\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/i";
$match = null;
$res = preg_match_all($pattern, $text, $match);
var_dump(array($res,$match));
正規表現は書いてあるのをほぼそのまま使ったからもっと短くはできるはず
あとはmatchを見ながらてきとうにしろ
もしくは
function replacement($match){
ここで$matchを見ながら変換
return 変換後の文字列;
}
$res = preg_replace_callback($pattern, 'replacement', $text);
こんな感じでやるかだな
0529nobodyさん
2010/09/03(金) 02:11:51ID:NkeDLnjNfunction d() {
echo '<pre style="text-align:left;background:#fff;color:#333;border:1px solid #ccc;margin:2px;padding:4px;font-family:monospace;font-size:12px">';
foreach (func_get_args() as $v) var_dump($v);
echo '</pre>';
}
0530nobodyさん
2010/09/03(金) 12:26:39ID:uUm5hE++php5.3.xだとエラーになる。
これどうしたらいいのか教えて下さい。
全部<?php echo $hoge;?>に変換するのかな・・・?
あと<?=$hoge?>←この書き方って名前なんていうか知ってたら教えて欲しい
よろしくお願いします
0531nobodyさん
2010/09/03(金) 12:34:53ID:???0532nobodyさん
2010/09/03(金) 12:35:25ID:???まぁ普通に変えたほうが良いと思うがな
http://jp.php.net/echo
0535nobodyさん
2010/09/04(土) 15:46:22ID:???このPCでphp5.3にアップデートする必要があるのですが、
どのように対応すればいいのか分かりません。
php以外にも色々アップデートする必要があり、今後も同じような要望が出そうなため
ちゃんと管理できるようなインストール方法を探しております。
具体的には、/usr/local/直下の、
binディレクトリやlibディレクトリなどにばらばらとファイルがインストールされているようです。
どこに何がインストールされたのかを見定めて取り除くのは困難です。
一般的にはどのように管理してバージョンアップするのでしょうか。
自分で考えたのは、
/usr/local/php/のようなディレクトリを作り、その下にさらに
/usr/local/php/php5.0
/usr/local/php/php5.3
のようにディレクトリを作って別々にインストールするというやり方です。
そうすれば、この後php5.4が出てインストールする必要があっても、
/usr/local/php/php5.4に入れて、phpコマンドのシンボリックリンクを修正すれば対応できそうです。
この方法は問題ありますでしょうか?
0536535
2010/09/04(土) 15:46:55ID:nNHV9LL20537nobodyさん
2010/09/04(土) 16:43:53ID:???0538535
2010/09/04(土) 17:03:51ID:nNHV9LL2ありがとうございます。
php5.0を削除せずに、make installして上書きしてしまう
ということでしょうか?
0539nobodyさん
2010/09/04(土) 17:12:55ID:???0541nobodyさん
2010/09/04(土) 22:52:48ID:a77duTj2【PHPのバージョン】5.2.14
【連携ソフトウェア】PostgreSQL 8.4
【質問内容】
php.iniでphp_pgsql.dllを読み込むように設定しても
phpinfo.phpにpgsqlの項目が出てきません、
php_pgsql.dllはバグがあると聞いたので古いバージョンの物と差し替えましたがそれでも変わりません
pgsqlを利用するにはどのようにすればいいのでしょうか?
ちなみにlibpq.dllはちゃんとpathの通ったディレクトリに入れてあります。
■ このスレッドは過去ログ倉庫に格納されています