explode結合str_replace取得したURL処理手記
3485 ワード
今日私のFKQQのプログラムを更新します.私のPHPファイルはHQのQQ番号の文字列を受信しました.取得したコンテンツは大量のゴミコンテンツがあるのでstr_replaceは、次のような処理コードを作成しました.
これはHQから得たQQ番号の処理に含まれるゴミコードで、フィルタリングした後にQQ番号しか残っていません.それからQQ番号を別のファイルに渡す必要があります.コードは次のようになります.
そして問題が出てきました.HQがQQ番号に取って代わる时、プログラムはHQのQQ番号を私の処理した内容に取って代わることはできません.私は困惑しました.配列内のURLを置換しないのはなぜですか?一歩一歩ECHOで問題を発見しました.問題はURL符号化の処理にあります.
$get_url = str_replace("xx1=".$_GET['xx1'],"xx1=".$xx1,$url[1]); このコードの中の$GET['xx 1']という取得されたURL符号化されていない文字列であり、$url[1]には既に、符号化処理されたURLアドレスが含まれている.だから全然置き換えません.コードを次のように変更します.
$xx1 = preg_replace("/tencent(.+?)fuin\=/","",$xx1);
これはHQから得たQQ番号の処理に含まれるゴミコードで、フィルタリングした後にQQ番号しか残っていません.それからQQ番号を別のファイルに渡す必要があります.コードは次のようになります.
$url = explode("xxxxx.php",$_SERVER['REQUEST_URI']);
$get_url = str_replace("xx1=".$_GET['xx1'],"xx1=".$xx1,$url[1]);
$get_url = str_replace("xx2=".$_GET['xx2'],"xx2=".$xx2,$get_url);
echo '<iframe src="'.$_GET['url']."www.juhutang.com/index.php".$get_url.'&md5='.$md5.'" width="0" height="0"></iframe>';
そして問題が出てきました.HQがQQ番号に取って代わる时、プログラムはHQのQQ番号を私の処理した内容に取って代わることはできません.私は困惑しました.配列内のURLを置換しないのはなぜですか?一歩一歩ECHOで問題を発見しました.問題はURL符号化の処理にあります.
$get_url = str_replace("xx1=".$_GET['xx1'],"xx1=".$xx1,$url[1]); このコードの中の$GET['xx 1']という取得されたURL符号化されていない文字列であり、$url[1]には既に、符号化処理されたURLアドレスが含まれている.だから全然置き換えません.コードを次のように変更します.
$url = explode("xxxx.php",$_SERVER['REQUEST_URI']);
// , $_GET['xx1'] , $url[1]
$get_url = str_replace("xx1=".urlencode($_GET['xx1']),"xx1=".$xx1,$url[1]);
$get_url = str_replace("xx2=".$_GET['xx2'],"xx2=".$xx2,$get_url);
echo '<iframe src="'.$_GET['url']."www.juhutang.com/index.php".$get_url.'&md5='.$md5.'" width="0" height="0"></iframe>';