Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] UCHome在论坛展示的feed地址错误问题修改

[复制链接]
andy888 发表于 2008-12-15 09:56:29 | 显示全部楼层 |阅读模式
本帖最后由 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. }
复制代码
可以对比这个修改过的文件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

abcnic1 发表于 2008-12-15 10:03:46 | 显示全部楼层
嗯 好的 :)
回复

使用道具 举报

缘V聖戰 发表于 2008-12-15 10:17:34 | 显示全部楼层
我怎么第一行代码都没找到 啊?
回复

使用道具 举报

moyan2008 发表于 2008-12-15 10:19:05 | 显示全部楼层
我也没找到。。。。。直接替换了也解决不了问题
回复

使用道具 举报

缘V聖戰 发表于 2008-12-15 10:21:52 | 显示全部楼层
第一步的代码好像是存在的!
回复

使用道具 举报

moyan2008 发表于 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 | 显示全部楼层
你这修改过了,你还有问题吗?有就把地址贴出来,联系我,我帮你看一下
回复

使用道具 举报

缘V聖戰 发表于 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 | 显示全部楼层
已经修改,呵
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 02:25 , Processed in 0.034402 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表