小编jer*_*oen的帖子

正则表达式从多语言字符串中筛选所有白名单字符

我正在尝试清理来自多语言网站上的搜索框的字符串.

通常我会使用正则表达式:

$allowed = "-+?!,.;:\w\s";
$txt_search = preg_replace("/[^" . $allowed . "]?(.*?)[^" . $allowed . "]?/iu", "$1", $_GET['txt_search']);
Run Code Online (Sandbox Code Playgroud)

这适用于英文文本.

但是,现在我需要做同样的事情,输入的文本可以是任何语言(现在是俄语,将来是中文).

如何在保留原始语言的"普通文本"的同时清理字符串?

我虽然要切换到黑名单(虽然我不是......)但是此刻正则表达式完全破坏了所有原始输入.

php regex multilingual filter

1
推荐指数
1
解决办法
1999
查看次数

PHP注意:尝试获取非对象的属性

我已经尝试了几天来修复我的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的无知有关.有没有人有任何想法或建议?在此先感谢您的帮助.

php mysql mysqli prepare

1
推荐指数
1
解决办法
2万
查看次数

需要清理垃圾邮件数据库

所以有几件事情.首先,生病了,我似乎无法专注于正确地解决这个问题,其次,它让我难以理解如何处理这个问题.

所以我有一个客户端,它有一个基于旧代码的旧网站.代码中存在一些极端漏洞,允许注入和攻击 - 这种情况发生了.自从我参与这个项目以来,我已经收紧了很多东西并且没有真正的问题.但我刚刚发现了一些看起来像以往黑客的问题.

因此,在数据库中,他们有一个名为"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方法 - 但这太长了,不能保证我会得到所有的东西.

那么 - 有什么建议吗?

php mysql database

0
推荐指数
1
解决办法
69
查看次数

从包含对象的数组中获取值

我有一个像这样的数组:

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)

php arrays object

0
推荐指数
1
解决办法
85
查看次数

使用PHP将JSON存储为JSON中的字符串

出于测试目的,我希望使用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)

php ajax jquery json

0
推荐指数
1
解决办法
54
查看次数

延迟显示页面,直到加载所有内容

我有一个页面有很多进展,当它完成加载它看起来很好,但我想它加载所有的图像等,然后显示页面?可能是另一种方式.

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)

html php jquery image

-6
推荐指数
1
解决办法
3721
查看次数

标签 统计

php ×6

jquery ×2

mysql ×2

ajax ×1

arrays ×1

database ×1

filter ×1

html ×1

image ×1

json ×1

multilingual ×1

mysqli ×1

object ×1

prepare ×1

regex ×1