0

私はrtrimとRegの式を使うことにあまり慣れていません。だから私はこれについて私の疑問をクリアしたかった:

これがURLです:http://imgur.com/r/pics/paoWS

このURLでrtrim関数を使用して、URL全体から「paoWs」のみを選択しようとしています。これが私が試したことです:

$yurl = 'http://imgur.com/r/pics/paoWS';
$video_id = parse_url($yurl, PHP_URL_PATH);

$yid=rtrim( $video_id, '/' );

そして、私は'$ yid'を使用して、imgurから画像をホットリンクしています。しかし、この関数を試した後に得られるものは次のとおりです。

$yid= '/r/pics/paoWS'

どうすればこれを解決できますか?

4

4 に答える 4

4

rtrim右側の特定の文字または空白の文字列を切り捨てるために使用されます。それは確かにあなたの目的のために使われるべきではありません。

URL構造が常に同じであると仮定すると、次のようにすることができます。

$yurl = 'http://imgur.com/r/pics/paoWS'; 
$video_id = parse_url($yurl, PHP_URL_PATH);
$parts = explode('/', $video_id)
$yid = end($parts);
于 2012-12-18T11:06:58.373 に答える
2

非常に「単純な」問題には、正規表現(「高価」)を使用しないでください。

URLの最後の部分をキャッチしたい場合は、最後のスラッシュの後に、次の操作を実行できます。

$urlParts = explode('/', 'http://imgur.com/r/pics/paoWS');
$lastPart = end($urlParts);
于 2012-12-18T11:08:00.820 に答える
1

rtrim()削除された文字ではなく、フィルタリングされた値を返します。そして、それの使用法も適切ではありません-それは右側から渡された文字を取り除きます。そして、あなたも必要ありませんparse_url()。適切な答えはすでに与えられていますが、より速い代替案があります:

$yid = substr($yurl, strrpos($yurl, '/')+1);

編集:そしてもう1つ:

$yid = ltrim(strrchr($yurl, '/'), '/');
于 2012-12-18T11:13:05.597 に答える
1
rtim( strrchr('http://imgur.com/r/pics/paoWS' , '/') );   rtrim + strrchr
substr(strrchr('http://imgur.com/r/pics/paoWS', "/"), 1);  substr + strrchr
于 2012-12-18T11:11:16.233 に答える