【PHP】下らねぇ質問はID出して書き込みやがれ 91
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/12/08(火) 13:53:09ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0543nobodyさん
2009/12/25(金) 17:35:52ID:ODrit1bBすみません
$a .= 5 のように「=」の前にドットを付けるとそのようになるのは知っているのですが、単なる「=」でもそのように出来るのですか?
-> 等は追記していけるのは分かりますが、=がそのような動作を出来るとは知りませんでした
普通に
$a = Hello;
$a = World;
とするとオーバーライドだれると思うのですが、>>541の場合は第2引数の参照渡しとかが何か影響しているのでしょうか?
0544nobodyさん
2009/12/25(金) 17:48:40ID:???>>543
$a=4;
$a=5+$a;
//ここで$aは9だ。
0545nobodyさん
2009/12/25(金) 17:57:27ID:???変数 $src の中の {php}という文字列を {ldelim}php{rdelim} に置き換えたものを $resultに入れます。
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
変数 $result の中の {/php}という文字列を {ldelim}/php{rdelim} に置き換えたものを $result に入れます。
プログラムの用語でオーバーライドは別の意味に使うので、 ただの変数の上書きの時には使わないです。
0546nobodyさん
2009/12/25(金) 18:15:11ID:???0547nobodyさん
2009/12/25(金) 18:19:15ID:ODrit1bBわかりました
オーバーライドの意味自体を勘違いしていたようです
自分の言いたかったのは上書きでした
ごめんなさい、まだ良く分かっておりません(苦笑)
<?php
$a = Hello;
$a = World;
print $a;
?>
で試すとブラウザには「Hello」が上書きされて「World」と出力されますが、これと、
>変数 $src の中の {php}という文字列を {ldelim}php{rdelim} に置き換えたものを $resultに入れます
という今回のコードでの意味との違いは何なのでしょうか?
str_replace()だと違う挙動になるのでしょうか?
0548547
2009/12/25(金) 18:21:00ID:ODrit1bB非常に馬鹿でした
$result=str_replace("{/php}","{ldelim}/php{rdelim}",$result);
の$resultが見えていなかったようです
ほんとお騒がせしてすみませんでした
0549nobodyさん
2009/12/25(金) 18:27:05ID:???$a += 5
//$a:9
0550nobodyさん
2009/12/25(金) 18:54:34ID:+jc140hL(というより検索クエリ自体が化けているらしく結果も正しくありません)
フォームはGETで、ページはUTF-8です。auはフォームからのデータがSJISになってしまうということは
ググってわかったのですが、どうやってSJIS→UTF-8に変更してデータを送るかがわかりません。。。
どのような方法がありますでしょうか。
0551nobodyさん
2009/12/25(金) 19:09:37ID:dFEOAZcldefine('CARRIER_DOCOMO', 'i');
define('CARRIER_EZWEB', 'e');
define('CARRIER_SOFTBANK', 's');
define('CARRIER_PC', 'pc');function mobileStart()
{
//■php内部文字エンコーディング
mb_internal_encoding('utf-8');
//■header出力
//携帯アクセスでdocomoの場合は、Content-Typeを出力
if (whichCarrier() == CARRIER_DOCOMO) {
header("Content-Type: application/xhtml+xml;");
}
//auのみ、ブラウザキャッシュが効くのでキャッシュ無効にする
if (whichCarrier() == CARRIER_EZWEB) {
header('Cache-Control: no-cache');
}
//■出力バッファ開始
ob_start();
0553taigo ◆RpNs8sZ5pNfE
2009/12/25(金) 21:52:22ID:+jc140hLありがとうございます、が。。。やはり文字化けしてしまいます。
ページ変遷がなく、同じページを読み込んでいるのですが
それが原因となることはありますか?
0554nobodyさん
2009/12/25(金) 22:38:29ID:9hjXXeKPphpとかrubyだとたくさん資料あるのですが自分はC++つかっててよくわかりませんでした。
わかる方いらっしゃったらぜひともよろしくお願いします
0556nobodyさん
2009/12/26(土) 06:41:22ID:3WIBYwDf一つだけならセットできたのですが、違う商品を登録すると上書きされてしまいます。
$_COOKIE[`a`]に登録したいものをarray_pushとかで配列として増やすことは可能ですか?
何度か試したけれどエラーがでて上手くいかないので・・・
0558nobodyさん
2009/12/26(土) 08:40:23ID:???0559nobodyさん
2009/12/26(土) 10:03:43ID:???http://www.php.net/manual/ja/function.setcookie.php
クッキー名で配列を記述することにより、 クッキーの配列を設定することも可能ですが、
複数のクッキー がユーザーのシステム上に保存されることになります。
explode() を使用して ひとつのクッキー上に複数の名前と値をセットすることも 考慮してください。
serialize() の使用はセキュリティーホールになり得るため、 この目的のために使用することはお勧めしません。
0560nobodyさん
2009/12/26(土) 11:08:36ID:wIFCZoqoそれはおそらくphpの話だと思うのですが
0561nobodyさん
2009/12/26(土) 11:32:50ID:???0562nobodyさん
2009/12/26(土) 11:33:15ID:???つまりスレ違い
0563nobodyさん
2009/12/26(土) 11:57:21ID:wIFCZoqoすいませんでした
自分で考えます
0564nobodyさん
2009/12/26(土) 13:33:40ID:wnAP/Wohイメージは2ちゃんねるの外部リンク「http://ime.nu/」と同じです。
具体的な要件は・・・
外部リンクのURL -> http://自分のサイトドメイン/[外部リンクページのURL]という
ページを自動生成
確認ページに外部リンク先のURLを表示させてクリックすると実際にそのページへ飛ぶ
初心者質問かもしれませんが、どなたかお力をお貸しください。
よろしくお願いいたします。
0565nobodyさん
2009/12/26(土) 13:41:29ID:???http://自分のサイトドメイン/index.php?url= [外部リンクページのURL]
確認ページを挟みたいなら、http://自分のサイトドメイン/sure.php?url= [外部リンクページのURL]
0566nobodyさん
2009/12/26(土) 14:13:51ID:cSlUn0miログ保存の処理をしています。(log.phpとします)
このファイルをIFRAMEなどで2つ読み込んだ時、
どちらか一方のログが記録されない場合があります。
同時アクセスが原因だと思いますが、こういう場合どう対処すればいいのでしょうか?
0567nobodyさん
2009/12/26(土) 14:19:08ID:???0569nobodyさん
2009/12/26(土) 14:26:53ID:???0570nobodyさん
2009/12/26(土) 17:54:40ID:7XqYgoy00571nobodyさん
2009/12/26(土) 18:38:14ID:w2S23L5nfunction smarty_resource_db_source($tpl_name, &$tpl_source, &$o_smarty) {}や
function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$o_smarty) {}の
リソース名dbについて教えて欲しいのですが、
((ファイル2))
require_once("../MySmarty.class.php");
$o_smarty=new MySmarty();
$o_smarty->default_resource_type="db";
$o_smarty->display("resource_db.tpl");
の$o_smarty->default_resource_type="db";のリソースの種類dbと、ファイル1のリソース名dbは同じなのでしょうか?
普段はdefault_resource_typeのデフォルトはfileなようですが、もしdbがデータベースを表しているのであれば適当に付けた(?)dbとは意味が違ってくると思うのですが
0572551
2009/12/26(土) 20:21:10ID:XUPV0oR3実はまだつづきがあってね。
それを実行すれば
貼るとながいんだ。
はってもいいかな?
それをrequire_onceして共通関数として
使えば文字化けはなくなるよ。
0573551
2009/12/26(土) 20:56:29ID:XUPV0oR3はらなくてよさそうだ。
0574nobodyさん
2009/12/26(土) 21:07:32ID:wIFCZoqo病気でしょうか?
0575nobodyさん
2009/12/26(土) 21:08:17ID:wIFCZoqoあああはずかしいいいいいいい
0576nobodyさん
2009/12/26(土) 21:24:44ID:/CwwEmigこれのテストコードを書こうとして困っています。
テストするためには当然その関数を呼び出す必要があるわけですが、
そうするとexit()でテストコードが終了してしまいます。
なんかいい方法ないでしょうか。
当方PHP5.2.x使用
0577nobodyさん
2009/12/26(土) 21:29:22ID:???0578nobodyさん
2009/12/26(土) 21:44:59ID:???してほしいのかしてほしくないのかどっちなんだw
0579nobodyさん
2009/12/26(土) 22:09:18ID:/CwwEmig通常はexit()で終了してほしいけど、テストのときは終了してほしくない、ということです。
たとえば
function redirect_to($url) {
header('Location: '.$url);
exit();
}
というのがあって、これをテストしたい場合、
・redirect_to()を呼ぶと引数が Location: ヘッダの値として設定されることをテストする
・(可能なら)exit()が呼ばれることをテストする
ということになると思います。こういうテストがしたいんですけど、PHPでは無理ですか。
0580nobodyさん
2009/12/26(土) 22:13:21ID:???0581nobodyさん
2009/12/26(土) 22:15:48ID:/CwwEmigexit()を上書きできる言語ならできます。RubyとかPythonとか。
0582nobodyさん
2009/12/26(土) 22:19:01ID:???http://www.php.net/manual/ja/book.runkit.php
0584nobodyさん
2009/12/26(土) 23:02:30ID:???何言ってるんだよお前ッ!!
お前がチンチンが痒いって言うから親身に相談にのってやってんだろうが!!
俺だっていそがしんだからな、分かったか?
0585553
2009/12/26(土) 23:21:13ID:???あれからurlencodeとかdecodeとかhttp_outputとか調べて色々試したのですが
まだ解決できていません...
可能であれば貼ってもらってもよろしいでしょうか。
0587551
2009/12/27(日) 01:12:28ID:HTyX6aDgecho '<'.'?xml version="1.0" encoding="Shift_JIS" ?'.'>'."\n";
switch (whichCarrier()) {
case CARRIER_DOCOMO:
case CARRIER_PC:
echo '<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/2.3) 1.0//EN" "i-xhtml_4ja_10.dtd">';
break;
case CARRIER_EZWEB:
echo '<!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd">';
break;
case CARRIER_SOFTBANK:
echo '<!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd">';
break;
function mobileFinish()
{
$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
echo $content;
}
0588551
2009/12/27(日) 01:16:51ID:HTyX6aDg{
echo htmlspecialchars($str, ENT_QUOTES);
}
function whichCarrier()
{
global $_mobile_carrier;
//すでに判別済みの場合は前回結果を返す
if ($_mobile_carrier != null) {
return $_mobile_carrier;
}
$uaList = array(
array(
'regexp' => '!^DoCoMo!',
'carrier' => CARRIER_DOCOMO,
),
array(
'regexp' => '!^KDDI-!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^UP\.Browser!',
'carrier' => CARRIER_EZWEB,
),
array(
'regexp' => '!^SoftBank!',
'carrier' => CARRIER_SOFTBANK,
0589551
2009/12/27(日) 01:17:37ID:HTyX6aDg'regexp' => '!^Vodafone!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-PHONE!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOT-!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Semulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^Vemulator!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^J-EMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
);
0590551
2009/12/27(日) 01:21:43ID:HTyX6aDgforeach ($uaList as $item) {
if (preg_match($item['regexp'], $ua)) {
$_mobile_carrier = $item['carrier'];
break;
}
}
if ($_mobile_carrier == null) {
// PCやその他のUAでアクセスされたとき
$_mobile_carrier = CARRIER_PC;
}
return $_mobile_carrier;
}
?>
0591551
2009/12/27(日) 01:31:17ID:HTyX6aDg0592553
2009/12/27(日) 01:33:56ID:???長いコードを貼り付けていただき、ありがとうございます。
これで試してみます!
>>586
ケータイサイトなんです(泣)
0593nobodyさん
2009/12/27(日) 01:34:28ID:NIseTKcNInstallerというのがありません
どこにあるのでしょうか?
【ここにあるはずなのですが】
EXE
ZIP
EXEとZIPしかありません。
http://www.apachefriends.org/en/xampp-windows.html
0594nobodyさん
2009/12/27(日) 01:43:26ID:???0595551
2009/12/27(日) 01:45:37ID:HTyX6aDg0596553
2009/12/27(日) 01:47:52ID:???何回もすみません。
・・・
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
),
); ←この行でエラーになってしまいます。
・・・
エラー:Parse error: syntax error, unexpected ';', expecting ')'
括弧の過不足など確認してみましたが、コードが複雑すぎて手に負えませんでした。
どのようなエラーでしょうか。。
0597553
2009/12/27(日) 01:49:33ID:???unexpected T_VARIABLE, expecting ')'
となってしまいます。
0598nobodyさん
2009/12/27(日) 01:51:47ID:NIseTKcNEXEをダウンロードすればいいんでしょうか?
0599593
2009/12/27(日) 01:56:11ID:NIseTKcNダウンロードすればいいのでしょうか?
http://sourceforge.net/projects/xampp/
0601nobodyさん
2009/12/27(日) 02:04:29ID:???),
が足りないんじゃない?
あと、
array(
'regexp' => '!^MOTEMULATOR!',
'carrier' => CARRIER_SOFTBANK,
), ←ここのカンマはいらない
);
0602551
2009/12/27(日) 02:07:55ID:HTyX6aDg), はずした。
0603nobodyさん
2009/12/27(日) 02:34:39ID:???0604601
2009/12/27(日) 02:42:07ID:???知ってる。
いま見たら、最後だけじゃなく全箇所不要なカンマ(あっても問題はないカンマ)が入ってるね。
新たに追加するときにカンマを入れ忘れることがあるから、それを防ぐための策だろうね。
0605nobodyさん
2009/12/27(日) 03:31:03ID:???0606nobodyさん
2009/12/27(日) 10:06:19ID:???0607nobodyさん
2009/12/27(日) 12:30:49ID:PylzfMP30608nobodyさん
2009/12/27(日) 14:10:44ID:NIseTKcN0609nobodyさん
2009/12/27(日) 14:11:37ID:???0610中卒
2009/12/27(日) 14:19:30ID:NIseTKcN0611nobodyさん
2009/12/27(日) 14:40:33ID:???0614nobodyさん
2009/12/27(日) 15:03:18ID:???やっぱ好きな分野勉強して好きな仕事した方が良いてことだな
漏れは高卒だが
0616nobodyさん
2009/12/27(日) 15:37:49ID:???0617nobodyさん
2009/12/27(日) 15:57:55ID:???あ、ごめん。給与が本当なら、別人だ。
>>615
25年くらい前は、結構いたらしく、新聞とかテレビなんかでも
若年天才プログラマが取り上げられたりもしていた。
高級言語が普及する前だから、基礎学力や、業務知識よりも、
プログラミングそのものの比重が今より高く、中卒でも実力次第で
就職できたし、景気も良かったから、高待遇だったそうだ
0618551
2009/12/27(日) 17:20:21ID:HTyX6aDg0619nobodyさん
2009/12/27(日) 18:20:11ID:???経歴で六年違うんだから、相当な差があっても不思議じゃない
ましてやこの業界は進化スピードが恐ろしく速い業界だし
0620nobodyさん
2009/12/27(日) 20:20:57ID:EZZjGXhz学生時代にFORTRANとCOBOLの経験が1ミリほどある30代後半だけど
出回ってるSNS改造して公開できるようになるには、
1日2時間の勉強時間が取れたとして
どのぐらいの期間勉強が必要でしょうか。
0621nobodyさん
2009/12/27(日) 20:38:14ID:???0622nobodyさん
2009/12/27(日) 20:40:03ID:???やっぱり、出きる人に頼むか。。。
0623nobodyさん
2009/12/27(日) 21:17:32ID:???無知でも会社で半年働けば大学で習う程度の技術は身に付く
正直、大卒よりも低学歴でも長年やってる奴の方が使える人材が多い気がする
物理演算などを使ったゲームやグラフィックを開発するとかだとそれ相応の学がないとダメなんだろうがな
あ、でも今の時代充実したオープンソースなライブラリなんかがあるか
0624nobodyさん
2009/12/27(日) 22:01:11ID:???mb_strlen()の第二引数のエンコーディングを何に指定すればお味結果が得られますか?
0625nobodyさん
2009/12/27(日) 22:13:25ID:???0626nobodyさん
2009/12/27(日) 22:17:19ID:???ただし、 strlen バイト数がでるとも限らない。
http://www.php.net/manual/ja/mbstring.overload.php
0627nobodyさん
2009/12/27(日) 22:22:17ID:???0628nobodyさん
2009/12/27(日) 22:22:40ID:???それともコピペ?
0629nobodyさん
2009/12/27(日) 22:47:22ID:???必要な部分は自力
0630nobodyさん
2009/12/27(日) 22:54:29ID:???char hoge+=1;
っていう感じのをPHPでやりたいんですが、
どのようにすれば書けば良いんでしょう?
0631nobodyさん
2009/12/27(日) 22:56:37ID:???char hoge+=1;
って書けるのか
0632nobodyさん
2009/12/27(日) 23:04:19ID:???0633nobodyさん
2009/12/27(日) 23:05:49ID:LlMGF4Xbunsigned longとかいってるHPありますが、引数にint func( unsined long num)なんてあったら引数に渡しても大丈夫なんですか?
今までint func( size_t )こんな関数の引数に渡したことくらいしかないのでわからないんですが
0634nobodyさん
2009/12/27(日) 23:06:32ID:LlMGF4Xb0635nobodyさん
2009/12/27(日) 23:14:18ID:???char hoge+=1;
すると何が起こるの?
0636nobodyさん
2009/12/27(日) 23:15:09ID:???0638nobodyさん
2009/12/27(日) 23:37:31ID:???0639nobodyさん
2009/12/28(月) 01:21:27ID:TpCjAyY+これをやめさせることはできますか。
0640nobodyさん
2009/12/28(月) 01:30:13ID:???過去からのいろいろがあって、ドットは変数名にできないから無理だと思うよ
ドットを使わないようにできないの?
0641nobodyさん
2009/12/28(月) 01:40:04ID:???0642nobodyさん
2009/12/28(月) 01:44:01ID:???のnameはGET,POSTともドットがアンダースコアに変わる
valueは変わらないが
http://www.php.net/manual/ja/language.variables.external.php
重要なことを記述しておくと、このため、外部変数に含まれるドットを PHP は自動的にアンダースコアに変換します。
■ このスレッドは過去ログ倉庫に格納されています