mysql中如何去掉字段中指定字到结尾的字符串

0

分类 : 编码知识 | 发表时间 05-12-2010

这是帮同事处理dedecms数据库中的一个字段问题

title字段的内容太长了,想用shorttitle字段中的内容来独立处理,达到使用shorttitle作为正文标题,title中的内容作为显示title。大概看了下,发现title中的内容大多包含单机游戏下载、单机游戏中文版下载,前面的内容为游戏的具体名称,所以决定用游戏的具体名称作为正文标题。

在mysql中使用语句来处理这个,稍费了点周折,记录一下;

Update `dede_archives` set shorttitle=left(shorttitle,instr(shorttitle,’下载’)-1)  where shorttitle like ‘%下载%’

注意,不能少后面的like条件,操作之前,备份下数据库。

设置phpmyadmin 允许空密码登陆

4

分类 : 编码知识 | 发表时间 10-05-2010

今天在用phpmyadmin 3.3.2在本地调试时,登陆提示“不允许空密码登陆”,这个安全限制比较好,强制安全。但在本地调试就有这么一点不方便了,很多本地调试网站的默认数据库配置都是空密码,如果要都加上密码,就麻烦大了。

网上查了下,发现解决这类的办法,都是说添加一个允许空密码访问的用户:“点击权限,添加新用户,在密码项选择空密码”。这方法有点矛盾,首先现在就根本就登陆不进去,何来的设置权限?

看了看phpmyadmin的config.inc.php(此文件是config.sample.inc.php修改文件名而来),果然有发现,里有一项:

$cfg['Servers'][$i]['AllowNoPassword'] = false;

默认的false是不允许空密码登陆,修改为“true”,保存config.inc.php,就ok了,空密码登陆。

sql server 利用首字母拼音排序和笔画排序的语句

0

分类 : 编码知识 | 发表时间 07-07-2009

今天在整理一个大分类时,由于分类下面综合了几个网站的信息,因此想把几十个小分类综合一下,但拷贝到一起时,人工来分辨无疑极为伤神又伤眼,这样就想到用sql排序了。

首先把这些信息在editplus中,转换为一列,拷贝到excel中,拷贝后记着在第一行前插入一行,作为列标头,例如为name,然后在sql中表中,导入数据,生成一个新表,例如fenlei,打开sql语句行,执行:

SELECT *
FROM Fenlei
ORDER BY name COLLATE Chinese_PRC_CS_AS_KS_WS

这是按首字的拼音来排序。

SELECT *
FROM Fenlei
ORDER BY name COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS

这是按首字笔画来排序。

Linker对SQL学习不多,现用现学现查找,记录收藏下,共享之。

最新完整版PHP配置文件翻译

2

分类 : 编码知识 | 发表时间 01-07-2009

这个php的配置文件,在网上传播得比较多,或者说是一种版本乱传播,或者是多种版本在交互传播,因此有些不太准确,今天看到有网友新近翻译了一个全新的,很完整,收拾出来给大伙看看,虽然大多数配置php时,不用看这个翻译了,但有了这个也不多余,参考交流下。

=========================================================

[PHP]

;;;;;;;;;;;
; 警告 ;
;;;;;;;;;;;
; 此配置文件是对于新安装的PHP的默认设置.
; 默认情况下,PHP使用此配置文件安装
; 此配置针对开发目的,并且*不是*针对生产环境
; 基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recommended
; 以及在线文档 http://php.net/manual/en/security.php.

;;;;;;;;;;;;;;;;;;;
; 关于 php.ini ;
;;;;;;;;;;;;;;;;;;;
; 此文件控制了PHP行为的很多方面. 为了让PHP能够读取它
; 必须命名为 ‘php.ini’. PHP 在其当前工作目录,由PHPRC环境变量指定目录
; 以及由编译时指定的目录(按此顺序)查找此文件
; 在Windows环境下, 编译时目录是Windows目录.
; 在命令行模式下查找php.ini的目录可以被-c参数覆盖.
;
; 此文件的语法非常简单.
; 空行和由分号开始的行会被忽略(你可能已经猜到了).
; 段的开头(例如 [Foo]) 同样会被悄悄忽略
; 即使在将来他们可能会有其他作用.
;
; 使用以下语法来设定指令:
; directive = value
; 指令 = 值
; 指令名称是 *大小写敏感* – foo=bar 和 FOO=bar 是不同的.
;
; 值可以是字符串,数值,PHP常量 (例如 E_ALL 和 M_PI),
; INI 常量 (On, Off, True, False, Yes, No 和 None) 或者一个表达式
; (例如 E_ALL & ~E_NOTICE), 或者带引号的字串 ("foo").
;
; 在INI文件中的表达式只能使用逻辑运算和圆括号:
; | 逻辑或
; & 逻辑与
; ~ 逻辑非
; ! 取反
;
; 逻辑标志可以使用1,On,True或者Yes来打开.
; 也可以使用0, Off, False 或者 No来关闭.
;
; 在等号后面不写任何内容代表了一个空字符串
; 或者使用 None 关键词:
;
; foo = ; 将foo设置成一个空字串
; foo = none ; 将foo设置成一个空字串
; foo = "none" ; 将foo设置成字串 ‘none’
;
; 如果你在值中使用了常量, 并且这个常量属于一个动态加载的扩展模块
; (不论是PHP扩展还是Zend扩展),
; 那你只能在加载这些扩展 *之后* 使用这些常量.
;
;
;;;;;;;;;;;;;;;;;;;
; 关于这个文件 ;
;;;;;;;;;;;;;;;;;;;
; 在php.ini-dist 文件中所有的值都相当于内建的默认值
; (就是如果没有使用php.ini, 或者如果你删除了这些行,
; 就和内建的默认值一样).

;;;;;;;;;;;;;;;;;;;;
; 语言选项 ;
;;;;;;;;;;;;;;;;;;;;

; 打开在Apache下的PHP脚本语言引擎
engine = On

; 打开Zend Engine兼容模式(PHP 4.x)
zend.ze1_compatibility_mode = Off

; 允许 <? 标签. 否则,只有 <?php 和 <script> 标签被认为是PHP脚本.
; 注意: 尽可能避免在开发可重新发布的程序或者库的时候使用简略标签,或者在不受你控制的服务器下发布,
; 因为简略标签可能不被目标服务器支持.为了可移植性, 可重新发布的代码, 请不要使用简略标签
short_open_tag = On

; 使用ASP风格 <% %> 标签.
asp_tags = Off

; 浮点数中数值的有效位数(浮点数精度).
precision = 12

; 强制2000年兼容 (可能引起不兼容浏览器的问题)
y2k_compliance = On

; 输出缓冲允许在你发送了body内容之后发送header(包括 cookies)
; 代价是稍稍减缓了PHP输出层
; 你可以在运行时调用 output buffering 函数来打开此功能
; 你也可以将此指令设置为On来对所有文件打开输出缓冲
; 如果你想将这个缓冲区限制到特定大小 – 你可以使用最大的字节数来代替’On’,来作为这个指令的参数 (例如 output_buffering=4096).
output_buffering = Off

; 你可以将所有你脚本输出的内容重定向到指定函数.
; 例如, 如果你设置 output_handler 到 "mb_output_handler",
; 字符编码会被转换成为指定的编码..
; 设置任何的输出处理句柄会自动打开输出缓冲.
; 注意: 如果想编写可移植脚本就不要依赖此INI配置
; 取而代之的是, 明确的使用 ob_start() 来设置输出处理句柄.
; 使用此ini指令可能引起问题,除非你很清楚的理解脚本正在做什么.
; 注意: 你不能同时使用 "mb_output_handler" 和 "ob_iconv_handler"
; 并且你不能同时使用 "ob_gzhandler" 和 "zlib.output_compression".
; 注意: 如果使用zlib.output_handler指令开启zlib输出压缩, 该指令必须为空.
;output_handler =

; 使用zlib库对输出进行压缩
; 对此选项的有效值是 ‘off’, ‘on’, 或者字节数 (用来压缩的缓冲大小 , 默认是 4KB)
; 注意: 结果的chunk大小可能由于压缩对象的大小而不同.
; PHP输出块的大小一般压缩之后每个大小时几百个字节.
; 如果你希望藉由一个大块的堆大小来获取更好的性能, 需要额外的打开 output_buffering 选项.
; 注意: 你必须使用 zlib.output_handler 来替代标准的
; output_handler, 否则输出可能会有问题.
zlib.output_compression = Off
;zlib.output_compression_level = -1

; 这里激活 zlib.output_compression 之后,你无法再指定额外的输出处理.
; 这个设置和 output_handler 一样,但是处理顺序不同.
;zlib.output_handler =

; 立即刷新告知 PHP 让输出层在每次输出块之后立刻自动刷新.
; 这和每次调用print()或者echo()函数以及任何一种HTML块后调用flush()一样.
; 打开此选项会严重导致性能下降,一般只有用于调试情况下才建议打开.
implicit_flush = Off

; 如果反序列器找到一个可以作为示例的未定义类.未序列化的回调函数会被调用(使用未定义的类名作为参数),
; 如果特定的函数未被定义或者如果此函数没有包含/实现丢失的类,则会发生一个警告.
; 如果只有你真想要实现类似的回调函数,才设定此入口.
unserialize_callback_func=

; 当浮点和双精度被序列化后,浮点号后由 serialize_precision 指定存储精确度的有效位数.
; 默认值是当浮点数被反序列解码后,数值仍旧相同.
serialize_precision = 100

; 是否打开强制通过引用传递参数给函数
; 此方法被反对并且很有可能在未来版本的PHP/Zend中不再被支持.
; 被孤立的指定的方法是参数应该在函数被声明的时候按照引用传入.
; 你被鼓励来尝试上述方法并关闭此选项来确保你脚本在今后的新版本中仍旧可以正常工作 ( 每次你使用此特性的时候会受到一个警告
; 并且参数会传值而不是传引用).
allow_call_time_pass_reference = On

;
; 安全模式
;
safe_mode = Off

; 默认情况下,安全模式在打开文件时,使用UID来比对检测.
; 如果你只想使用GID做宽松的比对,
; 打开 safe_mode_gid.
safe_mode_gid = Off

; 当 safe_mode 被打开, 此目录下包含的文件和子文件夹的UID/GID 检测会被绕过.
; (目录必须在 include_path 中存在或者必须在包含时使用全路径)
safe_mode_include_dir =

; 当 safe_mode 被打开, 只有在 safe_mode_exec_dir 中定义的可执行文件能够通过exec函数组打开执行.
safe_mode_exec_dir =

; 设定某些的环境变量可能成为潜在的安全隐患.<
br />; 此指令包含一个逗号分隔的前导列表.
; 在安全模式中, 用户可能只能改变符合这里所给出前导字符的变量.
; 默认情况下,用户只能改变以PHP_开头的变量(例如. PHP_FOO=BAR).
;
; 注意: 如果此指令为空, PHP会允许用户修改任何环境变量!
safe_mode_allowed_env_vars = PHP_

; 此指令包含了一个用逗号分隔的环境变量列表, 用户无法通过 putenv() 函数来修改列表中的环境变量.
; 这些变量即便已经在 safe_mode_allowed_env_vars 所设定的列表中,也会被被保护不允许修改.
safe_mode_protected_env_vars = LD_LIBRARY_PATH

; 如果设置了open_basedir, 将会限制文件操作只能是此指令下的目录和子目录.
; 此指令对于每目录或者每虚拟主机配置文件最有意义. 此指令* 不会 *受安全模式开或者关的影响.
;open_basedir =

; 此指令允许你为了安全原因关闭指定的函数.
; 它接受以逗号分隔的函数名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_functions =

; 此指令允许你由于安全原因关闭指定的类.
; 它接受以逗号分隔的类名的列表.
; 此指令* 不会 *受安全模式开或者关的影响.
disable_classes =

; 语法高亮模式的色彩. 任何在 <span style="color: ???????"> 中可接受的值都可以使用.
;highlight.string = #DD0000
;highlight.comment = #FF9900
;highlight.keyword = #007700
;highlight.bg = #FFFFFF
;highlight.default = #0000BB
;highlight.html = #000000

; 如果打开, 即便用户放弃了的请求也会被执行完成.
; 在执行可能被用户打断或者浏览器超时所中断的请求时打开此选项.
; ignore_user_abort = On

; 指定PHP使用的实际路径的缓冲. 对于PHP打开很多文件来处理很多文件操作的系统上,应该增加此值.
; realpath_cache_size=16k

; 对于给定文件或者目录的缓冲真实路径信息的缓冲保留秒数. 对于很少修改文件的系统可以考虑增加此值.
; realpath_cache_ttl=120

;
; 其他
;
; 考虑到PHP可能被其所安装的服务器上暴露的事实(例如. 被web服务器作为头部信息的签名).
; 任何情况下这虽然不是安全威胁, 仍有可能暴露在你的服务器上是否正在使用PHP.
expose_php = On

;;;;;;;;;;;;;;;;;;;
; 资源限制 ;
;;;;;;;;;;;;;;;;;;;

; 每个脚本最大执行秒数
max_execution_time = 30
; 每个脚本用来分析请求数据的最大时间
max_input_time = 60
; 最大输入变量的嵌套级别
;max_input_nesting_level = 64
; 每个脚本能够使用的最大内存数量 (128MB)
memory_limit = 128M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 错误处理和记录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; 错误报告时一个位. 对每一个数值取或可以得到最终的报告级别
; E_ALL – 所有错误和警告 (不包含 E_STRICT)
; E_ERROR – 致命的运行时错误
; E_RECOVERABLE_ERROR – 几乎致命的运行时错误
; E_WARNING – 运行时警告 (非致命错误)
; E_PARSE – 编译时语法错误
; E_NOTICE – 运行时提醒 (这些警告常常由你代码中的bug导致, 但是也有可能是有意的行为 (例如, 使用一个未初始化的变量并依赖于其会被自动初始化成为一个空字符串的事实)
; E_STRICT – 运行时提醒, 打开后PHP会给出针对你代码的最易移植和最好向后兼容性的建议
; E_CORE_ERROR – PHP初始化启动时的致命错误
; E_CORE_WARNING – 在PHP初始化时发生的警告 (非致命错误)
; E_COMPILE_ERROR – 致命的编译时错误
; E_COMPILE_WARNING – 编译时警告 (非致命)
; E_USER_ERROR – 用户产生的错误信息
; E_USER_WARNING – 用户产生的警告信息
; E_USER_NOTICE – 用户产生的提示信息
;
;例子:
;
; – 显示所有错误, 除了提示以及代码标准警告以外
;
;error_reporting = E_ALL & ~E_NOTICE
;
; – 显示所有错误,除了提示以外
;
;error_reporting = E_ALL & ~E_NOTICE | E_STRICT
;
; – 只显示错误
;
;error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
;
; – 显示出了提示以及代码标准警告之外的错误
;
error_reporting = E_ALL & ~E_NOTICE

; 打印输出错误 (作为输出的一部分). 对于生产环境的网站来说,
; 强烈建议你关闭此选项, 使用错误日志来替代 (详情参考下面内容).
; 在一个生产环境下的web站点打开display_errors可能泄漏安全信息给最终用户, 例如web服务器的文件路径,你数据库的结构或者其他信息.
;
; display_errors可用的值:
;
; Off – 不显示任何错误信息
; stderr – 将错误信息输出到STDERR (只有 CGI/CLI 格式下有效!)
;
;display_errors = "stderr"
;
; stdout (On) – 输出错误信息到STDOUT上
;
display_errors = On

; 即使 display_errors 打开后,PHP启动序列中发生的错误也不会显示.
; 强烈建议你保持 display_startup_errors 关闭状态, 除非在排错
display_startup_errors = Off

; 将错误输入到日志文件 (服务器指定的log,stderr或者error_log (以下指定))
; 和上面提到的一样, 强烈建议你在生产环境的web站点下使用错误日志来代替错误显示.
log_errors = Off

; 设定log_errors的最大长度. 在 error_log 关于源的信息也计算在内.
; 默认是1024, 设置为0可以不限制任何最大长度.
log_errors_max_len = 1024

; 不要记录重复的信息.必须出现在同样文件的相同行之中的才被认为是重复信息,除非 ignore_repeated_source 被设为 true.
ignore_repeated_errors = Off

; 当忽略重复消息时忽略消息的来源. 当此设置打开后,不再记录来自不同文件或者不同行的相同消息.
ignore_repeated_source = Off

; 如果此选项被设置为 Off, 那么内存泄漏不会被显示 (不论在stdout还是在日志中).
; 此项仅在debug编译模式下有效, 并且错误报告需要包含 E_WARNING
report_memleaks = On

;report_zend_debug = 0

; 在$php_errormsg中保存最后一次错误/警告消息 (逻辑值).
track_errors = Off

; 关闭在错误信息中所包含的HTML标签.
; 注意: 永远不要再生产环境中使用此特性.
;html_errors = Off

; 如果html_errors 设置为On, 则PHP产生可点击的错误信息,点击后会跳转到描述此错误或者引起此错误的函数具体信息的页面.
; 你可以从 http://www.php.net/docs.php 下载一份PHP手册的副本
; 并且将 docref_root指向你放置本地拷贝的以’/'开头的.
; 你同时必须指定文件文件的包含点的扩展名.
; 注意: 永远不要再生产环境中使用此特性.
;docref_root = "/phpmanual/"
;docref_ext = .html

; 在输出的错误信息前加上的字符串.
;error_prepend_string = "<font color=#ff0000>"

; 在输出的错误信息之后加上的字符串.
;error_append_string = "</font>"

; 将错误记录到指定文件.
;error_log = filename

; 将错误记录到 syslog (NT系统上的Event Log在Windows 95下不可用).
;error_log = syslog

;;;;;;;;;;;;;;;;;
; 文件处理 ;
;;;;;;;;;;;;;;;;;
;
; 注意 – track_vars 在PHP 4.0.3 中总是打开的

; 在PHP产生的URL中用来分隔参数的符号.
; 默认是 "&".
;arg_separator.output = "&amp;"

; PHP用来将URL分割输入到变量中的分隔符.
; 默认是 "&".
; 注意: 所有包含在指令内的字符都会被认为是分隔符!
;a
rg_separator.input = ";&"

; 此指令描述了PHP注册GET, POST, Cookie, 环境 和 内置变量的顺序 (各自使用G, P, C, E 和 S , 一般使用 EGPCS 或 GPC). 注册使用从左往右的顺序, 新的值会覆盖旧的值.
variables_order = "EGPCS"

; 是否将EGPCS变量注册成为全局变量.
; 如果你不希望由于用户数据而导致你脚本的全局变量变得凌乱,你需要关闭此选项
; 这个一般随着 track_vars 打开 – 在这种情况下你能够通过$HTTP_*_VARS[]存取所有的GPC变量.
;
; 你应该努力写好脚本这样就不必打开register_globals
; 如果代码不是经过详细的斟酌,那将变量作为全局使用可能很容易导致潜在的安全漏洞.
register_globals = Off

; 是否注册老形式的输入数组, HTTP_GET_VARS 和相关数组
; 如果你不使用他们,建议为了提高性能关闭他们.
register_long_arrays = On

; 此指令让PHP确认是否申明 argv&argc 变量 (这些变量会包含GET信息).
; 如果你不使用这些变量,为了提升性能应该关闭此选项.
register_argc_argv = On

; 当打开此项, SERVER 和 ENV 变量将在第一次被使用时而不是脚本一开始时创建(运行时)
; 如果这些变量在脚本中没有被使用过, 打开此项会增加一点性能.
; 为了使此指令有效,PHP指令 register_globals, register_long_arrays,
; 以及 register_argc_argv 必须被关闭.
auto_globals_jit = On

; PHP可以接受的最大的POST数据大小.
post_max_size = 8M

; Magic quotes
;

; 针对GET/POST/Cookie数据打开Magic quotes.
magic_quotes_gpc = On

; 针对实时产生的数据打开Magic quotes, 例如从SQL获取的数据, 从exec()返回的数据等等.
magic_quotes_runtime = Off

; 使用 Sybase 风格的 magic quotes (使用"来引导’替代\’).
magic_quotes_sybase = Off

; 在任何PHP文档之前或之后自动增加文件.
auto_prepend_file =
auto_append_file =

; 和 4.0b4一样, PHP 总是使用默认在头 Content-type: 的编码输出字符.
; 将其设置为空可以禁用发送字符集.
;
; PHP内建默认为text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"

; 总是填充 $HTTP_RAW_POST_DATA 变量.
;always_populate_raw_post_data = On

;;;;;;;;;;;;;;;;;;;;;;;;;
; 路径和目录 ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"

; PHP页面的根路径, 只有非空时有效.
; 如果PHP没有使用FORCE_REDIRECT来编译, 如果你将php作为CGI运行在任何web服务器下(除了IIS)的话,你必须设置doc_root
; 针对安全问题查看文档. 一种替代方案是使用下面的cgi.force_redirect
doc_root =

; PHP使用/~username打开脚本的目录,非空时才有效.
user_dir =

; 可加载的扩展(模块)的目录位置.
extension_dir = "./"

; 是否启用 dl() 函数. dl() 函数无法正常的在多线程服务下运行, 例如IIS或者Zeus, 并在在这些服务软件下会自动禁用.
enable_dl = On

; 在绝大多数web服务器下,cgi.force_redirect 对于提供安全执行PHP作为CGI来说是很有必要的.
; 没有配置的情况下,PHP会默认打开此项.
; 你可以在这里关闭此项并且自己承担风险
; **你可以在IIS安全的关闭此项,事实上,你必须关闭此项.**
; cgi.force_redirect = 1

; 如果 cgi.nph 被打开,就会强制CGI在每个请求时发送Status: 200.
; cgi.nph = 1

; 如果cgi.force_redirect被打开,并且你没有在Apache或者Netscape(iPlanet) web服务器下运行,
; 你也许需要设置一个环境变量名让PHP来查找让其可以获取后继续执行. 设置此变量可能引起安全问题, 在设置之前请先了解可能引起的后果.
; cgi.redirect_status_env = ;

; cgi.fix_pathinfo 为CGI提供 *真实* PATH_INFO/PATH_TRANSLATED 支持.
; PHP的预处理行为是设置 PATH_TRANSLATED 到 SCRIPT_FILENAME, 并且不去猜测 PATH_INFO 是什么.
; 想获取关于 PATH_INFO 更多的信息, 查看 cgi 规范.
; 将此值设置为1会引起PHP CGI修正它的路径来符合规范.
; 设置为0会引起PHP类似前面的行为. 默认是1. 你应该修正你的脚本来使用 SCRIPT_FILENAME 而不是 PATH_TRANSLATED.
; cgi.fix_pathinfo=0

; 在IIS下的FastCGI (在基于 WINNT 的操作系统下) 支持莫让呼叫客户端的安全令牌的能力.
; 这使得IIS能够定义其下运行的安全上下文.
; 在Apache下的mod_fastcgi 目前不支持此特性 (03/17/2002)
; 如果运行在IIS下设置为1. 默认是0.
; fastcgi.impersonate = 1;

; 关闭通过 FastCGI 连接的日志
; fastcgi.logging = 0

; cgi.rfc2616_headers 配置选项告知 PHP 当发送HTTP响应代码时使用什么类型的头
; 如果设置为0,PHP发送被Apache支持的 Status: 头信息.
; 当设置为1, PHP会发送 RFC2616 兼容的头信息.
; 默认为0.
; cgi.rfc2616_headers = 0

;;;;;;;;;;;;;;;;
; 文件上传 ;
;;;;;;;;;;;;;;;;

; 是否允许HTTP文件上传.
file_uploads = On

; 对于HTTP上传文件的临时文件目录 (如果没有指定则会使用系统默认).
;upload_tmp_dir =

; 允许上传的最大文件大小.
upload_max_filesize = 2M

;;;;;;;;;;;;;;;;;;
; Fopen 包装 ;
;;;;;;;;;;;;;;;;;;

; 是否允许将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_fopen = On

; 是否允许 include/require 将URL作为文件 (例如 http:// 或者 ftp://) .
allow_url_include = Off

; 定义匿名ftp密码 (你的电子邮件地址)
;from="john@doe.com"

; 定义 User-Agent 字符串
; user_agent="PHP"

; 定义基于流的socket接口的超时时间 (秒)
default_socket_timeout = 60

; 如果你的脚本必须处理从 Macintosh 系统来的文件,
; 或者你运行在一台Mac并且需要从unix或者win32系统上处理文件,
; 设置此标志会引起PHP自动检测这些文件的EOL字符,这样fgets() 和 file() 就可以不用管文件的来源而直接处理了.
; auto_detect_line_endings = Off

;;;;;;;;;;;;;;;;;;;;;;
; 动态扩展 ;
;;;;;;;;;;;;;;;;;;;;;;
;
; 如果你希望扩展自动加载, 使用下列语法:
;
; extension=modulename.extension
;
; 例如,在Windows系统上:
;
; extension=msql.dll
;
; … 或者在 UNIX 下:
;
; extension=msql.so
;
; 注意: 这里应该只是模块的名字;
; 这里不需要模块的目录信息.
; 使用上面的 extension_dir 指令来指定扩展的位置.

; Windows Extensions
; 注意:已经内建了ODBC支持,所以不需要针对ODBC的dll.
; 注意:许多DLL文件位于 extensions/ (PHP 4) 或者 ext/ (PHP 5)目录中,和分割的PECL DLL下载在一起 (PHP 5).
; 确定设置了正确的 extension_dir 指令.

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_msql.dll
;extension=php_mssql.dll
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8.dll
;extension=php_openssl.dll />;extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

;;;;;;;;;;;;;;;;;;;
; 模块设置 ;
;;;;;;;;;;;;;;;;;;;

[Date]
; 定义date函数使用的默认时区
;date.timezone =

;date.default_latitude = 31.7667
;date.default_longitude = 35.2333

;date.sunrise_zenith = 90.583333
;date.sunset_zenith = 90.583333

[filter]
;filter.default = unsafe_raw
;filter.default_flags =

[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1

[sqlite]
;sqlite.assoc_case = 0

[xmlrpc]
;xmlrpc_error_number = 0
;xmlrpc_errors = 0

[Pcre]
;PCRE 库反响追踪限制.
;pcre.backtrack_limit=100000

;PCRE 库递归限制.
;请注意如果你设置此项到一个很高的值, 你可能耗尽所有的可用的进程堆并且最终弄宕PHP(由于到达了操作系统强制的堆大小的限制).
;pcre.recursion_limit=100000

[Syslog]
; 是否定义不同的syslog变量 (例如. $LOG_PID,
; $LOG_CRON, 等等.). 关闭此选项对性能有益.
; 在运行时, 你可以调用 define_syslog_variables() 函数来定义这些变量.
define_syslog_variables = Off

[mail function]
; 针对Win32.
SMTP = localhost
smtp_port = 25

; 针对Win32.
;sendmail_from = me@example.com

; 针对Unix. 可以支持参数 (默认: "sendmail -t -i").
;sendmail_path =

; 强制额外的指定的参数被作为扩展参数传送给sendmail执行文件.
; 这些参数总是替代mail()函数的第五个参数值, 甚至是在安全模式内.
;mail.force_extra_parameters =

[SQL]
sql.safe_mode = Off

[ODBC]
;odbc.default_db = 目前无效
;odbc.default_user = 目前无效
;odbc.default_pw = 目前无效

; 允许或阻止持久连接.
odbc.allow_persistent = On

; 在重用前检查连接是否可用.
odbc.check_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
odbc.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
odbc.max_links = -1

; 长字段处理. 返回变量的字节数. 0 意味着略过.
odbc.defaultlrl = 4096

; 二进制数据处理. 0 意味着略过, 1按照实际返回, 2 转换到字符.
; 查看 odbc_binmode 和 odbc_longreadlen 的文档来获取针对 uodbc.defaultlrl 和 uodbc.defaultbinmode的解释
odbc.defaultbinmode = 1

[MySQL]
; 允许或阻止持久连接.
mysql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
mysql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
mysql.max_links = -1

; mysql_connect()默认的端口号. 如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysql.default_port =

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysql.default_socket =

; mysql_connect() 的默认host值(在安全模式中不会生效).
mysql.default_host =

; mysql_connect() 的默认user值(在安全模式中不会生效).
mysql.default_user =

; mysql_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var("mysql.default_password")
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysql.default_password =

; 连接超时的最大时间 (秒) , -1 意味着没有限制.
mysql.connect_timeout = 60

; 追踪模式. 当 trace_mode 被打开 (=On), table/index 扫描的警告和SQL错误会被显示出来.
mysql.trace_mode = Off

[MySQLi]

; 最大连接数. -1 意味着没有限制.
mysqli.max_links = -1

; mysqli_connect()默认的端口号. 如果没有设置, mysql_connect() 会使用 $MYSQL_TCP_PORT
; 或者 位于/etc/services的 mysql-tcp 入口或者编译时定义的MYSQL_PORT 值(按照此顺序查找).
; Win32 只会查找MYSQL_PORT值.
mysqli.default_port = 3306

; 对于本地MySQL连接的默认socket名称. 如果为空, 则使用MySQL内建默认值.
mysqli.default_socket =

; mysqli_connect() 的默认host值(在安全模式中不会生效).
mysqli.default_host =

; mysqli_connect() 的默认user值(在安全模式中不会生效).
mysqli.default_user =

; mysqli_connect() 的默认password值(在安全模式中不会生效).
; 注意在此文件中保存密码一般来说是 *糟糕* 的主义.
; *任何* 使用PHP的用户可以执行 ‘echo get_cfg_var("mysqli.default_password")
; 并且获取到此密码! 而且理所当然, 任何有对此文件读权限的用户都可以获取到此密码.
mysqli.default_pw =

; 允许或阻止持久连接.
mysqli.reconnect = Off

[mSQL]
; 允许或阻止持久连接.
msql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
msql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
msql.max_links = -1

[OCI8]
; 打开使用外部认证的授权连接 (OCI_SYSOPER, OCI_SYSDBA)
;oci8.privileged_connect = Off

; 连接: 每个进程的持久OCI8连接的最大数, -1 意味着没有限制.
;oci8.max_persistent = -1

; 连接: 一个进程允许保持一个空闲持久连接的最大秒数.
; -1意味着空闲持久连接会永远被保持.
;oci8.persistent_timeout = -1

; 连接: 当oci_pconnect() 检测一个连接是否有效时每次发起ping之间必须通过的秒数.
; 当设置为0后, 每个oci_pconnect() 会发起一个ping. Using -1 完全关闭ping.
;oci8.ping_interval = 60

; 调优: 此选项打开声明缓冲(statement cache), 并且指定缓冲多少声明. 使用0关闭声明缓冲.
;oci8.statement_cache_size = 20

; 调优: 打开声明预取(statement prefetch) 并且设置自动在声明执行后被取到行的数量.
;oci8.default_prefetch = 10

; 兼容性: 设置为On 意味着 oci_close() 不会关闭 oci_connect() 和 oci_new_connect() 的连接.
;oci8.old_oci_close_semantics = Off

[PostgresSQL]
; 允许或阻止持久连接.
pgsql.allow_persistent = On

; 总是在 pg_pconnect() 时检测断开的持久连接.
; 自动重置特性会引起一点开销.
pgsql.auto_reset_persistent = Off

; 持久连接的最大数目. -1 意味着没有限制.
pgsql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
pgsql.max_links = -1

; 是否忽略 PostgreSQL 后端通告消息.
; 通告消息记录会需要一点开销.
pgsql.ignore_notice = 0

; 是否记录 PostgreSQL 后端通告消息.
; 除非 pgsql.ignore_notice=0, 否则模块无法记录通告消息
pgsql.log_notice = 0

[Sybase]
; 允许或阻止持久连接.
sybase.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
sybase.max_persistent = -1

>; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
sybase.max_links = -1

;sybase.interface_file = "/usr/sybase/interfaces"

; 显示出的消息最小严重程度.
sybase.min_error_severity = 10

; 显示出的消息最小严重程度.
sybase.min_message_severity = 10

; 兼容老版本PHP 3.0的模式.
; 如果设为 on, 会引起 PHP 自动绑定结果记录的类型到Sybase的类型,而不是将他们全部按照字符串处理.
; 此兼容模式可能不会永久存在, 所以最好尝试在你代码中需要的地方作出必要的修改, 然后关闭此选项.
sybase.compatability_mode = Off

[Sybase-CT]
; 允许或阻止持久连接.
sybct.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
sybct.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
sybct.max_links = -1

; 显示出的错误最小严重程度.
sybct.min_server_severity = 10

; 显示出的消息最小严重程度.
sybct.min_client_severity = 10

[bcmath]
; 所有bcmath函数的小数位数
bcmath.scale = 0

[browscap]
;browscap = extra/browscap.ini

[Informix]
; 对于 ifx_connect() 的默认host (不会在安全模式被应用).
ifx.default_host =

; 对于 ifx_connect() 的默认user (不会在安全模式被应用).
ifx.default_user =

; 对于 ifx_connect() 的默认password (不会在安全模式被应用).
ifx.default_password =

; 允许或阻止持久连接.
ifx.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
ifx.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
ifx.max_links = -1

; 如果设为 on, select 声明返回 text 段的内容而不是它的id.
ifx.textasvarchar = 0

; 如果设为 on, select 声明返回 byte 段的内容而不是它的id.
ifx.byteasvarchar = 0

; 固定长度字符列的尾部空格会被截去. 可能对 Informix SE 用户有帮助.
ifx.charasvarchar = 0

; 如果设为 on, text 和 byte 段会被dump到一个文件而不是在内存中保留它们.
ifx.blobinfile = 0

; NULL会被作为一个空字符串返回, 除非被设为1. 如果设为1, NULL会被作为字符串’NULL’返回.
ifx.nullformat = 0

[Session]
; 用来存储/获取数据的处理方法.
session.save_handler = files

; 传送到save_handler的参数. 在使用文件的情况下, 这里是数据文件被保存的路径.
; 注意: Windows 用户必须改变此值来使用PHP的会话函数.
;
; 和在 4.0.1一样, 你可以定义如下路径:
;
; session.save_path = "N;/path"
;
; 这里的 N 是一个整数. 使用此参数会在目录内建立一个N层深度的子目录用来保存session文件,
; 而不是将所有session文件保存在同一个/path目录内.
; 这对你或当你的操作系统在一个目录内保存太多文件时出现问题很有帮助.
; 并且对于处理大量session的服务器提供更高的效率.
;
; 注意 1: PHP不会自动创建目录结构. 你可以使用在ext/session目录内的脚本来创建目录结构.
; 注意 2: 如果你选择使用子目录来保存session,请检查下面关于垃圾回收的配置段
;
; 文件存储模块默认使用600模式来创建文件,在使用中你可以改变此选项
;
; session.save_path = "N;MODE;/path"
;
; 这里的MODE由8进制来表示. 注意这里不会覆盖进程的umask.
;session.save_path = "/tmp"

; 是否使用cookie.
session.use_cookies = 1

;session.cookie_secure =

; 这个选项允许管理员去保护那些在URL中传送session id的用户免于被攻击
; 默认是 0.
; session.use_only_cookies = 1

; session的名称 (作为cookie名称来使用).
session.name = PHPSESSID

; 在请求开始的时候初始化session.
session.auto_start = 0

; cookie的生存秒数,或者如果为0就直到浏览器重启.
session.cookie_lifetime = 0

; cookie有效的路径.
session.cookie_path = /

; cookie有效的域名.
session.cookie_domain =

; 是否将httpOnly标志增加到cookie上, 增加后则cookie无法被浏览器的脚本语言(例如JavaScript)存取.
session.cookie_httponly =

; 用于序列化数据的处理器. php是标准的PHP序列化器.
session.serialize_handler = php

; 定义’垃圾回收’进程在每次session初始化时开始的比例.
; 比例由 gc_probability/gc_divisor来得出,
; 例如. 1/100 意味着在每次请求时有1%的机会启动’垃圾回收’进程.

session.gc_probability = 1
session.gc_divisor = 100

; 在经过以下秒数之后, 存储的数据会被认为是’垃圾’并且被垃圾回收进程清理掉.
session.gc_maxlifetime = 1440

; 注意: 如果你使用子目录选项来保存session文件
; (查看在上面的session.save_path), 那么垃圾回收就 *不会* 自动发生.
; 你需要通过一个shell脚本,cron或者其他方法来自行处理垃圾回收.
; 例如, 下面的脚本相当于将session.gc_maxlifetime设置为 1440 (1440 秒 = 24 分钟):
; cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 和更早版本有一个未公开的 特性/bug , 此特性允许你在全局初始化一个session变量,即便 register_globals 已经被关闭.
; 如果此特性被使用,PHP 4.3 和更早版本会警告你.
; 你可以关闭此特性并且隔离此警告. 这时候,如果打开bug_compat_42,那此警告只是被显示出来.

session.bug_compat_42 = 1
session.bug_compat_warn = 1

; 检查HTTP Referer来防止带有id的外部URL.
; HTTP_REFERER 必须包含从session来的这个字段才会被认为是合法的.
session.referer_check =

; 从此文件读取多少字节.
session.entropy_length = 0

; 在这里指定创建session id.
session.entropy_file =

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; 设置为 {nocache,private,public,} 来决定HTTP缓冲的类型
; 留空则防止发送 anti-caching 头.
session.cache_limiter = nocache

; 文档在n分钟之后过期.
session.cache_expire = 180

; trans sid 支持默认关闭.
; 使用 trans sid 可能让你的用户承担安全风险.
; 使用此项必须小心.
; – 用户也许通过email/irc/其他途径发送包含有效的session ID的URL给其他人.
; – 包含有效session ID的URL可能被存放在容易被公共存取的电脑上.
; – 用户可能通过在浏览器历史记录或者收藏夹里面的包含相同的session ID的URL来访问你的站点.
session.use_trans_sid = 0

; 选择hash方法
; 0: MD5 (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; 当转换二进制hash数据到可读形式时,每个字符保存时有几位.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 4

; URL rewriter会在已经定义的一组HTML标签内查找URL.
; form/fieldset 是特殊字符; 如果你在这里包含他们, rewriter会增加一个包含信息的隐藏<input>字段否则就是在URL中附加信息.
; 如果你你想遵守XHTML, 删除form的入口.
; 注意 所有合法的入口都需要一个"="符号, 甚至是没有任何值的.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

[MSSQL]
; 允许或阻止持久连接.
mssql.allow_persistent = On

; 持久连接的最大数目. -1 意味着没有限制.
mssql.max_persistent = -1

; 最大连接数 (持久 + 非持久). -1 意味着没有限制.
mssql.max_links = -1

; 显示出的错误最

帝国cms利用万能标签制作google网站地图sitemap问题

0

分类 : 编码知识 | 发表时间 21-10-2008

现在国内的几大cms程序,发展至现在都已经比较稳定了,都有可圈可点的优劣之处,相比较于国外比较流行的cms类程序,个人感觉,国内的几大cms普遍在周边开源技术、服务支持氛围性方面,不是太好,说得有些绕口,不要见怪;比较明显的就是,和wordpress对比一下,优劣之势立见。

很早以前的一个网站,采用的是帝国的程序,当时帝国的程序限制比较多,但对于我的应用来说,已经足够。当时找了一个chinaz的模板,改了许久,内容、列表都出来了,只有一个css的问题在ie6下面表现得有一点错位,但在ie7、ie8下面很整齐,css水平有限,直至今年四月份时,当时网站所在服务器有些问题,反应非常慢,这一慢立刻发现,网页在调用一个css的时候,发现在调用一个异常的域名,搜索css才发现,竟然发现模板的上传者在css里面挂了页面,不管是挂马还是挂流量(挂马可能性不大),这种行为已经让人非常愤怒。

不管三七二十一,当帝国升级到5.0的时候,也直接套用了官方的默认模板,并且也沉下心来,在闲暇的时候,看一下帝国官方的模板教程。

在cms程序方面,很重要的一环就是制作网站地图提交给google管理员工具,帝国程序一直没有内置这一方面功能,让人很是遗憾,原因咱不讨论过多;帝国论坛有很多制作帝国程序网站地图的教程,看了几篇,有个别几篇比较无聊,复制原创人帖子改了域名后当主题发,显得有些多余,也有帖子讨论并直接给出代码实例,这种方式对学习者是最有帮助的。

依照帝国系统完整制作GOOGLE SITEMAP的方法(修改版)来制作,生成后索引地图页面是成功了,但最终列表页总是空页,我没用中级列表页,如果是中级列表页生成正常;这个问题已经有人提出解决方法,但我依照做了之后,还是没有结果。他的说法是这样的:

如果栏目下面有子栏目,也就是说不是终极栏目,我称为它是子栏目,[listsonclass]可以循环子栏目数据,但是如果栏目下面无子栏目,是终极栏目[listsonclass]无效,我遇见的情况就是如此,下面是原始教程中的代码:
——————————————————————————–
<?=’<?xml version="1.0" encoding="UTF-8"?>’?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url><loc>网站域名</loc> </url>
[listsonclass]栏目id,3000,0,0,0,模板标签,0,0[/listsonclass]</urlset>

好在这位站长也是位对帝国模板比较熟悉的高手,想到利用万能标签,开始没有调试成功,得到“禾火木风”版主的确认提醒,确认万能标签可以实现,这位站长也确实调试成功,但我用它的万能标签代码,却怎么也生成不了内容列表:

<?=’<?xml version="1.0" encoding="UTF-8"?>’?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url><loc>网站域名</loc> </url>
[ecmsinfo]栏目id,3000,0,0,0,模板标签,0[/ecmsinfo]
</urlset>

昨晚刚说过关注站长健康 您应该晚上10点就睡觉,今天就坚持不了,真是失败;依看那文中留言,似乎午夜过后的“夜里欢”似乎要点很大比例哪!

已经有些不清醒了,问题先放一放吧,有些时候问题稍放一放,考虑一下再回头思考,说不定有“拨云见日”的转机,有帝国高人的加我QQ,指点下,高人指点将会少走很多弯路的,呵!

利用excanvas对ie的客户端图片显示做出优化

2

分类 : 编码知识 | 发表时间 25-09-2008

很少时间来写网页编码了,现在现成的网页源码也有很多了,不过共享的源码如此之多,能够拿来合适而用的,倒真的不多,还是需要在模板、美工以及更重要的安全上面,精雕细琢。现在人们对网页的显示要求是越来越高了,今天就来展示一例针对ie的客户端图片显示做出优化.

在上传图片的时候,如果没有进行裁剪生成缩略图,或者生成的缩略图太粗糙,在页面缩放显示的时候就会带有锯齿,很影响美观。像safari、opera或者google chrome还好,因为他们浏览器自身专门对页面图片显示做了优化工作;firefox不那么明显;ie下就非常影响浏览者感觉。

所以必须借助ria来专门对ie做些优化。我要介绍的是用excanvas。canvas和svg这些标签是用于在浏览器上绘图用的,除了ie之外其他浏览器都支持。因此我们必须借助第三方实现excanvas.js如:

<!–[if IE]><script src="excanvas.js" src="excanvas.js"></script><![/if]–>
<canvas id="openit" style="width:200px;height:200px;"></canvas><script type="text/javascript">

var dom=document.getElementById("openit");
var img=new Image();
img.src="http://openit.cn/c.jpg";
dom.getContext("2d").drawImage(img,0,0,200,200);
</script>

前辈经验来源于:http://openit.cn/blog/?p=77

有搞代码编辑的,试下效果对比下。

在sql中如何替换去掉回车符?

3

分类 : 编码知识 | 发表时间 21-07-2008

今天在远程查询sql数据时,遇到了乱码以及在表中大量出现回车符的情况,处理过程比较有意义,日志一下,留待后用。

本来在sql查询分析器中查询的,但查询出来的数据,在复制时,不能复制表头,要一项项设置,比较麻烦;因此就考虑在企业管理器中把刚才在sql查询分析器中的语句执行一下,这样就可以复制字段名,也就是表格的表头。

在把数据复制到excel中后,处理数据发现了大量的乱码错误,并且在整理乱码表列时,还发现存有很多回车标记,这可能是录入资料人员由于习惯问题,把回车符也给提交了上去,这是程序没有过滤引起的。

后来考虑把回车符从sql数据库中去掉,同时也在想,会不会是由于回车符引起了数据导入到excel后文本乱码?

在sql中替换去掉回车符的sql语句:

把回车符替换成空;

update tablename set field1=replace(field1,’ ‘,”)

或:

update tablename set field1=replace(replace(field1,char(10),”),char(13),”)

回车符号在sql中是char(13),第一个命令我用过;第二个命令没在实际测试用,如果要替换为其他字符值,把单引号中加入相应值即可。

CSS Hacks问题及对应解决方法

0

分类 : 编码知识 | 发表时间 19-02-2008

现在div以及css搭配,流行满天下,听闻些高手说,不难学,最近也在玩cms,呵,跟风搞一些技巧吧。积累和经验,都在于平时,时间长了,自然就熟练了。

目录

  • 介绍
  • 针对浏览器的选择器
  • 让IE6支持PNG透明
  • 移除超链接的虚线
  • 给行内元素定义宽度
  • 让固定宽度的页面居中
  • 图片替换技术
  • 最小宽度
  • 隐藏水平滚动条

 

一. 介绍

这篇文章包括了8个非常有用的解决办法, 在进行css设计遇到问题时你就会用到它们.

二. 针对浏览器的选择器

这些选择器在你需要针对某款浏览器进行css设计时将非常有用.

IE6及其更低版本

* html {}

IE7及其更低版本

*:first-child+html {} * html {}

仅针对IE7

*:first-child+html {}

IE7和当代浏览器

html>body{}

仅当代浏览器(IE7不适用)

html>/**/body{}

Opera9及其更低版本

html:first-child {}

Safari

html[xmlns*=""] body:last-child {}

要使用这些选择器,请将它们放在样式之前. 例如:

#content-box {
width: 300px;
height: 150px;
}
* html
#content-box {
width: 250px;
} /* overrides the above style and changes the width to 250px in IE 6 and below */

三. 让IE6支持PNG透明

一个IE6的Bug引起了大麻烦, 他不支持透明的PNG图片.

你需要使用一个css滤镜

*html #image-style {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil
ename.png", sizingMethod="scale");
}

四. 移除超链接的虚线(仅对FF有效)

FireFox下,当你点击一个超链接时会在外围出现一个虚线轮廓. 这很容易解决, 只需要在标签样式中加入 outline:none .

a{
outline: none;
}

五. 给行内元素定义宽度

如果你给一个行内元素定义宽度,那么它只是在IE6下有效. 所有的HTML元素要么是行内元素要么就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定义行内元素的宽度, 为了解决这个问题你可以将行内元素转变为块元素.

span { width: 150px; display: block }

六. 让固定宽度的页面居中

为了让页面在浏览器居中显示, 需要相对定位外层div, 然后把margin设置为auto.

#wrapper {
margin: auto;
position: relative;
}

七. 图片替换技术

用文字总比用图片做标题好一些. 文字对屏幕阅读机和SEO都是非常友好的.

HTML:

<h1><span>Main heading one</span></h1>

CSS:

h1 { background: url(heading-image.gif) no-repeat; }
h1 span {
position:absolute;
text-indent: -5000px;
}
你可以看到我们对标题使用了标准的<h1>作为标签并且用css来将文本替换为图片. text-indent属性将文字推到了浏览器左边5000px处, 这样对于浏览者来说就看不见了.

关掉css,然后看看头部会是什么样子的.

八. 最小宽度

IE6另外一个bug就是它不支持 min-width 属性. min-width又是相当有用的, 特别是对于弹性模板来说, 它们有一个100%的宽度,min-width 可以告诉浏览器何时就不要再压缩宽度了.

除IE6以外所有的浏览器你只需要一个 min-width: Xpx; 例如:

.container {
min-width:300px;
}

为了让他在IE6下工作, 我们需要一些额外的工作. 开始的时候我们需要创建两个div, 一个包含另一个:

<div class="container">
<div class="holder">Content</div>
</div>

然后你需要定义外层div的min-width属性

.container {
min-width:300px;
}

这时该是IE hack大显身手的时候了. 你需要包含如下的代码:

* html .container {
border-right: 300px solid #FFF;
}
* html .holder {
display: inline-block;
position: relative;
margin-right: -300px;
}

As the browser window is resized the outer div width reduces to suit until it shrinks to the border width, at which point it will not shrink any further. The holder div follows suit and also stops shrinking. The outer div border width becomes the minimum width of the inner div.

九. 隐藏水平滚动条

为了避免出现水平滚动条, 在body里加入 overflow-x:hidden .

body { overflow-x: hidden; }

当你决定使用一个比浏览器窗口大的图片或者flash时, 这个技巧将非常有用.

技巧部分源:http://feed.yeeyan.com/articles/view/10947/4825

希望以上技巧能够对一些css基础爱好者有用,大家共享共勉吧!

循序渐进学习CSS

0

分类 : 编码知识 | 发表时间 09-12-2007

div+css太火了,这不能怪跟风者,实在这种网页开发模式,确实有很多的优势,近来由于项目的特殊需要,会将一部分精力转向投入到这方面来,因此,也要再多下下基本功!

       最近读到KenXu的一篇文章,就如何循序渐进地学习css提出了比较好的建议,比较适合初学者来学习css,本文参考了原文的主要内容。

     CSS基础及实例 要想出色地使用css,基础是一定要有的,可以在CSSBasic.com上下载css基础教程(pdf)。在读完35页的教程之后可以通过一些小例子来进一步理解已获得的css知识,可以通过CSS Examples来获得这些例子。

      CSS属性 在做完以上工作后,你也许会需要这样一张表,它上面包含了所有css属性的具体用法,你可以通过以下的网络服务来获得帮助:CSS 2.1 ReferenceW3schoolsHTMLDogCSS速查手册

      使用CSS设计样式 首先,可以从设计导航和目录开始,使用13 Styles CSS Menu下载来的css menu来做出更为专业的导航或是目录;

     接下来选择你的css布局,Layout Gala提供了许多直观的布局实例,也可以访问Page Layout Sample获得帮助;
      最后,可以学习更精深的css教程
     
53 CSS-Techniques You Couldn’t Live Without
      70 Expert Ideas for Better CSS Coding
      CSS Technique Round Up – 20 CSS Tips and Tricks
      HTMLDog’s Advance CSS Tutorials

      CSS搜索引擎 通过css搜索引擎来skuer.com获得更多的关于css的资源。

      CSS工具 你可以通过以下的css工具来获得事倍功半的效果:CSS Creator自动生成布局样式等;CSS List-O-Matic轻松制作漂亮的侧栏及导航;CSS Font and Text Style Wizard使你能够实时获得css属性的预览效果;Software: CSS Tab Designer设计列表及导航;CSSFly编辑任意网页的css样式文件等,此外还有幺幺之前介绍的CSS优化工具

上述文字链接转自:http://www.yaoyaoit.cn/css/how-to-learn-css-step-by-step.html,由于日后可能要看到、用到其中的很多链接中的内部,因此,连链接一并转过来,以备阅读。

一并再说一些css的优化工具

1. Clean CSS

2. Iceyboard’s CSS compressor

3. CSS optimizer

4. CSS drive

5. Ebiene.de

6. CSSTweak

优化无处不在之优化css代码

0

分类 : 编码知识 | 发表时间 13-11-2007

本人对代码所知不多,也非强项,编程方面,一知半解;对于网站制作,也是业余爱好;但不管怎么样,也知道一些常规的运行原理;

代码,无疑是越精简越好,编程上,依靠算法来精简代码提高执行效率,这绝对是每个程序员致力追求完美的。css也是如此,哪怕是其中的注释,虽然不影响执行,使代码显得容易读懂、修改,但也会使整体代码显得冗余;因此,优化css,使用css缩写,使我们从复杂的css代码中解脱出来,但语法上的简写并不能从根本上解决设计者在开发中由于自身编写原因所产生的多余和垃圾代码,在很多情况下有必要对完成的网页样式表重新进行检查,发现多余和垃圾代码并对其进行优化。

例如:

网页技术CSS的font属性的缩写的技巧,缩写有利于减少代码,优化CSS,使之更加合理。

优化代码:网页技术CSS的font属性的缩写的技巧,缩写有利于减少代码,优化CSS,使之更加合理。

css font属性是用来控制文字字体、颜色、大小等。而font的属性有多种,在通常情况下,我们用缩写的办法将多种属性概括在一句css代码中。这样极大的减小了代码,优化css文件。

我们常用的font属性有下面这六种:

font-style设定斜体 如:font-style: italic;

font-weight设定文字粗细 如:font-weight: bold;

font-size设定文字大小 如:font-size: 12px;

line-height设定行距 如:line-height: 150%;

color设定文字颜色(注意不是font-color) 如:color: red;

font-family设定字体 如:font-family : "Lucida Grande", Verdana, Lucida, Arial,
Helvetica, 宋体,sans-serif;

上述的属性,我们可以概括写在一行font属性里。需要注意的是color属性我们需要单独定义。

font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif;}

上面的例子用一行来定义font属性,分别是:font-style font-weight font-size line-height font-family;而color设定文字颜色需要单独进行定义。

推荐看一下,优化css代码的这十八项技巧.

另外,也为大家推荐一些自动优化css代码的网站:

推荐几个免费的css优化站点,它们会有助于简短你的css文件,让站点读入速度更快。

首推:CSS Optimizer   http://www.cssoptimiser.com/

Icey’s CSS Compressor

Flumpcakes CSS Optimiser

CleanCSS  http://www.cleancss.com/index.php

http://www.zhongguosou.com/computer_question_tools/css_optimizer.html

赶快优化你的css吧,优化,无处不在!

无觅相关文章插件,快速提升流量