我有一个多维数组.我需要搜索特定范围的值,编辑这些值并返回编辑后的数据.
示例数组:
array(3) {
["first"]=>
array(1) {
[0]=>
string(4) "baz1"
}
["second"]=>
array(1) {
[0]=>
string(4) "foo1"
}
["third"]=>
array(1) {
[0]=>
string(4) "foo2"
}
Run Code Online (Sandbox Code Playgroud)
现在我想找到与foo匹配的任何值(示例数组中的foo1和foo2),在其中插入"-bar"(foo-bar1,foo-bar2)并返回该值.有什么方法可以解决这个问题?
编辑我应该提到foo实际上可能是whatfoo(例如examplefoo1,somethingelsefoo2,blahblahfoo3).我认为这排除了str_replace.
如何在simplexml对象中获取最后一项(或任何特定项目)?假设您不知道将有多少个节点.
恩.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/xsl.xml"?>
<obj
href="http://xml.foo.com/"
display="com.foo.bar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://obix.org/ns/schema/1.0"
>
<list name="data" of="HistoryRecord">
<obj>
<abstime name="timestamp" val="1876-11-10T00:00:00-08:00"></abstime>
<int name="energy_in_kwh" val="1234"></int>
<int name="energy_out_kwh" val="123456"></int>
</obj>
<obj>
<abstime name="timestamp" val="1876-11-10T00:15:00-08:00"></abstime>
<int name="energy_in_kwh" val="1335"></int>
<int name="energy_out_kwh" val="443321"></int>
</obj>
</list>
<int name="count" val="2"></int>
</obj>
Run Code Online (Sandbox Code Playgroud)
我想抓住最后<obj></obj>一块(或者甚至只是它的一部分).
我有一个表单,除其他外,接受上传的图像并将其粘贴到数据库中.以前我有一个过滤POSTed数据的功能基本上是:
function processInput($stuff) {
$formdata = $stuff;
$formdata = htmlentities($formdata, ENT_QUOTES);
return "'" . mysql_real_escape_string(stripslashes($formdata)) . "'";
}
Run Code Online (Sandbox Code Playgroud)
当努力修复一些未正确转换的怪异实体时,我将功能更改为(所有改变的是我在htmlentities中添加'UTF-8'位):
function processInput($stuff) {
$formdata = $stuff;
$formdata = htmlentities($formdata, ENT_QUOTES, 'UTF-8'); //added UTF-8
return "'" . mysql_real_escape_string(stripslashes($formdata)) . "'";
}
Run Code Online (Sandbox Code Playgroud)
现在图片无法上传.
会导致什么?只需删除"UTF-8"位即可正确上传图像,但用户放入系统的某些MS Word实体会显示为乱码.到底是怎么回事?
**编辑:因为我无法做太多改变这个野兽的代码我能够通过使用htmlspecialchars()而不是htmlentities()拍打一个bandaid,这似乎至少在转换像引号这样的东西时保持图像数据不变bobince的建议非常好,但在这种情况下,我现在无法花费时间来修复这个项目中混乱的遗留代码.我处理的大部分内容都是面向对象和基于框架的,但现在我亲眼看到人们在PHP中谈论"意大利面条代码"时的意思.
我动态地附加表单元素.新附加的元素需要具有不同的name属性.我这样做是从一个基本表单开始,抓取一组隐藏的表单元素,克隆它们并附加它们.我的问题是,当我去设置新元素的name属性时,所有表单元素都会更改为新的name属性.
因此,在下面的示例中,新添加的克隆位具有正确的name属性,但不具有现有元素,在此示例中它们类似name="notabletitle1"但在克隆之后它们都具有相同的名称属性(name="notabletitle2").为什么?我认为这只会改变我添加的元素,而不是现有的元素.
我的表格如下:
<form>
<fieldset id="meh">
<legend>Notable</legend>
<p class="title">
<input name="notabletitle1" type="text" />
<label for="notabletitle1">Title</label>
</p>
<p class="text">
<textarea class="thin markItUp" name="notabletext1"></textarea>
</p>
<p class="link">
<input name="notablelink1" type="text" />
<label for="notablelink1">Link</label>
</p>
<a class="new" href="#">[ + ]</a>
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
我的js就像:
$(".new").click(function() {
c = ($(this).parent().children("p").length)/3+1;
nam = $(this).parent().children("legend").text().toLowerCase();
n = $("#cloneset1").children();
n.each(function(){
$('input').attr("name", nam+"title"+c);
$('textarea').attr("name", nam+"text"+c);
$('label').attr("for", nam+"link"+c);
})
n.clone().appendTo('#meh');
return false;
});
Run Code Online (Sandbox Code Playgroud)
用于克隆的区域如下:
<!-- Title, Text, Link set for …Run Code Online (Sandbox Code Playgroud) 我有以下格式的数据库结果:
s:6:hobbit
Run Code Online (Sandbox Code Playgroud)
s是"string",值是第三部分中的字符数.这个叫什么?冒号分隔值?通过正则表达式在PHP中处理它的唯一方法是什么?
具体来说,我正试图获得价值hobbit.但显然当我访问数据库获取任何东西时,我获得了全部价值s:6:hobbit.我注定要使用正则表达式来处理这样的结果吗?
我的问题......我如何使用 FilePond 上传文件,但是点击,而不是像开箱即用那样自动上传?此外,因为我需要对这些图像执行许多其他操作(例如在上传之前显示它们以供查看),并且因为我需要将其他数据添加到发送的 FormData(以及向 Redux 发送操作)。
通常我会创建一个 FormObject 将文件和其他值附加到它,然后再将它发布到某个端点(需要任何自定义标头)。然而,当我检查 FilePond 实例时,似乎我唯一可以访问的是一个 blob ......而不是实际文件。这是准确的吗?我是否需要遵循一些特殊的 FilePond 特定技术才能使文件上传工作?
FilePond 的文档有一个名为“server”的自定义配置值,它在更高级的示例中似乎可以访问实际文件,所以这是必须完成的方式吗?我不能只是抓取文件(从我目前在 FilePond 实例上看不到的地方)并将它们附加到一个对象以用于我的正常“服务”?
任何提示表示赞赏。在 React 应用程序中,我想在附加其他表单数据和设置标头(理想情况下使用 Axios)并将这些文件发布到 API 后上传可变数量的文件 onclick。
他们的文档中的示例使用了如下道具:
server="/api"
Run Code Online (Sandbox Code Playgroud)
我想要类似(假代码)的东西:
server={submitImages} <-- this should only happen onclick of some button
Run Code Online (Sandbox Code Playgroud)
在哪里:
submitImages = (fieldName, file) => {
const formData = new FormData()
formData.append(fieldName, file, file.name)
formData.append('foo', this.props.foo)
const docuploadresult = this.props.uploadDocs(formData) <-- a service that lives elsewhere and actually does the POST
docuploadresult.then(result => {
// success
}, error => { …Run Code Online (Sandbox Code Playgroud) 还有另一个最近的Project Euler问题,但我认为这有点具体(我只对基于PHP的解决方案感兴趣)所以我还是要问.
问题#5的任务是:"从1到20的所有数字均可被整除的最小数字是多少?"
现在,我已经解决了两次.曾经非常低效,而且效率更高,但我仍然远离一个特别复杂的答案(我在数学上并不是特别坚固,因此我的蛮力解决方案).我可以看到几个方面我可以改进这一点,但我想知道你们中是否有人能够证明这个问题更有效的解决方案.
*扰流板:这是我不太理想(运行7秒)但仍然可以容忍的解决方案(不知道如何处理双$ ...只是假装你只看到1 ......
function euler5(){
$x = 20;
for ($y = 1; $y < 20; $y++) {
if (!($x%$y)) {
} else {
$x+=20;
$y = 1;
}
}echo $x;
};
Run Code Online (Sandbox Code Playgroud) 如何根据匹配某个变量的选项将"已选择"属性添加到下拉菜单选项中?
以下是填充下拉列表的方式......
loginOptions = ["First", "Second", "Third"];
var Login = $( '#Login' );
for ( var i = 0; i < loginOptions.length; i++ ) {
Login.append('<option value="'+ loginOptions[i] +'">'+ loginOptions[i] +'</option>');
}
Run Code Online (Sandbox Code Playgroud)
我想根据其值是否与另一个变量匹配,将一个选项标记为"已选择".所以if loginOption[i]等于var existingLoginValue然后将该选项设置为'selected'
可以做的事情
if(loginOptions[i] === existingLoginValue){ print 'selected'; };
Run Code Online (Sandbox Code Playgroud)
谢谢!