小编Bla*_*laM的帖子

PHP:"全球"包括在内

现在的情况:

  • 我有我的MVC框架的当前版本,它使用类作为控制器.
  • 我的 MVC框架中有一些"复古"模块,它使用简单,扁平的包含作为控制器.

大大简化意味着:

新版本:

<?PHP
class blaController extends baseController {
    private $intVar;

    function dosomethingFunction() {
        $this->intVar = 123;
        $this->view('myView');
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

旧版:

<?PHP
$globalVar = 123;
// view "controllername" is automatically shown
?>
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试编写一个包装器,以便能够在我的新MVC中使用我的旧控制器而无需重写所有内容.为此,我有一个"包装"控制器:

class wrapController extends baseController {
    function dosomethingFunction() {
        require 'old_dosomething.function.php';
        $this->view('old_dosomething_view');
    }
}
Run Code Online (Sandbox Code Playgroud)

(再一次:这非常非常简单 - 只是为了得到这个想法.不是真正的代码.)

该方法的问题在于,先前的全局变量$ globalVar现在仅存在于方法"dosomethingFunction"内,并且视图无法访问.

如果我可以强制要求表现为"在全局范围内"以便$ globalVar再次在全局范围内可用,则情况并非如此.

那么:有没有办法实现" require_global "或类似的东西?

(我的问题的一个解决方案是修改我的旧控制器以从一堆"全局"命令开始,但我更喜欢一个解决方案,我不必更改那么多旧代码.)

(注意:请不要告诉我GLOBALS是坏的.它完全忽略了这个问题的要点.请接受这是一个要求让一些旧代码在更新,更清洁的环境中工作.)

php scope global include

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

如何在PHP中检查该字符串是否只有UTF8中的国际字母和空格?

在Python中,我可以将它转换为Unicode并执行'(?u)^ [\ w] + $'正则表达式搜索,但PHP似乎不了解国际\ w,或者它是什么?

php utf-8 utf

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

使用MSXML 4.0读取UTF-8 XML

我有一个classc ASP/VBScript试图用MSXML读取UTF-8编码的XML文件的问题.文件编码正确,我可以看到所有其他工具.

构造的XML示例:

<?xml version="1.0" encoding="UTF-8"?>
<itshop>
    <Product Name="Backup gewünscht" />
</itshop>
Run Code Online (Sandbox Code Playgroud)

如果我尝试在ASP中这样做...

Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("input.xml", FOR_READING)
XML = ts.ReadAll
ts.Close
Set ts = nothing
Set fso = Nothing

Set myXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
myXML.loadXML(XML)
Set DocElement = myXML.documentElement
Set ProductNodes = DocElement.selectNodes("//Product")
Response.Write ProductNodes(0).getAttribute("Name")
' ...
Run Code Online (Sandbox Code Playgroud)

...和Name包含特殊字符(特定的德语变音符号)变音符号"双字节代码"的字节被重新编码,所以我最终得到两个完全糟糕的无意义字符.什么应该是"ü"变成"¼" - 在我的输出中是四个字节,而不是两个(正确的UTF-8)或一个(ISO-8859-#).

我究竟做错了什么?为什么MSXML认为输入是ISO-8859-#以便它尝试将其转换为UTF-8?

msxml utf-8 character-encoding asp-classic

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

XML + XPATH:使用默认命名空间的任何方法?

我有一个XML SOAP结果:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope 
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <CreateCIInStockResponse xmlns="http://somenamespace.com/">
      <CreateCIInStockResult>
        <Status>OK</Status>
        <Data>SOMERESULT</Data>
      </CreateCIInStockResult>
    </CreateCIInStockResponse>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

如您所见,CreateCIInStockResponse中定义的命名空间使用默认命名空间 - 未定义前缀.

如果我们使用,我可以获得状态数据

/soap:Envelope/soap:Body/node()/node()/node()/text()
Run Code Online (Sandbox Code Playgroud)

我是对的,没有办法 - 使用XPath - 直接访问"数据"的内容?

我的问题是,我既不能修改对webservice的调用,也不能修改从webservice返回的结果.我所能做的就是使用XPath来获取数据.

有什么建议?

xml xpath xml-namespaces

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

互斥锁定仅写入

我有一个多线程C++应用程序,它在内存中保存一个复杂的数据结构(缓存数据).

我刚读完数据时一切都很棒.我可以拥有尽可能多的线程来访问数据.

但是,缓存的结构不是静态的.

  • 如果请求的数据项不可用,它将从数据库中读取,然后插入到数据树中.这可能也没有问题,即使我使用互斥锁,而我将新数据项添加到树只需要几个周期(它只是添加一个指针).
  • 有一个垃圾收集过程不时被执行.它会从树中删除所有旧项目.为此,我需要将整个事情锁定,以确保当前没有其他进程正在访问将从内存中删除的任何数据.我还必须在从缓存中读取时锁定树,这样我就不会在处理它们时删除它们(有点"反之亦然").

"伪":

function getItem(key)
   lockMutex()
   foundItem = walkTreeToFindItem(key)
   copyItem(foundItem, safeCopy)
   unlockMutex()
   return safeCopy
end function

function garbageCollection()
   while item = nextItemInTree
      if (tooOld) then
         lockMutex()
         deleteItem(item)
         unlockMutex()
      end if
   end while
end function
Run Code Online (Sandbox Code Playgroud)

什么困扰我:这意味着,我在阅读时必须锁定树(以避免在我阅读时开始垃圾收集).然而 - 作为一种副作用 - 我也不能同时拥有两个阅读过程.

有什么建议?

是否存在某种"这只是一种只与写入冲突的只读动作"Mutex?

c++ linux multithreading mutex

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

在SQL Server 2005中解析QueryString

有没有一种简单的方法来解析SQL Server中的QueryString参数(例如foo = bar&temp = baz)?

我最终需要的是一个带有名称/值对的"表".

| foo  | bar |
| temp | baz |
Run Code Online (Sandbox Code Playgroud)

虽然在上面的例子中它很简单但是如果字符串开始包含转义字符(例如%3D)并且当涉及UTF-8时甚至更难,则变得更难.

现有解决方案吗?SQL Server的URLDecode实现将成为天堂.

sql-server parsing query-string

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

Apache下载:确保在下载之前查看了该页面

手头的工作:

我想确保我的网站用户在开始下载之前查看页面.如果他们没有查看页面但是尝试直接热链接到文件,他们应该在允许下载之前访问网页.

任何比我发送cookie更好的建议 - 在下载开始之前 - 检查cookie是否存在(通过.htaccess)?

网页和下载文件将位于不同的服务器上.

环境:

  • 所有机器上的Apache 2
  • 所有机器上的PHP 5
  • MySQL 5在"网页"服务器上可用(无法从下载服务器访问)

Nathan问我试图解决的问题是什么,事实上我想阻止热链接 - 例如 - 论坛.如果人们使用我们的带宽从我们的服务器下载,我想在下载开始之前向他们展示包含广告的页面.它不需要完全安全,但我们需要赚一些钱来为服务器提供资金,对吧?:)

php apache cookies protection download

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

C#:加载漫游配置文件并以用户身份执行程序

在应用程序中,我需要使用其他用户的凭据执行其他程序.目前我使用System.Diagnostics.Process.Start来执行程序:

public static Process Start(
   string fileName,
   string arguments,
   string userName,
   SecureString password,
   string domain
)
Run Code Online (Sandbox Code Playgroud)

但是,此功能不会从网络加载漫游配置文件 - 这是必需的.

我可以使用"runas/profile ..."来加载配置文件并执行命令,但这会要求输入密码.必须有一个更优雅的方式......

但是哪里?

.net c# impersonation runas roaming-profile

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

如何在ASP.NET中返回XML

这是一个非常基本的问题.我只是在学习ASP.NET(C#)的使命.我以前做过经典的ASP和PHP.

对于这个项目,我手上有ASP.NET 2.0.

我有一个Web表单,它有一个jqGrid Datagrid,我想通过AJAX提供XML数据.但是jqGrid不是问题所在."问题"是我应该采用的方法来生成XML.

我如何在ASP.NET中执行此操作?

  • 我是否创建了一个生成该数据的新Web表单?
  • 我是否使用新的Web服务(不会返回我需要的XML,是吗?)?
  • 我是否以某种方式将一个函数放在显示该表的现有Web窗体中?如果是这样,怎么样?

做出决定后:如何输出XML?我不想使用ASP.NET的任何XML组件,因为它只是简单,简单的XML,彼此之后有一条记录.在这里使用System.Xml会有太大的开销.

<?xml version='1.0' encoding='utf-8'?>
<rows>
<page>1</page>
<total>25</total>
<records>3</records>
  <row id='1'>
    <cell>Row 1, Column 1</cell>
    <cell>Row 1, Column 2</cell>
    <cell>Row 1, Column 3</cell>
  </row>
  <row id='2'>
    <cell>Row 2, Column 1</cell>
    <cell>Row 2, Column 2</cell>
    <cell>Row 2, Column 3</cell>
  </row>
  <row id='3'>
    <cell>Row 3, Column 1</cell>
    <cell>Row 3, Column 2</cell>
    <cell>Row 3, Column 3</cell>
  </row>
</rows>
Run Code Online (Sandbox Code Playgroud)

根据我以前使用其他脚本语言的经验,我只想打印出一个XML标签流(Response.Write).如果我在ASP.NET中这样做,我会下地狱吗?

xml architecture asp.net ajax service

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

PHP:奇怪的数组问题 - 我的价值在哪里?

我有一个数组($ form)从$ _POST中检索一些信息:

$form = $_POST['game'];
Run Code Online (Sandbox Code Playgroud)

现在我想使用这个数组中的值,但我不知何故失败了.

为了调试我使用了这些命令(按照完全相同的顺序,中间没有额外的行):

print_r($form);
echo '#' . $form['System_ID'] . "#";
Run Code Online (Sandbox Code Playgroud)

作为返回的输出我得到:

Array
(
    ['Title'] => Empire: Total War - Special Forces
    ['Genre_ID'] => 1
    ['Type'] => Spiel
    ['System_ID'] => 1
)
##
Run Code Online (Sandbox Code Playgroud)

我的System_ID去过哪些想法?它在print_r中,但不在下一行中用于echo?!?

php arrays http-post-vars

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