我有一个网站,所有的请求被无声地(通过.htaccess )redirect到index.php ,然后PHP被用来显示正确的页面(通过parsingREQUEST_URI )。 我想知道是否有可能提交POST数据到一个虚假的地址吗? 我目前有我的表格,所以… <form action="/send-mail" method="post"> 而我的.htaccess规则是… # redirect mail posting to index RewriteRule send-mail index.php?send-mail [NC,L] 我的index.php检查isset($_GET['send-mail'])正常工作。 然而,这似乎放弃了所有应该发送给它的POST数据。 有没有办法保留发布数据? 我不想使用GET,因为它不能发送尽可能多的信息,虽然它可能不是一个简单的查询forms的问题。 这是我的.htaccessredirect到index.php # serve files and dirs if they exist please, otherwise send to index RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php
基本上我使用这个方便的function来处理数据库行(密切关注PDO和/或其他东西) function fetch($query,$func) { $query = mysql_query($query); while($r = mysql_fetch_assoc($query)) { $func($r); } } 有了这个function,我可以简单地做到: fetch("SELECT title FROM tbl", function($r){ //> $r['title'] contains the title }); 假设我现在需要连接var中的所有$r['title'] (这只是一个例子)。 我怎么能这样做? 我在想这样的事情,但不是很优雅: $result = ''; fetch("SELECT title FROM tbl", function($r){ global $result; $result .= $r['title']; }); echo $result;
PHP告诉我拆分已被弃用,我应该使用什么替代方法?
如何迭代一个UTF-8string字符使用索引? 使用括号操作符$str[0]访问UTF-8string时,utf编码的字符由2个或更多元素组成。 例如: $str = "Kąt"; $str[0] = "K"; $str[1] = " "; $str[2] = " "; $str[3] = "t"; 但我想有: $str[0] = "K"; $str[1] = "ą"; $str[2] = "t"; 这可能与mb_substr但这是非常缓慢的,即。 mb_substr($str, 0, 1) = "K" mb_substr($str, 1, 1) = "ą" mb_substr($str, 2, 1) = "t" 有没有另一种方法来整合string字符而不使用mb_substr ?
希望我能正确解释 我有一个multidimensional array,并试图根据一个键的值来对它们进行分组。 所以,我试图把他们按等级分组,但事实上我并不知道这个等级。 所以,不是我可以把它放在一个for循环中,并说$ i <7,因为我不知道7是关键的最大值,坦率地说,我不知道这是我即使我做了也需要做… Array ( [0] => Array ( [cust] => XT8900 [type] => standard [level] => 1 ) [1] => Array ( [cust] => XT8944 [type] => standard [level] => 1 ) [2] => Array ( [cust] => XT8922 [type] => premier [level] => 3 ) [3] => Array ( […]
我可以像这样使用JavaScript来访问一个PHP var: <?php $fruit = "apple"; $color = "red"; ?> <script type="text/javascript"> alert("fruit: " + "<?php echo $fruit; ?>"); // or shortcut "<?= $fruit ?>" </script> 但是如果我想使用一个外部的JS文件呢? <script type="text/javascript" src="externaljs.js"></script> externaljs.js: alert("color: " + "<?php echo $color; ?>");
在mysql_connect()使用localhost会使连接比使用127.0.0.1更快吗? PHP脚本和mySQL之间的连接types是什么(当使用mysql_connect()函数时)? 它是TCP / IP?
受到这个问题的讨论启发,可能是一个愚蠢的问题。 我们都被告知,在基于Linux的虚拟主机上保留目录或文件的权限级别为777是一件坏事,并且根据需要设置一些权限。 我现在好奇到底是在哪里开发的危险,特别是在PHP / Apache的情况下。 毕竟,PHP脚本文件可以从外部执行(即通过调用Web服务器,然后到解释器),无论它是否被标记为“可执行”,不是吗? 这同样适用于通过命令行php解释器调用的文件,对吧? 那么777的漏洞到底在哪里呢? 是否在同一台机器上的其他用户可以访问世界可写的文件?
我从来没有真正想过这个,直到今天,但searchnetworking后,我什么都没有find。 也许我不是在search中正确的用词。 给定一个数组(多维或不): $data = array('this' => array('is' => 'the'), 'challenge' => array('for' => array('you'))); 当var_dumped时: array(2) { ["this"]=> array(1) { ["is"]=> string(3) "the" } ["challenge"]=> array(1) { ["for"]=> array(1) { [0]=> string(3) "you" } } } 面临的挑战是:什么是最好的优化方法重新编译数组为PHP的可用数组? 像一个undump_var()函数。 数据是否全部在浏览器中输出,或者是否包含换行输出到terminal。 这只是一个正则expression式的问题吗? 或者有其他的方法吗? 我正在寻找创造力。 更新:注意。 我熟悉序列化和反序列化的人。 我不在寻找替代解决scheme。 这是一个代码挑战,看看它是否能够以优化和创造性的方式完成。 所以serialize和var_export在这里不是解决scheme 。 他们也不是最好的答案。
我经常看到使用bindParam或bindValue与PDO的代码。 仅仅是因为任何原因而传递参数来皱起眉头? 我明白, bindParam实际上绑定到variables,并且你可以设置bind方法绑定参数的types,但是如果你只是插入string呢? $query = "SELECT col1 FROM t1 WHERE col2 = :col2 AND col3 = :col3 AND col4 = :col4"; $pdo->bindValue(':col2', 'col2'); $pdo->bindValue(':col3', 'col3'); $pdo->bindValue(':col4', 'col4'); 我经常看到上面,但是我个人更喜欢: $pdo->execute(array(':col2' => 'col2', ':col3' => 'col3', ':col4' => 'col4')); 这不是一个冗长而直观的方式,让我更有意义地把input“一起进入”查询。 但是,我几乎没有看到它使用。 当不需要利用前者的特殊行为时,是否有理由更喜欢bind方法而不是传递参数来execute ?