任何人都知道为php写的任何类可以清理你的代码吗?
就像是,
$htGen = new HTMLGenerator();
$htGen->newDOM('div', 'here is what goes in the div', 'optionalID', 'optionalClass');
Run Code Online (Sandbox Code Playgroud)
或者这听起来多余?
我最终得到了一些复杂的看起来很好的html和php,我觉得可以简化一点,例如我最新的cms位;
foreach($details as $detail){
$d = unserialize($detail);
if($ad){
print_r($d); // <-- VIEW DETAIL OBJECT IN WHOLE.
}else{
if($d->get_info('orphan')){
echo '<li class="classRow orphan">' . "\n";
echo '<div class="orphan" style="display:none">orphan</div>' . "\n";
}else{
echo '<li class="classRow">' . "\n";
echo '<div class="orphan" style="display:none"></div>' . "\n";
}
echo '<div class="classNumbers" id="' . $d->get_info('class ID') . '" style="display:none"></div>' . "\n";
echo '<div class="rowBG" style="overflow:hidden;width:100%">';
echo '<div class="startTime"></div>' . …Run Code Online (Sandbox Code Playgroud) 如果我在类中编写一个公共静态方法,即......
public static function get_info($type){
switch($type){
case'title':
self::get_title();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我必须把我的get_title()函数写成public ...
public static function get_title(){
return 'Title';
}
Run Code Online (Sandbox Code Playgroud)
否则我收到错误:
Call to private method Page::get_title()
Run Code Online (Sandbox Code Playgroud)
这让我觉得这个功能get_info()本质上是多余的.我希望能够从我的类中的静态方法调用私有方法进行验证.这不可能吗?
PHP> 5.0 btw.
!#######编辑解决方案(但没有回答问题)#########!
如果你很好奇,我的解决方法是在静态函数中实例化我的静态函数类.
所以,班级名称是Page I会这样做......
public static function get_info($type){
$page = new Page();
switch($type){
case'title':
$page->get_title();
break;
}
}
public function get_title(){
return 'Title';
}
Run Code Online (Sandbox Code Playgroud) 我没有运行循环来更新表中的值,而是想使用IN语句(假设它更快?).
我有一系列值:
$array (
1 => Tom
2 => Bob
3 => Sally's String
4 => Pesce is Italian for "fish"
)
Run Code Online (Sandbox Code Playgroud)
我正在使用循环,因为我可以单独准备每个字符串以解决潜在的不良字符:
$sql = "UPDATE table SET data = 1 WHERE my_string = ?";
$s = pdoObject->prepare($sql);
foreach($array as $string){
$s->execute(array($string));
}
Run Code Online (Sandbox Code Playgroud)
我喜欢使用IN语句(再次,假设它更快,请告诉我,如果我错了).问题是,考虑到我的字符串数组中存在不同类型的字符,创建一个IN语句会导致一些错误.例如;
$inString = '"'.implode('","',$array).'"';
// $inString would be "Tom","Bob","Sally's String","Pesche is Italian for "fish"";
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来准备这种类型的查询?还是"执行多种"类型的功能?我通常会看到长度为5到50个项目的字符串数组.
######为什么这个问题很独特######
我的问题是唯一的问题我可以将数组绑定到IN()条件吗?因为我希望绑定一个字符串数组而不是整数.
我正在使用PHP向MySQL数据库提交表单.
我通过该mysql_real_escape_string($content)函数发送表单数据.
当条目出现在我的数据库中(在phpMyAdmin中检查)时,我的所有双引号和单引号都被转义.
我很确定这是一个PHP配置问题?
所以:
$content = 'Hi, my name is Jascha and my "favorite" thing to do is sleep';
mysql_real_escape_string($content);
$query = 'INSERT INTO DB...'
Run Code Online (Sandbox Code Playgroud)
在我的数据库中出现:
嗨,我的名字是Jascha,我最喜欢的事情就是睡觉
我该告诉谁该怎么办?(我无法访问php.ini).
我正在使用PHP Simple HTML DOM Parser遇到内存问题.我正在解析一个公平的doc,需要运行DOM树...
1)我从整个文件开始:
$html = file_get_html($file);
Run Code Online (Sandbox Code Playgroud)
2)然后解析我的表:
$table = $html->find('table.big');
Run Code Online (Sandbox Code Playgroud)
3)然后解析我的行:
$rows = $table[0]->find('tr');
Run Code Online (Sandbox Code Playgroud)
我最终得到的是三个GIANT对象......在解析了我需要的数据之后,谁知道如何转储对象?就像$ html在步骤3中没用,但它是所有对象中最大的.
有任何想法吗?
有没有办法从原始的$ html对象中深入到我的表行?
提前致谢.
编辑:
我设法跳过第二步:
$rows = $this->html->find('table.big tr');
Run Code Online (Sandbox Code Playgroud)
但我仍然遇到内存问题......
我有DOM元素我想通过添加一个类"noEdit"从.click函数中排除我遇到的问题是这些元素中的一些有多个类,即:
<td class="firstCol noEdit"> // <-- wont work
<td class="noEdit"> // <-- works fine
Run Code Online (Sandbox Code Playgroud)
和jQuery:
$('td').click( function(){
if($(this).attr('class') != "noEdit"){
alert('do the function');
});
Run Code Online (Sandbox Code Playgroud)
想法?
我已经看过几次了,但不知道我将如何在这里问它...希望你们好.
基本上我有这个脚本工作正常,将毫不费力地打印我的结果:
$algorithm = MCRYPT_BLOWFISH;
$mode = MCRYPT_MODE_CFB;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($algorithm, $mode), MCRYPT_DEV_URANDOM);
$key = 'Wassup';
$data = 'I am a guy';
$enc_data = rtrim(mcrypt_encrypt($algorithm,$key,$data,$mode,$iv));
$plain_text = base64_encode($enc_data);
echo $plain_text . "\n";
// OUTPUTS: 6m3D5qSrfz3w6pKuuybs
$enc_data = base64_decode($plain_text);
$decoded = mcrypt_decrypt($algorithm,$key,$enc_data,$mode,$iv);
echo $decoded;
// OUTPUTS: I am a guy
Run Code Online (Sandbox Code Playgroud)
太棒了.现在......而不是只是立即输出我输入的内容,我试图将该信息存储在我的数据库中以便稍后解密.
我可以在表格行中看到加密的字符串:6m3D5qSrfz3w6pKuuybs.所以,我相信它会很好......
当我查询它出来时它看起来是一样的,但现在当我解码和解密时我会得到类似的东西:ÝÄ/ $ÍñËt05883700
表字段设置为VARCHAR(255)utf8_general_ci.这是问题所在吗?
我正在向我的表中添加一个名为“room_num”的字段。基本上在插入时,我想将 room_num 的默认值设置为最后一个 room_num + 1 的最大值。显然,如果此表仅适用于一个用户,我将使用自动增量,但是,它将适用于许多所以我有一个正在运行的唯一索引以及一个唯一字段 user_index。
我可以根据 user_index 运行查询并返回“room_num”的最大值,但是,既然我已经在这里了,有没有办法使默认值成为某种函数?
所以,例如我的表是这样的:
+-------+-------------+---------+-------------+
| index | room_num | title | user_index |
+-------+-------------+---------+-------------+
| 0 | 0 | Patio | 10 |
+-------+-------------+---------+-------------+
| 1 + 1 | Dining | 10 |
+-------+-------------+---------+-------------+
| 2 + 0 | Bar | 15 |
+-------+-------------+---------+-------------+
| 3 + 2 | Dining | 10 |
+-------+-------------+---------+-------------+
Run Code Online (Sandbox Code Playgroud)
所以,现在我希望 user_index 15 的下一次插入的 room_num 的默认值默认为 max room_num (0) + 1(在这种情况下为 1)。但是,我想在这里解决这个问题:

而不是首先在我的应用程序中查询它然后插入记录并实质上建立两个数据库连接。
这可能吗?
我想调用一个函数并发送一个字符串或整数...
function getImage(val:*):void{
if(val == String){
switch(val){
case'next':
loadNext();
break;
case'prev':
loadPrev();
break
}
}else{
loadImg(val);
}
}
Run Code Online (Sandbox Code Playgroud)
并相应地改变我的功能...谁知道如何检测参数类型?
谢谢-J
我有几个字符串将被替换为相同的字符串...
即
$text=str_ireplace('[/VIDEO]','</div>',$text);
$text=str_ireplace('[/ARTICLE]','</div>',$text);
$text=str_ireplace('[/IMG]','</div>',$text);
Run Code Online (Sandbox Code Playgroud)
无论如何使用数组代替初始字符串值?