繁体   English   中英

如何在php中更改变量的字符串?

[英]How to change string of variable in php?

我想编辑variable string 但是我做不到。 编码:

$mysite = 'mysite'; //name of site
$myurl = 'http:/mysite.com'; //url of website
$metaauthor = ''; // meta name author;
$metatitle = 'Online CV Builder'; // meta name title
$metacopy = 'Javid Karimov'; // meta name copyright
$metakeywords = 'CV, PDF, ONLINE, RESUME'; // meta name keywords
$allowcv = '2'; // how many cv's user can create
$keyword = 'cv, pdf, resume, create cv online'; // keyword for creating security key
$mailto = 'mail@gmail.com'; // send to mail in contact php

我这样改变(它起作用):

$str = file_get_contents('../sys/sets.php');

//replace something in the file string
$str = str_replace($mysite, $sitenamexx, $str);
$str = str_replace($myurl, $siteurlxx, $str);
$str = str_replace($metaauthor, $metaavtorxx, $str);
$str = str_replace($metacopy, $metacopyxx, $str);
$str = str_replace($metatitle, $metatitlexx, $str);   
$str = str_replace($metakeywords, $metakeywxx, $str);
$str = str_replace($allowcv, $allowcvxx, $str);
$str = str_replace($keyword, $keywxx, $str);
$str = str_replace($mailto, $mailtoxx, $str);

//write string
$wok = file_put_contents('../sys/sets.php', $str);

if($wok) {
     echo 'Changed<br/>';
 }
 else {
     echo 'Error<br/>';
 }  

问题:如果string为空(例如: $mysite = ''; ),则它不会更改。 我该如何解决? 可能还有另一种方法吗? 我尝试了fopen()fgets() ,这种方式我必须使用array ,但是我无法使用它。

如果您有一个空字符串并尝试替换它,那么您将无法使用它。 这是因为您试图用某物代替任何东西。 这样,它要么什么都不做(它确实是明智的),要么将文件中所有不包含任何内容的实例替换为某种东西,即重复地将某些东西添加到文件中,直到内存用尽。

要执行您要执行的操作,您应该尝试替换整行,例如:

$str = str_replace('$mysite = \'' . $mysite . '\';', '$mysite = \'' . $sitenamexx . '\';', $str);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM