Discuz! 官方站

找回密码
立即注册

QQ登录

只需一步,快速开始

发新帖
andy888      

22

收听

16

听众

33

主题
发表于 2008-12-15 09:56:29 | 查看: 10960| 回复: 41
本帖最后由 andy888 于 2008-12-16 17:32 编辑

发现PHP4与PHP5截取的结果值不同重新修改发下

修改api目录下的discuz.php文件
1.找到
  1. $siteurl = substr(getsiteurl(), 0, -4);
复制代码
替换成
  1. $uri = $_SERVER['REQUEST_URI']?$_SERVER['REQUEST_URI']:($_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']:$_SERVER['SCRIPT_NAME']);
  2. $siteurl = 'http://'.$_SERVER['HTTP_HOST'].substr($uri, 0, strrpos($uri, '/')-3);
复制代码
2.找到
  1. function makeurl($str) {
  2. $str = stripslashes(preg_replace("/(\r\n|\n|\r)/", '', $str));
  3. $str = preg_replace("/src\=\"(?!http\:\/\/)(.+?)\"/i", ' src="'.substr(getsiteurl(), 0, -4).'\\1"', $str);
  4. return addslashes(preg_replace("/href\=\"(?!http\:\/\/)(.+?)\"/i", ' target="_blank" href="'.substr(getsiteurl(), 0, -4).'\\1"', $str));
  5. }
复制代码
修改为
  1. function makeurl($str) {
  2. global $siteurl;

  3. $str = stripslashes(preg_replace("/(\r\n|\n|\r)/", '', $str));
  4. $str = preg_replace("/src\=\"(?!http\:\/\/)(.+?)\"/i", ' src="'.$siteurl.'\\1"', $str);
  5. return addslashes(preg_replace("/href\=\"(?!http\:\/\/)(.+?)\"/i", ' target="_blank" href="'.$siteurl.'\\1"', $str));
  6. }
复制代码
3.找到
  1. include_once(S_ROOT.'./api/discuz/'.$ac.'.php');
复制代码
这行,在前面添加
  1. if(!empty($_SCONFIG['uc_dir']) && !strexssists($_SCONFIG['uc_dir'], ':/') && !strexists($_SCONFIG['uc_dir'], ':\\') && substr($_SCONFIG['uc_dir'], 0, 1) != '/') {
  2.         $_SCONFIG['uc_dir'] = '../'.$_SCONFIG['uc_dir'];
  3. }
复制代码
可以对比这个修改过的文件

discuz.rar

1.1 KB, 下载次数: 693

已有 1 人评分金币 理由
缘V聖戰 + 1 蜗牛在线www.snailol.com/open 感谢您的帮

总评分: 金币 + 1   查看全部评分

http://www.0066.cn

SupeSite/X-Space官方群:655682
本群提供给各站长交流与探讨同时不定期的踢除沉默的用户
abcnic1      
发表于 2008-12-15 10:03:46
嗯 好的 :)

回复 显示全部楼层 道具 举报

发表于 2008-12-15 10:17:34
我怎么第一行代码都没找到 啊?

回复 显示全部楼层 道具 举报

发表于 2008-12-15 10:19:05
我也没找到。。。。。直接替换了也解决不了问题

回复 显示全部楼层 道具 举报

发表于 2008-12-15 10:21:52
第一步的代码好像是存在的!

回复 显示全部楼层 道具 举报

发表于 2008-12-15 10:31:49
api目录下的discuz.php文件内容,哪有您说的代码呀


<?php
/*
        [UCenter Home] (C) 2007-2008 Comsenz Inc.
        $Id: discuz.php 10683 2008-12-12 10:10:38Z zhengqingpeng $
*/

include_once('../common.php');

$ac = isset($_GET['ac']) ? trim($_GET['ac']) : '';

$uri = $_SERVER['REQUEST_URI']?$_SERVER['REQUEST_URI']$_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']_SERVER['SCRIPT_NAME']);
$siteurl = 'http://'.$_SERVER['HTTP_HOST'].substr($uri, 0, strrpos($uri, '/api')+1);

if(!in_array($ac, array('doing', 'album', 'space', 'feed'))) {
        $ac = 'js';
}

include_once(S_ROOT.'./api/discuz/'.$ac.'.php');

function makeurl($str) {
        global $siteurl;
       
        $str = stripslashes(preg_replace("/(\r\n|\n|\r)/", '', $str));
        $str = preg_replace("/src\=\"(?!http\:\/\/)(.+?)\"/i", ' src="'.$siteurl.'\\1"', $str);
        return addslashes(preg_replace("/href\=\"(?!http\:\/\/)(.+?)\"/i", ' target="_blank" href="'.$siteurl.'\\1"', $str));
}

function getdotstring ($string, $vartype, $allownull=false, $varscope=array(), $sqlmode=1, $unique=true) {

        if(is_array($string)) {
                $stringarr = $string;
        } else {
                if(substr($string, 0, 1) == '$') {
                        return $string;
                }
                $string = str_replace(',', ',', $string);
                $string = str_replace(' ', ',', $string);
                $stringarr = explode(',', $string);
        }

        $newarr = array();
        foreach ($stringarr as $value) {
                $value = trim($value);
                if($vartype == 'int') {
                        $value = intval($value);
                }
                if(!empty($varscope)) {
                        if(in_array($value, $varscope)) {
                                $newarr[] = $value;
                        }
                } else {
                        if($allownull) {
                                $newarr[] = $value;
                        } else {
                                if(!empty($value)) $newarr[] = $value;
                        }
                }
        }

        if($unique) $newarr = sarray_unique($newarr);
        if($vartype == 'int') {
                $string = implode(',', $newarr);
        } else {
                if($sqlmode) {
                        $string = '\''.implode('\',\'', $newarr).'\'';
                } else {
                        $string = implode(',', $newarr);
                }
        }
        return $string;
}

//将数组中相同的值去掉,同时将后面的键名也忽略掉
function sarray_unique($array) {
        $newarray = array();
        if(!empty($array) && is_array($array)) {
                $array = array_unique($array);
                foreach ($array as $value) {
                        $newarray[] = $value;
                }
        }
        return $newarray;
}
?>

回复 显示全部楼层 道具 举报

andy888      
发表于 2008-12-15 10:39:58
你这修改过了,你还有问题吗?有就把地址贴出来,联系我,我帮你看一下

回复 显示全部楼层 道具 举报

发表于 2008-12-15 10:47:21
我还没找到有新短消息的人呢,我试验完就告诉你哈!

回复 显示全部楼层 道具 举报

trent      
发表于 2008-12-15 10:58:12
替换过了,最新更新空间的头像还是默认的,怎么办??
地址http://www.youugo.cn/forumdisplay.php?fid=45

回复 显示全部楼层 道具 举报

h3cie      
发表于 2008-12-15 11:04:23
已经修改,呵

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|北京康盛新创科技有限责任公司 ( 京ICP证110024号|京网文[2011]0019-007号   

GMT+8, 2012-5-22 01:41 , Processed in 0.110518 second(s), 15 queries , Gzip On, Memcache On.

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部