Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP将我的URL转换为两个可变部分?_Php_Mysql - Fatal编程技术网

如何使用PHP将我的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(

我想将我的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('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/smg

U可以使用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"