我在使用 PHP 修复“损坏”的 html 字符串时遇到了麻烦
我面临在 html 字符串上使用 substr 的常见问题,这会导致标签损坏。
我设法修复了所有损坏的标签,除了图像一个,因为标签本身并不完整,它甚至不是一个开始标签,
例如,假设您有一个字符串:
<div><img alt="foo" title="bar"
Run Code Online (Sandbox Code Playgroud)
我真的很想添加一个>来关闭它,而我的其他脚本知道如何div自动关闭它。
有没有人对如何捕获损坏的<img>标签并自动修复它们有任何想法?
我见过很多解决方案,包括 DOMdocument、tidy 和 HTMLpurifier,但它们似乎没有解决这个特定问题。
任何帮助,将不胜感激。
缓存MySQL连接有什么缺点吗?
例如,
$mysqli = new mysqli(params);
apc_store('mysqli', $mysqli);
Run Code Online (Sandbox Code Playgroud)
如果您网站上有很多用户都需要连接,这可以节省一些时间.而不是为每个用户打开连接,为什么不缓存它?
我没有通过谷歌搜索找到任何东西,所以只是想知道我是否错过了什么.
谢谢你的时间.
我有这个字符串:
$hours = '7, 8, 12';
$hourData = explode(', ', $hours);
Run Code Online (Sandbox Code Playgroud)
如果我var_dump($hourData),它返回:
array(3) {
[0]=>
string(1) "7"
[1]=>
string(2) "8"
[2]=>
string(2) "12"
}
Run Code Online (Sandbox Code Playgroud)
我有这个代码:
<?php for ($i=0; $i <= 23 ; $i++) { ?>
<div class="fl">
<input type="checkbox" name="limit_hour[]" value="<?php echo $i ?>" class="fl limit_hour"
<!-- ======================================================================== -->
<?php echo (isset($hourData[$i]) && $i == $hourData[$i] ? 'checked' : '') ?>>
<!-- ======================================================================== -->
<span class="fl lmBox"><?php echo $i ?>:00 - <?php echo $i ?>:59</span>
</div>
<?php } …Run Code Online (Sandbox Code Playgroud) 我试图使用PHP回声一些内联CSS:
echo '<div class="image" style="background:url("img/testimage.jpg");width:300px;height:232px;">';
echo '</div>';
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这是回归:
<div class="image" testimage.jpg");width:300px;height:232px;"="" img="" style="background:url("></div>
Run Code Online (Sandbox Code Playgroud)
这是在WordPress环境中,我做了一些明显的错误吗?
关于php,我有一个非常简单的问题.
我有这个字符串:
This is a simple string | badword is here
Run Code Online (Sandbox Code Playgroud)
我需要这个:
The is a simple string
Run Code Online (Sandbox Code Playgroud)
所以,
我在下面使用了以下代码:
$word = substr($word, 0, strpos($word, '|'));
Run Code Online (Sandbox Code Playgroud)
如果我使用该代码,我必须检查|字符串中是否有任何字符,如果是,请删除它.
所以它的速度非常低,我无法使用它.
获取结果的最快方法是什么,而不检查|char是否在主字符串中?
我已尝试在关于此主题的其他问题上发布的每个解决方案,但它们都不起作用.
我很抱歉,如果这是一个基本问题,但我是MySQLi的新手,我无法弄清楚为什么这个连接不起作用.
我的functions.php文件中有一个函数,它具有:
function cleanInput($string) {
$stripsql = $connect->real_escape_string($string);
$addslashes = addslashes($stripsql);
return $addslashes;
}
Run Code Online (Sandbox Code Playgroud)
第二行是在标题中抛出该错误.
我连接到数据库,$connect是一个工作变量.它在config.php中设置使用:
$connect = new mysqli('localhost', 'shop', 'password', 'zen');
Run Code Online (Sandbox Code Playgroud)
我甚至尝试在功能之前移动该线路无济于事.
一var_dump对$connect在functions.php文件不返回NULL,则返回有关数据库开始的数据object(mysqli)#1 (19) { ["affected_rows"]=> int(0),然后用大量的行继续.
我是非常新的PHP所以请原谅我的新代码,虽然我需要使用PHP,但是我更需要使用PHP,目前我有php页面连接到数据库,如果成功将值存储到cookie中虽然由于字符串不正确而抛出这些错误消息
Warning: Illegal string offset 'Member_Username' in C:\xampp\htdocs\awm\includes\login.php on line 10
Warning: Illegal string offset 'Member_Password' in C:\xampp\htdocs\awm\includes\login.php on line 10
Notice: Trying to get property of non-object in C:\xampp\htdocs\awm\includes\login.php on line 13
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
<?php
try
{
$Username = $_POST['Username'];
$Password = $_POST['Password'];
$con = mysqli_connect('localhost','root','Password','Letting');
$query = "SELECT Member_Id, Member_Firstname, Member_Surname FROM Members WHERE Member_Username = '" . $Username['Member_Username'] . "' AND Password = '" . $Password['Member_Password']. "'";
$result = $con->query($query);
if($result->num_rows)
{
$row = $result->fetch_assoc();
$_SESSION['MemberId']=$row['Member_Id'];
$_SESSION['Firstname']=$row['Member_Firstname'];
$_SESSION['Surname']=$row['Member_Surname']; …Run Code Online (Sandbox Code Playgroud) foreach ( $custom_fields as $field_key => $field_values ) {
foreach ( $field_values as $key => $value )
echo $field_key . '<br>';
echo '<pre>' , print_r( $value,true) , '</pre>';
}
Run Code Online (Sandbox Code Playgroud)
虽然我使用的是print_r与<pre>标签,在输出中看起来是这样的:
a:4:{i:0;s:6:"Casual";i:1;s:6:"Serene";i:2;s:6:"Unique";i:3;s:9:"Whimsical";}
Run Code Online (Sandbox Code Playgroud)
不应该垂直列出适当的缩进?我究竟做错了什么?
我在我的代码中定义/初始化常量:
if(!define('CHECKLIST'))
{
define("CHECKLIST",FALSE);
}
Run Code Online (Sandbox Code Playgroud)
但它没有用,我收到了一个警告错误.
警告:define()需要至少2个参数,1在PHP中给出
假设我有一个如下的 XML -
$xml = '<?xml version="1.0"?>
<step number="9">
<s_name>test</s_name>
<b_sel>12345</b_sel>
<b_ind>7</b_ind>
</step>';
Run Code Online (Sandbox Code Playgroud)
我希望将其转换为对象,但是当我执行以下步骤时,它给了我如下的 stdclass 对象 [我将它分配给 $stepInformation 变量] -
$xml = json_decode(json_encode((array) simplexml_load_string($xml)), 1);
$stepInformation = stdClass Object
(
[@attributes] => Array
(
[number] => 9
)
[s_name] => test
[b_sel] => 12345
[b_ind] => 7
)
Run Code Online (Sandbox Code Playgroud)
所以当我在 php 函数中解析这个 stdclass 对象时
function convertStepInformationToArray($stepInformation)
{
$dom = new DOMDocument();
$stepInfo = "{$stepInformation->s_name}{$stepInformation->b_sel}{$stepInformation->b_ind}";
$dom->loadXML("<document>" . $stepInfo . "</document>");
$domx = new DOMXPath($dom);
$entries = $domx->evaluate("//step");
return $entries;
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是
DOMNodeList …Run Code Online (Sandbox Code Playgroud)