トップページ⇒php
1001コメント282KB

【PHP】下らねぇ質問はID出して書き込みやがれ 101

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/11/15(月) 13:00:07ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 100
http://hibari.2ch.net/test/read.cgi/php/1288168893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0552nobodyさん2010/12/09(木) 03:39:21ID:???
>>551
質問はIDを出して書き込んでください。
0553nobodyさん2010/12/09(木) 04:20:52ID:???
>>552
質問と疑問形を見分けられるようにスクリプトを改修することを勧告します。
なお、この勧告を3回発した後、なお当該自称が継続する場合は、強制力を
持った「改修指示」に自動的に更新されます。
0554nobodyさん2010/12/09(木) 06:09:50ID:???
>>553
・解決しなくても回答をもらった場合はお礼を言うこと。
0555nobodyさん2010/12/09(木) 09:16:01ID:???
アフォはスルーしようぜ
0556nobodyさん2010/12/09(木) 10:07:12ID:???
こんな風に育ってしまって親がかわいそうだけど
育てたのは親だから自業自得か
0557nobodyさん2010/12/09(木) 17:31:31ID:Q1lTwUUp
mb_strimwidthでどうも解決しない問題があります。
どなたか解決方法を教えてもらえないでしょうか?

$title = mb_strimwidth($item, 0, 55, '…', 'UTF-8');

上記のように書いた場合でも、以下のように横幅が揃わないのです。。

1 スタ-バックスカード500円券が80%OFFの100円で(配送費用込み)掲…
2 「ココロに残る、自然派フランス料理を。」 仙川にある『Bistro…

こちらが元の文字列

1 スタ-バックスカード500円券が80%OFFの100円で(配送費用込み)掲載日時を11/25/-11/30の期間でツイッターでお知らせします!枚数限定早いもの勝ち【ヒント:21半頃か】

2 「ココロに残る、自然派フランス料理を。」 仙川にある『Bistro de Herb』の新鮮野菜や旬のシーフードをゆったり味わえる『フレンチ・フルコース』が、2,500円!
0558nobodyさん2010/12/09(木) 17:35:27ID:???
そりゃ、文字によってフォントの幅が違うからね
0559nobodyさん2010/12/09(木) 17:54:34ID:Q1lTwUUp
>>558

レスありがとうございます。

なるほど、そういうことだったのですか。
現実的によい解決方法があったら教えてもらえないでしょうか?
0560nobodyさん2010/12/09(木) 18:03:42ID:???
等幅フォント
0561nobodyさん2010/12/09(木) 18:42:47ID:???
test
0562nobodyさん2010/12/09(木) 19:35:48ID:B+6MlJyV
>>560

等幅フォントで検索してみました!

しかし、元となる文字列はAPIから取得しているので、
すべてサーバサイドで変換して、横幅をそろえて、
最終的にそろったフォントをテキストメールで送信なんて芸当はできないっぽいですね。。
0563nobodyさん2010/12/09(木) 21:18:40ID:???
>>562
※等幅フォントでご覧下さい

っていう但し書きが付いているメールがかなり来ますよ。
0564nobodyさん2010/12/09(木) 21:24:01ID:B+6MlJyV
>>563

なるほどー。

ちょっと諦めるしかなさげなのですね。
0565nobodyさん2010/12/10(金) 01:34:55ID:AaQt1j6z
http://www.lapindor.co.jp/homme/faq.php

このサイトのFAQのように、
質問をクリックするとすぐ下に答えが表示されるPHPのページを作りたいのですが、
こういったページを作るためのフリー素材を配布しているサイトはありますか?

かなり調べましたが、このような形のFAQをPHPで作る方法が分かりません。

素人でも簡単にカスタマイズできるものを探しています。

くだらない質問ですがなにとぞよろしくお願いします。
0566nobodyさん2010/12/10(金) 01:59:12ID:???
cssとjavascriptで簡単に出来ますがな…
0567nobodyさん2010/12/10(金) 02:24:10ID:AaQt1j6z
>>566
レスありがとうございます。

知識が全然ないもので。。

javascriptに関するサイトでここを見れば
馬鹿でも作れるといったサイトはありますか?

できれば教えていただきたいのです。
0568nobodyさん2010/12/10(金) 02:32:18ID:???
そのページのURLがPHPってだけであって
実装はJavaScriptで行われている
というか普通そういうのはJavaScript
まずは元となるテキストを用意する

<p id="q1">ウィッグの素材は?<div style="display:none">高級ファイバーを使用し、お洒落で自然なスタイルと立体的で綺麗な髪色を再現しています。</div></p>

あとはこの場所(p)がクリックされたときに中のdivのstyleをdisplayに変更するだけ
逆にdisplayだったときはnoneに戻すことで見えなくなる

JavaScriptのDOM操作を覚えれば簡単
0569nobodyさん2010/12/10(金) 02:36:23ID:???
<div id="faq"><p>faq</p><span>contents</span></div>
<script>$("#faq p").click = function(){$("#faq span").toggle();}</script>

jquery使えばこんだけ
後はググれ
0570nobodyさん2010/12/10(金) 02:42:04ID:???
<div onclick="this.lastChild.style.display=this.lastChild.style.display=='block'?'none':'block'" style="color:blue;text-decoration:underline;cursor:pointer">click me<span style="display:none;margin-left:20px">hoge</span></div>
0571nobodyさん2010/12/10(金) 03:27:32ID:???
>>569
click=にするんじゃなくて
せめてclick(function(){}):
にすべき

まぁPHPスレでJavaScriptの質問っていうのは
完全にすれちだから誘導すべきなんだけどね

とりあえず>>565はこっちへ移動する事をおすすめする

Webサイト制作初心者用質問スレ part222
ttp://hibari.2ch.net/test/read.cgi/hp/1291304974/
0572nobodyさん2010/12/10(金) 03:34:47ID:???
>>571
あーそっちそっち
今、ちょうどC#とHaskelの板挟みで何がどうかわすれとったわw
0573nobodyさん2010/12/10(金) 03:56:53ID:???
いや、むしろこっちだろ

http://hibari.2ch.net/test/read.cgi/hp/1289130738/
0574nobodyさん2010/12/10(金) 04:04:53ID:???
そっちに行くには知識が乏しそうだからあえて除外した
JSを書いてみたりしてる訳でもないしね
0575565=5672010/12/10(金) 04:54:02ID:AaQt1j6z
みなさん、ありがとうございます。

この板のみなさんが優しくて大変助かりました!

アドバイスのおかげでなんとかなりそうです!
0576nobodyさん2010/12/10(金) 10:15:31ID:5NVSc+YH
ちょこっと質問なんですが
fopen(ファイルのパス)
file(ファイルのパス)

ってあるんですけど、このパスって絶対パスと相対パスどっちなんでしょうか?
そんでもって絶対パスと相対パスってどっちの方が良いかとかメリットデメリットあります?
0577nobodyさん2010/12/10(金) 10:24:50ID:???
>>576
どっちでも問題なく使える
絶対パスで問題があるとしたらスクリプトの配置を変えた時だね
0578nobodyさん2010/12/10(金) 10:33:54ID:5NVSc+YH
なるほど!
ありがとうございます!
0579nobodyさん2010/12/10(金) 10:43:42ID:???
相対パスのほうが、デバッグの時は有利
0580nobodyさん2010/12/10(金) 10:53:37ID:???
相対だと違う階層のファイルをincludeしたときとかに、カレントが実行してるファイルのとこになるので注意。
結局 dirname(__FILE__)使ったりする。
0581nobodyさん2010/12/10(金) 12:03:19ID:FHNkWvc0
strlen()関数について質問です
strlen()関数はそのまま使ったら文字数のバイト数を表示するんですよね?
'あいうえお'と入れても10ではなく15バイトと表示されてしまうのですが
0582nobodyさん2010/12/10(金) 12:05:37ID:oH6UvGx+
質問です。
・したい事
ページ遷移先で$_FILESを有効にしたい。

・問題点
<form action="./" method="POST" id="m-form" enctype="multipart/form-data">
の「enctype="multipart/form-data"」を付け足したのですが、
画面遷移すると文字化け(s-jisで作っていて、UTF-8で表示しているため)します。
その後、ウェブのメニュー画面より、表示->エンコード->s-jisと
したら、「ページの有効期限が切れています。」となります。

どのように解決すればよいかわかりません。
お教えください。よろしくお願いします。
05835812010/12/10(金) 12:09:03ID:FHNkWvc0
さらに言うと全角の容量を1つ3バイトではなく2ちゃんねるのように1つ2バイトにするには
どうすればよいのでしょうか?
0584nobodyさん2010/12/10(金) 12:09:09ID:???
>>581
マルチバイト対応のmb系の関数を使ってください
mb_strlen
0585nobodyさん2010/12/10(金) 12:18:16ID:FHNkWvc0
>>584
やはり一文字当たり3バイトになっていまいます・・・。

$contents = htmlspecialchars($_POST['name']);
if(mb_strlen($name) >= 50){
$name = 名前長すぎ;
}

とやってるんですが、全角じゃ16文字が限界で
0586nobodyさん2010/12/10(金) 12:19:52ID:FHNkWvc0
$name = htmlspecialchars($_POST['name']);
if(mb_strlen($name) >= 50){
$name = 名前長すぎ;
}
です・・・。連続投稿すみません・・・。
0587nobodyさん2010/12/10(金) 12:23:57ID:???
http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264117/
0588nobodyさん2010/12/10(金) 12:25:10ID:???
UTF-8に統一しろというのはそういうことさね
0589nobodyさん2010/12/10(金) 12:25:25ID:???
>>587
おお、ありがとうございます
本当に5回もレスしてすみません・・・。
0590nobodyさん2010/12/10(金) 12:47:17ID:???
っていうか2chが全角=2byteなのってUTF-8使ってないからじゃ無いっけ?
UTF-8なら全角=3byteで正解な気が
0591nobodyさん2010/12/10(金) 12:57:44ID:???
ラテン文字に居たっては1→2バイトだからな
UTF-8になかなか統一されない一番の理由はそこにある
0592nobodyさん2010/12/10(金) 13:00:25ID:???
いや、携帯のせいだろ
05935822010/12/10(金) 13:18:42ID:oH6UvGx+
たすけてけろーー!
0594nobodyさん2010/12/10(金) 13:41:15ID:???
metaタグかContent-Typeヘッダを正確に書けば文字化けしないっしょ
05955822010/12/10(金) 14:32:10ID:oH6UvGx+
ありがとうございます。

やってみます。
0596nobodyさん2010/12/10(金) 14:53:45ID:???
>>594
そもそもmb_strlenの第二引数に文字コード入れれるだろ
05975962010/12/10(金) 14:54:40ID:???
ごめん間違えたわ
0598nobodyさん2010/12/10(金) 22:18:42ID:sfMMgbI8
名前空間って何に使うんですか?
0599nobodyさん2010/12/10(金) 22:34:15ID:???
クラス名の衝突回避
0600nobodyさん2010/12/11(土) 01:23:40ID:???
変数名の衝突回避もできれば便利なのに。
0601nobodyさん2010/12/11(土) 06:59:44ID:???
変数名が衝突するとか言うのは作りが悪いだけ。
0602nobodyさん2010/12/11(土) 09:51:20ID:???
わしもそうおもふな
0603nobodyさん2010/12/11(土) 16:00:56ID:???
じゃぁクラス名が衝突するのは作りに問題ないの?
0604nobodyさん2010/12/11(土) 16:39:46ID:???
クラス名は衝突するようになってるの
再利用可能な部品だからいろんな人がお好きに使ってねーって公開してるの
いろんな部品かき集めて作ったら同じクラス名があってうまくインスタンス化できないの
誰が作った部品か書いてあればよかったのになぁと思うわけなの

まぁ普通は他人と衝突しないように作るがどうしても名前が長くなってしまいがち
別に悪くはないけど長くしたところで100%衝突回避できる保証はないからあったほうがいいという話
0605nobodyさん2010/12/11(土) 17:09:07ID:kZNhymsR
【OS名】windowsXP
【PHPのバージョン】5
【連携ソフトウェア】
【質問内容】
会員登録ページを作りたいのですが、会員数は800人程度なのと
内輪のサークルみたいな感じで不特定の人を相手にする訳ではないのと
頻繁にアクセスされる事もないのでデータベースとかを使うのは
大げさ(自分が扱う自信がない)な感じがしています。

データベースを使わない会員登録&アクセス制限の無料サンプルってないでしょうか?
「会員登録 php」でググってるのですが、中々ヒットしなくて
0606nobodyさん2010/12/11(土) 17:10:44ID:???
800人も居たらDB使ってもいいんじゃ
0607nobodyさん2010/12/11(土) 17:54:38ID:???
DB使った方が簡単だと思うが…
テキストファイルベースでそういうの作る方が難しい
06086052010/12/11(土) 18:02:38ID:kZNhymsR
レス、ありがとうございます。
DB使った方が良いですか。
先程からググってるんですが、なんかこれだってのが
見つからないんで、お勧めあったら教えて下さい。
今から、本屋行ってphpの本漁ってきます。
0609nobodyさん2010/12/11(土) 18:03:31ID:???
ファイルで管理する一番単純な方法はディレクトリ名をアカウント名にする
0610nobodyさん2010/12/11(土) 18:07:09ID:???
1000人以下ならCSVファイルでokだろ。
あとの管理も楽。
0611nobodyさん2010/12/11(土) 18:09:13ID:???
口で言うのは簡単だがあなたにはたぶん作れない
というわけでDBを使う気があるのならxoopsみたいなものをインストールしたほうが早いんでは?
0612nobodyさん2010/12/11(土) 18:23:10ID:???
会員登録だけのスクリプトとかあんまり落ちてないだろう
ショッピングカートとか探して参考にしてみれば?
0613nobodyさん2010/12/11(土) 18:27:49ID:???
>>610
1000人以下でもSQLite使ったほうが管理はしやすいと思うが・・・
0614nobodyさん2010/12/11(土) 18:31:33ID:6a9fgwGZ
ふつうにDB使っとけよ
0615nobodyさん2010/12/11(土) 18:52:14ID:???
>>605
DBを使うことが大げさとは思わないけど、DBを避けて作ることも可

サンプル探す時は「会員登録」に拘るんじゃなくて
構成の似ているものを探せばすぐ流用できるのは出てくる。
0616nobodyさん2010/12/11(土) 19:07:53ID:???
はぁ?

単にDB使う前に二の足踏んでるだけの人に
なんでそんなこと薦めるんだよ

あとあとのこと考えれば明らかにDB使わないほうが
ややこしいっつーの
0617nobodyさん2010/12/11(土) 19:18:05ID:???
・800人
・仲間内
・管理者は一人

じゃあEXCELで十分。
0618nobodyさん2010/12/11(土) 19:31:25ID:???
質問と関係ないとこでケンカすんな餓鬼ドモが
0619nobodyさん2010/12/11(土) 19:34:36ID:???
便所の落書きで熱くなるなよ
0620nobodyさん2010/12/11(土) 20:25:10ID:???
EXCELすごいよEXCEL
0621nobodyさん2010/12/11(土) 20:39:59ID:???
アクセス制限も含めてやりたいんじゃないの?
0622nobodyさん2010/12/11(土) 20:56:54ID:???
データベースかテキストかって単なる保存場所の問題で
アクセス制限とはまた別の話
0623nobodyさん2010/12/11(土) 21:52:53ID:???
>>622
>データベースを使わない会員登録&アクセス制限の無料サンプルってないでしょうか?
別な話じゃねーよ
0624nobodyさん2010/12/11(土) 22:03:24ID:???
はい?「データベースを使わない」って形容詞が付いてるんだから
使っても作れるし、使わなくても作れる、つまり別の物だろ。
0625nobodyさん2010/12/11(土) 22:50:31ID:???
> データベースを使わない
↑これ形容詞なのかwww
0626nobodyさん2010/12/11(土) 23:10:05ID:???
小卒かな
0627nobodyさん2010/12/11(土) 23:52:26ID:???
SQLiteかPosql使えばいいよ
0628nobodyさん2010/12/12(日) 03:10:46ID:upsovo/5

$text = <<EOL
この中でphpのif文などを使いたい
EOL;

のですが可能ですか?
0629nobodyさん2010/12/12(日) 03:19:25ID:???
>>609
ファイルの方が手っ取り早くね

アカウント作成
touch($user)

アカウント削除
unlink($user)

アカウント確認
file_get_contents($user)

パスワードはファイル内にでも書いとけってことで
0630nobodyさん2010/12/12(日) 03:43:01ID:???
>>628
あなたがやりたいのは
$text = "この中でphpのif文などを使いたい";
と同じこと。途中でif文を使いたいなら分割しましょう。
ちなみにヒアドキュメントは"<<<"です。

$text = <<<EOL
・・・
EOL;
if(〜){
$text .= <<<EOL
・・・
EOL;
}else{
$text .= <<<EOL
・・・
EOL;
}
0631nobodyさん2010/12/12(日) 04:25:43ID:upsovo/5
>>630
本当にありがとうございます
0632nobodyさん2010/12/12(日) 14:41:37ID:p55fUIgB
return値がvoidの場合でもちゃんとreturnは記述したほうがいいですか?
0633nobodyさん2010/12/12(日) 14:51:35ID:N/dcrvR4
別に書かなくて良いよ
0634nobodyさん2010/12/12(日) 14:52:48ID:???
書く必要はないが気持ち悪いのでいつも書いてる
0635nobodyさん2010/12/12(日) 14:53:47ID:???
むしろ書いちゃダメでしょ
0636nobodyさん2010/12/12(日) 16:34:39ID:???
なんとか粒子が濃いからね
0637nobodyさん2010/12/12(日) 16:38:08ID:oK+8zv6U
かきすぎるとさるとよばれますよ。
0638nobodyさん2010/12/12(日) 18:21:06ID:???
if () {
 while(1) {
  if () {
    return;
  }
 }
}

後ろに処理がなかったらbreakの代わりにreturn使ったりするな
ちなみに俺はループは無限ループにして
中で抜ける条件を書く異端者なので参考にしないほうがいい
0639nobodyさん2010/12/12(日) 18:27:51ID:???
異端というか組み込みやってた感じがしなくもないな
まぁ参考にはしないほうがいいなw
0640nobodyさん2010/12/12(日) 18:31:03ID:???
スクリプト言語に過度の期待はするなw
商売なら別だけどね
0641nobodyさん2010/12/12(日) 19:29:47ID:???
トリッキーなことを得意がってやっていると
改造の時に困るぞ。
0642nobodyさん2010/12/12(日) 22:53:47ID:G6vvlQR5
自作関数について質問です。
a.txt
1列目,2列目
ID,001
name,名前
(行列可変)
のような複数のデータファイルがあります。
これを複数同時に読み込みたいので下記の関数作ってみたけどうまくいきませんでした。
$dataに連想配列が返ってくるようにはどうしたらよいでしょうか?
$read_file = array("a.txt","b.txt");
function Read($read_file){
foreach($read_file as $key){
$str = @file_get_contents($key);
$array = explode("\r\n", $str);
foreach($array as $koumoku => $value){
if($value){
$item = explode(',', $value) ;
$data[$key][$item[0]] = $item[1];
echo $data[$key][$item[0]]."<BR>";
}}}
return $data;
}
var_dump($data);
------
0643nobodyさん2010/12/12(日) 23:26:41ID:???
関数呼び出ししてないってオチじゃないよね・・・?
あとfgetcsvを知っておくとともっと楽にできるかもしれない
0644nobodyさん2010/12/12(日) 23:32:39ID:G6vvlQR5
参考書探して呼んでたら自己解決しました。
global $data
っての追加したらできました。

>>643
呼び出し部分はここのコピぺし忘れただけです;
fgetcsv調べてみます
ありがとうございます。
0645nobodyさん2010/12/12(日) 23:53:05ID:???
returnして受け取れよw
0646nobodyさん2010/12/13(月) 00:06:22ID:???
~~旦_(‥ )こりゃどうも
0647nobodyさん2010/12/13(月) 07:58:36ID:???
便利だぞ!

global 彼女の部屋
0648nobodyさん2010/12/13(月) 08:59:07ID:???
リア充乙
0649nobodyさん2010/12/13(月) 10:42:41ID:???
global 俺の嫁
0650nobodyさん2010/12/13(月) 11:15:55ID:???
彼女の部屋.引き出し.open()

おや・・・知らない男の写真がたくさん出てきたぞ
0651nobodyさん2010/12/13(月) 11:24:41ID:???
>>650 fgetcsv で取り込んで整理しましょう。
■ このスレッドは過去ログ倉庫に格納されています