php 编程问题:只对链接中的 中文 进行urlencode转换,怎样处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 编程问题:只对链接中的 中文 进行urlencode转换,怎样处理相关的知识,希望对你有一定的参考价值。

链接形式如下

/2012/新闻/22.html

只对 "新闻"进行urlencolde转换,要怎样办?

用正则表达式匹配中文,在用urlencode替换中文:
function urlencode_ch($str) //直接用这个函数就可以了
function callback($match)
return urlencode($match[0]);

return preg_replace_callback('/[^\0-\127]+/','callback',$str);
//正则表达式匹配非单字节字符(含中文)


echo urlencode_ch('/2012/新闻/22.html');
参考技术A /2012/urlencolde(urlencolde)/22.html 参考技术B 同意davidaq的

100分求PHP获取图中链接URL中的ID数字值。

对于 url ,可以使用 parse_url 函数来解析获取相应的部分,比如 host、path、query 等。按照你题目的要求,需要获取的是 query 部分,这部分又可以使用 parse_str 函数来解析,然后获取需要的参数,比如你这里的 id。


这里有一个函数,用于获取一个链接的URL的query部分,并解析成数组,可以很方便的通过键名来获取参数值。


// 解析 url,数组的形式返回 url 的 query 部分
function getQuery($url='')

    $url=trim($url);
    if($url=='')
        return false;
    // 解析 url,获取 query 部分,它是一个字符串
    $query=parse_url($url, PHP_URL_QUERY);
    if($query===null)
        return null;
    // 解析 query 部分,将会保存到一个数组
    parse_str($query, $params);
    return $params;


// 使用举例
$url='...?id=24498704247'; // 你要解析的那个 url
$paras=getQuery($url); // array( 'id' => 24498704247)
echo $paras['id']; // 24498704247

追问

请问获取这个ID值后怎么在页面中调用呢?

追答

取出来的id它就是一个字符串。你指的调用是什么意思?如何使用,要看你的需求。

参考技术A $str = "http://xxx.com/sss.html?id=123123";

preg_match("/id=(\d*)/", $str ,$matches);
echo $matches[1];

以上是关于php 编程问题:只对链接中的 中文 进行urlencode转换,怎样处理的主要内容,如果未能解决你的问题,请参考以下文章

PHP是如何实现多线程编程的?

PHP 和 MySQL 中的短 URL 出站链接跟踪

PHP .htaccess -> 漂亮的 url(反向)

PHP .htaccess -> 漂亮的 url(反向)

使用 php 和 .htaccess 进行友好的 url 重写。与 css 图像和 js 的相对链接的困难

C#中如何调用动态链接库DLL