如何使用PHP将我的URL转换为两个可变部分?
我想将我的URL转换为两部分,例如我有4个URL,如如何使用PHP将我的URL转换为两个可变部分?,php,mysql,Php,Mysql,我想将我的URL转换为两部分,例如我有4个URL,如 c/类别1 c/类别2 p/page1 p/page2 现在我要做的是将URL转换成两部分,例如 $veriable_name1 = c $veriable_name2 = category 1 或 或 或 在上面的例子中,C决定类别,p决定页面。正如我跟随一个教程使用PHP将PHP URL转换为SEO友好的URL一样,但他们只给出了一个使用PHP/MySQL从单个表转换URL的示例 我遵循的准则是: <?php include(
- c/类别1
- c/类别2
- p/page1
- p/page2
$veriable_name1 = c
$veriable_name2 = category 1
或
或
或
在上面的例子中,C决定类别,p决定页面。正如我跟随一个教程使用PHP将PHP URL转换为SEO友好的URL一样,但他们只给出了一个使用PHP/MySQL从单个表转换URL的示例
我遵循的准则是:
<?php
include('db.php');
if ($_GET['url']) {
$url = mysql_real_escape_string($_GET['url']);
$url = $url.'.html'; //Friendly URL
$sql = mysql_query("select title,body from blog where url='$url'");
$count = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);
$title = $row['title'];
$body = $row['body'];
} else {
echo '404 Page.';
} ?>
您的所有示例“字符串”都相当相等,因此最简单的方法是:
$url = 'c/category1';
$a = explode('/',$url);
$veriable_name1 = $a[0];
$veriable_name2 = $a[1];
或者,为了使其成为字符串函数,您可以运行
$variable_name1 = strstr($url,'/',true);
$variable_name2 = str_replace('/','',strstr($url,'/'));
您的所有示例“字符串”都相当相等,因此最简单的方法是:
$url = 'c/category1';
$a = explode('/',$url);
$veriable_name1 = $a[0];
$veriable_name2 = $a[1];
或者,为了使其成为字符串函数,您可以运行
$variable_name1 = strstr($url,'/',true);
$variable_name2 = str_replace('/','',strstr($url,'/'));
你需要这样的东西:
$url = "c/category1";
$str_pos = strpos($url, "/");
$url_1 = substr($url, 0, $str_pos);
$url_2 = substr($url, $str_pos+1);
echo $url_1."<br/>";
echo $url_2;
你需要这样的东西:
$url = "c/category1";
$str_pos = strpos($url, "/");
$url_1 = substr($url, 0, $str_pos);
$url_2 = substr($url, $str_pos+1);
echo $url_1."<br/>";
echo $url_2;
您可以使用explode进行以下操作:
$str = "c/category1";
list($variable_name1, $variable_name2) = explode('/', $str, 2);
var_dump($variable_name1);
var_dump($variable_name2);
//Output:
//string(1) "c" string(9) "category1"
您可以使用explode进行以下操作:
$str = "c/category1";
list($variable_name1, $variable_name2) = explode('/', $str, 2);
var_dump($variable_name1);
var_dump($variable_name2);
//Output:
//string(1) "c" string(9) "category1"
您可以使用explode fn来执行此操作。我试过使用strstr函数
参考strstr fn
注意:它适用于c/category等[single slash oly]而不是c/category/smgU可以使用explode fn来完成此操作。我试过使用strstr函数
参考strstr fn
注意:它适用于[single slash oly],例如c/category,而不是c/category/smg。您还可以使用:
[regex101.com]。您还可以使用:
[regex101.com]。如果你想让真人阅读,请格式化你的代码。你能猜出你要检索链接的最大表数吗?如果你想让真人阅读,请格式化你的代码。你能猜出你要检索链接的最大表数吗?把所有简单的表都去掉。我得快点,干掉所有容易的。我必须加快速度。爆炸结束时,2限制在2个部分中最大分开,所以你总是得到2个变量,所以列表函数只指定匹配的2,如果没有限制,你可以退出它。顺便说一句,我的解决方案比其他解决方案短。爆炸时,末端的2限制在2个部分中最大分离,因此您总是得到2个变量,因此列表函数只指定匹配的2,如果没有限制,您可以退出它。顺便说一下,我的解决方案比其他的短
$str = "c/category1";
list($variable_name1, $variable_name2) = explode('/', $str, 2);
var_dump($variable_name1);
var_dump($variable_name2);
//Output:
//string(1) "c" string(9) "category1"
$str = 'c/category';
$var2 = trim(strstr($str, '/'),'/');
echo $var2; // prints category
$var1 = strstr($str, '/', true); // As of PHP 5.3.0
echo $var1; // prints c
$url = "c/category1";
preg_match('/^(.+)\/(.+)$/', $url, $matches);
// check that the URL is well formatted:
if (count($matches) != 3) {die('problem');}
$veriable_name1 = $matches[1];
$veriable_name2 = $matches[2];
echo('"'.$veriable_name1.'" | "'.$veriable_name2.'"');
// it will show this: "c" | "category1"