我需要构建以下字符串:
#<tr class="[^"]*">
<td><div class="grid_content sno"><span>[^"]*</span></div></td>
<td>
<center>
<div class="grid_content2 sno">
<span>
<img src="https://seriesblanco.com/banderas/es.png">
</span>
</div>
<center>
</td>
<td>
<div class="grid_content sno">
<span>
<a href="(.*?)" target="_blank">
<img src='/servidores/powvideo.jpg' width='[^"]*' height='[^"]*' /></a>
</span>
</div>
</td>
<td>
<div class="grid_content sno"><span>[^"]*</span>
</td>
<td>
<div class="grid_content sno"><span>[^"]*</span></td>
<td></td>
</tr>#
正如您所看到它有""
和''
引号,我发现无法构建像$string = *codeabove*
这样的字符串,因为如果我使用某种引用或另一种引用它会自行关闭,还有另一个吗?
答案 0 :(得分:2)
你可以用'\'来逃避一个角色 所以例如
$string = 'theString\''
答案 1 :(得分:0)
没有逃避和更优雅:
<?php
$str = <<<EOD
Example of string
using 'both' types
of "quotes" with
heredoc sintax.
EOD;
echo $str;
将打印:
Example of string
using 'both' types
of "quotes" with
heredoc sintax.
答案 2 :(得分:0)
转义引号字符是一种解决方案。在简单的情况下,这是最简单的事情。
但有时简单地slip out of HTML and use the PHP interpreter更容易。这样做没有性能影响。根据具体情况,它会导致代码更易于读写。例如......
<?php
$str = '[^"]*';
?>
<div class="grid_content sno"><span><?= $str; ?></span></div>
无可否认,简单的情况是简单地转义一个引号字符很容易。但请考虑一个更复杂的例子。
<?php
$selected = $some_value;
if($expression == true): ?>
<div class="somecss">
<select>
<?php foreach($options as $key => $value): ?>
<option value='<?= $key; ?>'
<?php if($key === $selected) : ?> selected = "selected"<?php endif; ?>
><?= $value; ?></option>
<?php endforeach; ?>
</select>
</div>
<?php else: //$expression is false ?>
<div class="error">No options available</div>
<?php endif; ?>
More HTML here