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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/07/31(金) 21:19:01ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0581nobodyさん2009/08/20(木) 15:19:51ID:???
つスレタイ
0582nobodyさん2009/08/20(木) 15:24:32ID:???
下らなくない質問は余所でやれ。
0583nobodyさん2009/08/20(木) 15:35:44ID:???
>>580
データ全部読み込んでから、先頭に書いて元からあったデータを追加とか。
DB使ったほうがいいんじゃね。

あと>>1呼んでID出せ
0584nobodyさん2009/08/20(木) 15:40:22ID:???
>>580
ログを書き換えるということと追記は意味が違うよ
ログがどのくらいの量っていったってメモリを食いつぶすような量にはならないでしょ
もしも問題になるほどの量ならそもそも管理方法に問題がある
05855802009/08/20(木) 15:44:42ID:2mPTkGjX
レスありがとうございます。
ID出すの忘れてました。

>>583
DBをいじるのはあまり慣れていないので・・・・。
>>584
配列に読み込んでも大丈夫でしょうか・・・・。

ファイルポインタを終端に置き、そこから逆に先頭まで一行ずつ読み込むのは
無理でしょうか?
0586nobodyさん2009/08/20(木) 15:46:20ID:???
そしたら文章逆になるやん
0587nobodyさん2009/08/20(木) 15:48:05ID:???
>>580
$logfile = "example.txt";
$write = "追加したい文字";
$lines = file($logfile,FILE_IGNORE_NEW_LINES);
foreach($lines as $value){
  $add .="\n".$value;
}
if(($fp = fopen($logfile,'a'))!==false){
  fwrite($fp,$write);
  fclose($fp);
}else{
  return ("書き込みに失敗");
}

こんなかんじで
0588nobodyさん2009/08/20(木) 15:49:51ID:???
>>585
file_get_contentsつかってStringに読み込めばいい
それで先頭に新しいログ\nつけたしたものを
ファイルを書き換え(一旦中身消して)すればいい
0589nobodyさん2009/08/20(木) 15:49:56ID:???
$add .="\n".$value; は $write .="\n".$value; だスマソ
0590nobodyさん2009/08/20(木) 15:51:40ID:???
使い回せるようにfile使ったけど単に追記するならfile_get_contentsのほうがよかったかな
0591nobodyさん2009/08/20(木) 15:56:48ID:???
>>580
ファイルにどれくらいの行数を保存しようとしているんだ?
万単位になるならデータベースを使うのがいいと思う

格納するデータが少ないのであれば
態々降順にファイルを書かなくても最後に追記
ファイルを配列に格納>降順ソート>foreachで十分じゃないのか?

下手な小細工するよりこっちの方が早いと思う
05925802009/08/20(木) 16:38:09ID:2mPTkGjX
皆さんレスありがとうございます。

>>588に書かれているやり方で、読み込みは先頭からするのが一番簡単ですかね・・・。

>>591
あまり決まっていないので、更新した内容があれば延々と書き続けると思います。
ただ、古いログは消しても支障ないので、あまりにも増えてしまったら消してしまう予定です。
05935802009/08/20(木) 17:16:35ID:2mPTkGjX
無事成功しました。
ありがとうございました。
0594nobodyさん2009/08/20(木) 18:01:55ID:WKWR+oFl
Apacheが起動しません。

error_logを見ると
PHP Warning: PHP Startup: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in Unknown on line 0

PHP Fatal error: PHP Startup: Timezone database is corrupt - this should *never* happen! in Unknown on line 0

と書かれています。

[root@localhost]# httpd -k start
[root@localhost]#

起動時にはエラーは出ませんが、実際は起動されていません。
上記のエラーが書き出されます。

PHPの問題なのかApacheの問題なのかOSの問題なのかすらわかりません。
似たようなエラーでは、php.iniのdefault.timezone=ASIA/Tokyoで解決してありますが、
こちらはそれでも解決しないです。
0595nobodyさん2009/08/20(木) 18:06:48ID:???
php.iniが読みに行けてないとみた。
0596nobodyさん2009/08/20(木) 18:14:50ID:WKWR+oFl
# PHP.ini Dir
PHPIniDir "/etc"

のように、php.iniの場所を指定してあげましたが、
やはりエラーが出てしまいます。

0597nobodyさん2009/08/20(木) 23:48:48ID:???
Apacheを再起動してないとみた。
0598nobodyさん2009/08/20(木) 23:49:35ID:???
default.timezoneがそもそもおかしいとみた。
0599nobodyさん2009/08/20(木) 23:54:57ID:???
HDDがいかれてると見た
0600nobodyさん2009/08/21(金) 00:10:47ID:e3oLJKKb
【OS名】centOS
【PHPのバージョン】php5.2
【質問内容】
mbstring.http_inputにSJIS
mbstring.internal_encodingにEUC-JP
のような設定です。
AjaxのページからのリクエストはUTF-8になってしまうので、
$_REQUESTに入るパラメータの自動文字コード変換をしたくないのですが、
方法ありますでしょうか?
mb_convert_encoding($_REQUEST["TEST"],"SJIS","EUC-JP");
で戻そうかと思ったのですが、
たまに文字の一部が消えてしまいます。
0601nobodyさん2009/08/21(金) 01:02:02ID:???
PHPはUTF-8が標準、json_encodeとかいくつかの関数はUTF-8でしか受け付けない
0602nobodyさん2009/08/21(金) 01:08:30ID:???
PHPの自動変換って無効にするのが基本かと思ってた
0603nobodyさん2009/08/21(金) 06:39:37ID:1d2neVQK
HTTP_Requestで、POSTフォームのあるページにアクセスするときに、
valueしてあるところは弄らなくていいかなぁと思って(radioボタンとか)、
必要なフォームだけaddPostDataでポストしといたのですが、
結果は、スルーしたポストフォームは全て空になってしまいました。
クライアント側のブラウザに依存して判断しているからだと思うのですが、
これがもしもvalueで選択済みのフォームが大量にあった場合、
HTTP_RequestするときはaddPostDataも
その数だけ指定しなければならないのでしょうか?
value済みフォームは有効になるような都合の良いHTTP_Request関数などないでしょうか。
よろしくおねがいします。
0604nobodyさん2009/08/21(金) 08:44:12ID:???
value済みフォームって何?
0605nobodyさん2009/08/21(金) 12:11:07ID:PCqrhdqr
$hairetsu = array("test" => "pong","ok" => "ng");

test.logに"array("test" => "pong","ok" => "ng");をそのまま文字列として書き出したいのですが、やはりいちいちクォートして書き込むしかないのでしょうか?
0606nobodyさん2009/08/21(金) 12:15:06ID:???
シングルクォーテーションがあるじゃない
0607nobodyさん2009/08/21(金) 12:17:30ID:???
変数に格納された記述をそのまま出力する関数があるから探してみ
0608nobodyさん2009/08/21(金) 12:24:19ID:PCqrhdqr
>>606-607
var_export($hairetsu,TRUE);
でいけました。
ありがとうございましたm(__)m
0609nobodyさん2009/08/21(金) 12:26:12ID:???
>>605
str_replace("\n","",print_r($array,true));
0610nobodyさん2009/08/21(金) 14:22:44ID:WhelcFIU
質問します。幼稚園の年間イベントをまとめるアプリを作ります。
遠足などのイベントのページに、参加した子供たちを組分けして出力します。
(イベント名の見出しの下に、A組の参加生徒出力、B組の参加生徒出力、C組の… という形)
利用するテーブルは
○table1 イベント情報テーブル
 id, eventName, eventDay
○table2 参加した生徒テーブル
 id, evId, studentName, kumi
です。

この状況で、table1.id=table2.evIdという条件でJOINし、SELECTのクエリ(以下)を実行して参加生徒を抽出するんですが、
 SELECT table1.*, table2.evId, table2.studentName, table2.kumi
 FROM table1 LEFT JOIN table2
 ON table1.id=table2.evId
 WHERE table1.eventName = '○○山の遠足';
どうやって組ごとにまとめて出力したら良いのか迷っています。(クエリの結果は当然、全ての組を含んでいます。)
自分の考えでは、
1)クエリ結果に対してforeach
2)それぞれのtable2.kumi値を取得して
3)重複を省きながら$kumiAry配列にpush
4)出来上がった$kumiAryの値をキーにしてリスト出力
という流れです。
しかし、もっとマシな効率的なやり方ないでしょうか?
クエリを書き換える必要があれば、それも教えていただけると嬉しいです。
よろしくお願いします。
06116102009/08/21(金) 14:23:55ID:WhelcFIU
すみません、書き忘れました
環境は php5.2.6 Mysql5 です
0612nobodyさん2009/08/21(金) 14:38:38ID:???
クエリ結果に対してforeachかけなくても、クエリ結果から1件ずつ取得する時に
while ($row = fetchする関数()) {
$students[$row['kumi']][] = $row;
}
と連想配列に入れればいいのでは。

あるいは、幼稚園規模なら組ごとにクエリ発行してもいいと思うけど
0613nobodyさん2009/08/21(金) 16:19:58ID:???
私だったら
ORDER BY table2.kumi,table2.studentName
って並べ替えしておいて前の処理とkumiの値が変わってたらスタックを出力&クリアで
次の組に備えるとかやるかなぁ($oldkumiとか)

つか少し気づいたとこは普通、生徒管理テーブル作ってstudentNameとkumiはそっちのテーブルだな。
0614nobodyさん2009/08/21(金) 16:25:52ID:???
そうだね。正規化してから始めた方がいいかも。
06156132009/08/21(金) 16:28:52ID:???
まぁ質問のために簡略化して書いてるのかもしれませんが。
0616nobodyさん2009/08/21(金) 16:30:18ID:o/Rwitrf
PHP5.3にFileinfoインスコしようとおもたらすでにパッケージに組み込まれてた
質問しようと思ったけど完全に独り言になってしまったぬるぽ
0617nobodyさん2009/08/21(金) 16:42:31ID:???
>>613
なんか古臭い手法ですね
0618nobodyさん2009/08/21(金) 17:01:52ID:???
では>>617が最先端の手法を
↓↓↓↓↓↓
06196132009/08/21(金) 17:12:10ID:???
だって古いひとだものww
↓↓↓↓↓↓
では>>617が最先端の手法を
↓↓↓↓↓↓
0620nobodyさん2009/08/21(金) 17:12:40ID:???
糞スレ
0621nobodyさん2009/08/21(金) 17:16:34ID:???
最近まともな流れだったのに
>>617お前しんでいいよ
自分の答えを言った上でケチつけろ
ケチつけるだけなら100年ROMってろ
0622nobodyさん2009/08/21(金) 17:28:17ID:???
お前もそうじゃん
0623nobodyさん2009/08/21(金) 17:37:45ID:???
>>622
どこが「そう」なのかkwsk
日本語理解できない人?
0624nobodyさん2009/08/21(金) 17:47:48ID:???
>>623
>>621嫁
0625nobodyさん2009/08/21(金) 17:51:20ID:???
お前らまたやってんのか...。

とりあえず>>617は最先端の手法を頼む
↓↓↓↓↓↓
0626nobodyさん2009/08/21(金) 17:55:42ID:???
.>>624
ハア?
>>613の回答にケチつけた覚えはねえよ
>>617なんてそもそも回答になってねえし

>>617まだですか?早く最先端教えてくださいよ
0627nobodyさん2009/08/21(金) 17:59:05ID:???

   ======糞スレ終了======
0628nobodyさん2009/08/21(金) 18:02:50ID:???
答えられないから終了にしたいんですねw
なら最初から黙っとけよ
06296102009/08/21(金) 18:13:11ID:WhelcFIU
>>612-614
どうもありがとうございました
>>612
なるほどー、組をキーにした連想配列に入れて、そこから出力するわけですね
たしかにそっちのほうが楽かもしれない
>>613
すみません、スタックというのが理解できません。調べたんですがいまいちわからずで…
kumiの値を出力ごとにチェックして、例外(前のと違う)ときに次の組として処理し直すわけですね?
ちょっとやった事がない処理です。どうやったら良いのか考えてみます。。

もう一つ質問してもいいですか?
実はそれぞれのお返事をもらう前に、上で書いた自分なりの方法で「3)重複を省きながら$kumiAry配列にpush」を
とりあえずやっていたんですが、思ったように動きません。

$kumiAry = array();
foreach($allStudentAry as $key=>$value){
 if(!in_array($kumiAry, $value['kumi'])){
  array_push($kumiAry,$value['kumi']);
 }
}
array_unique($kumiAry);
print_r($kumiAry); 
結果、Array ( [0] => 3 [1] => 3 [2] => 3) と、思い切り重複してます。どこが問題なんでしょうか?

2つの方法で書き直す前に、スッキリしたいので教えてもらえると嬉しいです。
0630nobodyさん2009/08/21(金) 18:37:11ID:???
>>629
> すみません、スタックというのが理解できません。調べたんですがいまいちわからずで…
> kumiの値を出力ごとにチェックして、例外(前のと違う)ときに次の組として処理し直すわけですね?
> ちょっとやった事がない処理です。どうやったら良いのか考えてみます。。

基本的に上記の理解であってます。
1レコードづつ読み込んでは、出力用変数(メモリ)に出力形式なりで溜め込んで(これをスタックって言ってた)
kumi値が変わったところで溜め込んだものを出力。語弊を生むような語法を使ってしまいすいません。
>>617に言われたとおり昔からあるデータベース読み込みの基本的なアルゴリズムですよw
06316072009/08/21(金) 21:12:31ID:???
>>608
いいってことよ
お礼は俺だけでいいよ606は関係なかったみたいだしw
0632nobodyさん2009/08/21(金) 21:33:12ID:???
スタックとかPHPでやるもんじゃなくね?
0633nobodyさん2009/08/21(金) 22:43:05ID:???
なんで?
配列でできるじゃん
0634nobodyさん2009/08/21(金) 22:47:53ID:PNbb36xj
◆質問です。
OS:windowsXP SP3 Pro
PHP:5.2.9

自PCに飛んでくるパケットをすべてキャプチャしたいです。
phpsnifferなるものを見つけて試したのですが、うまくいきませんでした。
(エラーは出ないが★部分で止まったまま何も起こらない)
http://eder.us/projects/phpsniffer/
----------プログラマの主要な処理を抜き出したのが以下です。
$sock = socket_create(AF_INET, SOCK_RAW, SOL_TCP);
socket_set_option($sock, SOL_SOCKET, SO_REUSEADDR, 1);
$socks=array($sock);
$w = $e = NULL;
socket_select($socks, $w, $e, NULL);//★
socket_recv($sock, $packet, 65536, 0);
var_dump($packet);
-----------------------------
〜〜板いけ 〜〜のサイト見ろなどでも構いませんので
どなたか回答なりヒントをいただけないでしょうか。
06354772009/08/22(土) 01:13:38ID:???
tcpdump っておもったけどWindowsか、、
06366342009/08/22(土) 02:01:56ID:DV5PllOD
>>635
ヒントありがとう tcpdumpのwindows版でwindumpってのがあるみたい。
popenとの組み合わせでなんとかなるかも。
試してみます
0637nobodyさん2009/08/22(土) 02:52:54ID:h6KUXpBq
HTTP_Requestでcheckboxをチェックするのってどうやるのか教えてください
0638nobodyさん2009/08/22(土) 02:56:11ID:h6KUXpBq
自己解決しました
0639nobodyさん2009/08/22(土) 14:15:17ID:qs0RE9DR
クラスを定義したmyClass.class.phpをrequire_once('myClass.class.php')して実行し
クラス中のメソッドを複数回実行してるんですが、最初の一回だけ動いて二回目以降は動きません。
なぜでしょうか?

myClass.class.php
=================================
class myClass{
 function __construct(){
  require_once("arrayList.php"); //配列リストの読み込み
  $this->musicGenreAry = $musicGenreAry;//$musicGenreAryはarrayList.phpに定義されてます
 }
 function func($aryName,$num){
  if($aryName =="music"){
   return $this->musicGenreAry[$num];
  }
 }
}

読み込む側の.php
=================================
<?php
function smarty_modifier_NUMtoTEXT($num,$aryName){
 require_once("myClass.class.php");//記入値・登録値を取得するクラスの読み込み
 $myClass = new myClass();
 echo $myClass->func($aryName,$num);
}
?>

すみません、続きます。
06406392009/08/22(土) 14:39:16ID:qs0RE9DR
639のつづきです

読み込み側の.phpを実行させるファイル test.tpl(smartyのテンプレートファイル)
=================================================
<p>
好きな音楽は、
1){$rsGakki.music1|NUMtoTEXT:'music'} (※修飾子プラグインとして実行しています)
2){$rsGakki.music2|NUMtoTEXT:'music'}
です
</p>

こんな感じです。
これで、1)ポップス  とは出るものの、2) のあとに何も表示されず空欄になってしまいます。
なぜなんでしょうか。smarty修飾子プラグインのルールに何かあるんでしょうか?
検証として、別に用意した普通の .phpの中で、 $myClassObj->func('music',1)、$myClassObj->func('music',2)と
したところ、ちゃんと目標の値を2つとも出力します。

smarty固有の問題ならsmartyスレで聞くべきなんですが、requireとかスコープとかで
間違ってるのかも知れないと思い、ここで聞きました。
例えば読み込み側.phpの、require_once()のタイミングはあそこでいいんでしょうか?
基本的におかしな事をしてるような気がして、自分ではわからない状態です。

色んなジャンルにまたがっててすみません。よろしくお願いします
0641nobodyさん2009/08/22(土) 14:50:44ID:???
requice_onceだから
06426392009/08/22(土) 15:04:14ID:qs0RE9DR
すみません、書き忘れましたが環境は
PHP5.2.6、SMARTY2.6、CentOS5.3 です
あと、今
 function func($aryName,$num){
  if($aryName =="music"){
   print_r($this->musicGenreAry); //この行追加
   print "abc";
   return $this->musicGenreAry[$num];
  }
 }
したところ、print_rの結果を一度しか表示しないです(2回コールしてるので2回出るはず)
print "abc";は二回出力します。
配列が吹っ飛んでるのかな? なぜでしょうか。。
0643nobodyさん2009/08/22(土) 15:55:35ID:TG4jntAz
>>641
ありがとうございます
今出先なので、帰宅したら試してみます!
0644nobodyさん2009/08/22(土) 16:07:13ID:zxIfIvf2
PDOのprepare()でDB関数をバインドすることは出来ないんでしょうか?

イメージとしてはこんな形式で…
$pstmt->bindParam(':foo', 'NOW()');
0645nobodyさん2009/08/22(土) 16:12:51ID:???
んなことしなくても、select now() as nowdate ;
ってクエリをprepareして実行してnowdate ってカラムをとればいいじゃん。
0646nobodyさん2009/08/22(土) 16:15:53ID:???
bindParamって変数のバインドだぞ
fooがNOW()という条件を作りたいならSQL文でfoo = NOW()と書きゃいいだけだろ
根本的に考え方が間違ってる
0647nobodyさん2009/08/22(土) 16:34:41ID:???
>>644
わざと出来ないようにしてると思ってもいいかも。
0648nobodyさん2009/08/22(土) 18:21:36ID:???
暇だから質問してこいよ
fusianasaやって質問した奴は全部俺が答えてやる
0649fusianasa2009/08/22(土) 18:30:22ID:???
やあ
0650nobodyさん2009/08/22(土) 18:41:54ID:kOYOIwI1
複数の画像がアップロードできてかるい、画像掲示板CGIって ないですかね
0651nobodyさん2009/08/22(土) 19:18:40ID:v9riHruT
return xml_parse(&$this->parser, &$data, true) ? $this->document : NULL;
ってどういう意味でしたっけ?
06526512009/08/22(土) 19:32:14ID:v9riHruT
すんません、ただの分岐でしたね
申し訳ない
0653nobodyさん2009/08/22(土) 19:34:44ID:???
xml_parse関数の実装は知らん
?:は三項演算子。xml_parse関数の戻り値がtrueなら$this->documentを、falseならnullを返す。
文字列やら数値が返ってきた場合は、真偽値にキャストしてから判定する。0ならfalseとかな。
0654nobodyさん2009/08/22(土) 19:45:28ID:???
>>649
fusianasaって書いたらそのままそっくり言われた通りのことしかできないのはゆとりなんだよ
俺はfusianasanって書いてほしかったな
0655nobodyさん2009/08/22(土) 20:33:26ID:839IHuhx
初歩的で恐縮です。

郵便番号7桁の数字 1234567 を 123-4567
にしたいです。教えてください。
0656nobodyさん2009/08/22(土) 21:36:21ID:???
substr_replace($var, '-', 3, 0)
0657nobodyさん2009/08/22(土) 22:16:18ID:839IHuhx
>>656 ありがとうございます。
0658nobodyさん2009/08/22(土) 22:16:35ID:???
>656
こんな関数あるんだな、初めて知った
0659nobodyさん2009/08/22(土) 22:23:59ID:???
>>656
2chにこんな親切な人がいるんだな、初めて知った
0660nobodyさん2009/08/22(土) 22:24:16ID:???
>>656
なにこのおしゃれな関数
これはいいな
0661nobodyさん2009/08/22(土) 22:32:21ID:LFACnGww
ディレクトリのパスを取得する関数はありますか
たとえば ./.../././ のようなパスを ../ に直したいのです
06626392009/08/22(土) 23:07:01ID:???
>>641
うまくいきました!
ありがとうございました
0663nobodyさん2009/08/22(土) 23:14:03ID:nZ+TC59g
fsockopen()とfwrite()つかってpost、getできるけど
これってhttp requestでのpostと何が違うの
前者は、いちいち要求ヘッダ書くのが面倒くさいだけ?
0664nobodyさん2009/08/22(土) 23:51:52ID:???
>>655

俺ならもっと楽な方法を取る。
replace系使うまでもないかなと
$a = 1234567;
$[a][2]= $a[2]+"-";
0665nobodyさん2009/08/23(日) 00:47:36ID:???
えっ
0666nobodyさん2009/08/23(日) 01:04:33ID:???
なにそれ
0667nobodyさん2009/08/23(日) 02:06:44ID:???
123 + "-" + 4567

くらいにやってることの意味がわかりやすく伝わるコードじゃない限り、
どれでも大差ないって思っちゃうなー。
0668nobodyさん2009/08/23(日) 02:18:18ID:???
正規表現について質問があります。
入力された文字列の中にYouTubeのURLが複数存在しており
それらの中から 【 TnqXQSbLUQ1  or TnqXQSbLUQ1 】 という文字列を
取得し、 $match (配列)に一度に取得するにはどうすれば良いでしょうか?

【入力された内容】
動画1
http://www.youtube.com/watch?v=TnqXQSbLUQ1 ・・・ �@
動画2
http://www.youtube.com/watch?v=TnqXQSbLUQ2 ・・・ �A

【自分で書いてみた正規表現】
$pattern = "/http:\/\/www.youtube.com\/watch?v=\/i";
$string = "http://www.youtube.com/watch?v=TnqXQSbLUQU&feature=featured";
preg_match($pattern,$string,$match);

※最終的には $match に �@>TnqXQSbLUQ1 �A>TnqXQSbLUQ2
を取得したいです。
0669nobodyさん2009/08/23(日) 02:33:15ID:???
>>668
"/youtube\.\w+\/watch\?v=([\w-]+)/"

ドメインがyoutube.jpだったりwww.youtube.comだったりするのでこんなかんじかな
0670nobodyさん2009/08/23(日) 02:44:57ID:???
668

>>669
ありがとうございます。やりたい事が出来ました。

あと、正規表現について勉強をしているのですが、
"/youtube\.\w+\/watch\?v=([\w-]+)/"
のうち最後の「+」とは一体どういう意味なのでしょうか?
0671nobodyさん2009/08/23(日) 02:49:03ID:???
[〜]が範囲内の文字、[A-Z]でA〜Zの文字を指す
\wが英単語つまり[a-zA-Z_0-9]と同じ意味
+は直前の表現が1個以上あることを示す。\w+ならa-zA-Z_0-9のどれかが1つ以上あとはググれ
0672nobodyさん2009/08/23(日) 03:00:14ID:RepkHWNs
PHP5つかってるんですが
includeでindex?q=item&a=1&b=2みたいな引数を読み込む方法はありませんでしょうか?
PHP4で絶対パス指定してた時代は出来たのですが!
怒ってます
0673nobodyさん2009/08/23(日) 03:07:28ID:???
>>671
ご丁寧にどうもありがとうございます。
ググって色々と勉強します。
0674nobodyさん2009/08/23(日) 03:11:54ID:???
>>672
>>4
0675nobodyさん2009/08/23(日) 03:30:00ID:RepkHWNs
>>674
はい4は読んでました。
たとえばキーワードで複数のAPI組み合わせてサイト作る機会って意外と多いと思うんですが
みなさんどうしてるんでしょうか。
PHP4に戻してCGI版PHP5にすればいけそうですか?
0676nobodyさん2009/08/23(日) 03:48:02ID:???
>>675
それでおk
0677nobodyさん2009/08/23(日) 04:01:33ID:RepkHWNs
>>676
マジですか?それとも軽くあしらう感じの答えですか?マジだったらありがとう
0678nobodyさん2009/08/23(日) 04:02:21ID:???
PHP6や7になっても4を使い続けるつもりなら良いだろう
0679nobodyさん2009/08/23(日) 04:07:32ID:RepkHWNs
そんなつもりないです
時代の波にのりたいです
0680nobodyさん2009/08/23(日) 04:08:55ID:???
そうかそうか
■ このスレッドは過去ログ倉庫に格納されています