小编Dan*_*ack的帖子

迁移php应用程序以处理UTF-8

我正在使用php中的多语言应用程序.

一切都很好,直到最近才被要求支持中文字符.我用来支持UTF-8字符的操作如下:

  • 所有数据库表现在都是UTF-8

  • HTML模板包含标记 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

  • 控制器发出一个标题,指定用于http响应的编码(utf-8)

一切都很好,直到我开始做一些字符串操作(substr和喜欢)

使用中文它将无法工作,因为中文表示为多字节,因此如果你执行一个正常的子字符串(substr),它将在分配的一个字节的中间大量剪切一个"字母",然后f*ck得到结果屏幕.

我通过在引导程序中添加它来解决所有问题

mb_internal_encoding("UTF-8");

并更换所有的strlen,substr,strstr与他们mb_同行.

在php中完全支持UTF-8还需要做些什么?

php utf-8 iconv

3
推荐指数
1
解决办法
1527
查看次数

Hibernate spring注释会话未被关闭/刷新

我'继承了'一个使用Spring注释来管理Hibernate的事务/会话的项目.或者至少它意味着.目前,Hibernate会话永远不会被刷新(它们被设置为FLUSH_MODE_NEVER),并且需要手动刷新DAO以便将任何数据写入数据库.

此外,所有DTO对象都驻留在hibernate的内存中,最终导致OutOfMemory错误.

我相信我需要告诉Spring/Hibernate关闭会话或提交事务.在我的控制器类中,我有一个用于处理请求的带注释的方法:

@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

在applicationContetxt.xml文件中,我相信我设置了hibernate事务管理器并告诉spring使用注释:

<!-- hibernate3 transaction manager -->
<bean id="transactionManagerLocal" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="dataSource" ref="${local.data.source}" />
    <property name="sessionFactory" ref="localSessionFactory" />
</bean>

<!-- Demarcate using @Transactional annotation -->
<tx:annotation-driven transaction-manager="transactionManagerLocal" order="200" />
Run Code Online (Sandbox Code Playgroud)

我不仅非常确定配置是错误的,因为数据没有写入数据库而没有手动调用每个DAO上的flush,从日志文件我们可以看到事务管理器已经刷新并且会话关闭被禁用:

INFO  [http-8080-2] TransactionFactoryFactory - Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
INFO  [http-8080-2] TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
INFO  [http-8080-2] SettingsFactory …
Run Code Online (Sandbox Code Playgroud)

session spring annotations hibernate

2
推荐指数
1
解决办法
1万
查看次数

Javascript将跨域通信到iframe的父窗口

我写了一个工具来记笔记,从网页抓取图像.它使用javascript书签将自身加载为当前窗口中的iFrame:

javascript:(function(){   _my_script=document.createElement('SCRIPT');   _my_script.type='text/javascript';   _my_script.src='http://basereality.test/js/bookmarklet.js?rand='+(Math.random());   document.getElementsByTagName('head')[0].appendChild(_my_script); })();
Run Code Online (Sandbox Code Playgroud)

我希望能够在用户单击关闭按钮时从父窗口中删除iFrame来关闭该工具.

这样做最简单的方法是什么 - 是否有可能在自身内关闭iFrame?

我尝试过使用跨域邮件发布.我有从父窗口到子iFrame的跨域发布工作,但是从iFrame到父窗口不起作用.

到目前为止我的代码(可能包含问题)如下.

在父窗口中通过动态加载的Javascript:

function    addiFrame(domain){
    var iframe_url = "http://" + domain + "/bookmarklet";

    var div = document.createElement("div");
    div.id = bookmarkletID;

    var str = "";

    iframe_url += "?description=" + encodeURIComponent(document.title);
    iframe_url += "&amp;URL=" + encodeURIComponent(document.URL);

    str += "<div>";
    str += "<iframe frameborder='0' class='toolPanelPopup dragTarget' style='z-index: 1000'  name='bookmarklet_iframe' id='bookmarklet_iframe' src='" + iframe_url + "' width='550px' height='255px' style='textalign:right; backgroundColor: white;' />";

    str += "</div>";

    div.innerHTML = str;

    document.body.insertBefore(div, document.body.firstChild);
}


function jQueryLoadedCallback(){ …
Run Code Online (Sandbox Code Playgroud)

javascript iframe cross-domain

1
推荐指数
1
解决办法
2万
查看次数

Composer无法使用zfc-user-doctrine-orm进行更新

我有以下内容 composer.json

{
    "name": "zendframework/skeleton-application",
    "description": "Skeleton Application for ZF2",
    "license": "BSD-3-Clause",
    "keywords": [
        "framework",
        "zf2"
    ],
    "homepage": "http://framework.zend.com/",
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.2.*",
        "doctrine/doctrine-orm-module": "*",
        "bjyoungblood/bjy-authorize": "1.2.*",
        "zf-commons/zfc-user": "dev-master",
        "zendframework/zend-developer-tools": "*",
        "zendframework/zftool": "dev-master",
        "swiftmailer/swiftmailer" : "*",
        "mwillbanks/zfc-twitter-bootstrap": "*"
    }
}
Run Code Online (Sandbox Code Playgroud)

添加require后zf-commons/zfc-user-doctrine-orm,Composer无法执行命令,composer update给出大错误消息:

composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- Installation request for …
Run Code Online (Sandbox Code Playgroud)

doctrine-orm zend-framework2 composer-php zfcuser

0
推荐指数
1
解决办法
1056
查看次数