我正在尝试清理来自多语言网站上的搜索框的字符串.
通常我会使用正则表达式:
$allowed = "-+?!,.;:\w\s";
$txt_search = preg_replace("/[^" . $allowed . "]?(.*?)[^" . $allowed . "]?/iu", "$1", $_GET['txt_search']);
Run Code Online (Sandbox Code Playgroud)
这适用于英文文本.
但是,现在我需要做同样的事情,输入的文本可以是任何语言(现在是俄语,将来是中文).
如何在保留原始语言的"普通文本"的同时清理字符串?
我虽然要切换到黑名单(虽然我不是......)但是此刻正则表达式完全破坏了所有原始输入.
我已经尝试了几天来修复我的PHP代码的这一部分,但似乎没有任何工作.
我基本上是一个超级新手.几乎在上周,我决定尝试使用PHP从头创建一个博客.这需要我学习PHP.所以,通过跟踪教程和阅读像w3schools这样的网站,我慢慢地学习了适用的PHP.
无论如何,这是我正在研究的代码的一部分:
$query = $db->prepare("SELECT post_id, title, body, date_posted, category
FROM posts INNER JOIN categories ON
categories.category_id=posts.category_id ORDER BY
post_id desc limit $start, $per_page");
$query->execute();
$query->bind_result($post_id, $title, $body, $date_posted, $category);
$author = $db->prepare("SELECT username FROM posts INNER JOIN user ON
user.user_id=posts.user_id");
print_r( $author->error );
$author->execute();
$author->bind_result($username);
Run Code Online (Sandbox Code Playgroud)
让我解释.我有3个数据库表:帖子,类别和用户.大多数帖子信息都在"帖子"中,包括category_id和user_id,但不包括类别和用户的实际名称.我从其他两个表中得到了那些.$ db使用mysqli.
上面代码的$ query部分工作得很好.$ author准备行是我遇到问题的地方.我根据$ query prepare行写了那行.
但是当我运行代码时,我得到"注意:试图获取非对象的属性." 这导致$ author-> execute()无效并产生错误:"致命错误:在非对象上调用成员函数execute()."
所以,再次,因为我是一个巨型新手,我认为修复是非常简单的,可能与我对PHP的无知有关.有没有人有任何想法或建议?在此先感谢您的帮助.
所以有几件事情.首先,生病了,我似乎无法专注于正确地解决这个问题,其次,它让我难以理解如何处理这个问题.
所以我有一个客户端,它有一个基于旧代码的旧网站.代码中存在一些极端漏洞,允许注入和攻击 - 这种情况发生了.自从我参与这个项目以来,我已经收紧了很多东西并且没有真正的问题.但我刚刚发现了一些看起来像以往黑客的问题.
因此,在数据库中,他们有一个名为"copy"的字段,用于存储文章的内容.好的,不是最好的名字,但它就在那里.所以这就是问题所在.自从hack以来,有大约52k行,其中包含"viagra"一词.因此,当我仔细查看复制字段和视图源代码时,我就会发现:
for the little kids in the neighborhood.<div style="display: none;">
Run Code Online (Sandbox Code Playgroud)
基本上是打开和关闭的div标签,其样式设置如上所示.因此,它不会在页面上进行直观呈现,但是当您查看源或"搜索引擎蜘蛛"时,他们会看到它.我无法弄清楚为什么上传到article_image目录的.php文件在网站管理员工具中被编入索引 - 直到今晚.现在我知道为什么了.
所以这就是我需要的.因为数据库中的每一行(其中52k)都有作为示例(<div style...>
部分)给出的内容,并且它们都出现在最初的内容之后,我需要一些我可以添加到循环中的东西来清除废话复制字段,以便清理混乱.我可以采用str_replace方法 - 但这太长了,不能保证我会得到所有的东西.
那么 - 有什么建议吗?
我有一个像这样的数组:
Array (
[0] => Mollie_Response Object (
[@attributes] => Array ( [version] => v1 )
[success] => true
[resultcode] => 10
[resultmessage] => Customer has the following payment methodes.
[services] => Mollie_Response Object (
[ivr] => true
[minitix] => true
[psms] => true
[ideal] => true
[paysafecard] => false
)
)
)
Run Code Online (Sandbox Code Playgroud)
我想得到[理想]的价值,但我不知道该怎么做.
我试过的是这个:
$response = $simplexml;
foreach( $response as $value )
{
echo 'Test: '.$value[0].'<br>';
}
Run Code Online (Sandbox Code Playgroud)
回应是这样的:
Test: true
Test: 10
Test: Customer has the following payment methodes. …
Run Code Online (Sandbox Code Playgroud) 出于测试目的,我希望使用Ajax从服务器请求一些JSON.从Ajax客户端的角度来看,JSON应该如下所示:
json=[
{"source":"pa","jsonstring": '{"a":1,"b":2,"c":3}'},
{"source":"pa","jsonstring": '{"a":1,"b":2,"c":3}'},
{"source":"pa","jsonstring": '{"a":1,"b":2,"c":3}'}
];
Run Code Online (Sandbox Code Playgroud)
请注意,jsonstring
它不是JSON,而是字符串,$.getJSON()
不应将其解析为对象.
我的尝试在下面,但是,我得到错误Parse error: syntax error, unexpected ',' in /var/www/test/src/classes/Ajax.php on line 13
.
该怎么做?
$content=file_get_contents('../buffer.json',true); //Line 13
$buffer=$content?json_decode($content):[];
$json=json_encode(['a'=>1,'b'=>2,'c'=>3]);
$buffer[]=[
'source'=>'pa',
'jsonstring'=>'"'.$json.'"'
];
$buffer=json_encode($buffer);
file_put_contents('../buffer.json',$buffer);
header('Content-Type: application/json');
echo($buffer);
Run Code Online (Sandbox Code Playgroud)
buffer.json
输出如下所示:
[{"source":"pa","jsonstring":"\"{\"a\":1,\"b\":2,\"c\":3}\""},{"source":"pa","jsonstring":"\"{\"a\":1,\"b\":2,\"c\":3}\""}]
Run Code Online (Sandbox Code Playgroud) 我有一个页面有很多进展,当它完成加载它看起来很好,但我想它加载所有的图像等,然后显示页面?可能是另一种方式.
http://www.randykrohn.com/gallery/pictures.php?EventID=279
这是页面的代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/Primary.dwt.php" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Dragboats.com - Photo Gallery -</title>
<!-- InstanceEndEditable -->
<script type="text/javascript" src="../includes/CSSMenuWriter/cssmw/menu.js"></script>
<link href="../includes/CSSMenuWriter/cssmw/menu.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" media="all" href="/includes/CSSMenuWriter/cssmw/menu_ie.css" />
<![endif]-->
<style type="text/css" media="all">
<!--
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6 {
margin: 0;
padding: 0;
border: 0;
outline: 0; …
Run Code Online (Sandbox Code Playgroud)