如何从URL片段获取输入?

时间:2015-07-15 01:17:15

标签: php

我正在使用imagecreate,这是我的代码:

<?php
$my_img = imagecreate( 200, 80 );
$background = imagecolorallocate( $my_img, 0, 0, 255 );
$text_colour = imagecolorallocate( $my_img, 255, 255, 0 );
$line_colour = imagecolorallocate( $my_img, 128, 255, 0 );
imagestring( $my_img, 4, 30, 25, "Santosh", $text_colour );
imagesetthickness ( $my_img, 5 );
imageline( $my_img, 30, 45, 165, 45, $line_colour );

header( "Content-type: image/png" );
imagepng( $my_img );
imagecolordeallocate( $line_color );
imagecolordeallocate( $text_color );
imagecolordeallocate( $background );
imagedestroy( $my_img );
?>

嗯,传递给imagecreate的维度是硬编码的,我不想这样做。我希望从URL中获取维度。我知道我可以使用我们称之为_GET的东西来做到这一点。但这会使网址像:script.php?h=100&w=200。但我想要的是:script.php/100/200

那么,如何从URL片段获取输入?

3 个答案:

答案 0 :(得分:0)

您可以删除脚本名称并将其分解为参数,如下所示

$extra_path = str_replace($_SERVER['SCRIPT_NAME'],'',$_SERVER['REQUEST_URI']);
$parts = explode('/',$extra_path);

然后会给你

$parts = array(
   '100',
   '200'
);

答案 1 :(得分:0)

你可以用正则表达式拆分$_SERVER['REQUEST_URI']或爆炸,函数parse_url()在这里非常方便......

if(preg_match('%/(?P<width>\d+)/(?P<height>\d+)(/|\z)%', parse_url($_SERVER['REQUEST_URI'],PHP_URL_PATH),$dimensions))
{
  var_dump($dimensions['width']);
  var_dump($dimensions['height']);
}

答案 2 :(得分:0)

使用$_SERVER['PATH_INFO'],如下所述 http://php.net/manual/en/reserved.variables.server.php