• ベストアンサー

PHP☆ /test/ 配下に値があれば・・・

PHPについて質問です。 例えば /test/ 配下に値があれば・・・ というif文を作りたいです。 if($_SERVER["REQUEST_URI"]=="/test/"){ echo "OK"; } これでは、もちろん /test/ のページのみになります。 /test/ 配下に値があれば・・ という書き方はどうすればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

何でもできると思います。 動作確認はしてませんが・・・。 単純に定義と手順を考えると、以下のことが見えてきます。 ・始まりは「/test/」である。 ・「/test/」の次に必ず1文字以上存在する。 文字列操作でどうのこうのしようとすると 始まりが「/test/」であり、文字列の長さが「/test/」+1文字分以上あるかどうか if(substr($_SERVER["REQUEST_URI"], 0, 6) == "/test/" && strlen($_SERVER["REQUEST_URI"]) > 6) { echo "OK"; } とか。 正規表現なら if(preg_match("/^\/test\/.+$/", $_SERVER["REQUEST_URI"]) > 0) { echo "OK"; } とか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • php + javascriptで値の保持

    現在、ラジオボタンによるデータの受け渡しを調べているのですが submitボタンを使わずに、データ遷移がしたいと思い 色々やっているのですが上手く行きません。 これは実現可能なのでしょうか? <input type="radio" name="hoge" value="1" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check1; ?>> <input type="radio" name="hoge" value="2" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check2; ?>> <input type="radio" name="hoge" value="3" onclick="location.href='<?php echo $_SERVER['REQUEST_URI']; ?>'; test(this.value);" <?php echo $check3; ?>> 上記のソースの様な感じでとりあえずやってみましたが、 「ボタンを押したら即移動」は可能なものの、value値の保持が javascript上でどうやったらいいか分かりません。 ※$check1~3は遷移後のchcked判定の変数です ※test関数においてのvalueを格納する処理が分かりません やはり無難にsubmitボタン+セッション関数等で構築した方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • HTML→PHPへ値を渡して再びHTMLに結果出力

    HTMLからPHPへ値を渡して、再びHTMLに結果を表示したいと思っています。 以下のような簡単なコードを書いてみましたが、HTMLのページに"OK"という文字が表示されません。 PHPのパーミッションは755でやっており、PHPが動作するサーバーでテストしています。 どう修正すれば良いのか、アドバイスをお願い頂けますでしょうか? どうぞよろしくお願い致します。 【HTML】 <html> <head> </head> <body> </body> <script type="text/javascript" src="http://xxx.com/test/jsphptest.php?param=1"></script> </html> 【PHP】 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"OK\")"; } else { echo "document.write(\"NG\")"; } ?>

    • ベストアンサー
    • PHP
  • phpについて

    すみません。 echo (empty($_SERVER['HTTPS']) ? 'http://' : 'https://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; こちらのコードの意味はわかるのですが emptyに?がついている意味がわかりません。教えて下さい。 これを解説してあるページとか検索用語などでも構いません。よろしくお願いします。

    • ベストアンサー
    • PHP
  • エラーページをPHPで作成したい

    サーバーから返されるエラーメッセージを、SSIで作成した場合 閲覧できないURLなど表示する事が出来ますが http://<!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI"--> これをPHPで表示させる事は可能ですか? もし出来るようでしたら、ご教授お願いいたします。

    • 締切済み
    • PHP
  • mod_rewrite的なことをphpで実現させたいが空白ページが表示されてしまう

    www.example.com/ほげほげ にアクセスされたら、 example.com/ほげほげ へ urlをかきかえ、 さらに、 $_SERVER["REQUEST_URI"] がスラッシュで終わる(2個以上のスラッシュも考慮)ときは、これらのスラッシュをとりのぞいたurlへかきかえ、 そして、このurlへ301ステータスコードでリダイレクトさせる(ただし、get methodの場合に限る) というコードをphpで書いたのですが、 なぜか、urlは書き換わらず、空白のページが表示されてしまいます。 どこがいけないのでしょうか? お助けくださいませ。         if ($_SERVER["REQUEST_METHOD"] == "GET"){             #HTTP_HOST (exclude www.)             preg_match_all("/^(www\.)(.*)$/", $_SERVER["HTTP_HOST"],$matches_HTTP_HOST);             if ($matches_HTTP_HOST[1] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_HTTP_HOST = $matches_HTTP_HOST[2];             }             else{                 $strAfterRedirect_HTTP_HOST = $_SERVER["HTTP_HOST"]             }             #REQUEST_URI (,which includes query string)             preg_match_all("/^(\/)(.*)(\/+)$/", $_SERVER["REQUEST_URI"],$matches_REQUEST_URI);             if ($matches_REQUEST_URI[3] != ''){                 $bWillBeRedirected = true;                 $strAfterRedirect_Request_URI = $matches_REQUEST_URI[1] . $matches_REQUEST_URI[2];             }             else{                 $strAfterRedirect_Request_URI = $_SERVER["REQUEST_URI"];             }             #redirect with 301 status code if needed             if($bWillBeRedirected){                 #Protocol                 if ($_SERVER["HTTPS"] == "on"){                     $strProtocol = "https";                 }                 else{                     $strProtocol = "http";                 }                 $url = $strProtocol . "://" . $strAfterRedirect_HTTP_HOST . $strAfterRedirect_Request_URI;                                                   header("HTTP/1.1 301 Moved Permanently");                 hearder(”Location: “.$url);                 header(”Connection: close”);             }         }

    • ベストアンサー
    • PHP
  • empty($_SERVER['REQUEST_U

    empty($_SERVER['REQUEST_URI'])とは、何のことでしょうか? 下記スクリプトの意味について教えてください。 // // Fix unavailable $_SERVER['REQUEST_URI'] on IIS // if ( empty($_SERVER['REQUEST_URI']) ) {  $_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF'];  $_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : ''; } ▼if ( empty($_SERVER['REQUEST_URI']) ) { $_SERVER['REQUEST_URI']が空だったら、の意味が分かりません。 ページにアクセスするためのURIを指定しなかったら? それは、どんな状況なのでしょうか? ▼$_SERVER['REQUEST_URI'] = $_SERVER['PHP_SELF']; $_SERVER['REQUEST_URI']に、現在実行しているスクリプトのファイル名を利用。これは、何をしているのでしょうか? ▼$_SERVER['REQUEST_URI'] .= ( !empty($_SERVER['QUERY_STRING']) ) ? '?'.$_SERVER['QUERY_STRING'] : ''; クエリ情報(URLの"?"以降の文字列)が空でなければ、クエリ情報をくっつける。空だったら、くっつけない 結局、このスクリプトでは何をしようとしているのでしょうか? また、このスクリプトがないと、どういう不具合が起きる可能性があると、想定されるでしょうか? 検索してみたら、下記のようなページがあったのですが、 IIS(サーバ?)固有の不具合回避対策なのでしょうか? ▽Dokeos Forum • View topic - IIS $_SERVER['REQUEST_URI']   http://www.dokeos.com/forum/viewtopic.php?t=8335

    • ベストアンサー
    • PHP
  • PHPの設定について

    よろしくお願いします。 先日、自宅サーバでアパッチとphpの4.3をインストールしました。 で、ローカルで試したところ、他は普通に動くのですが、変数を受け取りません。 たとえば <?php echo $test; ?> と記述したPHPをtest.phpとしてサーバフォルダにおき、 ブラウザでhttp://localhost/test.php?test=abc を見ても真っ白の画面になります。 同様に <form action="test.php" method="post"> (getでも試しました) <input type="text" name="test"> <input type="submit" value="送信"> </form> といったようにmethodで送っても真っ白な画面のままです。 次に test.phpを <?php if( $test == abc ){ echo "OK"; }else{ echo "NG"; } ?> とやってみて試しましたが結果はNGでした。 どうやら変数を受け取ってないらしいです。 phpのセキュリティを変更したらよいとの記事を見つけたのでそういう関係サイトを検索してみたのですが、それらしき内容を見つけられませんでした。 どなたかご教授お願いします。

    • 締切済み
    • PHP
  • phpのバージョンの違いのエラー

    すみません。 ページの前後を簡単に行き来するためにぺ-ジ名をpage40みたいにして <のリンクが押されれば 40-1=page39 >のリンクが押されれば 40+ 1=page41 のようにしたのですが、バージョンを8.0にしたら、以下のようなエラーが出ました。エラーの内容自体は、型が異なるので計算できない?ですよね? どう修正すればいいのかわからないので教えてください。 Fatal error: Uncaught TypeError: Unsupported operand types: string - int in コード <div class="pre-cntrl"> <?php $url = rtrim($_SERVER["REQUEST_URI"], '/'); $uri = substr($url,-2); if(ctype_digit($uri)) { $pre =$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } else { $uri = substr($url,-1); $pre=$uri-1; echo '<a href="page' . $pre . '"><i class="fas fa-chevron-left"></i></a><br />'; } ?> </div>

    • ベストアンサー
    • PHP
  • $_REQUEST とphpファイルでphp?item=500&xt=100とか言うああいうページと関連があるのでしょうか

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1437399 で$_REQUEST の理解を深めたく質問中ですが $_REQUEST の[ ]の中の変数は結局、 ?item=500&xt=100の部分を作るためのものなんでしょうか とくにDBとの関連で必要でしょうか たとえば stage.phpのコードで <?php …$name=$_REQUEST['name']… if($name='a'){echo'<html>a</html>'} if($name='b'){echo'<html>b</html>'} stage.php?name=a stage.php?name=b というページができるという理解でしょうか? (すいません、質問に個所でしてしまって)

    • ベストアンサー
    • PHP
  • 特定の値をPOST送信で他のサーバーに渡したい

    あるPHPページを自動転送ページとし、転送先に特定の値をPOST送信したいと考えています。 同じような質問があり、fsockopenを使ってすると良いようなのですが、どうしても上手くいきません。 現状、POST送信は成功しているのですが、URLが自動転送ページのままで、転送先ページのテキストのみが表示されている状態です。 どうすれば転送先ページに完全に移ってしまえるでしょうか。 ご助力下さい。 <ソース> $url = "http://hoge.co.jp/test.php";  //転送先URL $method = "POST"; $headers = "POST http://hoge.co.jp/test.php HTTP/1.1\r\n";  //転送先URL $postdata = "parm=ok"; $URL = parse_url($url); if(!isset($URL['port'])){$URL['port'] = 80;} //リクエストヘッダ $request = $method." ".$URL['path']." HTTP/1.0\r\n"; $request .= $headers; $request .= "Host: ".$URL['host']."\r\n"; $request .= "User-Agent: PHP/".phpversion()."\r\n"; $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; $request .= "Content-Length: ".strlen($postdata)."\r\n"; $request .= "\r\n"; $request .= $postdata; //相手サーバへ接続 @$fp = fsockopen($URL['host'], $URL['port']); // 接続失敗 if (!$fp) {die("ただいまメンテナンス中です。\n");} //POSTで送信 fputs($fp, $request); $response = ""; while (!feof($fp)) { $response .= fgets($fp, 4096); } fclose($fp); //ヘッダ部分とボディ部分を分離 $DATA = split("\r\n\r\n", $response, 2); //出力 echo "<!--\n".$request."\n-->\n"; echo "<!--\n".$DATA[0]."\n-->\n"; echo $DATA[1];

    • ベストアンサー
    • PHP