くだすれPHP(超初心者用)
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/06/12(月) 14:06:01ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
0566nobodyさん
2006/10/01(日) 14:18:02ID:DeMI3pkc$date1=date("Y年n月j日",$timestamp);
$date2=date("j,n,Y",$timestamp);
print($date1);
print($date2);
?>
このprintの部分、反映されると$date1と$date2が改行されず
くっ付いてしまうんですが、どうしたら改行できますか?
0567nobodyさん
2006/10/01(日) 14:28:03ID:???自分で改行を付けるヨロシ
・テキストとして -> \n を追加
・HTMLとして -> <br>を追加
0568nobodyさん
2006/10/01(日) 14:47:59ID:???この意味の違いは教えてください。
0569nobodyさん
2006/10/01(日) 15:31:12ID:DeMI3pkcprint($date1);<br>
print($date2);
?>
こういう感じですか?それだとエラーが出てしまうんですが。
0570nobodyさん
2006/10/01(日) 16:07:08ID:???・・・?!
まさかそう来るとは思わなかったわ・・
そりゃPHPの中に<br>書いちゃったら構文エラー吐くに決まってる。
print($date1 . "<br>");
>>568
最近似たようなの見たな
0571570
2006/10/01(日) 16:22:50ID:???ん、どうやら前スレぽいな
>>568
例えば
$a = 1; // 数値
$b = "1"; // 文字列
// 暗黙の型変換を許容した比較
$a == $b // true (暗黙の型変換で文字列が数値に変換され比較される)←暗黙の型変換
$a != $b // true ($a と $b は等しくない)
!$a == $b // false (演算子の優先順位により、先に!$aが評価され「0」になる)←演算子の優先順位
// 型変換を行わないより厳密な比較
$a === $b // false (型も比較する。この場合、文字列と数値なのでfalse)←型を含めた比較
$a !== $b // false (↑に同じ)
0572570
2006/10/01(日) 16:26:49ID:???0573nobodyさん
2006/10/01(日) 17:14:54ID:???error_reporting(E_ALL);を使っても
$hege = 2;//hogeのタイプミス
みたいなのは駄目ですよね?
0575nobodyさん
2006/10/01(日) 17:22:57ID:???なるほど。
でも、
$hoge = 3;
何かの処理。
$hege = 2;//hogeのタイプミス
みたいな感じで$hogeも使ってると、エラーも出ないですよね。
これはもうPHPはこうだ。って感じでなれるしかない感じですかね。
0576nobodyさん
2006/10/01(日) 17:28:35ID:???PHP5ならE_ALL | E_STRICTで使われていない旨の警告をしてくれるかもしれん。
が、そもそもPHPは変数の宣言は出来ないからどうしようもないというのが実情。
0577nobodyさん
2006/10/01(日) 17:36:33ID:???なるほど。とりあえず、PHP5の環境ではE_STRICT試してみます。
いまんとこPHP4使ってるので、気をつける。って感じで頑張ります。
0579nobodyさん
2006/10/01(日) 18:59:55ID:???っていうかそれが宣言に相当するのね
0580nobodyさん
2006/10/01(日) 20:20:13ID:???どこかのログにエラーとか出てくれないのですか?
0581nobodyさん
2006/10/01(日) 20:21:16ID:???0583nobodyさん
2006/10/01(日) 21:26:55ID:DeMI3pkc>print($date1 . "<br>");
あの、これもエラーになってしまうんですが。
0584nobodyさん
2006/10/01(日) 21:41:18ID:DeMI3pkc0585nobodyさん
2006/10/01(日) 23:22:23ID:???0587nobodyさん
2006/10/02(月) 00:09:50ID:???0588nobodyさん
2006/10/02(月) 07:16:11ID:???0589nobodyさん
2006/10/02(月) 08:09:50ID:???0590nobodyさん
2006/10/02(月) 15:51:11ID:???このたびは息子が覚えたての言葉を使いたいがあまり、
生半可な知識で余計な書き込みをしてしまいました。
>>585にはきつく言っておきますので、みなさんお許しください。
0591nobodyさん
2006/10/03(火) 21:24:34ID:nl5vMJY+ぱっと見、ちゃんと動いているように見えたのですが、
カタカナとマッチングしない文字の組み合わせで入力すると、
マッチングしないにもかかわらず、処理が通ってしまいました。
$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";
if(!(mb_ereg("^[0-9ア-ンーヴァ-ォヵヶ0-9]",$_POST["hoge"]))){
echo "カタカナと数字以外禁止";
}
$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";
これが通ってしまいます。
今はpreg_match_allを使っているのですが、これは上手く通す処理が記述できません
if(!($y=preg_match_all("/0-9/",$_POST["ShopNameKana"]))){
とすると数字だけ通す処理になりません。最終的には全角カタカナと半角数字、全角数字
以外を弾く処理にしたいのですが、どうしたらいいか御教jもといご教示下さい。
0592nobodyさん
2006/10/03(火) 21:33:25ID:???0593nobodyさん
2006/10/03(火) 22:48:58ID:???0594nobodyさん
2006/10/03(火) 23:11:44ID:???0595nobodyさん
2006/10/04(水) 00:50:49ID:???load data local infile "./new_data.csv" into table my_table(以下略
を実行すると、
fail sql: The used command is not allowed with this MySQL version
と表示されるけど、これってphpの問題?、それともmysqlの問題?
mysqlコマンドから問題無く読み込めるのでmysqlは無実っぽいけど?
0596nobodyさん
2006/10/04(水) 01:01:08ID:???0597nobodyさん
2006/10/04(水) 02:09:37ID:???phpからは load data local infileコマンドが実行できないのはなぜかってことだろ。
同じ鯖でバージョンが違うってことも無いし、コマンド実行権が違うことも無い。
0598nobodyさん
2006/10/04(水) 07:30:33ID:???これは関係あるのかな
http://dev.mysql.com/doc/refman/4.1/ja/load-data-local.html
PHPで可能なら他人のファイルも読み込めるということになるからな
0599591@携帯で改行ずれてそう
2006/10/04(水) 09:17:36ID:b45YYBRXサーバはLinuxだけど、PHPもHTTPDもシフトJISにしてあります。
日本語をプログラム内に含めるなとの指摘は自分がまだそれに違和感を覚えるほど
テクがないのと、mb_使えばいいって発想でとりあえず保留
(ソースにはコメントアウトして記載してあるけど
通すべき文字列まで弾かれるので保留が正しい理由)。
0600nobodyさん
2006/10/04(水) 09:31:36ID:???preg_matchにてsjis文字コードを指定振り分けして通す
だが、sjisを使う限り確実とは言えない
これはmbに関して振り分けしても同じ事が言える
どちらにしろ、一般利用ならば気にする事でも無いが
つか、アンタに言っても自我を通して文字指定を頑なに通すから無駄なんでしょうが
0601599
2006/10/04(水) 09:52:57ID:WY3OniKcSJISにしとけばとりあえずいいんじゃない?っていう初学者的発想です。
mbとSJISがダメなのか・・・。
ありがとうございます。ちょっと調べながら考えてみます。
0602nobodyさん
2006/10/04(水) 10:09:30ID:???phpじゃなくてmysqlがエラー出すのが変だが。
phpのバイナリ入れ替えるしか。
0603nobodyさん
2006/10/04(水) 10:21:08ID:???頭膿んでないか?
どう斜め読みしても、そんな理屈にはならんと思うが
2chじゃない他の駆け込み寺を探して聞く方が良い
レベルとかそういう事ではなく、意固地で柔軟な考えができない奴はトラブルを起こし
2chのような場で質問をするには不向きなタイプではないと思われ
0605nobodyさん
2006/10/04(水) 15:01:03ID:???0606nobodyさん
2006/10/04(水) 15:14:03ID:???0607nobodyさん
2006/10/04(水) 16:25:40ID:WY3OniKc配列$Aarrayを作る方法を教えてください。
例:
$A="ABCDE"だったら$A[0]"=A " $A[1]="B" $A[2]="C"みたいな
感じになるようにしたいです。
0608nobodyさん
2006/10/04(水) 16:36:08ID:???$A = 'ashitaha harerutoiina';
$Aarray = array();
for ($i = 0; $i < strlen($A); $i++)
{
$Aarray[] = $A[$i];
}
0609nobodyさん
2006/10/04(水) 16:40:48ID:???0612nobodyさん
2006/10/04(水) 16:49:56ID:???http://jp.php.net/manual/ja/function.preg-split.php
例 2. 文字列を文字要素に分割
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
0614nobodyさん
2006/10/04(水) 16:51:03ID:???608じゃなくて611
0615nobodyさん
2006/10/04(水) 16:52:02ID:???0616nobodyさん
2006/10/04(水) 16:55:19ID:WY3OniKcありがとう。マニュアルに書いてあるとは知らなかったです。
ぐぐっててなんか違うのばっかり出てきたからテクニカルなこと
しなきゃだめなのかと思ってました。
//マニュアルよりグーぐるっていうのがダメなのかしらん・・・。
0618nobodyさん
2006/10/04(水) 16:59:20ID:???0619nobodyさん
2006/10/04(水) 17:16:40ID:???echo $str[2];
結果: s
これ出来るの知らなかった・・・。でもあまり使うときないかなぁ。
0620nobodyさん
2006/10/04(水) 17:20:04ID:???検索をすると、一部の語(猫とだけ検索すると)だけが、?となります。
print_rなどで見ると↓のようになります。
Array ( [0] => ? )
Array ( [0] => 犬 )
ただ、複数の語で検索すると、正常に動作します。
Array ( [0] => 猫 [1] => 犬 )
Array ( [0] => 犬 [1] => 猫 )
これはどういったら直るでしょか?
phpもdbも全てEUCで書いてます。
どうか教えてください。
0622nobodyさん
2006/10/04(水) 17:39:04ID:???わかりずらくてすいません。php5、mysql5で、検索でdbからデータを抽出して
検索結果を表示させようとしているのですが、「猫」というキーワードで
検索すると、DBには猫というキーワードが入っているのに「該当するものは無い」と
表示されてしまいます。ただ、and検索で、「猫」と「犬」で検索すると、
それに当てはまるのもが表示されます。
これで、解りますかね??説明下手ですいません><
0624nobodyさん
2006/10/04(水) 17:54:17ID:???とりあえず、↓のようにデータを取得してます。
$keyword = trim(stripslashes($_GET['keyword']));
$keyword = mb_convert_kana($keyword, 's');
$arraykey = explode(" ", $keyword);
$where = " WHERE (tag LIKE '%$arraykey[0]%')";
for($i=1; $i < sizeof($arraykey); $i++){
$where.= " AND";
$where.= " (tag LIKE '%$arraykey[$i]%')";
}
$sql = "SELECT * FROM table1 ".$where." ORDER BY date DESC
LIMIT ".$PAGESIZE*($page-1).", $PAGESIZE";
これにmysql_fetch_arrayでデータを取得して、表示させてます。
0626nobodyさん
2006/10/04(水) 18:05:15ID:???ああ、「犬」は出るんだね。
0627nobodyさん
2006/10/04(水) 18:07:55ID:???はい。犬や魚は普通に検索できるんです。
猫が何故か、ダメで、<!-- 美乳 -->を書くと直るようなことも
聞いたので書いてみても、変わらなかったです。
0628nobodyさん
2006/10/04(水) 18:09:15ID:???最初から化けてる?
0629nobodyさん
2006/10/04(水) 18:13:31ID:???でも、複数(犬と猫)で検索だと、最初から文字化けしてません。
0630nobodyさん
2006/10/04(水) 18:24:18ID:???shift-jisからeucへの変更で直らんかねぇ
mbstringの設定ってeuc読み込みSJIS吐き出しなん?
0631nobodyさん
2006/10/04(水) 18:39:53ID:???mbstring.func_overload 0 0
直らなかったです。。
phpの設定は↓のようになってます。
mbstring.http_input auto
mbstring.http_output EUC-JP
mbstring.internal_encoding EUC-JP
mbstring.language Japanese
0632nobodyさん
2006/10/04(水) 18:41:00ID:???0633nobodyさん
2006/10/04(水) 18:56:23ID:???mbstring.http_output EUC-JP か・・・。
default_charsetもEUCなのかい?・・・。
0634nobodyさん
2006/10/04(水) 19:15:30ID:???前に、文字化けで大分悩んで、DBのほうもujisにちゃんと設定して
あるんですよね。
何故、「猫」だけ化ける><
0635nobodyさん
2006/10/04(水) 19:19:58ID:???euc読み込みsjis吐き出しだからなぁ・・・
0638nobodyさん
2006/10/04(水) 19:48:24ID:???0640591=374
2006/10/04(水) 20:14:40ID:???ありがとうございました。
//なぜSJISで作ってはダメなのか(はじめてのPHP5プログラミングには
PHP.iniにSJISを指定って書いてあったのでそれが当然と思ってたので)、
いろいろ調べてみようと思います。
また正規表現も言葉は聴いたことがあるけど、意味も知らなかったし、
使ったことも無かったのでいい勉強になりました。
最後に>>386
クソミソボロカス叩き煽るような書き方だったけどこれはきっとLinuxで言うところの
タコってやつですよね。
よく分からないけどドチクショー!!って感じで(思いっきり)空回りしたけど、
あなた(とこのスレの全員)のおかげで解決できました。
ありがとう。
0641nobodyさん
2006/10/04(水) 22:29:29ID:???「猫」で検索したときブラウザのアドレスバーにはどういう風にでる?
hogehoge.php?keyword=%C7%AD
ってでてるか?
0642nobodyさん
2006/10/04(水) 22:36:36ID:???出てる!全く同じだな。
解決策が全くわからんぞ。
「猫」のあとに空白入れても、普通に検索できるのに。
一単語だと絶対、化ける・
0643641
2006/10/04(水) 23:11:14ID:???つーことは...ブラウザからは間違いなくEUC-JPで送信されてきてて、
$_GETで取り出した直後でもう化けてる(違うものになってる)ってことだな。
php.iniを>>631と同じにいったん設定してから、
ちょっといじって実験してみた。
結論から言うと、
mbstring.encoding_translation On → 化け猫
mbstring.encoding_translation Off → 化けない猫
となるな。
mbstring.encoding_translationって送信されてきたデータとスクリプトの
文字コードが違うときに自動変換させるってやつだよな?(確か...うるおぼえだから違ってたら言ってくれ)
だから、この場合はOffにしちゃっていいんじゃね?
0644643
2006/10/04(水) 23:26:56ID:???でも、フォームに↓を追加すると化けなくなった。
<input type="hidden" name="dummy" value="美乳巨乳桃尻">
phpが文字コードを勘違いしない程度の情報があればOnで変換さしてもいいらしい。
GETでリクエストするとアドレスバーがアレになるけど。
0645nobodyさん
2006/10/04(水) 23:52:13ID:???やふーが!--京--をHTMLに埋め込んでるのと同じ理屈。
PHP4ってforでいちいちsplitしないといけないのか間抜けだ。
だからphp5にしろってことでsplitでサポートだろうけど。
0646642
2006/10/04(水) 23:58:11ID:???なるほど!すげー!!ありがとう!
ちなみに、美乳だけでも、文字化けしなかった!
あと、これでもできた→「龠」
mbstring.encoding_translationは
入力される HTTP クエリに関して、 文字エンコーディング検出および内部文字
エンコーディングへの変換を行う 透過的な文字エンコーディングフィルタを有効にします。
(参考:http://www.php.net/manual/ja/ref.mbstring.php)
0648nobodyさん
2006/10/05(木) 00:25:38ID:???この板にはこんなスレがあるのだよ。(10で止まってるけど
美乳テーブルから熟語を見つけるスレ
http://pc8.2ch.net/test/read.cgi/php/1153806009/
0649nobodyさん
2006/10/05(木) 00:37:07ID:???0650642
2006/10/05(木) 00:39:17ID:???多分、これはHTMLで最初に出力をさせるときに文字を判別するのには
役立っても、GETの値に対しては効果が無いように思われます。
ただ、643に書いてあるあるように、コメントとしてではなく
hiddenで埋め込めば、効果はありました。
0651nobodyさん
2006/10/05(木) 01:06:23ID:???同じような効果はあるけど、クライアント側とサーバ側で根本的に違う。
コメントで埋め込むと、ブラウザの文字コード判別の際に参考にされる。
hidden で埋め込むと、PHP側で送信されたデータの(ry
(mbstring.http_inputでEUC-JPを上位に持ってくれば解決したような気はする)
0652nobodyさん
2006/10/05(木) 01:43:51ID:???最近のIEは常にutfで返す仕様だったかも(未検証)。
0653nobodyさん
2006/10/05(木) 06:44:57ID:???ヘッダ部分じゃ効果ないのかな?
0654nobodyさん
2006/10/05(木) 08:13:16ID:???0655635
2006/10/06(金) 17:37:29ID:???文字認識用コードっていうstringを飛ばしてた時もあったけど。
いまでは、あんまり化けたっていう事聞かないのでそういうのは忘れちまったなぁ
EUC読み込みSJIS吐き出しでなんとかなったからなぁ;
多分、ブラウザの文字判定になぞらせないといみないっしょ?
IEの場合は殆どの部分で文字をなぞって判定してるからなぁ
0656nobodyさん
2006/10/06(金) 17:44:23ID:???>ブラウザの文字判定になぞらせないといみないっしょ
これってどうゆうことっすかね!?
意味とか方法教えてください。
0657nobodyさん
2006/10/07(土) 01:39:05ID:???ホームページビルダー9のバグで、既存の(正常な)EUCファイルをいじって
一文字でも入力したり削除したりなどの編集作業をすると、
勝手にUTF-8になってしまって文字化けのオンパレード、ってのがある。
ファイルを保存しなくとも、編集したその瞬間から、プレビュー画面で確認すると化けてる。
しかもIBMは公式にこのバグを認識してないらしく、対応パッチも出てない。
だけど同じ現象になってるユーザーは一定数いるようで、ググると同症例がいくつか見つかる。
とりあえずIBM氏ね、と言いたい。
0658nobodyさん
2006/10/07(土) 10:22:40ID:???0659nobodyさん
2006/10/07(土) 17:46:28ID:???EUCなんかで作るな禿。
0660nobodyさん
2006/10/07(土) 19:34:30ID:???誰かが書いた文章を、DBに保存して、DBから値を取り出して、htmlに出力するときは
htmlspecialcharsを使った方がいいのですよね?
あと、alt属性にその文章を持ってくる場合も、htmlspecialcharsを
使って出力したほうがいいのでしょうか?
初心者質問ですいませんが、宜しくお願いします。
0661nobodyさん
2006/10/07(土) 20:32:32ID:???"><script>alert("hoge");</script><img alt="
を入れられたらどうなるの?
0662nobodyさん
2006/10/07(土) 20:53:06ID:???それをDBに入れて、altのところに入れて見て見るってことですよね?
普通にマウスで、その画像のところに持っていっても普通に文字が表示される
だけです。
DBに入れるときはmysql_real_escape_stringを使って入れてます。
0663nobodyさん
2006/10/07(土) 21:21:54ID:???つまり、使えって言ってるんだと思うが?
0665nobodyさん
2006/10/07(土) 23:14:04ID:???0666nobodyさん
2006/10/07(土) 23:39:56ID:???■ このスレッドは過去ログ倉庫に格納されています