Tag: PHP的

Magento:在一个phtml文件中获得一个静态块作为html

我有一个名为newest_product (含内容)的静态块,我想将它显示在一个.phtml文件为HTML 。 我试过这个代码: echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 但这没有什么显示。 我使用错误的代码?

格式化当前区域和货币的价格

我用 : $product->getPrice(); 得到我可以用ajax计算“数量X价格”的无格式价格。 我想重新格式化当前的语言环境和货币。 我怎样才能做到这一点?

inheritance一个PHP的恶梦,从哪里开始?

我inheritance了一个PHP项目,这是一个噩梦。 以下是要点: 所有的原始开发者都离开了 该代码没有版本控制 所有的开发和testing都是通过重命名和编辑PHP文件在活动服务器上完成的。 有每个文件index.php,index2.php,index3.php等的多个副本,并不清楚哪些文件真正被使用 每个文件中包含多个包含其他文件(包括其他文件等)的文件 项目中有多个开发人员,每个人都有自己的做事方式。 例如,有一个JavaScript框架大杂烩,一些数据库查询使用SQL,其他一些XML接口和其他人调用数据库中的程序function。 由于所有这些问题,发展速度令人沮丧。 除了发泄我堆叠溢出的挫折,任何build议如何开始这个混乱? 我自己对PHP开发相当陌生,但似乎设置了某种开发环境,以便在不破坏活动服务器的情况下testing更改是第一步。 有关如何从这里开始的任何提示? 什么是testing的典型方法? 在我的桌面上设置本地版本的网站似乎很多工作(服务器是Linux,但这里的桌面是Windows)。 我可以在现场服务器上创build一个子目录进行testing吗? 数据库呢? 其次,是否有某种types的configuration文件可以用来跟踪服务器上的哪些文件实际上正在使用? 我想删除那些实际上没有包含的东西的重命名副本。 更好的是,有没有办法告诉一个文件的哪个部分没有被执行? 有很多复制function和垃圾,我怀疑还没有被使用。 同样,对于包括,在理清乱七八糟的任何提示? 那么,我会停止在这里发泄,把自己摆在这里的每个人的怜悯。 🙂

目录中特定文件的PHP列表

以下代码将列出目录中的所有文件 <?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { if (($file != ".") && ($file != "..")) { $thelist .= '<LI><a href="'.$file.'">'.$file.'</a>'; } } closedir($handle); } ?> <P>List of files:</p> <UL> <P><?=$thelist?></p> </UL> 虽然这是非常简单的代码,但它完成了这项工作。 我现在正在寻找一种方法来列出最后只有.xml(或.XML)的文件,我该怎么做?

如何检查一个string是否以PHP中的“_”开头?

例如:我有一个$variable = "_foo" ,我想确保$ variable不以下划线"_"开头。 我怎么能在PHP中做到这一点? 是否有一些访问string后面的char数组?

在wxPHP中更新属性时如何刷新wxAuiManager窗格?

我已经build立了一个简单的wxAuiManager系统,其中包含八个文本控件,每个文本控件都被设置为一个窗格,并且都围绕一个中央静态控件进行布置。 我有两个alignment的顶部,左侧,右侧和底部窗格方向。 这部分工作正常。 我现在想修改每个窗格的属性,我认为可以通过重置关联的wxAuiPaneInfo来完成。 例如,我想添加/删除图钉或最大化图标。 我可以让它自己工作,但重置这些属性后重新绘制托pipe窗口被certificate是一个挑战。 这里是我目前使用的代码: // Get the currently selected pane $paneIndex = $this->getSelectedPaneIndex(); /* @var $paneInfo wxAuiPaneInfo */ $paneInfo = $this->getPaneInfoByIndex($paneIndex); // Set new flag true/false on paneinfo, using setter methods /* @var $ctrl wxCheckBox */ $ctrl = wxDynamicCast($event->GetEventObject(), "wxCheckBox"); $methods = $this->getPaneSetterMethods(); $method = $methods[$ctrl->GetName()]; $paneInfo->$method($ctrl->GetValue()); /* @var $window \wxTextCtrl */ […]

与所有主要供应商实施单点login的最佳方法?

我已经做了很多关于这个话题的研究,并且自己实现了很多的解决scheme。 包括OpenID,Facebook Connect(使用旧的Rest API和新的graphicsOAuth 2.0 API),使用twitterlogin(目前为止我已经升级到完全限定的OpenID),等等… 但是我仍然缺less的是一个完美的解决scheme。 在我的研究中,我偶然发现了一些有趣的项目: Janrain(原RPX) – 商业解决scheme Gigya – 一个免费的,但外部托pipe的解决scheme与JavaScript和restapis AnyOpenID – 为客户提供免费的解决scheme,网站商业 但是我不想依赖外部提供商,我也想要一个免费的解决scheme,所以我不受限于实施。 我也看到开发人员一个接一个地按照供应商的指示执行一项服务,并为所有事情build立模型和数据库表。 当然这会起作用,但它是一大堆工作,总是需要你的应用程序的发展和变化等。 我正在寻找的是一个抽象层 ,将所有的服务都集成到一个可以集成到我的网站的标准中。 一旦出现一个新的服务,我只想添加一个模型来处理那个特定提供者的抽象,这样我就可以无缝地把它集成到我的应用程序中。 或者更好的是,find一个已经可以下载的解决scheme。 理想情况下,这个抽象服务将独立于我的应用程序托pipe,因此可用于多个应用程序并独立升级。 上述三个解决scheme中的最后一个看起来很有希望。 一切都只是移植到一个合成的OpenID,而网站必须实现OpenID。 过了一会儿,我发现Django socialauth ,一个基于python的Django Web框架authentication系统。 但它看起来像上面描述的操作,我认为这是Stackoverflow使用(或至less一些修改后的叉…)相同的login系统。 我下载了它,试图设置它,看看它是否可以作为一个独立的解决scheme,但我没有运气,因为我不是很喜欢python。 我会喜欢基于PH​​P的解决scheme。 所以在这个长文本之后,我的问题恰恰是: 你将如何实现SSO,比移植一切都有更好的想法,并以OpenID为基础? 那有什么优点和缺点? 你知道现有的解决scheme吗? 最好开源。 我希望这个问题不是太主观,先谢谢了。 更新:我的结论是,build立一个代理/包装或你可能称之为Facebook,将其移植到一个OpenID,所以它成为一个OpenID端点/提供者将是最好的select。 所以我就是这么做的。 请参阅下面的答案。 我添加了赏金来获得反馈/讨论。 Maby我的方法并不如我现在所想的那样好!

PHP中的asynchronous函数调用

我正在开发一个PHP Web应用程序,我需要在请求中执行一些networking操作,例如根据用户请求从远程服务器获取某人。 是否有可能模拟PHP中的asynchronous行为,因为我必须传递一些数据到一个函数,也需要输出。 我的代码是这样的: <?php $data1 = processGETandPOST(); $data2 = processGETandPOST(); $data3 = processGETandPOST(); $response1 = makeNetworkCall($data1); $response2 = makeNetworkCall($data2); $response3 = makeNetworkCall($data3); processNetworkResponse($response1); processNetworkResponse($response2); processNetworkResponse($response3); /*HTML and OTHER UI STUFF HERE*/ exit; ?> 每个networking操作需要大约5秒钟,以完成总共15秒加我的应用程序的响应时间,因为我提出了3个请求。 makeNetworkCall()函数只是做一个HTTP POST请求。 远程服务器是第三方API,所以我没有任何控制。 PS:请不要回答关于AJAX或其他事情的build议。 我目前正在寻找,如果我可以通过PHP做到这一点可能是一个C + +扩展或类似的东西。

很好地停止gearman工人

我有一些Gearman工作人员不停地运行,保存用户页面浏览logging等。偶尔,我会更新Gearman工作人员使用的PHP代码。 为了让工人切换到新的代码,我杀了并重新启动PHP进程的工人。 什么是更好的方法来做到这一点? 据推测,当我杀死其中一个工作进程时,我有时会丢失数据(虽然不是非常重要的数据)。 编辑:我find了一个适合我的答案,并在下面贴出来。

“php _e()”干什么?

我把这些放在我的主题上,如果我删除它们,主题也没有任何变化。 它做什么? 我应该离开他们还是不必要的。 我想优化我的网站加载速度,所以这就是为什么我问。