【PHP】下らねぇ質問はここに書き込みやがれ 71
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/07/17(木) 19:42:52ID:DVaNTncwPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0899nobodyさん
2008/08/14(木) 01:15:16ID:???>>#の1行目のところを変更する必要があります。(本当はテストした後なので修正したくない)
の意味が分からない
そこに何が書いてあるの?
切り替えるべき値があるなら定数とかで宣言しておいて設定ファイルのようにincludeするとか
0900nobodyさん
2008/08/14(木) 01:50:39ID:???1<hr>
<?php $a=1; if ($a == "1") exit(); ?>
2<hr>
includeを展開するとこう書いてるのと同じことだ。
↓のようにすればいいんじゃないかな
include test.php;
1<hr>
<?php $a=1;test1() ?>
2<hr>
test.php
<?php
function test1() { if ($a == "1") return();}
?>
0901nobodyさん
2008/08/14(木) 02:43:32ID:njR6ZB/nenvでインストールしてる場所がとれたと思う。
#!/usr/bin/env php
みたいなかんじで。
でも、envが使えないUNIX環境もあると思うが、そういう場合はどうするんだろ。。。?
0902nobodyさん
2008/08/14(木) 03:41:24ID:???スレ違いですが、何かの縁ですし、みんなで語り合いませんか。
0903nobodyさん
2008/08/14(木) 05:08:32ID:???↓コレでも見て勝手に考えろ。もう来なくて良いからな。
ttp://jp.youtube.com/watch?v=DjgM3d6zBQc
ttp://jp.youtube.com/watch?v=BW-AC5ySxp4
ttp://jp.youtube.com/watch?v=FVFdMAqAPg8
0904nobodyさん
2008/08/14(木) 06:38:35ID:???どのように使うのでしょうか?
LINUX、PHP5.2.6、ROOT有レン鯖です。
宜しくお願いします。
0905894
2008/08/14(木) 10:07:45ID:oz+RaL8cお返事ありがとうございます。
それでやってみたけど駄目でした。
素直残りの処理をElseで括るしかないのかな
0906nobodyさん
2008/08/14(木) 10:20:16ID:???>>900さんではないですけど、横から・・・
> 1<hr>
> <?php $a=1; include test.php ?>
> 2<hr>
>
> test.php
> <?php if ($a == "1") exit(); ?>
exit()の代わりにreturn;を使ってみて下さい。
includeしたファイル内でのreturnは、そこで処理を中止して呼び出した方の処理へ戻ることを意味しますよ。(PHP4以上)
0907894
2008/08/14(木) 10:28:07ID:???ではなく
return
としたらできました。
()の単純なミスでした
>>906様どうもありがとうございます。
こんなことで昨日4時間ぐらい悩んでいたorz
0908nobodyさん
2008/08/14(木) 10:45:38ID:Q1OktP3Jphpをはじめたとしたweb系の仕事をしたくて勉強しているのですが、
phpでの求人広告を結構あります。
それで、phpが必要な案件というのはVerが幾つのことをさすことが多いのですか?
Verまで書いてある求人広告があまりないので、分かりません。
教えて下さい。
0910nobodyさん
2008/08/14(木) 11:00:23ID:???少し前ならPHP4が主流でしたね
PHP4のサポートも終了ですから今後はPHP5です。
リリース番号まで気にすることはないでしょう。
それでもPHP4とPHP5の両方を勉強しておくことをオススメします。
PHP4で作られたシステムは山ほどありますので、それの改造や保守をすることになった場合に必要です。
それにPHP5に完全に移行していないサーバを使った案件でもやはりPHP4ですね
上位互換とは言え、PHP4からPHP5では大きく変化してます。(PHP5にはPHP4互換モードがあるくらいです)
PHP5を主にPHP4も押さえましょう。
0911nobodyさん
2008/08/14(木) 11:08:07ID:???■現象■
CSVファイルがダウンロードできない
■環境■
Microsoft Windows XP SP2
Microsoft Internet Explorar 6
Norton Internet Security
■詳細■
PHPを利用してデータの抽出結果をCSVファイルとしてダウンロードさせる機能を作成しています。
Mozilla系のブラウザ、Norton Internet Securityがインストールされていない環境では
正常にダウンロードを行う事ができるのですが、Norton Internet Securityが入っていない
環境でInternet Explorarを用いて実行すると、ダウンロードができないのです。
<< 該当プログラムコード >>
header("Cache-Control: public");
header("Pragma: public");
header("Content-disposition: attachment; filename=".$File_Name);
header("Content-type: text/csv; name=".$File_Name);
いろんなサイトを調べてみると、「headerで"Cache-Control:public"を指定する」等の
対応策が書かれていましたが、同じ状態になっているにもかかわらず改善されないです。
header("Content-disposition: inline; filename=".$File_Name);
に変更したところ、「保存」は正常な処理を行っているように思え、ダウンロードができました。
しかし「開く」を実行すると、「〜.phpは有効なファイルではありません。」といったダイアログが表示され、"はい"でも"いいえ"でもCSVファイルはExcelで開かれます。
IE7で「開く」を実行すると、ブラウザでExcelが起動されるらしく、ダイアログは出ませんでした。
できることなら、ダイアログも出ずにIE6で正常に開く処理ができるといいのですが、なにかいい方法はないでしょうか。
ブラウザを変える・ノートンを削除するといった方法は、客先に注文できないためコードの修正、もしくは何かの設定を変える方法でお願いいたします。
0912nobodyさん
2008/08/14(木) 11:20:30ID:???やりたいことは「IE6でPHPから出力したCSVファイルをダイアログなしにExcelで開く」と・・・
現状が良く理解出来なかったが・・・
リンククリック時の挙動はContent-typeで決まるってことを考えれば、
> header("Content-Type: text/csv");
よりは、
> header("Content-Type: application/vnd.ms-excel");
じゃないか?(未検証、あくまでヒント程度に)
あと「開く」動作はIEのテンポラリから開くことになるから、環境によっては正常に動作しないこともあり。
0913912
2008/08/14(木) 11:23:51ID:???application/x-csv の方がイイかも、か?
0914nobodyさん
2008/08/14(木) 13:46:30ID:Q1OktP3J詳しいご説明どうもありがとうございます。
アドバイス頂いた通り、php5をメインにphp4の差分を勉強していきたいと思います。
感謝です。
0915nobodyさん
2008/08/14(木) 13:58:46ID:???Web系でどのシステム開発依頼が多いかというとASP.NET>Java>PHPって感じだし
会社としても単価が低いPHPより単価の高い案件とってくるほうがいいからね
0916nobodyさん
2008/08/14(木) 14:06:40ID:ilLTwblx-------------------
<?php
if($cat_id){
$sql = "SELECT * FROM businesses b, biz_categories bc where"; //このb, bcとは何?
$sql .= " category_id = '" . $db->quoteSmart($cat_id) . "'";
$sql .= " and b.business_id = bc.business_id"; //ここは何してるの?
$result = $db->query($sql);
-------------------
この3行目にある、bとかbcとかって、何ですか?
0917nobodyさん
2008/08/14(木) 14:11:43ID:???ここでの使い方は別名だよ
「businesses」などを「b」などと別名を割り当てておけば、
「and b.business_id = bc.business_id」を
「and businesses.business_id = biz_categories.business_id」って書かなくて済むね
0918nobodyさん
2008/08/14(木) 14:22:08ID:???っていうか、スレ違いに何で回答しているんだよ!
そういう奴がいるから、このレスの半分がスレ違いで埋め尽くされるんだ。
お前は、うちの近所で野良猫に餌をやっている腐女子と一緒。
キモイ。キモスギル。シネ。
0920nobodyさん
2008/08/14(木) 14:46:10ID:???0921nobodyさん
2008/08/14(木) 15:35:58ID:???喜びとはすなわち生まれるということ
込み上げる感情の発芽であります
しかし一方で決して永続性はない
ただただ、その瞬間におけるプラスの感情であり
つまりはそこからマイナスのエネルギーがなだらかに広がる
あるいは、急速に落ちてくんです
たとえば子供が産まれる
その瞬間に対する喜びはしだいに消え失せる
自分の老いの確認
経済的不安
成長する子供は決して期待にそぐわない
その緩やかな絶望
父性や母性は永続性があるじゃないか
父性や母性とはいったい何か
数学的、物理的に質量が測られるものではない
世の中に当たり前のことなどありません
すべて原因があり結果がある
愛における喜びとは原因であり結果への誘導
絶望への過程を作る
喜びなどなければ、絶望しない
人間の感情の中に喜びなどいらないんです
あらゆる犯罪は喜びに発動される
自分の喜びのために
あるいは、他人を喜ばすために
人間は犯罪を犯す
喜びを貪るお前たちは罪悪の源だ
0922nobodyさん
2008/08/14(木) 15:36:53ID:???3行で
まとめろ
0923nobodyさん
2008/08/14(木) 15:55:45ID:lAjhzaxsブラウザのエンコードを変えても文字化けしています。
utf-8ですべてまとめています。
文字化けしないようにするにはどうすればいいか誰か教えてください。
0925nobodyさん
2008/08/14(木) 16:15:20ID:DCpr3k6v後々の手間を考えたら、ASPの方がいいかも。
0926nobodyさん
2008/08/14(木) 16:28:44ID:???0927nobodyさん
2008/08/14(木) 16:30:29ID:???0928926
2008/08/14(木) 16:54:49ID:kPaTSKvdttp://2php.jp/php/install_php_windows.html
ただバージョンが違うので
DirectoryIndex index.html index.html index.cgi index.phpを書き込む項目が無かったのと、
LoadModule php4_module "C:/php/sapi/php4apache2.dll"は
LoadModule php5_module "C:/php/php5apache2_2.dll"に変更
(php5apache2.dllは何故か認識されず)
その後↓のサイトで配布されているAcceleratorを使って紹介されている通りに設定
ttp://mizushima.ne.jp/Windows/HTTP/eAccelerator/MNS-eAccelerator.php
php.iniはデフォの物の一番下にコピペ(cacheの場所は「c:\php\cache」に変更)しました
再起動して<?php phpinfo();?>のサイトで確認してもeAcceleratorの表示が無かったんで困りました
0929nobodyさん
2008/08/14(木) 17:02:17ID:60bQ7ofpPHPをローカルのパソコンで実行することってできないのでしょうか。
PHPコーディングが含まれるhtmlソースを、
”php実行”結果のhtmlに変換する処理です。
0930nobodyさん
2008/08/14(木) 17:05:03ID:???http://www.php.net/manual/ja/intro-whatcando.php
0931nobodyさん
2008/08/14(木) 17:17:57ID:???Windows版PHPの初期のiniは知らんが、
extension_dirがちゃんと設定されてない可能性を考えて見る、と言うか見れ
それとiniの定義は以下の方が良くないか?(freebsd使いな俺はそうなのだが)
「extensions」でも問題ないが、絶対パスが使える分見落としも少ない
---------------------------------
[eaccelerator]
zend_extension="dllの絶対パス"
〜(eacceleratorで始まる項目が続く)〜
---------------------------------
>>929
>>928のようにWindows版(ローカルがWindowsなら)のPHPを入れたらどうだ?
HTMLってことだから必要ならApacheも入れてしまえばイイかと
ブラウザで見る必要ないなら、PHPだけ入れてプロンプトから確認ががが
0932nobodyさん
2008/08/14(木) 17:33:29ID:???DirectoryIndex は全てのバージョンにあるぞ。無かったら作ればいい。
でも今回の件とは関係ないけど。
あとApache2.0と2.2は別物。2が動かなくて2_2が動くのは当然。
で、extensionsフォルダの場所は自分の環境の正しいところに入ってる?
0933nobodyさん
2008/08/14(木) 17:40:11ID:lAjhzaxsphpinfoの何処をみればいいんですか?
php.iniは本を見てそのまま真似たので他に変更箇所があるのか分かりません。
php.iniの変更場所を晒しますので変更場所があれば教えてください。
※矢印の方向に変更しました。
;default_charset = "iso-8859-1" →→ default_charset = "utf-8"
extension_dir = "./" →→ extension_dir = "c:/php/ext"
;extension=php_mysql.dll →→ extension=php_mysql.dll
;mbstring.language = Japanes e→→ mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP →→ mbstring.internal_encoding = utf-8
;mbstring.http_input = auto →→ mbstring.http_input = auto
;mbstring.http_output = SJIS →→ mbstring.http_output = utf-8
;mbstring.encoding_translation = Off →→ mbstring.encoding_translation = On
;mbstring.detect_order = auto →→ mbstring.detect_order = auto
;mbstring.substitute_character = none; →→ mbstring.substitute_character = none;
;extension=php_mbstring.dll →→ extension=php_mbstring.dll
;output_handler = →→ output_handler =mb_output_handler
0934nobodyさん
2008/08/14(木) 17:50:57ID:???0935926
2008/08/14(木) 17:53:12ID:kPaTSKvd紹介されていたサイトの指定だと「extension_dir = "C:/php/extensions"」ですが
自分の環境ではC:-php-extとなっているので"C:/php/ext"と指定して見ても変わりなく
ドライブCの大文字&小文字、仕切りの/を\でも試して見たんですが反応が無いです
eacceleratorの場所はアドバイスして貰った通りに
zend_extension="C:\php\ext\eAccelerator.dll"で指定もしましたが変化無い感じです
後ろでsquidやpolipoが走っていたりしますが特にエラーメッセージも無いので関係は無いでしょう
とりあえずDirectoryIndexは最後尾に追記しました
0936nobodyさん
2008/08/14(木) 17:55:31ID:/DkD0y7+0937931
2008/08/14(木) 18:03:56ID:???PHP5.2.6だよな?最新をダウンロードしたなら問題ないか・・・
phpinfo()で見た時の「extension_dir」は正しいか?
Apacheの再起動を忘れてて反映されてないってオチだったらポカーンだが
0938nobodyさん
2008/08/14(木) 18:20:34ID:???http://127.0.0.1/phpinfo.phpに繋ぐと↑のように表示されます。バージョンは新しい物の筈ですが…
なんとなくApache側の問題のような気がしなくもないです
LoadModule php4_module "C:/php/sapi/php4apache2.dll"がデフォの指示ですが
ウチの構成に/sapi/というディレクトリが無いのでここの変更はしょうがないのではと…
とりあえずあまり突飛な事はしてないと分かっただけでもおkです
凡ミスかもしれないので設定を洗いなおしてみます
0939926
2008/08/14(木) 20:02:27ID:kPaTSKvd実に初歩的な問題でした。"="の両端にあった半角スペースを取り除いたらあっさり認識しました
.dllの場所とキャッシュは各々、
extension="eaccelerator.dll"
eaccelerator.cache_dir="C:\php\cache"
で問題無く適応されました。アドバイス頂いた方々本当に感謝です、勉強になりました
0940nobodyさん
2008/08/14(木) 23:34:07ID:g5LH5b33検索してみるとmd5は辞書攻撃に対して脆弱だという意見があるようです。
そのまま使っても問題ないのでしょうか?
それともsaltを付加して比較するようにオーバーライドした方が良いのでしょうか?
0941nobodyさん
2008/08/14(木) 23:36:12ID:???0942nobodyさん
2008/08/15(金) 01:19:47ID:6/CM4ZPRみずほのインターネットバンクだと、パスワードの2番目と4番目を入力しろとかいう指定があります。
このような認証方法だと何かセキュリティーに有利な点がありますか?
0943nobodyさん
2008/08/15(金) 03:03:48ID:???お前たちは、低脳。
0944nobodyさん
2008/08/15(金) 03:32:17ID:???salt使ってもmd5。だいたい辞書攻撃なら同じことだろ・・・
>>942
インターネット経由と郵便局経由のパスワードの両方で認証する点が最大のメリット。
0947929
2008/08/15(金) 08:28:51ID:VdYE+goqレスありがとうございます
0948nobodyさん
2008/08/15(金) 10:54:52ID:???エクセルで
DATEVALUE(2008年08月11日) →39671
を
PHPでやるにはどうしたらよいですか?
0949nobodyさん
2008/08/15(金) 11:47:48ID:???$amount_month = 12
$start = 1900
$end_year = 2008
$end_month = 8
$end_day = 11
$diff_year = $end_year - $start
$datevalue = $diff_year * $amount_day + $end_month * $amount_month + $end_day
0950nobodyさん
2008/08/15(金) 11:49:24ID:???0951nobodyさん
2008/08/15(金) 12:30:57ID:???0953nobodyさん
2008/08/15(金) 12:40:52ID:k2b6NQX0下記の場合複数のcsvファイルがあっても1つしか取得できません
ミスをご指摘いただけませんでしょうか。
// 書式: array dirflist_re ( string $directory, string $pattern );
// $directoryに存在するファイルから$patternで指定したパターンを含むファイルリストを取得する。
// $patternはデリミタで囲む必要はありません。
function dirflist_re($directory, $pattern ) {
$flist = array();
$pattern = '/' . $pattern . '/';
$handle = opendir($directory);
while ( ($f = readdir($handle)) !== FALSE ) {
if( FALSE !== preg_match($pattern, $f)) {
preg_match($pattern, $f, $flist);
}
}
return($flist);
}
$f = dirflist_re('.','.+csv$');
print_r($f);
0954953
2008/08/15(金) 12:44:18ID:k2b6NQX00955nobodyさん
2008/08/15(金) 12:44:43ID:???whileの中の$flistがループの度に上書きされてないか?
preg_matchの後にマッチしたかどうかをifで判定して、$flistを別の変数に移さないと・・・
0956nobodyさん
2008/08/15(金) 12:44:46ID:???preg_match($pattern, $f, $flist);
}
ここをコメントアウトして、while内でprint
0957nobodyさん
2008/08/15(金) 12:46:28ID:???0958nobodyさん
2008/08/15(金) 12:47:13ID:???関数内でprintしちゃマズくね?
最終行のprint_rはデバッグ目的だと思うが >>953よ、どうなんだ?
0959nobodyさん
2008/08/15(金) 12:51:13ID:k2b6NQX0全てのファイル名が表示されます。
>>958
その通りです。
因みに、csvファイルは2つ存在してますが
一番最後のcsvファイル名のみが出力されます
0960958
2008/08/15(金) 12:54:19ID:???テストしてないから、アレだが「array_filter」は便利だぞ
function firflist_re($directory, $pattern){
$dirs = scandir($directory); // scandirが使える環境用
return array_filter($dirs, create_function('$name', 'return preg_match("/'.$pattern.'/", $name);'));
}
0961nobodyさん
2008/08/15(金) 12:55:10ID:???一つ一つの原因を切り分けて実装してみることです。
特になんでもかんでも一行の正規表現で文字列を引っかけようとしたら
はまります。正規表現は万能でもないし、コードがわかりにくい。
うちの会社の品質管理部が正規表現を見たら、一発でアウトです。
正規表現を使わずに分かりやすいコードを書く方がバグがすくなくて済みます。
趣味でやっているんじゃないでしょ。利用者が迷惑しますよ。
0962nobodyさん
2008/08/15(金) 13:00:22ID:???matches を指定した場合、検索結果が代入されます。 $matches[0] にはパターン全体にマッチしたテキストが代入され、 $matches[1] には 1 番目ののキャプチャ用サブパターンにマッチした 文字列が代入され、といったようになります。
つまり↑の方法では最終ループで一致したファイル名しか返さない。
>>955が正しい。
while内で$i++;して、$ret[$i] = $flist。そんでreturn $ret;とか。
0963nobodyさん
2008/08/15(金) 13:12:09ID:k2b6NQX0まだ初心者で知らない関数がいくつか含まれてますので勉強してみます;
>>961
PHP勉強し始めて3週間です。
他のプログラムの知識もないに等しいのでまだ趣味というにも程遠いのですがorz
しかし、逆に正規表現は業界標準の表記なのかと勘違いしてました。
勉強になります。
>>962
今からさっそく試してみます
>>955
すみません、読み飛ばしてました
修正してみます。
0964953
2008/08/15(金) 14:24:58ID:k2b6NQX0まず>>962氏を参考に修正しましたが、
matchしないファイル、ディレクトリを読み込んだ際には、
配列が空白にだったので、6行目のif文の判定をFALSEではなく
NULLにしたところ上手く行きました。
(FALSEはNOmatchという意味ではなかったんですね、勘違いしてました)
function dirflist_re($directory, $pattern ) {
$i = 0;
$pattern = '/' . $pattern . '/';
$handle = opendir($directory);
while ( ($f = readdir($handle)) !== FALSE ) {
if( preg_match($pattern, $f) != NULL) {
preg_match($pattern, $f, $flist);
$ret[$i] = $flist;
$i++;
}
}
return($ret);
}
$f = dirflist_re('.','.+csv$');
print_r($f);
皆さんのご協力感謝します。
0965nobodyさん
2008/08/15(金) 15:16:46ID:zS1QTwus0966nobodyさん
2008/08/15(金) 15:16:46ID:6pQMDtTM0967nobodyさん
2008/08/15(金) 15:18:19ID:???環境変数はApacheが設定するもの。
環境変数の仕様を換えたかったら、自分でApacheのモジュールを自作するしかない。
俺もスパム対策用にApacheモジュールを作って組み込んでいる。
0968nobodyさん
2008/08/15(金) 15:30:26ID:6pQMDtTMそれはApacheEnvironmentにあたるものですよね?
http://www.21style.jp/
たとえば上記URLのEnvironmentにある
USERはatwなのにHOMEが/rootになる
このサイトのatwユーザのHOMEが/rootなのかもしれませんが
このような状況は自分のサイトでも起こっており何故なのかと思いました
0969nobodyさん
2008/08/15(金) 15:50:08ID:???環境変数って言うくらいだから、Apache起動時にセットされるんじゃね?
(ソース見る余裕はないから妄想)
試しにApacheを停止して、suでrootになった普通のユーザでApacheを起動したら
そのユーザの環境変数が継承されたから、正解と言えなくとも近いはず
0970nobodyさん
2008/08/15(金) 16:10:55ID:6pQMDtTM起動ユーザの環境変数だったんですね・・・
ありがとうございました
0971nobodyさん
2008/08/16(土) 01:53:07ID:MsTyjZua変数のスコープのレベル感が無駄になるようなのですが、
これは仕様的なのでしょうか?
if文の中に定義してある変数的なものが、
その外においても有効になっていて、
同じような変数とコリジョンを起こして結果が不正になります。
0972nobodyさん
2008/08/16(土) 01:58:16ID:P/MDsP8S| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0973nobodyさん
2008/08/16(土) 02:00:00ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0974nobodyさん
2008/08/16(土) 10:18:20ID:8euwbT+o次のようにセパレーターを含まない文字列を指定文字目(或いは指定バイト目)で分割する関数ってありますか?
情報収集不足なのかもしれませんがよろしくお願いします。
"20080816" ⇒ 4文字目、6文字目 ⇒ "2008" "08" "16"
"abcdefgh" ⇒ 4文字目、6文字目 ⇒ "abcd" "ef" "gh"
0976nobodyさん
2008/08/16(土) 10:39:24ID:8euwbT+oありがとうございます
一気に指定数に分解できればと思ったのですが、無いでしょうか?
無ければstr_splitで1文字づつ分解後に結合する関数を作るしかなさそうですね。。。
0977nobodyさん
2008/08/16(土) 11:12:59ID:???地道にsubstr()で分割したら?
$aに'20080816'とか入ってるとして
substr($a, 0, 4); // '2008'
substr($a, 4, 2); // '08'
substr($a, 6, 2); // '16'
でいいじゃん。
他には正規表現使って
preg_match('/^(.{4})(.{2})(.{2})/', $a, $m);
ってやると分割された文字列が$mに入る
0978nobodyさん
2008/08/16(土) 11:20:53ID:???他には正規表現使って
他には正規表現使って
他には正規表現使って
他には正規表現使って
0980nobodyさん
2008/08/16(土) 11:48:04ID:???何か?
何か?
何か?
何か?
0982nobodyさん
2008/08/16(土) 11:59:46ID:???たててくる
0983nobodyさん
2008/08/16(土) 12:00:37ID:???0984nobodyさん
2008/08/16(土) 12:09:38ID:???http://pc11.2ch.net/test/read.cgi/php/1218855685/
0985nobodyさん
2008/08/16(土) 12:11:55ID:8euwbT+o今、関数作りかけてたところに助け船が!
そのほうが断然簡単ですね。
無駄な事しなくて済み、本当に助かりました。
0986nobodyさん
2008/08/16(土) 12:26:19ID:A4u+7Tq3お盆休みでおもしろくない。どっか面白い本やホームページ教えて。
できれば、PHP関連で。無かったら他の言語でもいい。
もう、あきた。
0988nobodyさん
2008/08/17(日) 00:16:21ID:???0989nobodyさん
2008/08/17(日) 08:37:37ID:BvSuXUrB0990nobodyさん
2008/08/17(日) 11:23:49ID:???0991nobodyさん
2008/08/17(日) 11:51:15ID:???0992nobodyさん
2008/08/17(日) 12:10:28ID:???埋め
0995nobodyさん
2008/08/17(日) 14:51:48ID:???0996nobodyさん
2008/08/17(日) 16:07:28ID:???0997nobodyさん
2008/08/17(日) 16:41:58ID:iSRyr/QI0998nobodyさん
2008/08/17(日) 18:34:42ID:???レス数が950を超えています。1000を超えると書き込みができなくなります。