-1

私はこのようなURLを持っています...

http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php

/の後、.phpの前のテキストを削除し、-を削除したい

したがって、結果は次のようになります

これは私がお願いしたいテキストです

アイデアは、これをタイトルタグとして使用することです

substr、strrchrを試しましたが、必要なものを正確に取得する方法がわかりません。

どんな助けでも大歓迎です

どうもありがとう

4

4 に答える 4

1

を使用して行うことができますbasename()

$fname = basename('http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php');
$fname = str_replace('-', ' ', $fname);

編集:

<?php
   $fname = basename('http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php');
   $fname = str_replace('-', ' ', $fname);
   $fname = substr($fname, 0, -4);
   echo $fname;
?>

結果:

this is the text i would like please

ライブデモを参照

于 2012-06-29T23:20:03.203 に答える
0

次のように、strrpos()とを使用して単純な文字列操作を使用できます。substr()

$str = 'http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php';
echo substr( $str, strrpos( $str, '/') + 1, -4);

これは出力します

this-is-the-text-i-would-like-please

str_replace()次に、次のように を使用して、ダッシュをスペースに置き換えます。

$str = str_replace( '-', ' ', $str);

降伏するには:

this is the text i would like please

別の方法として、 を使用してからparse_url()ダッシュを次のように置き換えます。

$str = parse_url( $str, PHP_URL_PATH);
$str = substr( $str, 1, -4); // strip off leading slash and .php from the end
$str = str_replace( '-', ' ', $str);

これにより、目的の出力も得られます。

最後に、文字列を操作しない最も簡単な方法はpathinfo()、次のように を使用することです。

$str = 'http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php';
$str = pathinfo( $str, PATHINFO_FILENAME);
$str = str_replace( '-', ' ', $str);
于 2012-06-29T23:13:10.940 に答える
0

$_SERVERPHP の配列を使用することもできます。変数$_SERVER["REQUEST_URI"]は、サーバー名の後のすべてを提供します。この場合、「/this-is-the-text-i-would-like-please.php」になります。

その後、好きな文字列関数を実行できます。explode()と を使用した例を次に示しsubstrます。

$noslash = substr($_SERVER['REQUEST_URI'], 1);  
/* $noslash = "this-is-the-text-i-would-like-please.php" (no leading slash)*/  

$parts = explode($noslash, ".");  
/*   
 * $parts[0] = "this-is-the-text-i-would-like-please"  
 * $parts[1] = "php"  
*/  
$title_tag = $parts[0];

整形でごめんなさい。

于 2012-06-29T23:23:42.163 に答える
-1

nickb と同様ですが、 - も削除します。

echo str_replace('-',' ',substr( $str, strrpos( $str, '/') + 1, -4));

どちらが出力されますか

this is the text i would like please

または、 %20 が必要ない場合は、次のようになります。

 echo str_replace('%20',' ',str_replace('-',' ',substr( $str, strrpos( $str, '/') + 1, -4)));
于 2012-06-29T23:23:57.567 に答える