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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2010/10/13(水) 12:01:33ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0884nobodyさん2010/10/26(火) 17:06:36ID:???
質問時にID出すスレだろうが
088512010/10/26(火) 17:09:33ID:???
>>883は自己解決しました^^
0886nobodyさん2010/10/26(火) 17:11:44ID:???
略して自決しました
088712010/10/26(火) 17:20:18ID:???
このスレはもうIDを出さなくて結構です(^^;)
フレキシブルなスレにする事を目標にしています(^^;)
0888nobodyさん2010/10/26(火) 17:23:15ID:???
欠陥アプリしか作れないからって顔真っ赤になるなよ
088912010/10/26(火) 17:25:12ID:???
>>888
能書き垂れるな
糞野郎(^^;)
0890nobodyさん2010/10/26(火) 17:35:09ID:???
雑談OKはテンプレに明記しとけよ
ペチパーは他スレに迷惑かけてるんだからこのスレからでてくるなよ
0891nobodyさん2010/10/26(火) 17:40:33ID:???
ここはPHP板です
0892nobodyさん2010/10/26(火) 17:51:53ID:???
ここは有名PHPerのe-mobileさんにまとめてもらうしかないな
0893nobodyさん2010/10/26(火) 18:04:41ID:nRcBppSS
echo "<a href=\"item.php?id={$line[0]}\">詳細を見る</a>";

こうして書いたとき、リンクがうまく機能しません
どうしたらいいですか?
0894nobodyさん2010/10/26(火) 18:08:59ID:???
>>893
記述の仕方自体は問題無いと思うけど
ブラウザのソースで見たときにどうなってる?
0895nobodyさん2010/10/26(火) 18:09:38ID:???
どううまくいかないか書いたらどうだ
リンク先が違うのかlineの内容が出力されないのか等

どうでも良いが俺ならこうk(ry
echo '<a href="item.php?id=',$line[0],'">詳細を見る</a>';
0896nobodyさん2010/10/26(火) 18:13:50ID:???
どうでもよいが俺ならこうk(ry

<a href="item.php?id=<?php echo $line[0]: ?>">詳細を見る</a>
0897nobodyさん2010/10/26(火) 18:15:10ID:???
どうでもいいが「詳細を見る」みたいなアンカーを用意するならtitle属性でリンク先の説明があった方がよいね
0898nobodyさん2010/10/26(火) 18:21:55ID:???
>>896
コロンですか
0899nobodyさん2010/10/26(火) 18:27:21ID:???
>>898
リンクがうまく機能しません、まで含めて書いたんじゃね
0900nobodyさん2010/10/26(火) 18:31:34ID:nRcBppSS
>>894
問題はないんですね
Opera使ってるんですけど、リンクにはならず「 ">詳細を見る」とだけ表示されます

>>895-896
ほかにも書き方があるんですね
研究してみます
とっても勉強になりました

>>897
最近というか今日この頃はじめったばっかりで、今簡単なサンプル作ってるんです

レスありがとうございました
とりあえずまた明日やってみます!
0901nobodyさん2010/10/26(火) 18:36:33ID:???
>>900
"が飛び出してるってことは、>>893ではったとおりには書いてないってことだ
090212010/10/26(火) 18:40:28ID:???
echo "<a href='item.php?id={$line[0]}'>詳細を見る</a>";
0903nobodyさん2010/10/26(火) 18:44:28ID:???
>>902
やっぱ欠陥アプリ量産は低レベルだな
なぜJavaScriptのソースの多くがシングルクオートで書かれているか考えたことはあるかね?
0904nobodyさん2010/10/26(火) 18:46:49ID:???
>>903
ないから説明して〜
0905nobodyさん2010/10/26(火) 18:47:01ID:???
>>902
シングルクォートきもいです
さすが1だな
0906nobodyさん2010/10/26(火) 18:47:38ID:???
こうだろ!常識的に考えて!
echo <<<EOF
<a href="item.php?id={$line[0]}">詳細を見る</a>
EOF;
0907nobodyさん2010/10/26(火) 18:49:08ID:???
ネタはもうおなかいっぱい
そもそも>>893自体>>900みたいな出力しないんだからなにを説明しても無駄っぽ
0908nobodyさん2010/10/26(火) 18:49:58ID:???
PHPでHTMLソース吐くのは初心者のうちはよくやるけど
慣れてくると>>896みたいにテンプレート作って組み込んだほうがいい
0909nobodyさん2010/10/26(火) 18:51:16ID:kj01px6z
正規表現で
$test = '今日は1回目のアクセスです';

の、1を置換して2に変える場合、どうすればいいのでしょうか?
予め数字が決まっているのではなく、不確定の数字だとします。
0910nobodyさん2010/10/26(火) 18:52:58ID:???
>>909
不確定の数字を入れたいってことなら

$test = '今日は'.$foo.'回目のアクセスです';

$fooはクッキーで保存すりゃいいと思う
0911nobodyさん2010/10/26(火) 18:53:00ID:???
>>903
なんでいちいち煽る必要があるのさ、間違ってるなら説明してあげればいいでしょ。
君みたいなのが一番の荒らしだって自覚してる?
0912nobodyさん2010/10/26(火) 18:53:02ID:???
>>909
それおかしいだろ
$test = "今日は".$count."回目のアクセスです";
ならわかるけど
1を2に置き換えするってだけならいいとして
2から3にするときは?とかになるわけで・・・
0913nobodyさん2010/10/26(火) 18:55:46ID:???
>>912
数字が切り替わる仕組み自体そもそも理解できてない初心者の質問なんだって気づいてやれよw
0914nobodyさん2010/10/26(火) 18:59:43ID:???
なんで正規表現なんだろうな

$test= preg_replace("/(.*?)[0-9](.*?)/","$1$count$2",$test);

試してないからわからんけど
0915nobodyさん2010/10/26(火) 19:00:28ID:???
・初心者でわかってない
・正規表現君を釣るため
・宿題
0916nobodyさん2010/10/26(火) 19:07:49ID:???
914ためしたら$1$countが消えるな
$countの前後に半角スペースだの入れればちゃんと表示されるんだけど
0917nobodyさん2010/10/26(火) 19:21:40ID:???
>>915
2番目だろ
そんな基礎的なことがわからない初心者が
そもそも正規表現という言葉を知ってるはずがない

なのにお前らときたら・・・
親切にもほどがあるだろ
0918nobodyさん2010/10/26(火) 19:24:50ID:???
///
0919nobodyさん2010/10/26(火) 19:27:11ID:???
>>917
変数に入れてるのに数字を変数にしてないとかいろいろおかしな点は確かにあるな
0920nobodyさん2010/10/26(火) 20:24:55ID:???
$countで変数を保持していないのは、
ログファイルに保存した数字を置換で変更したいからです。

つまり、ファイルを開いて中身を取得して正規表現で置換して
再度書き込むという処理をしたかったのです。

が、正規表現使わない方法が分かりました。どうもありがとうございました。
0921nobodyさん2010/10/26(火) 20:28:13ID:???
ログファイルに1だけ書き込んでインクリメントすりゃいいじゃないかwww
0922nobodyさん2010/10/26(火) 21:43:59ID:???
はにゃ〜ん
0923nobodyさん2010/10/26(火) 21:56:15ID:???
はんにゃー!
0924nobodyさん2010/10/26(火) 22:15:39ID:DOrgamz8
>>850さん
errorinfoやってみましたが、syntax errorが出ただけでした。
そこを改善しても書き込まれません。
何が原因なんだろう。。。
0925nobodyさん2010/10/26(火) 22:16:41ID:???
syntax errorが出ますだけじゃわからんわ
全部貼れ
0926nobodyさん2010/10/26(火) 22:21:45ID:???
典型的だなー
0927nobodyさん2010/10/26(火) 22:23:59ID:DOrgamz8
すいません。
Array ( [0] => [1] => 1 [2] => near "SET": syntax error )です
0928nobodyさん2010/10/26(火) 22:38:35ID:Y5jQHIQ+
http://www.adminweb.jp/apache/
http://www.phpbook.jp/install/

を見てアパッチの設定してるんですが、上のアドレスの>PHP利用のための設定>PHPの動作確認ができません
phpファイルを保存しますか?開きますか?みたいなのがでます
同 PHP利用のための設定ででてるトピックはすべて確認しました。
ほかの項目は設定というかここにこういうファイルがあるよくらいで特別に変更はいらないようでした
(php.ini-developを元のファイル残して、新しいファイル作ってとかくらい)

どういう間違いが考えられますか?パスの設定はc:\phpとかみたいに簡単なのにしたから間違ってないはずです
phpの勉強したくての設定なんでここでお願いします・・・
0929nobodyさん2010/10/26(火) 22:45:16ID:???
>>928
ありがちだけどapacheの再起動はした?
0930nobodyさん2010/10/26(火) 22:57:40ID:???
>>927
$dbh->query('SET NAMES utf8');
は$stmt使ってないと思うけど$stmt->errorInfo()でエラー表示されるの?
0931nobodyさん2010/10/26(火) 23:00:54ID:DOrgamz8
>>930
$sql = 'insert into tab1 (nunber, name, note) values (?, ?, ?)';
$stmt = $dbh->prepare($sql);
print_r($stmt->errorInfo());←これで表示させました。
$flag = $stmt->execute(array('104', '成田','日本'));
0932nobodyさん2010/10/26(火) 23:04:08ID:???
>>931
http://php.net/manual/ja/pdo.errorinfo.php
http://php.net/manual/ja/pdostatement.errorinfo.php
0933nobodyさん2010/10/26(火) 23:07:24ID:???
>>931
こっちの方が大事だ
http://php.net/manual/ja/pdo.query.php
0934nobodyさん2010/10/26(火) 23:24:57ID:DOrgamz8
>>932>>933ありがとうです。
ですが、すいません、良く分かりませんでした。。。
0935nobodyさん2010/10/26(火) 23:32:49ID:???
>>934
よく読もうぜ。
関数やクラスを使うときにリファレンスを読むのは基本中の基本だよ。
0936nobodyさん2010/10/26(火) 23:56:02ID:Y5jQHIQ+
>>929
マジすみません><そのとおりでした 
0937nobodyさん2010/10/26(火) 23:58:29ID:DOrgamz8
>>935
単純に何が原因なのでしょうか?構文自体に問題はないように見えますが
0938nobodyさん2010/10/27(水) 01:28:02ID:???
エラー文にはnear "SET"って書かれてるんだから
そこの部分をだしなさいよ
SETって書いてるとこあるんだろ?
0939nobodyさん2010/10/27(水) 01:37:54ID:2BwSQxVQ
>>938
>>828の構文の一行目のことだと思うんですが。。。違ったらスイマセn...
0940nobodyさん2010/10/27(水) 01:53:54ID:???
$stmt = $dbh->query("SET NAMES utf8;");
0941nobodyさん2010/10/27(水) 02:06:36ID:2BwSQxVQ
>>940さんありがとうございます! ですが今度は新しいエラー
Array ( [0] => HY000 [1] => 1 [2] => SQL logic error or missing database )
が出てきました。
0942nobodyさん2010/10/27(水) 02:11:36ID:???
PDOをインスタンス化してる部分を重要な情報外して書いてみ
new PDOの部分ね
0943nobodyさん2010/10/27(水) 02:13:00ID:???
MySQLじゃなくてSQLiteなんでしょ
0944nobodyさん2010/10/27(水) 02:16:35ID:2BwSQxVQ
>>942>>943
レスありがとうございます。SQLiteでやっております。
0945nobodyさん2010/10/27(水) 02:19:04ID:???
つまりset namesの構文は使えない
0946nobodyさん2010/10/27(水) 02:20:12ID:???
なんつうオチだ
0947nobodyさん2010/10/27(水) 02:23:08ID:???
PRAGMA encoding = "UTF-8";
ただしテーブル単位であることに注意
0948nobodyさん2010/10/27(水) 02:25:30ID:2BwSQxVQ
>>945>>946レスありがとうございます。
set namesは使えなかったんですね...

>>941のエラーの対処はどうしたら良いのでしょうか?
調べたらディレクトリの権限に関する情報が出てきたんですが、
パーミッションはディレクトリ777と各ファイル666以上にしてあるのですが

0949nobodyさん2010/10/27(水) 07:13:20ID:???
>>948
はい?>>945が読めないのか?
0950nobodyさん2010/10/27(水) 08:05:53ID:???
読めますが何か
0951nobodyさん2010/10/27(水) 08:35:39ID:???
ダメだよ空気や前後の流れも読めなきゃ
0952nobodyさん2010/10/27(水) 09:02:57ID:???
それも読めますが何か
0953nobodyさん2010/10/27(水) 09:55:40ID:???
まず貼ってある部分以外でエラーが出てる可能性があるので、
PDOを呼び出してるところでエラーを返すものは全部チェック。
エラーを返すかどうかはちゃんと関数リファレンスで調べる。
エラーが出た直後でerrorInfoで詳細を表示っていうのが基本。
最初から一歩ずつ足元を固めていかないと何をやってるのか
わからなくなるよ。
0954nobodyさん2010/10/27(水) 10:47:37ID:???
マニュアルはわからなくなったときに読む物。
0955nobodyさん2010/10/27(水) 11:11:21ID:???
PHP5系で、最初にマッチした文字列のみを置換するには
substr_replaceとstrposの組み合わせ以外で何かスマートな方法はありますか?
0956nobodyさん2010/10/27(水) 11:17:13ID:???
スーパーエンジニアにやってもらう
0957nobodyさん2010/10/27(水) 11:26:42ID:???
preg_replacet使うと回数指定が出来るので楽じゃない?
正規表現なので処理がもったいないのとエスケープ
が必要かもしれないというのが弱点だけどな。
0958nobodyさん2010/10/27(水) 11:52:27ID:???
>>956
市ね
0959nobodyさん2010/10/27(水) 12:21:33ID:PYQNlHNo
日本語と英数字が混在している文字列を全角10文字ごとに
「<br />」タグを挿入したいと思います。
wordwrap関数では半角英数字の場合は↓でうまくいくのですが、
wordwrap($text,20,"<br />",true);

日本語と英数字が混在すると文字化けを起こしてしまいます。

例えば↓のような日本語英数字が混在する場合、

僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく

関数か何かで↓のように変換するにはどうしたらよいでしょうか?

僕の家は埼玉県hogeho<br />ge市2-1-2です。(うそ<br />)よろしく
0960nobodyさん2010/10/27(水) 12:44:45ID:???
>>959
解決とは違うがなんでそんなことがしたいの?HTMLの書き方的に凄く気持ち悪い
10文字ごとの幅で折り返したいだけならそれの親要素の幅を指定してやる方がスマートだし正しい
すとりくたん的に受け付けないわ
0961nobodyさん2010/10/27(水) 12:51:55ID:???
firefoxのバージョンによっては半角がwordwrapされないから
0962nobodyさん2010/10/27(水) 12:59:02ID:???
>>959
本当にその例「僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく」で文字化けするのなら
文字コードの指定の問題。スクリプトの文字コードやmb_*の値を確認して。

次に、「1234567890123456789あい」という文字列の場合
20で区切ると「あ」が分割されるから文字化けするのは仕方がない。

ということで、mb_strlenとmb_substrなどを組み合わせるのが良いと思うが
全角半角区別なく「10文字」ならmb_strlenで簡単だけど
「全角10文字」と「20バイト」は意味が違うから面倒かもね
0963nobodyさん2010/10/27(水) 13:01:28ID:???
>>961
半角が改行されないのは禁則処理である意味当たり前だからな
そういう理由なら半角数字を全角にするとかの方がまともな対策だと思うが
0964nobodyさん2010/10/27(水) 13:39:47ID:???
>>959
SJIS限定

$len = 20;
$str = "僕の家は埼玉県hogehoge市2-1-2です。(うそ)よろしく";
mb_internal_encoding("sjis");
$result = array();
for ($i = 0; $i <strlen($str); $i += $len) {
$result[] = mb_strcut($str, $i, $len);
}
echo implode("<br />", $result)."\n";

僕の家は埼玉県hogeho<br />ge市2-1-2です。(うそ<br />)よろしく
0965nobodyさん2010/10/27(水) 16:02:45ID:???
ID出さないでageる方法
0966nobodyさん2010/10/27(水) 16:07:06ID:HdTEvBrp
classのインスタンスを別の変数から取得できないかと思い、
↓のようなコードを書いたのですが、何も出力されません。
newする以外に取得する方法はないのでしょうか?

class Test{
var $text = 1;
function getInstance(){
return $this;
}
}
$obj = Test::getInstance();
echo $obj->text;
0967nobodyさん2010/10/27(水) 16:21:36ID:dVXlaE2k
おすすめCMS教えてください
条件はフリーであること

0968nobodyさん2010/10/27(水) 16:23:11ID:???
>>967
http://www.google.co.jp/search?hl=ja&source=hp&biw=1024&bih=655&q=php+cms&aq=f&aqi=g10&aql=&oq=&gs_rfai=
0969nobodyさん2010/10/27(水) 16:24:15ID:???
>>965
メル欄にsage以外の何か書けばID出さずに上がるだろアホ
0970nobodyさん2010/10/27(水) 16:28:00ID:???
>>969
>>965は質問じゃなくてそれをやってんだろ
まあアホなことにはかわりはないが
0971nobodyさん2010/10/27(水) 16:30:20ID:???
>>966
<?php
class SimpleClass
{
public static $var = 'a default value';

public static function displayVar() {
return self::$var;
}
}

echo SimpleClass::displayVar();
0972nobodyさん2010/10/27(水) 16:31:02ID:???
>>966
スタティックなクラスはインスタンスを作らなくていいのがメリットじゃないの?

class Test{
static private $text = 1;
static public function getText() {
return self::$text;
}
}
echo Test::getText();

メンバ変数$textをpublicにすれば
echo Test::$text; も可能。
0973nobodyさん2010/10/27(水) 16:33:04ID:???
>>969-970さん質問に答えましょう
0974nobodyさん2010/10/27(水) 16:35:02ID:???
>>973
まずテメーが答えろあほ
俺はいろいろ回答してる
0975nobodyさん2010/10/27(水) 16:40:23ID:???
>>966
最低限この3ページくらいは完璧にしてきて
http://www.php.net/manual/ja/language.oop5.basic.php
http://www.php.net/manual/ja/language.oop5.paamayim-nekudotayim.php
http://www.php.net/manual/ja/language.oop5.static.php
0976nobodyさん2010/10/27(水) 16:53:38ID:???
>>973
そんなこというなら>>965に「質問しましょう」って指摘しろよww
09779662010/10/27(水) 16:54:30ID:HdTEvBrp
みなさんありがとうございます。勉強します
0978nobodyさん2010/10/27(水) 17:26:07ID:2BwSQxVQ
>>953
レスありがとうございます。コマンドでやるときは問題ないんですが...
一覧を表示することはできるのですが、insertがうまくいかないんですよね。
↓全文です。sqliteは3.3.6です
try {

$dbh = new PDO('sqlite:test.db');
$res = $dbh->query( 'SELECT * FROM tab1');

$sql = 'insert into tab1 (number, name, note) values (?, ?, ?)';
$stmt = $dbh->prepare($sql);
$flag = $stmt->execute(array('104', '成田','日本'));
print_r($flag);

if ($flag){
print('データの追加に成功しました<br>');
}else{
print('データの追加に失敗しました');
}
}
catch( PDOException $e ) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
0979nobodyさん2010/10/27(水) 17:31:22ID:???
成田と日本をnaritaとjapanにして上手く行くかどうか見たら?
0980nobodyさん2010/10/27(水) 17:38:49ID:2BwSQxVQ
>>979
レスありがとうございます。駄目でした。
0981nobodyさん2010/10/27(水) 18:19:27ID:???
成田と日本を仁川と韓国にして上手く行くかどうか見たら?
0982nobodyさん2010/10/27(水) 18:25:25ID:???
きっとnumberじゃなくてnunberじゃない?テーブルの方がnunberになってるとか
0983nobodyさん2010/10/27(水) 18:29:32ID:???
>>980
エラーはでてないの?
あとスレ建て出来る?
レス数が950を超えています。1000を超えると書き込みができなくなります。