可能重复:
在PHP中去除变量内的空格
我怎么能剥夺/删除所有空格一个的字符串在PHP?
我有一个像
输出应该是 的字符串$string = "this is my string";"thisismystring"
我怎样才能做到这一点?
我需要在平面文件中存储多维关联数据数组以用于缓存目的.我偶尔会遇到将其转换为JSON以便在我的Web应用程序中使用的需要,但绝大多数时候我将直接在PHP中使用该数组.
将数组作为JSON或PHP序列化数组存储在此文本文件中会更有效吗?我环顾四周,似乎在最新版本的PHP(5.3)中,json_decode实际上比它更快unserialize.
我目前倾向于将数组存储为JSON,因为我觉得如果有必要,人们可以更容易地阅读它,它可以在PHP和JavaScript中轻松使用,而且从我读过的,它甚至可能是更快解码(不确定编码).
有谁知道任何陷阱?任何人都有良好的基准来展示这两种方法的性能优势?
我有一堆客户销售点(POS)系统,它定期将新的销售数据发送到一个集中数据库,该数据库将数据存储到一个大数据库中以生成报告.
客户端POS基于PHPPOS,我已经实现了一个使用标准XML-RPC库将销售数据发送到服务的模块.服务器系统基于CodeIgniter构建,并使用XML-RPC和XML-RPCS库作为Web服务组件.每当我发送大量销售数据(销售表中只有50行,以及sales_items中与销售中每个项目相关的各行)时,我会收到以下错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
Run Code Online (Sandbox Code Playgroud)
128M是默认值php.ini,但我认为这是一个很大的数字.实际上,我甚至尝试将此值设置为1024M,而它所做的只是花费更长的时间来输出错误.
至于我采取的步骤,我已经尝试禁用服务器端的所有处理,并且已经操纵它以返回固定响应而不管输入如何.但是,我认为问题在于实际发送数据.我甚至尝试禁用PHP的最大脚本执行时间,但它仍然出错.
我有一个包含值的变量1234567.
我希望它包含8个数字,即01234567.
那有PHP功能吗?
我觉得用PHP编程非常令人沮丧.我经常尝试运行脚本,然后再回一个空白屏幕.没有错误消息,只是空屏幕.原因可能是一个简单的语法错误(错误的括号,缺少分号),或者函数调用失败,或其他完全错误.
弄清楚出了什么问题是非常困难的.我最终评论出代码,在任何地方输入"echo"语句等等,试图缩小问题范围.但肯定有一个更好的方法,对吗?
那么,有没有办法让PHP产生像Java那样有用的错误信息呢?任何人都可以推荐良好的PHP调试技巧,工具和技术?
我见过@某些功能的使用,如下所示:
$fileHandle = @fopen($fileName, $writeAttributes);
Run Code Online (Sandbox Code Playgroud)
这个符号有什么用?
我正在构建一个PHP脚本,将JSON数据提供给另一个脚本.我的脚本将数据构建为一个大的关联数组,然后使用输出数据json_encode.这是一个示例脚本:
$data = array('a' => 'apple', 'b' => 'banana', 'c' => 'catnip');
header('Content-type: text/javascript');
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)
上面的代码产生以下输出:
{"a":"apple","b":"banana","c":"catnip"}
Run Code Online (Sandbox Code Playgroud)
如果您有少量数据,这很好,但我更喜欢这些内容:
{
"a": "apple",
"b": "banana",
"c": "catnip"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有丑陋黑客的情况下在PHP中执行此操作?好像Facebook的某个人想出来了.
我很想知道是否可以使用PDO将值数组绑定到占位符.这里的用例试图传递一个值数组以用于IN()条件.
我希望能够做到这样的事情:
<?php
$ids=array(1,2,3,7,8,9);
$db = new PDO(...);
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN(:an_array)'
);
$stmt->bindParam('an_array',$ids);
$stmt->execute();
?>
Run Code Online (Sandbox Code Playgroud)
并让PDO绑定并引用数组中的所有值.
目前我正在做:
<?php
$ids = array(1,2,3,7,8,9);
$db = new PDO(...);
foreach($ids as &$val)
$val=$db->quote($val); //iterate through array and quote
$in = implode(',',$ids); //create comma separated list
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN('.$in.')'
);
$stmt->execute();
?>
Run Code Online (Sandbox Code Playgroud)
这当然能完成这项工作,但只是想知道是否有一个内置的解决方案我缺席了?
php ×10
arrays ×2
json ×2
string ×2
codeigniter ×1
datetime ×1
debugging ×1
format ×1
memory ×1
memory-limit ×1
numbers ×1
operators ×1
pdo ×1
performance ×1
pretty-print ×1
spaces ×1
var-dump ×1
where-in ×1
xml-rpc ×1