Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用preg_replace或htaccess替换url字符串_Php_Mysql_Binary - Fatal编程技术网

Php 使用preg_replace或htaccess替换url字符串

Php 使用preg_replace或htaccess替换url字符串,php,mysql,binary,Php,Mysql,Binary,我陷入困境。我刚刚接手一项新工作,老程序员使用BLOB/bin将内容输入MYSQL 有1000行,我需要“找到并替换”一个新的图像url 当我导出MYSQL数据库时,我不能查找并替换所有数据,因为数据是二进制的 我不确定我的选择是什么 我正在考虑使用PHP preg_replace或尝试为这些图像编写.htaccess重写或重定向规则 www.oldsite.com/images/ 到 www.newsite.com/images/ 我真的不知道哪种方法更好更有效 我希望我知道如何用二进制文件查

我陷入困境。我刚刚接手一项新工作,老程序员使用BLOB/bin将内容输入MYSQL

有1000行,我需要“找到并替换”一个新的图像url

当我导出MYSQL数据库时,我不能查找并替换所有数据,因为数据是二进制的

我不确定我的选择是什么

我正在考虑使用PHP preg_replace或尝试为这些图像编写.htaccess重写或重定向规则

www.oldsite.com/images/

www.newsite.com/images/

我真的不知道哪种方法更好更有效

我希望我知道如何用二进制文件查找和替换所有文件,或者如果可能的话

谢谢你在这方面的任何帮助或提示

编辑


太好了!所以我可以这样做

$myString = rawurldecode($offer['description']);
$newString = preg_replace('/www.myoldsite.com/', 'www.mynewsite.com', $myString); 
echo $newString;
*编辑#2和结论*

我终于想出了如何查找和替换!!感谢@user113215

最后使用下面的代码,效果非常好!!事件与二进制文件

UPDATE table_name SET column = REPLACE(column_name, 'www.old.com/', 'www.new.com/')

谢谢!希望这对其他人也有帮助

在代码中,选择要显示的字段,使用str_替换。 当代码很好时,这个字段有一个getter,或者至少有一些中心代码来执行mysql选择。
str_replace很快,并且不占用那么多资源。

在代码中,选择要显示的字段,使用str_replace。 当代码很好时,这个字段有一个getter,或者至少有一些中心代码来执行mysql选择。
str_replace速度快,不占用那么多资源。

考虑使用
UPDATE
和MySQL直接修改数据库。这可能需要使用有问题的专栏。谢谢您的评论!这对二进制文件有效吗?我说的是一个SQL语句,比如
updatetable\u name SET column=REPLACE(column\u name,'www.old.com/','www.new.com/')
,它在MySQL服务器上运行,而不是在文件副本上运行。这将直接修改数据库。我不确定是否可以将
REPLACE()
BLOB
列一起使用,但如果该列中的数据实际上是字符串,则可以使用
ALTER TABLE
将列类型更改为
VARCHAR
,例如,然后运行
UPDATE
。非常有趣的方法。我没想到这个!然后,如果我运行它,它将更新数据库?考虑直接修改数据库的代码>更新< /代码>和MySQL的。这可能需要使用有问题的专栏。谢谢您的评论!这对二进制文件有效吗?我说的是一个SQL语句,比如
updatetable\u name SET column=REPLACE(column\u name,'www.old.com/','www.new.com/')
,它在MySQL服务器上运行,而不是在文件副本上运行。这将直接修改数据库。我不确定是否可以将
REPLACE()
BLOB
列一起使用,但如果该列中的数据实际上是字符串,则可以使用
ALTER TABLE
将列类型更改为
VARCHAR
,例如,然后运行
UPDATE
。非常有趣的方法。我没想到这个!那么如果我运行这个,它会更新数据库吗?太好了!所以我可以这样做(查看我所做的编辑)来进行简单的替换,就像这样,你不需要preg_replace,str_replace就足够了:$url=str_replace('oldsite','newsite',$myString);伟大的所以我可以这样做(查看我所做的编辑)来进行简单的替换,就像这样,你不需要preg_replace,str_replace就足够了:$url=str_replace('oldsite','newsite',$myString);