PHP が文字列から URL をインターセプトすることに関連する問題

WBOY
リリース: 2016-06-13 13:42:30
オリジナル
1123 人が閲覧しました

文字列から URL をインターセプトする php の問題
皆さんこんにちは、まず第一に、私は php を知りませんが、解決するのに役立つと幸いです。ありがとうございます。

PHP プログラムから取得しました。文字列 $longurl を呼び出します

この $longurl エコーの結果は、
www.csdn.net/123456ここをクリック< ;/a>

www.csdn.net/123456 のこのセクションを傍受する方法

オンラインで見つけた結果は次のとおりです

$aa = $longurl ;
preg_match("/http[^"]*/",$aa,$bb);
echo $bb[0];

しかし、Baidu 短縮 URL API を短縮したいプログラムの次の部分で使用します

プログラムは

$urlbd = '$bb[0]';
$result = getBaiduShortUrl($urlbd);
です。 if ($result) {
echo ' 成功:'.$result;
} else {
die('failure');
}

function getBaiduShortUrl($urlbd) {
$data = array(
'url' => $urlbd,
);
$baidu_url = 'http://dwz.cn/create.php';
$ ret = postData($baidu_url, $data);
if ($ret) {
$ret = json_decode($ret, true);
if ($ret['status'] !== 0 ) {
return false;
} else {
return $ret['tinyurl'];
}
} else {
return false;
}
}


function postData ($urlbd, $data) {
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION = > true,
CURLOPT_ENCODING => 'GZIP, DEFLE, SDCH',
Curlopt_useragent = & GT; 'Mozilla/5.0 (x11; linux x86_64) Applewebkit/535.1 (khtml、10 chromium/) 14.0.835.202 chrome/14.0.835.202 Safari/535.1 ',
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 🎜> CURLOPT_REF エラー=> 'http://www.baidu.com/',
CURLOPT_POSTFIELDS => $data,
); ($ch, $options);
$content =curl_exec($ch);
$err =curl_errno($ch);
$errmsg =curl_error($ch);
$header = curl_getinfo($ch);
curl_close($ch);

return $content;
}


短縮アドレスが間違っていますので、確認してください。



-----解決策---------

正規表現で取得できませんこのセクションには $urlbd = '$bb[0]' もあります。このように $urlbd の値を文字列 $bb[0] として定義します。
解析するには二重引用符を使用する必要があります。内の変数を次の preg_match("/
]*>.*/i に置き換えます。 ", $aa, $bb );$urlbd = $bb[1];

------解決策------------------

今、csdn がまた怖くなってきました。
www.csdn.net/123456 のこのセクションをインターセプトする方法
このセクションは www.csdn.net/123456
www.csdn.net/123456 ?

その場合、短縮 URL ではありません。他にも方法はあります。 URL の状況は、とりあえずこのように書きましょう
$str='www.csdn.net/123456
ここをクリック';
preg_match(' /^([a-zd./]+)$urlStr=$match[1];
echo $urlStr;
結果
www.csdn.net/123456


------解決策---------

www.csdn.net/123456
ここをクリック
インターセプトする必要がある文字がすべて $s1 $strArray =explode("
------解決策------------------

つまり、
php プログラムから文字列 $longurl を呼び出しますこの $longurl エコーの結果は、
www.csdn.net/123456
ここをクリック
この中の $longurl 文字列はすべて {url address...} のようなものですか? そうであれば、ルールを使用できます。 PHP の文字列区切り関数を使用して区切り、配列を返します。
$strArray =explode("print_r($strArray);結果

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!