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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0067nobodyさん2010/03/20(土) 20:48:03ID:cSBO/oUO
PHPのDOMを使って、getElementsByTagName()メソッドでタグを検索するのですが、
タグが見つからなかったときにタグを作成するという方法はどうするのでしょうか?
タグが見つからないとgetElementsByTagName()メソッドはFatal errorを吐いてしまいます。
エラー制御演算子は負荷が高いということなので、なるべく使いたくないのですが・・・

---test.xml---
<root>
<value1>hogehoge</value1>
</root>

---test.php---
$xml = new DOMDocument('1.0', 'EUC-JP');
$xml->load('test.xml');

$root_list = $xml->getElementsByTagName('root');
$root_node = $root_list->item(0);

$value2 = $root_node->getElementsByTagName('value2'); //value2要素は存在しないのでFatal error


(理想としては、

$value2 = $root_node->getElementsByTagName('value2');
if(!$value2){
$vlaue2 = $xml->createElement('value2');
$root_node->appendChild($value2);
}

というようにしてみたい。)
0068nobodyさん2010/03/20(土) 21:15:57ID:SPy4ZUkx
つかほんとに下らないんだけど
printでダブルクォート表示するのってどうやるんだっけ?
0069nobodyさん2010/03/20(土) 21:20:00ID:???
>>66
クラスのメソッドへのアクセス
class Test
{
  public function method() {
    print 1;
  }
}
t = new Test();
t->method();


>>68
print '"';
か
print "\"";
0070nobodyさん2010/03/20(土) 21:21:32ID:???
>>69
ありがとうございます
0071nobodyさん2010/03/20(土) 21:23:09ID:???
違う。クラスじゃなくてオブジェクトだからな
0072nobodyさん2010/03/20(土) 21:23:10ID:???
>>67
試してないけど
try {
  $value2 = $root_node->getElementsByTagName('value2');
}
catch (Exception $e) {
  $value2 = FALSE;
}
if ($value2) {
  //続き
}

もしくはtryの中で続きを書いちゃってもいいし
0073nobodyさん2010/03/20(土) 21:28:29ID:???
>>71
そうだね、すまん

>>66
正確には

class Test
{
  static function classFunc(){}
  public function objectFunc() {}
}
$t = new Test();//インスタンス(オブジェクト)生成
$t->objectFunc();//オブジェクトのメソッド

Test::classFunc();//こっちがクラスのメソッド

かな
0074nobodyさん2010/03/20(土) 21:37:38ID:???
クラスとオブジェクトは並列する概念じゃねぇよ
クラスをインスタンス化したのがオブジェクト
0075nobodyさん2010/03/20(土) 21:38:19ID:cSBO/oUO
>>72
すみません
完全な自分の勘違いでした。

Fatal errorが発生するのは、getElementsByTagName()メソッドを使った時ではなく、
返り値のDOMNodeListから取り出したDOMNodeを使った時にFatal errorが発生するということでした。

$root_list = $xml->getElementsByTagName('root');
$root_node = $root_list->item(0);

$value2_list = $root_node->getElementsByTagName('value2');
$value2_node = $value2_list->item(0);
$node = $value2_node->getElementsByTagName('string'); //$value2_nodeは存在しないオブジェクトなのでFatal error


お騒がせして誠に申し訳ございませんでした。
0076nobodyさん2010/03/20(土) 22:28:44ID:???
みんな綺麗なコードかけるようになるまで何年かかった?
0077nobodyさん2010/03/20(土) 22:32:30ID:???
15年だけどまだだなぁ
0078nobodyさん2010/03/20(土) 22:38:33ID:???
ネットに公開してる人のソースコードってみんな綺麗だよね、鬱になりそう
0079nobodyさん2010/03/20(土) 22:48:18ID:???
綺麗なコード書けるようになった
と思った瞬間に止まる
0080nobodyさん2010/03/20(土) 23:32:12ID:???
>>68
// ヒアドキュメント
echo <<<EOF
"
EOF;


// NowDoc (PHP5.3以降)
echo <<<'EOF'
"
EOF;
0081nobodyさん2010/03/20(土) 23:34:33ID:???
printでっつてんだろカス
0082nobodyさん2010/03/20(土) 23:41:52ID:???
echo を printに置き換えられることも知らないのかカスは
0083nobodyさん2010/03/20(土) 23:53:48ID:???
じゃあprintで書けよw
0084nobodyさん2010/03/20(土) 23:56:07ID:???
FOE!FOE!
0085nobodyさん2010/03/21(日) 01:43:30ID:5ebOvBjC
そういえばなんでprintなんでしょうね。
値を返さないechoのほうが速いはずなんですが。

それはそうと質問があります。
【OS名】xp
【PHPのバージョン】最新
【質問内容】リファラを取得できません。
テストしたブラウザのバージョンも最新。
$ref = $_SERVER['HTTP_REFERER'];
echo $ref;

FireFoxやChromeだと正しく表示されますが、IEだとNULLでした。なぜ?
0086nobodyさん2010/03/21(日) 01:56:46ID:???
HTTPヘッダー確認できる?
0087nobodyさん2010/03/21(日) 02:25:16ID:5ebOvBjC
getallheaders()でヘッダ確認しましたが、IEのみReferer;が格納されないようです。
特にリファラ偽装などは設定していないのですが。
0088nobodyさん2010/03/21(日) 02:53:05ID:???
>>87
IE8で再現出来ないから、
http://www.vector.co.jp/soft/winnt/net/se308001.html
こういう感じのソフトで生のHTTPヘッダーを確認してみてくれい
0089nobodyさん2010/03/21(日) 02:55:41ID:???
ありがとうございます、やってみます。
0090nobodyさん2010/03/21(日) 03:15:54ID:CFDZ8J9i
エラーがでるから添削して
<?php
include("../scripts/conf.inc.php");
$conndatabase = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or trigger_error(mysql_error(),E_USER_ERROR);
$db = "$mysql_database";
$user = user("username");
$id = addslashes($_POST["id"]);
$title = addslashes($_POST["title"]);
$text = addslashes($_POST["text"]);
$url = addslashes($_POST["url"]);
$id_from=maketransid();
$sql = "SELECT * FROM whitead WHERE id = '$id'";
$rs = mysql_db_query($db,$sql);
while($row=mysql_fetch_array($rs)){
$point = $row[4] * 100;
$sql = "insert into email_ads(emailid,id,description,site_url,ad_text,run_quantity,run_type,value,vtype,timer,login,hrlock,cheat_link,creation_date)
values('".$id_from."','".$user."','".$title."','".$url."','".$text."','".$row[2]."','".clicks."','".$point."','".points."','".$row[3]."','".0."','".0."','".0."','".date('Y-m-d-H-i-s')."')";
}
$res = mysql_query($sql) or die(mysql_error());
?>
0091nobodyさん2010/03/21(日) 03:18:21ID:???
values('".$id_from."','".$user."','".$title."','".$url."','".$text."','".$row[2]."','".$clicks."','".$point."','".$points."','".$row[3]."','". 0 ."','". 0 ."','". 0 ."','".date('Y-m-d-H-i-s')."')";
0092nobodyさん2010/03/21(日) 03:40:11ID:CFDZ8J9i
>>92
ありがとう!うまくできた。
↓動作はしても半端なくおもいの・・・・or2
<script language="php"> include("setup.php");</script>
<center>
<?php
include("../scripts/conf.inc.php");
$conndatabase = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or trigger_error(mysql_error(),E_USER_ERROR);
$db = "$mysql_database";
$id = addslashes($_POST["id"]);
$title = addslashes($_POST["title"]);
$text = addslashes($_POST["text"]);
$text = nl2br($text);
$url = addslashes($_POST["url"]);
$sql = "SELECT * FROM whitead WHERE id = '$id'";
$res = mysql_query($sql) or die(mysql_error());
$tr = "<tr>";
$trs = "</tr>";
while($row=mysql_fetch_array($res)){
$point = $row[4] / 1000;
0093nobodyさん2010/03/21(日) 03:40:56ID:CFDZ8J9i
print("<form method=\"post\" action=\"self_regist.php\">");
print("<input type=\"hidden\" name=\"id\" value=\"$id\">");
print("<input type=\"hidden\" name=\"title\" value=\"$title\">");
print("<input type=\"hidden\" name=\"text\" value=\"$text\">");
print("<input type=\"hidden\" name=\"url\" value=\"$url\">");
?>
<input type="hidden" name="user" value="<script language="php"> user("username");</script>">
<?php
print("<TABLE border=1>");
print("<TBODY>");
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[1]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[2]."</td>");
0094nobodyさん2010/03/21(日) 03:41:53ID:CFDZ8J9i
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[3]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$point."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[5]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>".$row[6]."</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>$title</td>");
print $trs;
0095nobodyさん2010/03/21(日) 03:46:11ID:CFDZ8J9i
print $tr;
print("<TD>test:</TD>");
print("<td>$text</td>");
print $trs;
print $tr;
print("<TD>test:</TD>");
print("<td>$url</td>");
print $trs;
print $tr;
print("<th colSpan=2><input type=\"submit\" value=\"送信\" class=\"send\"></th>");
print $trs;
print("</TBODY>");
print("</TABLE>");
}
mysql_close();
?>
</center>
0096nobodyさん2010/03/21(日) 10:58:13ID:TTlWvHhB
functionとclassの違いって何でしょうか
0097nobodyさん2010/03/21(日) 11:24:28ID:???
文字の長さ
0098nobodyさん2010/03/21(日) 11:43:30ID:???
クラスってのは3年B組
関数ってのは用務員
クラス内の関数(メソッド)は給食係とか保健係
0099nobodyさん2010/03/21(日) 11:57:19ID:???
>>96
クラスっていうのは板の名前(Webプログラミング)
関数っていうのはスレの名前(【PHP】下らねぇ質問はID出して書き込みやがれ 94)
0100nobodyさん2010/03/21(日) 11:59:05ID:???
大喜利スレになってもうた・・
0101nobodyさん2010/03/21(日) 12:00:18ID:???
$obj = new Webプログラミング;
echo $obj->【PHP】下らねぇ質問はID出して書き込みやがれ 94;
0102nobodyさん2010/03/21(日) 12:28:59ID:Pf4rphJX
ファイルの管理ってどうしてますか?

例えば完成したシステムAがあるとして、
そこから一部分だけ追加・変更したいとします。
しかし、Aはそれだけで完成しているから、
余計な機能を付けてバグが出た時に困る。

かといってAをコピーしてA"にして変更していくのも非効率な気がして・・・
0103nobodyさん2010/03/21(日) 12:30:41ID:???
・cvs使う
・コメントしとく
・継承する
0104nobodyさん2010/03/21(日) 12:33:39ID:sYkTdyYJ
自前コピーが確実だよ。zipにして固めてセットとして
公開用としてweb上にでも置いておけば安心。
0105nobodyさん2010/03/21(日) 12:35:36ID:sYkTdyYJ
ソースコード管理ツールで自動バックアップしていた時期もあるけど
複数ファイルを更新した場合どれとどれの組み合わせだと動作するのか
わからなくなる。zip固めが安心。失敗したらzip復元すればいい。
0106nobodyさん2010/03/21(日) 12:37:46ID:???
出ないようにちゃんと設計やればいいんじゃね
0107nobodyさん2010/03/21(日) 15:11:03ID:???
>>105
svnなら、タグ付けたり、ブランチ切っておけばいいんじゃないの
安定してることが確認出来たら、トランクにマージ。

リリースはタグやブランチでエクスポートすればいいし。

ほかのSCMはシラネ。
01081022010/03/21(日) 16:44:08ID:Pf4rphJX
みなさん、ありがとうございます。
SVNは使っていますが、「このclassファイルだけ修正したい」
と言う時にちょっと不便なんですよね。。

そのファイルを使いながらバグが見つかったりする時もあるし、
実際は1ファイルで済まない時が多くて、どう管理するか迷います。
まだあまり使いこなせていないだけなのかも知れませんが。

とりあえず、zip固めにして何か修正・追加加えたい時は
コピーしてファイルを修正するようにします。
0109nobodyさん2010/03/21(日) 16:55:09ID:6nW4u3iT
function checkCookie(){
if(isset($_COOKIE['checkCookie'])){return 1;}
else{
$expire = time() + 86400*14;
if(setcookie("checkCookie",time(),$expire)){return 1;}
else{return 0;}
}
}
このような関数でクッキーが有効かチェックしているのですが、機能してないようです。
もちろんブラウザの設定でクッキーを無効にしてテストしてます。
問題点はどこでしょうか?
0110nobodyさん2010/03/21(日) 17:10:11ID:???
>>108
このclassファイルだけ修正したい。
ってときに便利なのがsvnですよ。
0111nobodyさん2010/03/21(日) 17:11:19ID:G7Ek1+IS
svnの導入の仕方を教えてください
windowsです
0112nobodyさん2010/03/21(日) 17:23:37ID:???
なるほど継承してアップデートってのもありか…

そんなうまいこと設計できないけど
0113nobodyさん2010/03/21(日) 17:24:12ID:???
>>111
そのくらい、自分で調べろw。
http://kuronuko.com/web/subversion.html
0114nobodyさん2010/03/21(日) 17:30:55ID:67bsJ4U+
>>48
ありがとうございます。
var_dumpでやってみた結果、bool(false)という結果が返ってきてました。
ずっと、print_rで見ていたのでなにも表示されずでした。

しかし、どのIDを使っても false が返ってきます。
フォローしている場合は true が返ってくるはずなのですが。

var_dump(($twitter->friendships->exists("ユーザーAのScreenName","ユーザーBのScreenName")));

こんな感じでソースは書いております。

なにが原因でしょうか?
ご教授下さい。
0115nobodyさん2010/03/21(日) 17:31:31ID:G7Ek1+IS
>>113
ありがとうございます
トータスSVNっていうのを入れるとフォルダに変なマークが付いたのでやめて、svn.exeだけをインストールしました
あと、個人でPHPスクリプトを書く場合でもSNVの導入は便利でしょうか?
あと、PHPだけじゃなくてHTMLとかにも使えますでしょうか?
上記のURLは便利で大変重宝しており感謝して折ります
宜しくお願いいたします
0116nobodyさん2010/03/21(日) 18:12:50ID:6nW4u3iT
Firefoxなどのブラウザ側でクッキーを拒否してたとしても
setcookieの引数が正しければtrueが返って来るのでしょうか?
0117nobodyさん2010/03/21(日) 18:16:53ID:???
>>116
ブラウザでクッキーを有効にしていたらtrueが返ってくるとかどこかで書いてあったの?
ちゃんとマニュアルくらい読んだほうがいいよ
0118nobodyさん2010/03/21(日) 18:28:42ID:6nW4u3iT
>>117

function checkCookie(){
$expire = time() + 86400*14;
if(!setcookie("checkCookie",time(),$expire)){return 0;}
else{
if(!isset($_COOKIE['checkCookie'])){return 0;}
else{return 1;}
}
}

こうすればよいですね!ありがとうございます。
0119EM114-48-97-102.pool.e-mobile.ne.jp2010/03/21(日) 19:31:44ID:???
おいこらさっさと質問ぶつけてこいや〜〜〜〜〜〜〜!
0120nobodyさん2010/03/21(日) 19:32:29ID:???
OCN vs イーモバイル!
0121nobodyさん2010/03/21(日) 20:43:30ID:???
WiMAXの方がよくね?
0122nobodyさん2010/03/21(日) 21:47:22ID:???
あえてうぃるこぬ
0123nobodyさん2010/03/21(日) 22:10:24ID:???
>>115
>個人でPHPスクリプトを書く場合でもSNVの導入は便利でしょうか?

便利です。
エンバグ恐れずに手を入れられます。
何か新しい機能を入れる場合でも、ブランチで存分に試せます。
使ってるのが自分ひとりでも、こういうのを覚えてしまうとかなり気楽になる。

>PHPだけじゃなくてHTMLとかにも使えますでしょうか?

テキストファイルなら何にでも使えます。
(オフィスのファイル等のバイナリファイルにも使えるけど)
0124nobodyさん2010/03/21(日) 22:27:11ID:sYkTdyYJ
必要なときにzipで固めた方が簡単で速い。
挑戦するときにzipにしておく、完成したらzipにしておく。
管理ツールは重いし、常駐するし良くない。
0125nobodyさん2010/03/21(日) 22:28:35ID:sYkTdyYJ
しかもシステムが破損すると取り出せない。自分で壊すこともある。消しても問題とか思って。
0126nobodyさん2010/03/21(日) 22:53:54ID:???
自動バックアップで壊れて全部消えたとかそういうのもあるな。
VisualStudioとかw
0127nobodyさん2010/03/22(月) 00:04:02ID:rMqH0aHx
APCについて質問です。

ファイルアップロード中に同じサーバー上で apc_fetch() を呼べば、
引数さえあってれば進捗状況が見れるという解釈で合っていますか?

下ソースのtest.phpをブラウザから二つのウィンドウ(A、B)で開き、
Aでアップロード中に、Bで表示しようとしたんですが、apc_fetch()による結果が空です。
ですが、Aでのアップロードが終わった時に、Aに>>128のような結果が表示されました。

【環境】
APC Version 3.0.19
PHP Version 5.2.12
Server Software : Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

-----------------------------
test.phpソース
-----------------------------
<?php
print_r(apc_fetch('upload_abc'));
?>
<form action="test.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="APC_UPLOAD_PROGRESS" value="abc" />
<input type="file" name="upload_file" />
<input type="submit" />
</form>
0128nobodyさん2010/03/22(月) 00:05:31ID:rMqH0aHx
-----------------------------
表示結果
-----------------------------
Array
(
[total] => 16982
[current] => 16982
[rate] => 616952.19311244
[filename] => 91b9b7998269669e83a94bc5cd95de8b_400.jpg
[name] => upload_file
[temp_filename] => /var/tmp/phpZtvdO8
[cancel_upload] => 0
[done] => 1
[start_time] => 1269183432.2302
)
0129nobodyさん2010/03/22(月) 00:33:03ID:POFKX9jJ
デザインパターンってどうやって学ばれました?
ネット上にあまりないのですが
0130nobodyさん2010/03/22(月) 01:33:18ID:???
>>129
PHP特化では、見つからないかもしれんね。
比較的syntaxが似てるC#やJava+デザインパターンで検索するといいかも。

ちなみに自分は、今は亡きCマガの連載で勉強した。

あと、デザインパターン勉強するなら、クラス図やシーケンス図が読めないとつらいかも。
ほかには、多態や継承がバンバンでるから気をつけてね。
0131nobodyさん2010/03/22(月) 03:15:45ID:a2delEMy
phpでファイル転送の処理内容をツラツラと書き連ねていきたいのですが、そういったことは可能ですか?



report-slow-request 100% 3725 3.6KB/s 00:00
find-junk 100% 5385 5.3KB/s 00:00
convert-db 100% 7548 7.4KB/s 00:00
upgrade 100% 3379 3.3KB/s 00:00
0132nobodyさん2010/03/22(月) 04:38:32ID:Rk6TrDyI
配列から特定部分の取り出しでお助け頂きたいです。

http://www.imagecheese.com/gallery/ee.jpg

上記のような配列で、array[0]['Keyword']['name'] の部分だけをユーザーごとに取り出したいです。
例えば、 

address が"[email protected]" は "授業"、"テーマスタティ"
address が"[email protected]" は "エクササイズ","オープン"

といったような形でループ処理をしたいのですが、よい方法はないでしょうか?

0133nobodyさん2010/03/22(月) 04:46:45ID:???
array_mapとかarray_walk使う方法もあるけど単純にやるなら

foreach ($array as $row) {
foreach ($row['keyword'] as $keyword) {
$result[$row['address']][] = $keyword['name'];
}
}
0134nobodyさん2010/03/22(月) 04:51:22ID:Rk6TrDyI
>>133
ありがとうございます!

ありがたく参考にさせて頂きたいと思います。
0135nobodyさん2010/03/22(月) 05:04:04ID:Rk6TrDyI
>>133さん 上手くいきそうです。 ありがとうございます!
0136nobodyさん2010/03/22(月) 05:27:50ID:???
すみません
最近のyoutubeのAPIに対応したソースがあるサイトってありませんか?
どれも動かないんです
0137nobodyさん2010/03/22(月) 05:33:45ID:???
どれも動かないんならどれもだめだろう
0138nobodyさん2010/03/22(月) 06:07:13ID:???
諦めます
0139nobodyさん2010/03/22(月) 07:23:28ID:QPPKsgL4
ボタンとボタンの上に0という数字を配置して
ボタンを押すごとにその数値が増えていくというものはPHPで作れますか?
0140nobodyさん2010/03/22(月) 08:20:58ID:Rk6TrDyI
ローカルでメール送信のテストをしたいのですが、てっとりばやいオススメの方法はあるでしょうか?

1 プロバイダのメールサーバを使う?? (さくらとOCNとgmailのアカウントあり)
2 メールサーバをローカルで立てる?


とりあえず

ini_set( "SMTP", "adminname.sakura.ne.jp" );

とさくらメールのSMTPをいれて試したけどダメでした。。
01411392010/03/22(月) 10:40:17ID:???
自己解決しました
0142nobodyさん2010/03/22(月) 13:15:15ID:???
>>140
それが一番良いと思うよ
0143nobodyさん2010/03/22(月) 13:16:58ID:???
>>140
ごめん、142は読み間違えた・・。

ini_setじゃなくて、php.iniに直接書けば?
あと、さくらの場合、smtp_portを587にしないと駄目だよ。
0144nobodyさん2010/03/22(月) 13:19:17ID:???
>>140
xmail
0145nobodyさん2010/03/22(月) 13:25:55ID:???
radishおすすめ
0146nobodyさん2010/03/22(月) 13:26:43ID:???
radishは古いxmailにしとけ
0147nobodyさん2010/03/22(月) 13:41:15ID:???
PDOでSQLite3に接続してるんですが、
fetchメソッドのoffsetが効かなくて困ってます。

$sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 10);

こんな感じでやると検索結果の10行目から取得し始めると思ってたんですけど
間違ってますか?





0148nobodyさん2010/03/22(月) 20:51:06ID:r5y42//h
htaccessの問題の気がするのですが

RewriteEngine On
RewriteRule ^search\/([A-Z0-9]{10})$ http://example.com/dev/search.php?q=$1

これをdevに置いて、http://example.com/dev/search/ABCDEFGH10
にアクセスしても、ABCDEFGH10をgetできてないようです。
PHP側の処理に問題があったりするのでしょうか?
0149nobodyさん2010/03/22(月) 20:54:45ID:???
正規表現を練習できるサイトとかないかな
0150nobodyさん2010/03/22(月) 20:55:02ID:???
>>148
RewriteLog 取ってみるといいよ。
0151nobodyさん2010/03/22(月) 21:09:38ID:r5y42//h
>>149
練習かどうかは分からないが、便利
http://www.rubular.com/

>>150
ありがとうございます。
ですが、やってみると500エラーになってしまうようです。
レンタルサーバーの共用プランではログは取れないのでしょうか?
0152nobodyさん2010/03/22(月) 21:11:06ID:???
>>149
今度からスレタイをちゃんと読めよ。

ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
0153nobodyさん2010/03/22(月) 21:16:09ID:???
>>151,152
マスターできる気がする
01541272010/03/22(月) 21:30:08ID:???
>>127はPHPプロ掲示板に聞きにいってきます
0155nobodyさん2010/03/23(火) 00:51:02ID:unctT7f6
質問です。
UTF-8の環境でmb_strcut("あいうえお",0,7)とした時、"あい"と表示された後次の文字が文字化けしてしまいます。
原因は"う"の1バイト目までしか出力されないからのようですが、このように余った時"あい"までの出力で止めるようにすることはできるのでしょうか?

試した環境、win32 PHP 5.3.0
0156nobodyさん2010/03/23(火) 00:57:32ID:???
自己解決しました。
>encoding パラメータには文字エンコーディングを指定します。省略した場合は、内部文字エンコーディングを使用します。
とマニュアルに書いてあったので文字コードの指定を省略したのが原因でした。
0157nobodyさん2010/03/23(火) 09:43:05ID:???
内部文字エンコーディングを適切に設定してないのが根本原因じゃないの?
0158nobodyさん2010/03/23(火) 15:23:09ID:ssmJpUwM
質問させてください
この度、WinからcentOS5.4へ移行し、PHPを実行しようと思ったのですがどうにもうまくいきません
まず、Apacheを入れようとしたら、make installの所でエラーが出、しかもエラー内容が分からなかった為
centOSに標準で入っているApache(2.2.3)、Mysql、PHP(5.1.6)をインストールしました
例えばyum install phpとか、yum install http-serverとかを実行しました

で、centOSでApacheの公開フォルダ(Winではhtdocs)が/var/www/html/だと知ったので、そのフォルダ内にphpのファイルを置きました
phpinfo.phpとか、index.htmlのようなファイルをhttp://localhost/phpinfo.phpと実行するとちゃんとブラウザに内容が表示されます
しかしながら、/var/www/html/フォルダ内にtestやphpMyAdminのようなフォルダを入れると、
The requested URL /test was not found on this server
のようにエラーが出てしまいます
これはどうしてなのでしょうか?
どのようにすれば意図したようにきちんと表示されるのでしょうか?

php.ini、http.confはデフォルトのままですが、phpinfoで確認した所、php.iniの場所はちゃんとなっておりました
また、/etc/httpd/conf/httpd.confを調べてみた所、
ServerRoot "/etc/httpd"
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
のように特におかしいような気もしませんでした
0159nobodyさん2010/03/23(火) 15:42:58ID:???
リクエストされたページが見つからないそうです
0160nobodyさん2010/03/23(火) 15:46:17ID:???
パーミッションだったりして。
0161nobodyさん2010/03/23(火) 16:01:08ID:???
apacheのエラーログは?
0162nobodyさん2010/03/23(火) 16:12:28ID:ssmJpUwM
パーミッションはdrwxr-xr-x となっております
一応Readと実行権限はあると思います

Apacheのエラーログは今見てみます
0163nobodyさん2010/03/23(火) 16:24:05ID:ssmJpUwM
[Tue Mar 23 14:46:48 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 14:46:48 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 14:46:48 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 14:46:48 2010] [notice] Digest: done
[Tue Mar 23 14:46:48 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Tue Mar 23 14:48:48 2010] [notice] caught SIGTERM, shutting down
[Tue Mar 23 14:51:22 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 14:51:22 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 14:51:23 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 14:51:23 2010] [notice] Digest: done
[Tue Mar 23 14:51:24 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Tue Mar 23 15:14:13 2010] [error] [client 127.0.0.1] File does not exist: /var/www/html/test
[Tue Mar 23 15:14:13 2010] [error] [client 127.0.0.1] File does not exist: /var/www/html/favicon.ico
[Tue Mar 23 15:48:31 2010] [notice] caught SIGTERM, shutting down
[Tue Mar 23 15:51:07 2010] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Tue Mar 23 15:51:07 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Mar 23 15:51:08 2010] [notice] Digest: generating secret for digest authentication ...
[Tue Mar 23 15:51:08 2010] [notice] Digest: done
[Tue Mar 23 15:51:09 2010] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations

のようになっております
0164nobodyさん2010/03/23(火) 16:41:20ID:???
/var/www/html/test/(スラッシュあり)は?
01651632010/03/23(火) 16:49:36ID:???
>>164
どういう事でしょうか?
例えばtestフォルダを表示したい時にhttp://localhost/testではなく、http://localhost/test/でアクセスということでしょうか?
それともtest内にtest.phpとか入れてって事でしょうか?
どちらもやはりエラーになってしまいました

もしやと思い、testフォルダの名前をtest/と変えてみましたが、/は含められないとLinux側でエラーが出ました

0166nobodyさん2010/03/23(火) 16:58:21ID:???
>>165
いまちょっとググってみたんだけど
もしかして/etc/httpd/conf.d/welcome.confとか読み込まれてない?
■ このスレッドは過去ログ倉庫に格納されています