我目前正在编写一些搜索引擎,该页面正在从上一页检索一些 _GET 变量。这是按预期工作的。
现在我在 POST 表单中使用这些变量作为默认值。但是,出于某种原因,只显示了每个单词的第一个单词。表单代码如下:
<form action = "insert.php" method = 'POST'>
<Place name <input type="text" name="name" size = "30" value= <?php echo $_GET['name']; ?> />
Run Code Online (Sandbox Code Playgroud)
请注意,在页面中的任何其他位置回显 $_GET['name'] 时,一切都很好。多个单词按预期显示,但是当我将其用作文本框默认值时,文本框中仅显示第一个单词。
起初,我认为这与在 URL 中发送这些 $_GET 变量的方式有关,所以我尝试了这个:
$fullname = array();
$fullname = explode("%20", $_GET['name']);
$aaa = implode (' ',$fullname);
Run Code Online (Sandbox Code Playgroud)
...
Place name <input type="text" name="name" size = "30" value= <?php echo $aaa; ?> />
Run Code Online (Sandbox Code Playgroud)
但结果还是一样。如果我在页面的任何其他地方回显它,我会得到完整的字符串,但如果它在表单内,则只显示第一个单词。
我在这里缺少什么?
我有一个没有分配值的简单数组:
Array
(
[field1] =>
[field2] =>
)
Run Code Online (Sandbox Code Playgroud)
然后做类似的事情:
$result = array();
foreach ($array as $val) {
array_push($result, $val);
}
$data = implode("::", $result);
Run Code Online (Sandbox Code Playgroud)
我最终得到:
::
Run Code Online (Sandbox Code Playgroud)
那么,如果数组值为空,如何防止内爆生成分隔符呢?如果我至少分配了一个值:
Array
(
[field1] => "hello"
[field2] =>
)
Run Code Online (Sandbox Code Playgroud)
然后内爆就可以正常工作了。
$array = array(' lastname ', ' email ', ' phone ');
$comma_separated = implode(" ", $array);
echo $comma_separated; // lastname email phone
Run Code Online (Sandbox Code Playgroud)
我有上面的代码来组合或连接 PHP 中的字符串问题是如果数组中的元素在连接字符串中有额外的空间,则它有额外的空间。
预期结果:echo 中的单词之间只有一个空格
内爆前如何先修剪数组中的每个元素
我想获取一个姓名列表(来自 Wordpress)并获取姓名缩写并用“/”分隔。在大多数情况下,会有 2 个或更多名称。在某些情况下,只有 1 个名称。
例如:
约翰·多伊 简
·亚当
斯 迈克尔·麦克唐纳
应输出: JD/JA/MD
这是我迄今为止尝试找出答案的尝试。
foreach ( $result as $user )
{
$user_id = $user->user_id1;
$user = get_userdata( $user_id );
$name[] = $user->display_name;
}
$comma_names = implode('/', $name);
$words = explode("/", $comma_names);
$initials = "";
foreach ($words as $w) {
$initials .= $w[0];
}
echo $initials;
Run Code Online (Sandbox Code Playgroud)
显然,这仅输出每个名字的第一个字母。我需要在循环中使用额外的爆炸吗?
做这个的最好方式是什么?
我的代码 -
$things = mysql_real_escape_string(implode(',', $_POST['things']),$link);
$q = "INSERT INTO tblslider(src) VALUES ('".$things."')";
print_r($q);
$result = $mysqli->query($q) or die(mysqli_error($mysqli));
Run Code Online (Sandbox Code Playgroud)
但是我的查询正在生成,
INSERT INTO tblslider(src) VALUES ('4368122.jpg,5440051.jpg,1047428.jpg') 但应该是
INSERT INTO tblslider(src) VALUES ('4368122.jpg'),('5440051.jpg'),('1047428.jpg')因为它将它作为一个记录而不是三个.
我的代码中有一段看起来像这样:
$accounts[] = array("id" => 1, "fullName"=>"Lorem ipsum", "email"=>"lorem@example.com");
$accounts[] = array("id" => 2, "fullName"=>"Lorema ipsum", "email"=>"lorema@example.com");
$toUsers = array();
foreach($accounts as $account){
$toUsers[] = $account['fullName'] . "<" . $account['email'] . ">";
}
$toString = implode(", ",$toUsers);
Run Code Online (Sandbox Code Playgroud)
这个循环应该给我一个字符串,格式化为电子邮件标题(我想使用邮件功能).我期待结果,$toString = "Lorem ipsum<lorem@example.com>, Lorema ipsum<lorema@example.com>";但我得到的只是$toString = "Lorem ipsum, lorema Ipsum";
我需要做什么才能让"<"和">"在php中使用字符串?
谢谢,JNK
我有这个数组:
array (size=5)
35 => string '3' (length=1)
24 => string '6' (length=1)
72 => string '1' (length=1)
16 => string '5' (length=1)
81 => string '2' (length=1)
Run Code Online (Sandbox Code Playgroud)
我想破坏id得到:
$str = '35-3|24-6|72-1|16-5|81-2';
Run Code Online (Sandbox Code Playgroud)
如何轻松获得它?
谢谢.
我有2个数组,我希望使用PHP在数组1中找到一个值.
我意识到我必须使用PHP explode函数,但我担心这是我的技能结束的地方.
我的函数会比较两个数组的值,如果它$needle在里面找到任何值$haystack,它会将它们返回到内部$found.它可能会找到多个,所以也许$found应该是一个数组呢?
$needle = "Swimming,Landscaping,Gardening,Bricklaying,3D Modelling";
$haystack = "Football,Rugby,Landscaping,3D Modelling";
$found = magicFunction($needle,$haystick);
// $found['0'] = "Landscaping";
// $found['1'] = "3D Modelling";
Run Code Online (Sandbox Code Playgroud)
这有意义吗?
非常感谢您对此的任何指示.
所以我有一个博客系统,并且我想为“相关新闻”构建一个部分,我不是在建立“标签”系统,而只是在其中搜索和存储文章的当前标题(从数据库中提取)。一个字符串并将其展开,以便以后可以将所有单词放入查询中,该稍后查询将在数据库中搜索所有标题以找到这些单词中的任何一个,如果匹配,它将在列表中返回标题。以下是相关代码:
// note to stackoverflow peeps, $row_object_title is just the title that is pulled form the database
$row_object_title_lower = strtolower($row_object_title);
$keywords = explode(" ",$row_object_title_lower);
Run Code Online (Sandbox Code Playgroud)
稍后在页面上运行的代码:
$keywords_imploded = implode("','",$keywords);
$myquery = sql_query("SELECT object_title FROM table WHERE object_title IN ('$keywords_imploded')
Run Code Online (Sandbox Code Playgroud)
现在,我尝试通过打印出标题来列出标题,但是什么也没有显示。
我确定数据库中有匹配的标题。
谢谢
我有一个PHP脚本,应该发送邮件给多个收件人.我想把所有收件人都写到BCC.电子邮件地址是从mysql数据库中检索的.不幸的是它不会发送任何邮件.
这是脚本:
<?php
include("/path/to/config.php");
$db = @new mysqli($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
if (mysqli_connect_errno()) {
die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}
$sql = "select email from newsletter";
$recipients = array();
$result = $db->query($sql);
if (!$result) {
printf("Query failed: %s\n", $mysqli->error);
exit;
}
while($row = $result->fetch_row()) {
$recipients[]=$row;
}
print_r($recipients);
$result->close();
$db->close();
$to = 'myemail';
$subject = $_POST["subject"];
$body = $_POST["message"];
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'Reply-To: support@mymail.de' . …Run Code Online (Sandbox Code Playgroud)