我有一个看起来像这样的 URL...
http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php
我想在 / 之后但在 .php 之前删除文本,并想删除 - 的
所以结果是
这是我想要的文字
这个想法是然后将其用作标题标签
我已经尝试过 substr、strrchr 但无法弄清楚如何得到我需要的东西。
任何帮助将不胜感激
非常感谢
我有一个看起来像这样的 URL...
http://www.mydomain.co.uk/this-is-the-text-i-would-like-please.php
我想在 / 之后但在 .php 之前删除文本,并想删除 - 的
所以结果是
这是我想要的文字
这个想法是然后将其用作标题标签
我已经尝试过 substr、strrchr 但无法弄清楚如何得到我需要的东西。
任何帮助将不胜感激
非常感谢
你可以使用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
参考现场演示
你也可以使用 PHP 的$_SERVER
数组。该变量$_SERVER["REQUEST_URI"]
将为您提供服务器名称之后的所有内容。在这种情况下,它将是“/this-is-the-text-i-would-like-please.php”。
之后,您可以运行任何您喜欢的字符串函数。这是一个使用explode()
and的示例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];
为格式化道歉。
strrpos()
您可以使用and使用简单的字符串操作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);
像 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)));