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

【PHP】下らねぇ質問はここに書き込みやがれ 30

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/10/05(木) 01:38:25ID:y1WWhz/p
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
  (逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
  (荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0182nobodyさん2006/10/09(月) 12:17:39ID:???
今ちょっと調べてみたら、

mime_content_type

ていう関数があるみたいだね。

http://jp.php.net/manual/ja/function.mime-content-type.php

例によってコメント欄に重要な情報が書いてあって、

Windowsの場合はphp.iniで、

extension=php_mime_magic.dll

とする。それと、magicファイルがいるので

mime_magic.magicfile = "C:\path\to\php\install\magic.mime"

としなきゃいけないと。(それようにビルドしてあるPHPじゃナイト使えないみたいだけど)

あと、gnuwin32のfileがWindows用のfileコマンドとして使える、
ていう話も書いてあるね。Officeのドキュメント識別できるかどうかしらんけど……
外部コマンドのfileが使えるんなら、system関数かなんかで呼び出せばいいと。
0183nobodyさん2006/10/09(月) 13:15:03ID:???
ID/PASSを変数に入れておいて
リンクをクリックすれば、
認証CGIにヘッダーでID/PASSを投げてログイン、
という方法を取りたいと考えています。
(例えばYahooのウェブメールにログイン)

> ID/PASSを変数に入れておいて
> 認証CGIにヘッダーを投げて

これはできたのですが、
最後のログインがどのようにすればよいか分かりません。
ID/PASSを投げただけで終わる感じです。

具体的には pfsockopenして、
対象CGIにID/PASSをfputsで送る感じです。
これ以降がよくわかりません。

javascript とかで自動的にフォーム移動させたり、
hiddenでID/PASSを入れておいて・・・
という方法もあると思いますが、
これだと第三者にログインしてもらいたいときに
パスワードが知られてしまいますので
上のような手順をとっています。

どなたかご助言をお願いします。
0184nobodyさん2006/10/09(月) 15:09:32ID:???
>>183
超・極めるPHPにcURL関数の使い方が説明してあったよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4798111058
http://www.kiwameru-php.net/contents/toc.php

「cURLで外部サーバーにアクセス」
http://www.kiwameru-php.net/support/codes.php
「cURLで外部サーバーにアクセス」のサンプルスクリプト
http://www.kiwameru-php.net/support/download.logic.php?list=k2_5

使用例では、mixiにログインする説明だった。
01851832006/10/09(月) 15:17:21ID:???
>>184
レスありがとうございます。
びっくりしたことに、ちょうどその書籍目の前にありました。
ただ、これに関しては同サーバーから相手先のデータを読み込んで表示する、
という感じですよね。
直接該当ページに移動するのは無理でしょうか?
0186nobodyさん2006/10/09(月) 15:33:17ID:???
移動するというのはどういうこと?
0187nobodyさん2006/10/09(月) 18:01:38ID:???
文字列から最初と最後を除いた文字列を取得する、スマートな方法は?

例: 'abcdefg' => 'bcdef'

substr($str, 1, strlen($str) - 2) ←これより良いのありますかね?
0188nobodyさん2006/10/09(月) 18:07:55ID:???
substr($str, 1, -1);
0189nobodyさん2006/10/09(月) 18:33:58ID:???
-1なんて使えたのか・・・

サンクス
0190nobodyさん2006/10/09(月) 19:06:57ID:???
掲示板のスクリプトで2chみたいにIDを生成しようと思ってますが、

$host = ホスト(略);
$id = crypt($host.$_SERVER['USER_AGENT'].date("w"), "HOGE");

としてるんですが、こんなんでいいのでしょうか?なんか書き込んだ人を個別に判別できる値とかないんでしょうか?
0191nobodyさん2006/10/09(月) 19:16:58ID:???
USER_AGENTなんか入れたら偽装できまくりじゃん
01921902006/10/09(月) 19:26:39ID:???
>>191
そうですね(汗)
USERAGENTは抜いておきます。偽装されたら意味ないですね。
0193nobodyさん2006/10/09(月) 20:25:08ID:???
アップロードされた画像を相対的に表示させるにはどうすればいいのでしょうか?
imgの中に、widthなどをいれると全てそのサイズになってしまいます。
ある一定以上大きい画像は幅、高さを縮小させて表示させるには、imageizeなどを
使えばいいのでしょうか?
もし、よろしければ詳しいやり方を教えてください。お願いします。
0194nobodyさん2006/10/09(月) 20:30:38ID:???
>>193
1.getimagesize()でファイルの縦横サイズを取得する。
2.縦横がそれぞれ指定サイズ以上かを判定する
3.縦か横のどっちか大きい方をheightまたはwidthで指定する
だけかと。こんなのいちいち人に聞くような内容じゃないぞ?
01951812006/10/09(月) 20:36:00ID:/lkovAUh
>>182
感謝です。
廃止予定となっているのがちょっとだけ気になりますが
http://jp.php.net/manual/ja/ref.mime-magic.php
php4なら仕方ないですね。
あと、手元にあるmagic.mimeがヘボいのか
誤判定がしばしばあるのですが、
これはどっかに質のよいmagic.mimeが転がってるのを探せばいいんでしょうか。
引き続き探してみます。
0196nobodyさん2006/10/09(月) 20:57:00ID:???
オブジェクト指向プログラミングは、あちこちで「効率が良い」と言われて居るけれど
具体的にどう効率が良いの?

自分のウェブサイトで使う様な、あくまで趣味感覚で一人で開発して居る人には関係無いよね?
0197nobodyさん2006/10/09(月) 21:14:42ID:???
「具体的にどう効率が良い?」というのは非常に難しいところだと思う。
実際、オブジェクト指向じゃなくても同程度(場合によってはそれ以上)効率良くプログラムを書くことはできる。

気になるなら勉強すればいいし、もっと深く話を聞きたいなら違うとこに行ったほうがいい。
議論するほどにスレ違い&板違いな方向に行くのは目に見えてる。

一人で開発してるなら「どこにどんな処理があるか」「この処理はどこに書かれているか」が分かってるからほとんど必要ない。
最低限、よく出てくる処理をfunctionにしておけばいいと思う。

0198nobodyさん2006/10/09(月) 21:35:07ID:???
開発人数か一人かどうかはあまり関係ないと思うな。

まず、Cの構造体が便利だと思えるかどうか。

便利だと思えるなら、次の段階として構造体のメンバに関数のリファレンスを格納できたら便利だと思えるかどうか。

それが便利だと思えるなら、その次の段階として、似てるけど微妙に違う構造体をたくさん使うとき

おおもとになる型枠的なものを用意して、その子分をこしらえてながら開発出来ると便利じゃないか、と。

まあ、以上のものにちょっと機能を加えて便利にしたものがオブジェクト指向って感じか。

まず、構造体が便利だと思えなければ話が始まらないが、、PHPって素の構造体は・・・連想配列で代用か?
0199nobodyさん2006/10/09(月) 21:36:16ID:???
今PEARのMailでメールを送ってるんだけど、何故か件名が35byteぐらいを
超えると文字化けしてしまう・・・
PEARでメール送るときって件名の文字制限ってあるんですか?
確か1000ByteまでOKだったはずなんだけど・・・
0200nobodyさん2006/10/09(月) 21:37:59ID:WzDdpX/2
構文的な内容の質問です。
現状態ではプログラムの中で決まったHTMLを出力する場合に、

<?php
echo <<< HTML
<html>
<head><title>test</title></head>
HTML;
?>

と出力するようにしています。しかしこれだと、

<?php
function test(){
 if(〜){
  echo <<< HTML
  <html>
  <head><title>test</title></head>
  HTML;
 }
}
?>

のようにインデントを入れた場合にインデントまで出力することになってしまいます。
echoやprintを使用して一行ずつ出力することも考えましたが、ソースの可読性など考えるといい方法とは思えませんでした。
こういう場合は外部ファイルにタグを記述しておき、それをfile関数などで読み出して、出力するほうがよいのでしょうか?
意見のなどよろしくお願いします。
0201nobodyさん2006/10/09(月) 22:19:52ID:???
》199
ttp://www.bnote.net/php/pear/mail_02_jp.shtml
RFC2822
>行の長さの制限
>この標準では1行中の文字数に2つの制限がある。それぞれの行の文字はCRLF
>を除いて、決して998文字以下でなければならず(MUST)、78文字以下であるべ
>きである(SHOULD)。
0202nobodyさん2006/10/09(月) 22:29:41ID:bFRkADqN
easy php で php my admin でデータベースの管理をブラウザ上から
行いたいのですが,文字化けしてて使えません.
対策方法お知りの方おられましたら,お教え願えないでしょうか?
0203nobodyさん2006/10/09(月) 22:36:35ID:???
>>201
それだ!!
でも、文字数は20〜30文字ぐらいなんですよ・・・

【100yen or 200yen】お前ら最高!でも俺の方が最高!

上みたいなヤツだと「最高!」あたりが文字化けしてしまうっす・・・
0204nobodyさん2006/10/09(月) 22:39:01ID:???
>>200
別にHTMLの部分までPHPにあわせてインデントする必要はないんじゃないの?
0205nobodyさん2006/10/09(月) 22:41:58ID:???
>>203
最初の「最高!」?
02062032006/10/09(月) 22:44:52ID:???
>>205
あ、すみません。最後の「最高!」でした。
それ以前は部分は文字化けしません。

今確認したところ、件名自体を短くして「俺は最高!」
のみに縮めた場合は文字化けせずに問題なく送信できます。
02072052006/10/09(月) 22:46:19ID:???
申し訳ないです。。。

×
>あ、すみません。最後の「最高!」でした。
>それ以前は部分は文字化けしません。


>あ、すみません。最後の「最高!」でした。
>それ以前の部分は文字化けしません。
0208nobodyさん2006/10/09(月) 22:55:01ID:???
>>204
インデントしないと見通し悪くなるっしょ。
0209nobodyさん2006/10/09(月) 22:59:11ID:???
出力後のHTMLのインデントを美しく揃えたくなってしまう俺様が来ましたよ
0210nobodyさん2006/10/09(月) 23:07:32ID:???
気持は分かる。
が、俺はついついインデントを全排除してとにかく楽な方に逃げてしまうなあ。
0211nobodyさん2006/10/09(月) 23:22:03ID:???
>>209
ノシ
0212nobodyさん2006/10/09(月) 23:27:09ID:???
> 200
インデントするもなんも、ヒアドキュメントの終端IDのある行はインデントできんでしょ。
見栄えもなんもあるかいな。
0213nobodyさん2006/10/09(月) 23:29:29ID:???
includeでもしてくれ
0214nobodyさん2006/10/09(月) 23:30:22ID:???
というか作りそのものがまず悪いよ
0215nobodyさん2006/10/10(火) 00:33:53ID:???
>>200
> ソースの可読性など考えると
ソースの可読性を考えてるやつはプログラムコードの中にHTMLを書いたりしない。
> こういう場合は外部ファイルにタグを記述しておき、それをfile関数などで読み出して、出力するほうがよいのでしょうか?
当然。

どうしてもソース中にHTML書きたいんなら、Perlじゃないんだからヒアドクなんて使わず
 if(〜){
  ?><html><?php
  ?><head><title>test</title></head><?php
 }
みたいにHTMLモードに入っちゃえば?
0216nobodyさん2006/10/10(火) 00:34:08ID:???
>>213
includeじゃ対応できない部分もあるよ。
たとえばwhileなどで動的にテーブル作る(セル数が変動する)ときとか。
これはプログラムの流れに沿ってHTMLも書かなきゃならんので、
やはりソースに合わせてインデントしたくなる。
02172002006/10/10(火) 01:02:53ID:???
自分も今動的な部分に困っています。

他にいい方法がない場合は外部ファイルに
<?php
$header = create_function('$title','
echo <<< HTML
<html>
<head><title>$title</title></head>
HTML;
');
?>
と書いてrequireなどして逃げようと思ってます。
0218nobodyさん2006/10/10(火) 01:17:02ID:???
>>217
なぜわざわざ関数化するんだよ。
ヒアドキュメント内の変数だって{}で囲めば、
requireで読み込んだあとに変数部分がきちんと展開されるぞ。
0219nobodyさん2006/10/10(火) 01:25:19ID:???
>>216
俺は表示の動的制御に関しては読み込まれるHTML側に<?php 〜 ?>埋め込みでPHPコードを書くかな。
HTMLファイル側に仕込むのは
・変数表示
・表示のフォーマット処理
・表示のON/OFF制御のためのif
・ループ処理
のみに制限すればSmarty辺りのテンプレートとほぼ同様の可読性を維持できるから問題は感じない。
逆に言うと、あの辺のテンプレートと同程度のコードは許容しないと外部ファイル化はまず無理。

>>217
いくらなんでもその書き方はありえないだろ。
外部ファイルにしている意味が全くないぞ。
0220nobodyさん2006/10/10(火) 01:55:21ID:???
>>219
具体的にどんな感じですか? 良かったら参考にさせて下さい。
0221nobodyさん2006/10/10(火) 02:11:18ID:???
219じゃないけど、話の流れにそって俺なりのテンプレートの一部を書いてみる。
ショートタグ派的にはだいたいこんな感じ。
(というか、テンプレートにこういう風に書けるように、require前に変数を作成しておく)

<? foreach ($this->list as $item) : ?>
 <tr>
  <td><?=h($item->number)?></td>
  <td><?=h($item->name)?></td>
<?  if ($item->displays_body) : ?>
  <td><?=h($item->body)?></td>
<?  else : ?>
  <td>ひみつ</td>
<?  endif ?>
 </tr>
<? endforeach ?>

ちなみに俺はテンプレートの中でwhileは極力使わない。
ループは全てforeachで済ませられるよう努力する。
0222nobodyさん2006/10/10(火) 05:41:49ID:???
表示制御でwhileなんて、使う方が難しくないか?
forを使わない、ってことなら分からなくもないけど。
02232212006/10/10(火) 07:59:33ID:???
>>222
まあ、そりゃそうだ罠。つーか、>>216でwhileの話が出てたから一応言ってみただけなんだけど。
ロジックを表示周りに一体化させたい衝動に駆られると、whileも出てくるんじゃない?
あとは、while (DBからfetch) の中で直にechoして、メモリをすっきりさせてみたい年頃だったりとか。
02242002006/10/10(火) 08:37:53ID:???
>>217の書き込みが不適切だったことにお詫び申し上げますorz

>>218
要するに、呼び出し側で
function test(){
$title = "testaaaa";
require("header.php");
}
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>$title</title></head>
HTML;
?>
ということでよろしいのでしょうか?
02251832006/10/10(火) 09:28:01ID:???
>>186
通常のブラウザからのログインと同じように
対象のURLに自身のPCからアクセスするという意味です。

ためしにcURLでやってみたら、
上手くログインはできたものの
自身のサーバ経由で読み込むため、
ログイン先のシステムによっては、相対パスなどで指定されていて
リンク先などが正常に表示されませんでした。
0226nobodyさん2006/10/10(火) 09:30:10ID:???
そりゃそうなるにきまってますよね。BASEタグでも挿入しときゃ委員では?
0227nobodyさん2006/10/10(火) 10:43:46ID:???
じっくり考えてみたけど、要するに183さんがやりたいのは
PHPでプロキシーサーバーを作りたいってことなのかな?
0228nobodyさん2006/10/10(火) 11:01:58ID:???
183はHTTP_Requestでも使ってろ
02291832006/10/10(火) 11:33:55ID:???
>>227
いえ、逆に単にID/PASSが分からないログインボタンを作りたいだけです。
現在の状況(cURL)がプロキシサーバーになってしまっているので困ってます。
知人にログインして見せたい情報があるんですが、
ID/PASSは知らせたくない、というだけの状態です。

クライアントPCから相手先のサーバにデータを送る必要があると思うのですが、
上の場合、PHPサーバーから相手先のサーバにデータを送ってしまうので
難しいのでしょうか。
02301832006/10/10(火) 11:40:05ID:???
ちょっと考えてみたのですが、
PHPサーバーから相手先のサーバーにPOSTしても
ログイン先のサーバーでは
PHPサーバーと対のセッション情報保存されるわけで、
クライアントがログインできたかどうかとは全く別問題なんですよね
0231nobodyさん2006/10/10(火) 13:07:37ID:???
以前したらばを対象に似たようなの作った事あるけど、
こういうのって発覚するとロクな事にならないので止めといた方が良い。

単にログイン後のページを見せたいのなら
スクリーンショット撮って適度にモザイクかけて渡せ。
0232nobodyさん2006/10/10(火) 13:29:01ID:???
>>224
だから呼び出す側でも関数化する必要ないし、呼び出される側では変数を{}で囲めって。
正しくは(最も単純なのは)↓

$title = "testaaaa";
require("header.php");
としておき、header.phpで
<?php
echo <<< HTML
<html>
<head><title>{$title}</title></head>
HTML;
?>
02332002006/10/10(火) 14:56:02ID:???
>>232
今作っているものの都合上、関数化して書き込んでいました。
すいませんorz
0234nobodyさん2006/10/10(火) 15:12:57ID:VCBK9AiM
PHPで、日替わりでヘアスタイルの画像を表示するサイトを作りたいです

でも全然分かりません…
親切な方、いらっしゃったら教えてください
画像は365枚あります。
0235nobodyさん2006/10/10(火) 15:33:44ID:???
>>234
<img src="hair_<?php printf("%03d",date("z")) ?>.jpg">
0236nobodyさん2006/10/10(火) 15:47:46ID:???
普通JSでやるだろ
0237nobodyさん2006/10/10(火) 16:07:01ID:???
>>236
普通JSではやらない。
JSオフ環境の人も多い今の世の中ですよ奥さん。
0238nobodyさん2006/10/10(火) 16:47:44ID:???
オフにしてるのなんて、アダルトサイトに行く人だけw
0239nobodyさん2006/10/10(火) 17:02:05ID:???
まぁ意識レベルの問題だけどね。
何も危ないのはアダルトだけじゃないよ。
価格.com事件のようなのもあるしね。
0240nobodyさん2006/10/10(火) 17:03:09ID:???
***みんな誰でも無料で使える高速FTP「てぶ鯖」***

てぶ鯖は・・・
♪誰でもどんなファイルでもアップロード可能!!
♪アップロードされているファイルは誰でもいくらでもダウンロード可能!!
♪たくさんアップロードした人にはなんと抽選でプレゼント!!

だからみんなで楽しく使っちゃおう!!


ftp://tebukuro.ath.cx
User:anonymous
password:メールアドレス

++++*******てぶ鯖********++++
0241nobodyさん2006/10/10(火) 17:33:58ID:???
>>238
相手が携帯かもしれない
って考え付かないですか
0242nobodyさん2006/10/10(火) 17:51:02ID:VCBK9AiM
>>235さん

ありがとうございました!!なんとか出来ました!
0243nobodyさん2006/10/10(火) 19:27:44ID:HtJUF5F+
$a = array('111', '000', '222','222', '000', '222''888', '426', '222'・・・・・・・・);

このような配列が有る場合に
000は何個
111は何個
222は何個
と配列の中身をカウントする方法は有りませんでしょうか?
0244nobodyさん2006/10/10(火) 19:38:51ID:???
>>243
要素を一個取り出して、array_diffかけてから減った個数を調べる
0245sage2006/10/10(火) 19:57:14ID:???
RSSフィーダー(php)の海外のプログラムいじっているんですが、
下記のように文字化けします。
心当たりありませんか?

?¢?¢?¢?¢?¢

とか

\???\?\£
0246nobodyさん2006/10/10(火) 20:16:03ID:HtJUF5F+
>>244
ありがとうございます。

理解出来ませんでした。
もう少し優しいやり方はないでしょうか?
0247nobodyさん2006/10/10(火) 20:30:23ID:???
>>246
244じゃないけどそれが理解できなかったら他の方法も無理なんじゃないかな。
これ以上ないくらいに分かり易く説明してくれてるのに。
決して難しくないから頑張って理解してみるといいと思うよ。
@要素を1個取り出す
Aarray_diffをかける
B減った個数を調べる
順を追って解決していくといいよ。

別な方法としては
$aの要素をキーとする新しい配列を作り、1つ要素があるごとにそのキーの値を1増やす。
これを$aの全ての要素について行う。
0248nobodyさん2006/10/10(火) 20:31:55ID:???
>>246
foreach ($a as $b){
$c[$b]++;
}

print_r($c);
0249nobodyさん2006/10/10(火) 20:34:22ID:???
>>246

$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');

foreach ($a as $value) {
if (!isset($b[$value])) {
$b[$value] = 1;
} else {
$b[$value]++;
}
}

print_r($b);

前にもやったぞこれ。
0250nobodyさん2006/10/10(火) 20:39:20ID:???
キーにする方法だと、array(1, '1', true)とかで問題が起きたり。
0251nobodyさん2006/10/10(火) 20:54:22ID:???
>>243
つーか、array_count_values($a)で一撃だと思うんだが。
250みたいな問題が起こる可能性があるなら、値を全部serializeすればいいと思う。
0252nobodyさん2006/10/10(火) 21:02:05ID:HtJUF5F+
試行錯誤している内に皆様レスありがとうございます。
こんだけ時間掛けてやっと実行出来たのがこれなのですが
問題等ありますでしょうか?
<?php
$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');
$a2=array_unique($a);
foreach ($a2 as $a2_num => $aaa) {
foreach ($a as $a_num => $aaaa) {
if ($a2[$a2_num]==$a[$a_num]) {
$cnt[$a2_num]=$cnt[$a2_num]+1;
}
}
$a_cnt[$a2[$a2_num]] = $cnt[$a2_num];
}
while(list ($key, $val) = each($a_cnt)) {
print (" $key は、$val 個です<br>\n");
}
?>
0253nobodyさん2006/10/10(火) 21:10:21ID:???
>>251
serializeって…こうか!
array_count_values(array_map('serialize', $a));

目から鱗w
0254nobodyさん2006/10/10(火) 21:21:17ID:???
>>251
凄いですね
$a = array('111', '000', '222', '222', '000', '222', '888', '426', '222');
$b = array_count_values($a);
while(list ($key, $val) = each($b)) {
print (" $key は、$val 個です<br>\n");
}
数行で同じことが出来ました。
>>252と比べると非常に情けないです・・・・
0255712006/10/10(火) 22:44:48ID:???
何度もすみません。
同一Windowsマシン上でApache + PHP & SQL Serverをうごかして、
PHPからSQL Serverのデータを取ってくる際、
odbc_connectやmssql_connectで出力エンコーディングを
指定することはできないのでしょうか?
いろいろ調べましたが、エンコーディングを設定するということができないようです。
FreeTDSのodbc.iniには書けるようですが、Linux用のドライバですし〜や@は化けるようです。
以下のようにCOMを使ったらできたんですが重いです。
$conn = new COM("ADODB.Connection", NULL, CP_UTF8);
$conn->Open("Driver={SQL Server};Server=servername;Uid=user;Pwd=passwd;Database=databasename");

なんというか、こんなやり方でしか、エンコーディング指定できないというのは、
かなり信じられないんですが・・・本当に困ってます。
何か知っている人がいたらご教授ください。
0256nobodyさん2006/10/10(火) 23:14:34ID:UY1nIn3b
(int $x) と (str $y) に、(int 0-9)と(str a-z)を代入して二文字のパターンを、ループ処理で
全て求めたい:

例: 00, 01, 02, …… 98, 99, …… 0a, 0b, 0c, …… 9x, 9z

数字のループは分かるんだけど、文字列のループはどうすれば出来るのかな?
for ($i = 0; $i < 99; $i++) {
    echo $i;
}
0257nobodyさん2006/10/10(火) 23:16:53ID:UY1nIn3b
[訂正]
(int 0-9)と(str a-z)の組合せで出来る二文字のパターンを、ループ処理で
全て求めたい
0258nobodyさん2006/10/10(火) 23:34:23ID:???
for ($i=ord('a'); $i<=ord('z'); $i++) {
echo chr($i);
}
0259nobodyさん2006/10/10(火) 23:41:28ID:???
for ($i=0;$i<36*36; $i++) {
echo base_convert($i,10,36);
}
0260nobodyさん2006/10/10(火) 23:55:07ID:UY1nIn3b
ありがとう。
0261nobodyさん2006/10/11(水) 00:03:42ID:???
便乗
0-9、a-z、A-Zでは?
0262nobodyさん2006/10/11(水) 00:16:16ID:???
foreach(range(0,9) as $c){
    foreach(range('a','z') as $n){
        $a[] = $c.$n;
    }
}
print_r($a);

---

ところでこれだとなんでzzまで出ちゃうんだ?

for($i='a';$i<='z';$i++){
    echo $i;
}


0263nobodyさん2006/10/11(水) 00:18:11ID:???
大文字小文字順番逆だけど

function jump(&$i) {
    if ($i == 58) $i = 65;
    elseif ($i == 91) $i = 97;
}

for ($i=48; $i<=122; $i++) {
    jump($i);
    for ($j=48; $j<=122; $j++) {
        jump($j);
        echo chr($i).chr($j);
    }
}
0264nobodyさん2006/10/11(水) 00:23:51ID:???
>>262
ちゃんとできてるようにみえるけど
0265nobodyさん2006/10/11(水) 00:25:15ID:???
>>264
スマソ
かんちがい
0266nobodyさん2006/10/11(水) 00:27:32ID:???
$a = array_merge(range(0,9),range('a','z'),range('A','Z'));
foreach($a as $b){
    foreach($a as $c){
        foreach($a as $d){
            $aa[] = $b.$c.$d;
        }
    }
}
print_r($aa);
0267nobodyさん2006/10/11(水) 00:28:34ID:???
>>263
サンキュ
0268nobodyさん2006/10/11(水) 00:29:14ID:???
>>266
っと、こっちもサンキュ
0269nobodyさん2006/10/11(水) 02:22:14ID:8Czx1vGv
http://lint.s1.x-beat.com/up/img/up11678.txt
(実際は1行ずつ改行されてます)
上記のようなユーザーエージェントがある場合に
機種名だけを切り取りたいのですが
うまくやる方法はありませんでしょうか?

お手本ありましたらお願いいたします。
0270nobodyさん2006/10/11(水) 07:06:40ID:???
>>269

機種名というのは携帯電話端末の?

ユーザーエージェントの識別名は、クライアント側の自己申告なので
難しいと思う。まず各メーカーの仕様書を見ろ。

$lines = file ('filename.txt');
foreach ($lines as $line) {
    $result = str_word_count ($line, 1);
    echo "{$result[0]}<br>\n";
}

ほとんどのユーザーエージェントは、機種名を識別名文字列の最初に持って来ているので
これで取得出来ると思うが……。
0271nobodyさん2006/10/11(水) 07:54:23ID:???
>>269
キャリアをまず判別して、キャリアごとの機種名ぶっこヌキ処理書いて
引っこ抜くしかないんじゃないの?
0272nobodyさん2006/10/11(水) 08:00:11ID:???
サイトのリニューアルをしてるんですけど、

フレームワーク使うからurlが変わっちゃいます。

いままでのurlには末尾に.htmがついていたのですが、

フレームワークのurlには.htmがついていません。

.htm 付のurlでアクセスがあった場合.htm なしのurlに

転送できるのでしょうか。
0273nobodyさん2006/10/11(水) 08:25:09ID:???
それはトップページだけでいいの?それとも大量に転送したいURLがあんの?
トップだけでいいなら元々のHTMLと同じ名前のHTMLを1個置いといて
中に
<?php Location("http://フレームワークなサイトのURL/"); ?>
って1行仕込んどくだけでいいと思うけど。
0274nobodyさん2006/10/11(水) 08:37:40ID:???
mod_rewrite
0275nobodyさん2006/10/11(水) 09:46:15ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0276nobodyさん2006/10/11(水) 10:11:16ID:???
↑なんでこの発言、定期的に書き込まれるの?
0277nobodyさん2006/10/11(水) 10:15:40ID:???
>>276
え!? そんなのあったか?
5スレほど過去ログ遡ってみたが1個も見つからないぞ。
0278nobodyさん2006/10/11(水) 12:35:16ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0279nobodyさん2006/10/11(水) 12:41:52ID:???
感謝を素直に受け取れない偏屈者がいたようだw
0280nobodyさん2006/10/11(水) 12:57:14ID:i80IIJil
php5でis_a()を使うと「is_a(): Deprecated. Please use the instanceof operator」と
言われるんですが、使わない方がいい理由って何かあるんでしょうか?
0281nobodyさん2006/10/11(水) 13:20:32ID:???
ってかさ、読もうとしろよ翻訳使ってもいいからさ
「instanceof演算子を使って下さい」
0282nobodyさん2006/10/11(水) 13:24:57ID:???
>>281
お前も日本語読む努力をしようよ。
「何故、これが非推奨になってるのか」を聞いてる質問だろ?
これが非推奨でinstanceof演算子を使えといわれてることは
質問者はすでに理解してるんだよ。その理由を聞いてんの。
■ このスレッドは過去ログ倉庫に格納されています