使用一些遗留代码,我遇到了大量的Try/Catch语句.Try/Catch不是他们在我的Zend认证课程中教授的东西,并且在10年后我没有与另一位使用它的PHP开发人员合作过.与if语句相比,Try/Catch是否有额外的开销?是什么让它或多或少比其他选择更令人满意?
我是如何开始使用phpUnit作为我已经制作的一堆函数和类的测试框架?
编辑:是的,我已经阅读了文档.基本上我在遵循BankAccount示例时尝试过测试.但我得到错误:
Warning: require_once(PHP/CodeCoverage/Filter.php) [function.require-once]: failed to open stream: No such file or directory in [...]/unitTest/phpunit.php on line 38.
此外,php脚本似乎从#!/usr/bin/env php表示它们应该从控制台运行开始.我宁愿从浏览器运行这些...
假设我有一个f1()返回字符串的函数.应该如何进行测试?我错过了什么吗?
我想向MySql添加另一个tcp端口,我可以从我的应用程序连接到该端口
我有我的应用程序的副本,我在同一台机器上运行它们.它们都连接到在同一台机器上运行的MySql服务器.问题是已经采用了默认端口3306.
我正在使用正则表达式来删除html文件中的注释标记(模式是:" <!--(.|\s)*?--!?>")
但有些网站没有使用标准的html标签,示例:
<script language="javascript">
<!--
js code ...
</script>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的正则表达式将挂起,并且try-catch也不会捕获错误.我该如何解决这个问题?
我正在读一本书,它告诉我打开一个空的WIN32项目.我创建了名为main.cpp的源文件并将其放在源文件夹中(这是我项目中唯一的文件).在该文件中输入以下代码:
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, "Motoko kusangai has hacked your system!", "Public Security Section 9", MB_OK | MB_ICONEXCLAMATION);
}
Run Code Online (Sandbox Code Playgroud)
并运行它.但是我收到以下错误:
1>c:\users\numerical25\documents\visual studio 2008\projects\begin\begin\main.cpp(6) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [40]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>Build log was saved at "file://c:\Users\numerical25\Documents\Visual Studio 2008\Projects\Begin\Begin\Debug\BuildLog.htm"
1>Begin - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, …Run Code Online (Sandbox Code Playgroud) 我最终在我们的一个mysql列中搞乱了字符编码.
通常我有
√©而不是
é√∂而不是ö√
≠而不是í
等等...
相当确定这里有人会知道发生了什么以及如何解决.
更新: 基于bobince的答案,因为我在文件中有这些数据,所以我做了以下操作
#!/user/bin/env python
import codecs
f = codecs.open('./file.csv', 'r', 'utf-8')
f2 = codecs.open('./file-fixed.csv', 'w', 'utf-8')
for line in f:
f2.write(line.encode('macroman').decode('utf-8')),
Run Code Online (Sandbox Code Playgroud)
之后
load data infile 'file-fixed.csv'
into table list1
fields terminated by ','
optionally enclosed by '"'
ignore 1 lines;
Run Code Online (Sandbox Code Playgroud)
正确导入数据.
UPDATE2: Hammerite,只是为了完整性,这里是要求的细节......
mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | …Run Code Online (Sandbox Code Playgroud) 好的,所以我第一次建立一个完整的网站并使用PHP.现在我遇到了一个问题:
让我们说我的网站只是一个带有菜单和内容区域的标题.当然,我想有一个header.php和几个内容文件,例如content1.php content2.php和content3.php.这样您只需要更改1个文件中的菜单,就像您所理解的那样.
那么如何建立网站是最好的:
A.在每个内容文件中添加这样的内容:
<?php include 'header.php'; ?>
here the content of the content page 1
Run Code Online (Sandbox Code Playgroud)
B.制作一个索引文件,例如:
<?php include 'header.php'; ?>
<?php include 'content1.php'; ?>
Run Code Online (Sandbox Code Playgroud)
那么如何在菜单中单击指向content2.php的链接时,标题仍然在该页面上呢?
C.别的什么?也许是一个关于如何制作这类页面的好教程?
我正在使用ckeditor,这真的很棒.我遇到的唯一问题是我在对齐对象时尝试使用类而不是样式.更具体地说,我想使用类alignleft来对齐左图像而不是使用style ="float:left".为此,我修改了插件ckeditor/plugins/image/dialogs/image.js
在id:'cmbAlign'中,我更改了setup和commid方法,以便根据情况添加类"alignleft"或"alignright"但奇怪的是当我尝试更改类时它不起作用(使用removeClass或addClass, setAttribute('class')也不起作用).代码是:
id:'cmbAlign',
type:'select',
widths:['35%','65%'],
style:'width:90px',
label:b.lang.common.align,
'default':'',
items:[[b.lang.common.notSet,'none'],[b.lang.common.alignLeft,'left'],[b.lang.common.alignRight,'right']],
onChange:function(){
l(this.getDialog());
o.call(this,'advanced:txtdlgGenStyle');
},
setup:function(C,D){
if(C==d){
var E=(D.getAttribute('class')+'').match(/align([a-z]+)?/);
if(E&&E[1])E = E[1];else E='';
this.setValue(E);
}
},
commit:function(C,D,E){
var F = (this.getValue()+'');
if(C==d||C==f){
var G=(D.getAttribute('class')+'').match(/align([a-z]+)?/);
if(G&&G[1]){
if(F!=G[1]){
D.removeClass('align'+G[1]);
if(F!=='')D.setAttribute('rel',F); D.addClass('align'+F);
}
} else {
if(F!=='')D.setAttribute('rel',F); D.addClass('align'+F);
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我已添加D.setAttribute('rel',F),它的工作完美.
有没有人有任何想法或解决方案?
我已经将文件从我的svn存储库检出到本地项目文件夹.
然后我在项目文件夹中添加1个文件.但是当我跑步时:
svn commit -m "added a file"
Run Code Online (Sandbox Code Playgroud)
它没有任何承诺!只有当我更改原始文件时,才会添加新文件.怎么会?我希望它将新文件添加到存储库.